<?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>238574</bug_id>
          
          <creation_ts>2022-03-30 14:02:58 -0700</creation_ts>
          <short_desc>Adopt Identifier::fromString(ASCIILiteral) more broadly</short_desc>
          <delta_ts>2022-03-31 18:27:17 -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>JavaScriptCore</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>
          <dependson>238552</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>pascoe</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1856563</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-30 14:02:58 -0700</bug_when>
    <thetext>Adopt Identifier::fromString(ASCIILiteral) more broadly, now that it is very efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856593</commentid>
    <comment_count>1</comment_count>
      <attachid>456181</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-30 15:40:01 -0700</bug_when>
    <thetext>Created attachment 456181
WIP Patch

Will A/B test to avoid surprises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856612</commentid>
    <comment_count>2</comment_count>
      <attachid>456186</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-30 16:45:06 -0700</bug_when>
    <thetext>Created attachment 456186
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856795</commentid>
    <comment_count>3</comment_count>
      <attachid>456233</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-31 07:24:05 -0700</bug_when>
    <thetext>Created attachment 456233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857086</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-31 18:26:12 -0700</bug_when>
    <thetext>Committed r292193 (249096@main): &lt;https://commits.webkit.org/249096@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456233.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857087</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 18:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/91138736&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456181</attachid>
            <date>2022-03-30 15:40:01 -0700</date>
            <delta_ts>2022-03-30 16:45:06 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>Identifier_from_ACIILiteral_full_wip.patch</filename>
            <type>text/plain</type>
            <size>142804</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAppbmRleCA2NjIwMWYyZDExMmIuLjkzZWM3
MDVhMGYwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcApAQCAtMjA3LDcgKzIw
Nyw3IEBAIEpTT2JqZWN0UmVmIEpTR2V0TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEpTQ29udGV4dFJl
ZiBjdHgpCiAgICAgYXV0byB0eXBlQ291bnRzID0gdm0uaGVhcC5vYmplY3RUeXBlQ291bnRzKCk7
CiAgICAgSlNPYmplY3QqIG9iamVjdFR5cGVDb3VudHMgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChn
bG9iYWxPYmplY3QpOwogICAgIGZvciAoYXV0byYgaXQgOiAqdHlwZUNvdW50cykKLSAgICAgICAg
b2JqZWN0VHlwZUNvdW50cy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCBpdC5rZXkpLCBqc051bWJlcihpdC52YWx1ZSkpOworICAgICAgICBvYmplY3RUeXBlQ291bnRz
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCBpdC5rZXkpLCBqc051
bWJlcihpdC52YWx1ZSkpOwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5
T2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJoZWFwU2l6ZSJfcyksIGpzTnVtYmVyKHZtLmhlYXAuc2l6ZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy93a2J1aWx0aW5z
L2J1aWx0aW5zX21vZGVsLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvd2tidWls
dGlucy9idWlsdGluc19tb2RlbC5weQppbmRleCA0MjYzMGY1ZjFjNjUuLmU0NTY5YTFkMjk0OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvd2tidWlsdGlucy9idWls
dGluc19tb2RlbC5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy93a2J1aWx0
aW5zL2J1aWx0aW5zX21vZGVsLnB5CkBAIC0xNTAsMTAgKzE1MCwxMyBAQCBjbGFzcyBCdWlsdGlu
RnVuY3Rpb246CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAogICAgICAgICBpZiBpc19n
ZXR0ZXIgYW5kIG5vdCBvdmVycmlkZGVuX25hbWU6Ci0gICAgICAgICAgICBvdmVycmlkZGVuX25h
bWUgPSAiXCJnZXQgJXNcIiIgJSAoZnVuY3Rpb25fbmFtZSkKKyAgICAgICAgICAgIG92ZXJyaWRk
ZW5fbmFtZSA9ICJcImdldCAlc1wiX3MiICUgKGZ1bmN0aW9uX25hbWUpCiAKICAgICAgICAgaWYg
bm90IG92ZXJyaWRkZW5fbmFtZToKLSAgICAgICAgICAgIG92ZXJyaWRkZW5fbmFtZSA9ICJzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0cikiCisgICAgICAgICAgICBvdmVycmlkZGVuX25h
bWUgPSAiQVNDSUlMaXRlcmFsOjpudWxsKCkiCisKKyAgICAgICAgaWYgb3ZlcnJpZGRlbl9uYW1l
Wy0xXSA9PSAiXCIiOgorICAgICAgICAgICAgb3ZlcnJpZGRlbl9uYW1lICs9ICJfcyIKIAogICAg
ICAgICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJj
ZSwgcGFyYW1ldGVycywgaXNfYXN5bmMsIGlzX2NvbnN0cnVjdG9yLCBpc19nbG9iYWxfcHJpdmF0
ZSwgaXNfbmFrZWRfY29uc3RydWN0b3IsIGludHJpbnNpYywgb3ZlcnJpZGRlbl9uYW1lKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCmluZGV4IDNhMDM3MGQ1NmU1My4uNWE2YmZiZTA2YWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcApAQCAtNDAyOSwxMiArNDAyOSwxMiBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0VGhyb3dTdGF0aWNFcnJvcihFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yVHlwZSwgYwog
ICAgIE9wVGhyb3dTdGF0aWNFcnJvcjo6ZW1pdCh0aGlzLCBhZGRDb25zdGFudFZhbHVlKGFkZFN0
cmluZ0NvbnN0YW50KG1lc3NhZ2UpKSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
dm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoQVNDSUlMaXRl
cmFsIG1lc3NhZ2UpCiB7CiAgICAgZW1pdFRocm93U3RhdGljRXJyb3IoRXJyb3JUeXBlV2l0aEV4
dGVuc2lvbjo6UmVmZXJlbmNlRXJyb3IsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobV92bSwgbWVz
c2FnZSkpOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0VGhyb3dUeXBlRXJyb3Io
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRocm93
VHlwZUVycm9yKEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQogewogICAgIGVtaXRUaHJvd1N0YXRpY0Vy
cm9yKEVycm9yVHlwZVdpdGhFeHRlbnNpb246OlR5cGVFcnJvciwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyhtX3ZtLCBtZXNzYWdlKSk7CiB9CkBAIC00NzM1LDcgKzQ3MzUsNyBAQCBSZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlc3RQYXJhbWV0ZXIoUmVnaXN0ZXJJRCogcmVzdWx0
LCB1bnNpZ25lZCBudQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBjb25z
dCBTdHJpbmcmIGVycm9yKQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlcXVpcmVPYmpl
Y3RDb2VyY2libGUoUmVnaXN0ZXJJRCogdmFsdWUsIEFTQ0lJTGl0ZXJhbCBlcnJvcikKIHsKICAg
ICBSZWY8TGFiZWw+IHRhcmdldCA9IG5ld0xhYmVsKCk7CiAgICAgT3BKbnVuZGVmaW5lZE9yTnVs
bDo6ZW1pdCh0aGlzLCB2YWx1ZSwgdGFyZ2V0LT5iaW5kKHRoaXMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRl
eCA0MDIwNGM1MmExOTguLmNmZjJkNzM2MzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtOTAxLDcgKzkw
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNVbmRlZmlu
ZWRPck51bGwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SXNFbXB0eShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc0Rlcml2ZWRBcnJheShSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBEZXJp
dmVkQXJyYXlUeXBlKTsgfQotICAgICAgICB2b2lkIGVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxl
KFJlZ2lzdGVySUQqIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKTsKKyAgICAgICAgdm9pZCBl
bWl0UmVxdWlyZU9iamVjdENvZXJjaWJsZShSZWdpc3RlcklEKiB2YWx1ZSwgQVNDSUlMaXRlcmFs
IGVycm9yKTsKIAogICAgICAgICB2b2lkIGVtaXRJdGVyYXRvck9wZW4oUmVnaXN0ZXJJRCogaXRl
cmF0b3IsIFJlZ2lzdGVySUQqIG5leHRPckluZGV4LCBSZWdpc3RlcklEKiBzeW1ib2xJdGVyYXRv
ciwgQ2FsbEFyZ3VtZW50cyYgaXRlcmFibGUsIGNvbnN0IFRocm93YWJsZUV4cHJlc3Npb25EYXRh
Kik7CiAgICAgICAgIHZvaWQgZW1pdEl0ZXJhdG9yTmV4dChSZWdpc3RlcklEKiBkb25lLCBSZWdp
c3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogaXRlcmFibGUsIFJlZ2lzdGVySUQqIG5leHRPcklu
ZGV4LCBDYWxsQXJndW1lbnRzJiBpdGVyYXRvciwgY29uc3QgVGhyb3dhYmxlRXhwcmVzc2lvbkRh
dGEqKTsKQEAgLTk1NSw4ICs5NTUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lk
IGVtaXRUaHJvd1N0YXRpY0Vycm9yKEVycm9yVHlwZVdpdGhFeHRlbnNpb24sIFJlZ2lzdGVySUQq
KTsKICAgICAgICAgdm9pZCBlbWl0VGhyb3dTdGF0aWNFcnJvcihFcnJvclR5cGVXaXRoRXh0ZW5z
aW9uLCBjb25zdCBJZGVudGlmaWVyJiBtZXNzYWdlKTsKLSAgICAgICAgdm9pZCBlbWl0VGhyb3dS
ZWZlcmVuY2VFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgICAgICB2b2lkIGVtaXRU
aHJvd1R5cGVFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAgICB2b2lkIGVtaXRU
aHJvd1JlZmVyZW5jZUVycm9yKEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKTsKKyAgICAgICAgdm9pZCBl
bWl0VGhyb3dUeXBlRXJyb3IoQVNDSUlMaXRlcmFsIG1lc3NhZ2UpOwogICAgICAgICB2b2lkIGVt
aXRUaHJvd1R5cGVFcnJvcihjb25zdCBJZGVudGlmaWVyJiBtZXNzYWdlKTsKICAgICAgICAgdm9p
ZCBlbWl0VGhyb3dSYW5nZUVycm9yKGNvbnN0IElkZW50aWZpZXImIG1lc3NhZ2UpOwogICAgICAg
ICB2b2lkIGVtaXRUaHJvd091dE9mTWVtb3J5RXJyb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA3YWM3NTg2NjVk
OWYuLmJmNjVhNDE0ZmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtODYsNyArODYsNyBAQCB2b2lkIEV4cHJlc3Np
b25Ob2RlOjplbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvcgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGhyb3dhYmxl
RXhwcmVzc2lvbkRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUmVnaXN0
ZXJJRCogVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGE6OmVtaXRUaHJvd1JlZmVyZW5jZUVycm9yKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVnaXN0
ZXJJRCogZHN0KQorUmVnaXN0ZXJJRCogVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGE6OmVtaXRUaHJv
d1JlZmVyZW5jZUVycm9yKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIEFTQ0lJTGl0ZXJh
bCBtZXNzYWdlLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNz
aW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgIGdlbmVyYXRv
ci5lbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5jcHAKaW5kZXggOThiNTJlYzJlODQ4Li44MGQzNTc4Mjc2MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCkBAIC01OSwyNCArNTksMjQgQEAgdm9pZCBKU0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmEKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGlu
aGVyaXRzKHZtLCBpbmZvKCkpKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigic3VidHlwZSIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25TdWJ0eXBlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImZ1bmN0aW9uRGV0YWlscyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25G
dW5jdGlvbkRldGFpbHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJpbnRlcm5hbENvbnN0cnVjdG9yTmFtZSIsIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xsZWN0aW9uIiwg
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24s
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXNQcm9taXNlUmVq
ZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm94eVRhcmdldFZh
bHVlIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFs
dWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcFNp
emUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcEVudHJpZXMi
LCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1NldFNpemUiLCBq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldFNpemUsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1NldEVudHJpZXMiLCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXRlcmF0b3JFbnRyaWVzIiwganNJ
bmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkl0ZXJhdG9yRW50cmllcywgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJxdWVyeUluc3RhbmNlcyIsIGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcywgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJxdWVyeUhvbGRlcnMiLCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlIb2xkZXJzLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5z
aW9uIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7Ci0KLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04o
ImV2YWx1YXRlIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFsdWF0
ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oInNhdmVkUmVz
dWx0QWxpYXMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZVNhdmVkUmVz
dWx0QWxpYXMsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRl
OjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
InN1YnR5cGUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZ1bmN0aW9uRGV0
YWlscyJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uRGV0
YWlscywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJnZXRJbnRl
cm5hbFByb3BlcnRpZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25H
ZXRJbnRlcm5hbFByb3BlcnRpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiaW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xsZWN0aW9uIl9zLCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJveHlUYXJnZXRWYWx1
ZSJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFs
dWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcFNp
emUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwor
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ3ZWFrTWFwRW50cmll
cyJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndlYWtTZXRTaXpl
Il9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldFNpemUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1NldEVudHJpZXMi
X3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcywg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwor
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpdGVyYXRvckVudHJp
ZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRvckVudHJp
ZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicXVlcnlJbnN0
YW5jZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3Rh
bmNlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJxdWVyeUhv
bGRlcnMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRl
cnMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXZhbHVhdGVX
aXRoU2NvcGVFeHRlbnNpb24iX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworCisgICAgSlNDX05BVElWRV9HRVRURVJfV0lU
SE9VVF9UUkFOU0lUSU9OKCJldmFsdWF0ZSJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVBdHRyaWJ1dGVFdmFsdWF0ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oInNhdmVkUmVzdWx0QWxpYXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxG
cmFtZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2
YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggMTcwODhkODU5MzZkLi44MzEyODYz
MTc3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKQEAgLTU1LDE4ICs1
NSwxOCBAQCB2b2lkIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgIAotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJldmFsdWF0ZVdpdGhTY29wZUV4dGVu
c2lvbiIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRo
U2NvcGVFeHRlbnNpb24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tigic2NvcGVEZXNjcmlwdGlvbnMiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMCk7Ci0KLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oImNhbGxlciIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlciwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oInNvdXJjZUlEIiwg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElW
RV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJsaW5lIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1l
QXR0cmlidXRlTGluZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkFjY2Vzc29yKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJ
T04oImNvbHVtbiIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbiwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAg
ICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImZ1bmN0aW9uTmFtZSIsIGpz
SmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUZ1bmN0aW9uTmFtZSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICBKU0NfTkFU
SVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oInNjb3BlQ2hhaW4iLCBqc0phdmFTY3JpcHRD
YWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJ
VEhPVVRfVFJBTlNJVElPTigidGhpc09iamVjdCIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJp
YnV0ZVRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0
cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lU
SU9OKCJ0eXBlIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVHlwZSwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICBK
U0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImlzVGFpbERlbGV0ZWQiLCBqc0ph
dmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxldGVkLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiJfcywganNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVu
c2lvbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzY29wZURl
c2NyaXB0aW9ucyJfcywganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25TY29w
ZURlc2NyaXB0aW9ucywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDApOworCisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9O
KCJjYWxsZXIiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlciwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAg
ICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oInNvdXJjZUlEIl9zLCBqc0ph
dmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dF
VFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImxpbmUiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0
dHJpYnV0ZUxpbmUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9O
KCJjb2x1bW4iX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbiwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAg
ICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImZ1bmN0aW9uTmFtZSJfcywg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19O
QVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigic2NvcGVDaGFpbiJfcywganNKYXZhU2Ny
aXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbiwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRF
Ul9XSVRIT1VUX1RSQU5TSVRJT04oInRoaXNPYmplY3QiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZVRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9U
UkFOU0lUSU9OKCJ0eXBlIl9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OworICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiaXNUYWlsRGVsZXRl
ZCJfcywganNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0KIAogSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9u
RXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE5MjUxMDdj
ODg4YS4uODk3ZjA5NWY2MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNTI3LDQ5ICs1Mjcs
NDkgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAg
ICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIAotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImRlYnVnIiwgZnVuY3Rpb25EZWJ1ZywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZGVzY3JpYmUiLCBmdW5jdGlvbkRlc2NyaWJlLCAxKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJkZXNjcmliZUFycmF5IiwgZnVuY3Rpb25EZXNjcmliZUFycmF5LCAxKTsKLSAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmludCIsIGZ1bmN0aW9uUHJpbnRTdGRPdXQsIDEpOwot
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByaW50RXJyIiwgZnVuY3Rpb25QcmludFN0ZEVyciwg
MSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJldHR5UHJpbnQiLCBmdW5jdGlvblByZXR0
eVByaW50LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJxdWl0IiwgZnVuY3Rpb25RdWl0
LCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnYyIsIGZ1bmN0aW9uR0NBbmRTd2VlcCwg
MCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZnVsbEdDIiwgZnVuY3Rpb25GdWxsR0MsIDAp
OwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImVkZW5HQyIsIGZ1bmN0aW9uRWRlbkdDLCAwKTsK
LSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnY0hlYXBTaXplIiwgZnVuY3Rpb25IZWFwU2l6ZSwg
MCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWVtb3J5VXNhZ2VTdGF0aXN0aWNzIiwgZnVu
Y3Rpb25NZW1vcnlVc2FnZVN0YXRpc3RpY3MsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
Ik1lbW9yeUZvb3RwcmludCIsIGZ1bmN0aW9uQ3JlYXRlTWVtb3J5Rm9vdHByaW50LCAwKTsKLSAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJyZXNldE1lbW9yeVBlYWsiLCBmdW5jdGlvblJlc2V0TWVt
b3J5UGVhaywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYWRkcmVzc09mIiwgZnVuY3Rp
b25BZGRyZXNzT2YsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInZlcnNpb24iLCBmdW5j
dGlvblZlcnNpb24sIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJ1biIsIGZ1bmN0aW9u
UnVuLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJydW5TdHJpbmciLCBmdW5jdGlvblJ1
blN0cmluZywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibG9hZCIsIGZ1bmN0aW9uTG9h
ZCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibG9hZFN0cmluZyIsIGZ1bmN0aW9uTG9h
ZFN0cmluZywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVhZEZpbGUiLCBmdW5jdGlv
blJlYWRGaWxlLCAyKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZWFkIiwgZnVuY3Rpb25S
ZWFkRmlsZSwgMik7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTeW50YXgiLCBmdW5j
dGlvbkNoZWNrU3ludGF4LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzbGVlcFNlY29u
ZHMiLCBmdW5jdGlvblNsZWVwU2Vjb25kcywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
anNjU3RhY2siLCBmdW5jdGlvbkpTQ1N0YWNrLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJvcGVuRmlsZSIsIGZ1bmN0aW9uT3BlbkZpbGUsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgInJlYWRsaW5lIiwgZnVuY3Rpb25SZWFkbGluZSwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAicHJlY2lzZVRpbWUiLCBmdW5jdGlvblByZWNpc2VUaW1lLCAwKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJuZXZlcklubGluZUZ1bmN0aW9uIiwgZnVuY3Rpb25OZXZlcklubGluZUZ1
bmN0aW9uLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJub0lubGluZSIsIGZ1bmN0aW9u
TmV2ZXJJbmxpbmVGdW5jdGlvbiwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9ERkci
LCBmdW5jdGlvbk5vREZHLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJub0ZUTCIsIGZ1
bmN0aW9uTm9GVEwsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm5vT1NSRXhpdEZ1enpp
bmciLCBmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgIm51bWJlck9mREZHQ29tcGlsZXMiLCBmdW5jdGlvbk51bWJlck9mREZHQ29tcGlsZXMsIDEp
OwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNhbGxlcklzQkJRT3JPTUdDb21waWxlZCIsIGZ1
bmN0aW9uQ2FsbGVySXNCQlFPck9NR0NvbXBpbGVkLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJqc2NPcHRpb25zIiwgZnVuY3Rpb25KU0NPcHRpb25zLCAwKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJvcHRpbWl6ZU5leHRJbnZvY2F0aW9uIiwgZnVuY3Rpb25PcHRpbWl6ZU5leHRJ
bnZvY2F0aW9uLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZW9wdGltaXphdGlvblJl
dHJ5Q291bnQiLCBmdW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCwgMSk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAidHJhbnNmZXJBcnJheUJ1ZmZlciIsIGZ1bmN0aW9uVHJhbnNmZXJB
cnJheUJ1ZmZlciwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmFpbE5leHROZXdDb2Rl
QmxvY2siLCBmdW5jdGlvbkZhaWxOZXh0TmV3Q29kZUJsb2NrLCAxKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJkZWJ1ZyJfcywgZnVuY3Rpb25EZWJ1ZywgMSk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZGVzY3JpYmUiX3MsIGZ1bmN0aW9uRGVzY3JpYmUsIDEpOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImRlc2NyaWJlQXJyYXkiX3MsIGZ1bmN0aW9uRGVzY3JpYmVBcnJheSwgMSk7
CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJpbnQiX3MsIGZ1bmN0aW9uUHJpbnRTdGRPdXQs
IDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByaW50RXJyIl9zLCBmdW5jdGlvblByaW50
U3RkRXJyLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmV0dHlQcmludCJfcywgZnVu
Y3Rpb25QcmV0dHlQcmludCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicXVpdCJfcywg
ZnVuY3Rpb25RdWl0LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnYyJfcywgZnVuY3Rp
b25HQ0FuZFN3ZWVwLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJmdWxsR0MiX3MsIGZ1
bmN0aW9uRnVsbEdDLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJlZGVuR0MiX3MsIGZ1
bmN0aW9uRWRlbkdDLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnY0hlYXBTaXplIl9z
LCBmdW5jdGlvbkhlYXBTaXplLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtZW1vcnlV
c2FnZVN0YXRpc3RpY3MiX3MsIGZ1bmN0aW9uTWVtb3J5VXNhZ2VTdGF0aXN0aWNzLCAwKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJNZW1vcnlGb290cHJpbnQiX3MsIGZ1bmN0aW9uQ3JlYXRl
TWVtb3J5Rm9vdHByaW50LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZXNldE1lbW9y
eVBlYWsiX3MsIGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJhZGRyZXNzT2YiX3MsIGZ1bmN0aW9uQWRkcmVzc09mLCAxKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJ2ZXJzaW9uIl9zLCBmdW5jdGlvblZlcnNpb24sIDEpOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgInJ1biJfcywgZnVuY3Rpb25SdW4sIDEpOworICAgICAgICBhZGRGdW5j
dGlvbih2bSwgInJ1blN0cmluZyJfcywgZnVuY3Rpb25SdW5TdHJpbmcsIDEpOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImxvYWQiX3MsIGZ1bmN0aW9uTG9hZCwgMSk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAibG9hZFN0cmluZyJfcywgZnVuY3Rpb25Mb2FkU3RyaW5nLCAxKTsKKyAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJyZWFkRmlsZSJfcywgZnVuY3Rpb25SZWFkRmlsZSwgMik7Cisg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVhZCJfcywgZnVuY3Rpb25SZWFkRmlsZSwgMik7Cisg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTeW50YXgiX3MsIGZ1bmN0aW9uQ2hlY2tTeW50
YXgsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNsZWVwU2Vjb25kcyJfcywgZnVuY3Rp
b25TbGVlcFNlY29uZHMsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImpzY1N0YWNrIl9z
LCBmdW5jdGlvbkpTQ1N0YWNrLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJvcGVuRmls
ZSJfcywgZnVuY3Rpb25PcGVuRmlsZSwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVh
ZGxpbmUiX3MsIGZ1bmN0aW9uUmVhZGxpbmUsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
InByZWNpc2VUaW1lIl9zLCBmdW5jdGlvblByZWNpc2VUaW1lLCAwKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJuZXZlcklubGluZUZ1bmN0aW9uIl9zLCBmdW5jdGlvbk5ldmVySW5saW5lRnVu
Y3Rpb24sIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm5vSW5saW5lIl9zLCBmdW5jdGlv
bk5ldmVySW5saW5lRnVuY3Rpb24sIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm5vREZH
Il9zLCBmdW5jdGlvbk5vREZHLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJub0ZUTCJf
cywgZnVuY3Rpb25Ob0ZUTCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9PU1JFeGl0
RnV6emluZyJfcywgZnVuY3Rpb25Ob09TUkV4aXRGdXp6aW5nLCAxKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJudW1iZXJPZkRGR0NvbXBpbGVzIl9zLCBmdW5jdGlvbk51bWJlck9mREZHQ29t
cGlsZXMsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNhbGxlcklzQkJRT3JPTUdDb21w
aWxlZCJfcywgZnVuY3Rpb25DYWxsZXJJc0JCUU9yT01HQ29tcGlsZWQsIDApOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImpzY09wdGlvbnMiX3MsIGZ1bmN0aW9uSlNDT3B0aW9ucywgMCk7Cisg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAib3B0aW1pemVOZXh0SW52b2NhdGlvbiJfcywgZnVuY3Rp
b25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJy
ZW9wdGltaXphdGlvblJldHJ5Q291bnQiX3MsIGZ1bmN0aW9uUmVvcHRpbWl6YXRpb25SZXRyeUNv
dW50LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJ0cmFuc2ZlckFycmF5QnVmZmVyIl9z
LCBmdW5jdGlvblRyYW5zZmVyQXJyYXlCdWZmZXIsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImZhaWxOZXh0TmV3Q29kZUJsb2NrIl9zLCBmdW5jdGlvbkZhaWxOZXh0TmV3Q29kZUJsb2Nr
LCAxKTsKICNpZiBFTkFCTEUoU0FNUExJTkdfRkxBR1MpCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAic2V0U2FtcGxpbmdGbGFncyIsIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncywgMSk7Ci0gICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2xlYXJTYW1wbGluZ0ZsYWdzIiwgZnVuY3Rpb25DbGVhclNh
bXBsaW5nRmxhZ3MsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldFNhbXBsaW5nRmxh
Z3MiX3MsIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY2xlYXJTYW1wbGluZ0ZsYWdzIl9zLCBmdW5jdGlvbkNsZWFyU2FtcGxpbmdGbGFncywg
MSk7CiAjZW5kaWYKIAogICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIk9TUkV4aXQiX3MpLCAwLCBmdW5jdGlvblVuZGVm
aW5lZDEsIE9TUkV4aXRJbnRyaW5zaWMsIERvbnRFbnVtKTsKQEAgLTU3OSw1NSArNTc5LDU1IEBA
IHByaXZhdGU6CiAgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaXNQdXJlTmFOIl9zKSwgMCwgZnVuY3Rpb25Jc1B1cmVO
YU4sIENoZWNrSW50MzJJbnRyaW5zaWMsIERvbnRFbnVtKTsKICAgICAgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmaWF0SW50
NTIiX3MpLCAwLCBmdW5jdGlvbklkZW50aXR5LCBGaWF0SW50NTJJbnRyaW5zaWMsIERvbnRFbnVt
KTsKICAgICAgICAgCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZWZmZWN0ZnVsNDIiLCBmdW5j
dGlvbkVmZmVjdGZ1bDQyLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlTWFzcXVl
cmFkZXIiLCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlciwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiaGFzQ3VzdG9tUHJvcGVydGllcyIsIGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcywg
MCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZWZmZWN0ZnVsNDIiX3MsIGZ1bmN0aW9uRWZm
ZWN0ZnVsNDIsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm1ha2VNYXNxdWVyYWRlciJf
cywgZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
Imhhc0N1c3RvbVByb3BlcnRpZXMiX3MsIGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcywgMCk7
CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVHbG9iYWxPYmplY3QiLCBmdW5jdGlv
bkNyZWF0ZUdsb2JhbE9iamVjdCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
SGVhcEJpZ0ludCIsIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCwgMSk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFsT2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9i
amVjdCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlSGVhcEJpZ0ludCJfcywg
ZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50LCAxKTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQmlnSW50MzIiLCBmdW5jdGlvbkNyZWF0ZUJpZ0ludDMy
LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVCaWdJbnQzMiJfcywgZnVuY3Rp
b25DcmVhdGVCaWdJbnQzMiwgMSk7CiAjZW5kaWYKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJ1
c2VCaWdJbnQzMiIsIGZ1bmN0aW9uVXNlQmlnSW50MzIsIDApOwotICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImlzQmlnSW50MzIiLCBmdW5jdGlvbklzQmlnSW50MzIsIDEpOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImlzSGVhcEJpZ0ludCIsIGZ1bmN0aW9uSXNIZWFwQmlnSW50LCAxKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJ1c2VCaWdJbnQzMiJfcywgZnVuY3Rpb25Vc2VCaWdJbnQz
MiwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNCaWdJbnQzMiJfcywgZnVuY3Rpb25J
c0JpZ0ludDMyLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc0hlYXBCaWdJbnQiX3Ms
IGZ1bmN0aW9uSXNIZWFwQmlnSW50LCAxKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImR1
bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyIsIGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
ICwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
Il9zLCBmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyAsIDApOwogCi0gICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZHJhaW5NaWNyb3Rhc2tzIiwgZnVuY3Rpb25EcmFpbk1pY3JvdGFza3Ms
IDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldFRpbWVvdXQiLCBmdW5jdGlvblNldFRp
bWVvdXQsIDIpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRyYWluTWljcm90YXNrcyJfcywg
ZnVuY3Rpb25EcmFpbk1pY3JvdGFza3MsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNl
dFRpbWVvdXQiX3MsIGZ1bmN0aW9uU2V0VGltZW91dCwgMik7CiAKLSAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJyZWxlYXNlV2Vha1JlZnMiLCBmdW5jdGlvblJlbGVhc2VXZWFrUmVmcywgMCk7Ci0g
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmluYWxpemF0aW9uUmVnaXN0cnlMaXZlQ291bnQiLCBm
dW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50LCAwKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJmaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudCIsIGZ1bmN0aW9uRmluYWxp
emF0aW9uUmVnaXN0cnlEZWFkQ291bnQsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJl
bGVhc2VXZWFrUmVmcyJfcywgZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMsIDApOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50Il9zLCBmdW5jdGlv
bkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJmaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudCJfcywgZnVuY3Rpb25GaW5hbGl6YXRp
b25SZWdpc3RyeURlYWRDb3VudCwgMCk7CiAgICAgICAgIAotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImdldFJhbmRvbVNlZWQiLCBmdW5jdGlvbkdldFJhbmRvbVNlZWQsIDApOwotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgInNldFJhbmRvbVNlZWQiLCBmdW5jdGlvblNldFJhbmRvbVNlZWQsIDEp
OwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImlzUm9wZSIsIGZ1bmN0aW9uSXNSb3BlLCAxKTsK
LSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsZXJTb3VyY2VPcmlnaW4iLCBmdW5jdGlvbkNh
bGxlclNvdXJjZU9yaWdpbiwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0UmFuZG9t
U2VlZCJfcywgZnVuY3Rpb25HZXRSYW5kb21TZWVkLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJzZXRSYW5kb21TZWVkIl9zLCBmdW5jdGlvblNldFJhbmRvbVNlZWQsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImlzUm9wZSJfcywgZnVuY3Rpb25Jc1JvcGUsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImNhbGxlclNvdXJjZU9yaWdpbiJfcywgZnVuY3Rpb25DYWxsZXJT
b3VyY2VPcmlnaW4sIDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXMzMkJpdFBsYXRm
b3JtIiwgZnVuY3Rpb25JczMyQml0UGxhdGZvcm0sIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImlzMzJCaXRQbGF0Zm9ybSJfcywgZnVuY3Rpb25JczMyQml0UGxhdGZvcm0sIDApOwogCi0g
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tNb2R1bGVTeW50YXgiLCBmdW5jdGlvbkNoZWNr
TW9kdWxlU3ludGF4LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjaGVja1NjcmlwdFN5
bnRheCIsIGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgsIDEpOworICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImNoZWNrTW9kdWxlU3ludGF4Il9zLCBmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4LCAx
KTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjaGVja1NjcmlwdFN5bnRheCJfcywgZnVuY3Rp
b25DaGVja1NjcmlwdFN5bnRheCwgMSk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwbGF0
Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciIsIGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1Nh
bXBsaW5nUHJvZmlsZXIsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImdlbmVyYXRlSGVh
cFNuYXBzaG90IiwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdCwgMCk7Ci0gICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZ2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyIsIGZ1bmN0
aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZywgMCk7Ci0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAicmVzZXRTdXBlclNhbXBsZXJTdGF0ZSIsIGZ1bmN0aW9uUmVzZXRTdXBlclNh
bXBsZXJTdGF0ZSwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5zdXJlQXJyYXlTdG9y
YWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDApOworICAgICAgICBhZGRGdW5jdGlv
bih2bSwgInBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyIl9zLCBmdW5jdGlvblBsYXRm
b3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJnZW5lcmF0ZUhlYXBTbmFwc2hvdCJfcywgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdCwg
MCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0Rl
YnVnZ2luZyJfcywgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5nLCAw
KTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZXNldFN1cGVyU2FtcGxlclN0YXRlIl9zLCBm
dW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImVuc3VyZUFycmF5U3RvcmFnZSJfcywgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDAp
OwogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKLSAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJzdGFydFNhbXBsaW5nUHJvZmlsZXIiLCBmdW5jdGlvblN0YXJ0U2FtcGxpbmdQcm9maWxlciwg
MCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2FtcGxpbmdQcm9maWxlclN0YWNrVHJhY2Vz
IiwgZnVuY3Rpb25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXMsIDApOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgInN0YXJ0U2FtcGxpbmdQcm9maWxlciJfcywgZnVuY3Rpb25TdGFydFNhbXBs
aW5nUHJvZmlsZXIsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNhbXBsaW5nUHJvZmls
ZXJTdGFja1RyYWNlcyJfcywgZnVuY3Rpb25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXMsIDAp
OwogI2VuZGlmCiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtYXhBcmd1bWVudHMiLCBmdW5j
dGlvbk1heEFyZ3VtZW50cywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWF4QXJndW1l
bnRzIl9zLCBmdW5jdGlvbk1heEFyZ3VtZW50cywgMCk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJhc3luY1Rlc3RTdGFydCIsIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQsIDEpOwotICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImFzeW5jVGVzdFBhc3NlZCIsIGZ1bmN0aW9uQXN5bmNUZXN0UGFz
c2VkLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJhc3luY1Rlc3RTdGFydCJfcywgZnVu
Y3Rpb25Bc3luY1Rlc3RTdGFydCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXN5bmNU
ZXN0UGFzc2VkIl9zLCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZCwgMSk7CiAKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiV2ViQXNzZW1ibHlNZW1vcnlN
b2RlIiwgZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUsIDEpOworICAgICAgICBhZGRGdW5j
dGlvbih2bSwgIldlYkFzc2VtYmx5TWVtb3J5TW9kZSJfcywgZnVuY3Rpb25XZWJBc3NlbWJseU1l
bW9yeU1vZGUsIDEpOwogI2VuZGlmCiAKICAgICAgICAgaWYgKCFhcmd1bWVudHMuaXNFbXB0eSgp
KSB7CkBAIC02NDUsMTMgKzY0NSwxMyBAQCBwcml2YXRlOgogICAgICAgICBwdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICIkIl9zKSwgZG9sbGFyLCBEb250RW51bSk7CiAg
ICAgICAgIHB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIiQyNjIiX3Mp
LCBkb2xsYXIsIERvbnRFbnVtKTsKICAgICAgICAgCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBk
b2xsYXIsICJjcmVhdGVSZWFsbSIsIGZ1bmN0aW9uRG9sbGFyQ3JlYXRlUmVhbG0sIDAsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgZG9sbGFyLCAiZGV0YWNoQXJyYXlCdWZmZXIiLCBmdW5jdGlvblRyYW5zZmVy
QXJyYXlCdWZmZXIsIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZXZhbFNjcmlwdCIsIGZ1
bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCwgMSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpOb25lKSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJnYyIs
IGZ1bmN0aW9uRG9sbGFyR0MsIDAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiY2xlYXJLZXB0
T2JqZWN0cyIsIGZ1bmN0aW9uRG9sbGFyQ2xlYXJLZXB0T2JqZWN0cywgMCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCBkb2xsYXIsICJnbG9iYWxPYmplY3RGb3IiLCBmdW5jdGlvbkRvbGxhckdsb2JhbE9iamVj
dEZvciwgMSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7
Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJpc1JlbW90ZUZ1bmN0aW9uIiwgZnVu
Y3Rpb25Eb2xsYXJJc1JlbW90ZUZ1bmN0aW9uLCAxLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwg
ImNyZWF0ZVJlYWxtIl9zLCBmdW5jdGlvbkRvbGxhckNyZWF0ZVJlYWxtLCAwLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sIGRvbGxhciwgImRldGFjaEFycmF5QnVmZmVyIl9zLCBmdW5jdGlvblRyYW5zZmVyQXJy
YXlCdWZmZXIsIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSkpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZXZhbFNjcmlwdCJfcywgZnVu
Y3Rpb25Eb2xsYXJFdmFsU2NyaXB0LCAxLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImdjIl9z
LCBmdW5jdGlvbkRvbGxhckdDLCAwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImNsZWFyS2Vw
dE9iamVjdHMiX3MsIGZ1bmN0aW9uRG9sbGFyQ2xlYXJLZXB0T2JqZWN0cywgMCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCBkb2xsYXIsICJnbG9iYWxPYmplY3RGb3IiX3MsIGZ1bmN0aW9uRG9sbGFyR2xvYmFs
T2JqZWN0Rm9yLCAxLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImlzUmVtb3RlRnVuY3Rpb24i
X3MsIGZ1bmN0aW9uRG9sbGFySXNSZW1vdGVGdW5jdGlvbiwgMSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CiAgICAgICAgIAogICAgICAgICBkb2xsYXIt
PnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImdsb2JhbCJfcyksIGds
b2JhbFRoaXMoKSk7CiAgICAgICAgIGRvbGxhci0+cHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJJc0hUTUxEREEiX3MpLApAQCAtNjY0LDI5ICs2
NjQsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIC8vIFRoZSB0ZXN0MjYyIElOVEVS
UFJFVElORy5tZCBkb2N1bWVudCBzYXlzIHRoYXQgc29tZSBvZiB0aGVzZSBmdW5jdGlvbnMgYXJl
IGp1c3QgaW4gdGhlIG1haW4KICAgICAgICAgLy8gdGhyZWFkIGFuZCBzb21lIGFyZSBpbiB0aGUg
b3RoZXIgdGhyZWFkcy4gV2UganVzdCBwdXQgdGhlbSBpbiBhbGwgdGhyZWFkcy4KLSAgICAgICAg
YWRkRnVuY3Rpb24odm0sIGFnZW50LCAic3RhcnQiLCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQs
IDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdlbnQsICJyZWNlaXZlQnJvYWRjYXN0Iiwg
ZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2VpdmVCcm9hZGNhc3QsIDEpOwotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgYWdlbnQsICJyZXBvcnQiLCBmdW5jdGlvbkRvbGxhckFnZW50UmVwb3J0LCAxKTsK
LSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAic2xlZXAiLCBmdW5jdGlvbkRvbGxhckFn
ZW50U2xlZXAsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdlbnQsICJicm9hZGNhc3Qi
LCBmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sIGFnZW50LCAiZ2V0UmVwb3J0IiwgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydCwgMCk7
Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImxlYXZpbmciLCBmdW5jdGlvbkRvbGxh
ckFnZW50TGVhdmluZywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgIm1vbm90
b25pY05vdyIsIGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25vdG9uaWNOb3csIDApOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgYWdlbnQsICJzdGFydCJfcywgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVjZWl2ZUJyb2FkY2FzdCJf
cywgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2VpdmVCcm9hZGNhc3QsIDEpOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgYWdlbnQsICJyZXBvcnQiX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQs
IDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdlbnQsICJzbGVlcCJfcywgZnVuY3Rpb25E
b2xsYXJBZ2VudFNsZWVwLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAiYnJv
YWRjYXN0Il9zLCBmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0LCAxKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sIGFnZW50LCAiZ2V0UmVwb3J0Il9zLCBmdW5jdGlvbkRvbGxhckFnZW50R2V0
UmVwb3J0LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAibGVhdmluZyJfcywg
ZnVuY3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
YWdlbnQsICJtb25vdG9uaWNOb3ciX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25vdG9uaWNOb3cs
IDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAid2FpdEZvclJlcG9ydCIsIGZ1bmN0aW9u
V2FpdEZvclJlcG9ydCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAid2FpdEZvclJlcG9y
dCJfcywgZnVuY3Rpb25XYWl0Rm9yUmVwb3J0LCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImhlYXBDYXBhY2l0eSIsIGZ1bmN0aW9uSGVhcENhcGFjaXR5LCAwKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJmbGFzaEhlYXBBY2Nlc3MiLCBmdW5jdGlvbkZsYXNoSGVhcEFjY2Vzcywg
MCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGVhcENhcGFjaXR5Il9zLCBmdW5jdGlvbkhl
YXBDYXBhY2l0eSwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmxhc2hIZWFwQWNjZXNz
Il9zLCBmdW5jdGlvbkZsYXNoSGVhcEFjY2VzcywgMCk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJkaXNhYmxlUmljaFNvdXJjZUluZm8iLCBmdW5jdGlvbkRpc2FibGVSaWNoU291cmNlSW5m
bywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFsbG9jSW5BTG9vcCIsIGZ1bmN0aW9u
TWFsbG9jSW5BTG9vcCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidG90YWxDb21waWxl
VGltZSIsIGZ1bmN0aW9uVG90YWxDb21waWxlVGltZSwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiZGlzYWJsZVJpY2hTb3VyY2VJbmZvIl9zLCBmdW5jdGlvbkRpc2FibGVSaWNoU291cmNl
SW5mbywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFsbG9jSW5BTG9vcCJfcywgZnVu
Y3Rpb25NYWxsb2NJbkFMb29wLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJ0b3RhbENv
bXBpbGVUaW1lIl9zLCBmdW5jdGlvblRvdGFsQ29tcGlsZVRpbWUsIDApOwogCi0gICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAic2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2siLCBmdW5jdGlvblNl
dFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJzZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjayJfcywgZnVuY3Rpb25TZXRVbmhhbmRsZWRS
ZWplY3Rpb25DYWxsYmFjaywgMSk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJhc0RvdWJs
ZU51bWJlciIsIGZ1bmN0aW9uQXNEb3VibGVOdW1iZXIsIDEpOworICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImFzRG91YmxlTnVtYmVyIl9zLCBmdW5jdGlvbkFzRG91YmxlTnVtYmVyLCAxKTsKIAot
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRyb3BBbGxMb2NrcyIsIGZ1bmN0aW9uRHJvcEFsbExv
Y2tzLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkcm9wQWxsTG9ja3MiX3MsIGZ1bmN0
aW9uRHJvcEFsbExvY2tzLCAxKTsKIAogICAgICAgICBpZiAoT3B0aW9uczo6ZXhwb3NlQ3VzdG9t
U2V0dGVyc09uR2xvYmFsT2JqZWN0Rm9yVGVzdGluZygpKSB7CiAgICAgICAgICAgICB7CkBAIC03
MDQsNyArNzA0LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYm9v
bCB0ZXN0Q3VzdG9tU2V0dGVySW1wbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgYm9vbCB0ZXN0Q3VzdG9tU2V0
dGVySW1wbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgR2xvYmFsT2JqZWN0
KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFTQ0lJTGl0ZXJhbCBw
cm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpOwogCkBAIC03MTUsMTMgKzcxNSwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHZvaWQgYWRkRnVuY3Rpb24oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBj
aGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpCisgICAgdm9pZCBhZGRGdW5jdGlvbihWTSYgdm0sIEpTT2JqZWN0KiBv
YmplY3QsIEFTQ0lJTGl0ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWdu
ZWQgYXJndW1lbnRzLCB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpCiAgICAgewogICAgICAgICBJZGVudGlmaWVy
IGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBuYW1lKTsKICAgICAgICAg
b2JqZWN0LT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgYXJndW1lbnRzLCBpZGVudGlmaWVyLnN0cmluZygpLCBmdW5jdGlvbiksIGF0dHJpYnV0
ZXMpOwogICAgIH0KIAotICAgIHZvaWQgYWRkRnVuY3Rpb24oVk0mIHZtLCBjb25zdCBjaGFyKiBu
YW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpCisgICAgdm9pZCBhZGRGdW5jdGlvbihWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1l
LCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpCiAgICAgewogICAgICAgICBhZGRGdW5jdGlvbih2bSwgdGhpcywgbmFtZSwgZnVuY3Rp
b24sIGFyZ3VtZW50cywgYXR0cmlidXRlcyk7CiAgICAgfQpAQCAtNzc3LDcgKzc3Nyw3IEBAIEpT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUih0ZXN0Q3VzdG9tQWNjZXNzb3JTZXR0ZXIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhCiAgICAgUkVMRUFTRV9BU1NFUlQodGhpc0NlbGwtPnR5cGUo
KSA9PSBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSk7CiAgICAgR2xvYmFsT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxHbG9iYWxPYmplY3QqPih2bSwganNDYXN0PEpTUHJveHkqPih0
aGlzQ2VsbCktPnRhcmdldCgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0KTsKLSAg
ICByZXR1cm4gR2xvYmFsT2JqZWN0Ojp0ZXN0Q3VzdG9tU2V0dGVySW1wbChsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFsdWUsICJfdGVzdEN1c3RvbUFjY2Vzc29yU2V0
dGVyIik7CisgICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6dGVzdEN1c3RvbVNldHRlckltcGwobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVlLCAiX3Rlc3RDdXN0b21B
Y2Nlc3NvclNldHRlciJfcyk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUih0ZXN0Q3Vz
dG9tVmFsdWVTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCkBAIC03ODcsNyArNzg3LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHRl
c3RDdXN0b21WYWx1ZVNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2IKICAg
ICBKU0NlbGwqIHRoaXNDZWxsID0gSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkuYXNDZWxsKCk7
CiAgICAgR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxHbG9iYWxPYmpl
Y3QqPih2bSwgdGhpc0NlbGwpOwogICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNPYmplY3QpOwotICAg
IHJldHVybiBHbG9iYWxPYmplY3Q6OnRlc3RDdXN0b21TZXR0ZXJJbXBsKGxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwgIl90ZXN0Q3VzdG9tVmFsdWVTZXR0ZXIi
KTsKKyAgICByZXR1cm4gR2xvYmFsT2JqZWN0Ojp0ZXN0Q3VzdG9tU2V0dGVySW1wbChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFsdWUsICJfdGVzdEN1c3RvbVZhbHVl
U2V0dGVyIl9zKTsKIH0KIAogc3RhdGljIFVDaGFyIHBhdGhTZXBhcmF0b3IoKQpAQCAtMTQ1Nywy
MCArMTQ1NywyMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAKLSAgICAgICAgYXV0byBhZGRQcm9wZXJ0eSA9IFsmXSAoVk0mIHZtLCBjb25zdCBj
aGFyKiBuYW1lLCBKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgIGF1dG8gYWRkUHJvcGVydHkgPSBb
Jl0gKFZNJiB2bSwgQVNDSUlMaXRlcmFsIG5hbWUsIEpTVmFsdWUgdmFsdWUpIHsKICAgICAgICAg
ICAgIEpTQ01lbW9yeUZvb3RwcmludDo6YWRkUHJvcGVydHkodm0sIG5hbWUsIHZhbHVlKTsKICAg
ICAgICAgfTsKIAogICAgICAgICBNZW1vcnlGb290cHJpbnQgZm9vdHByaW50ID0gTWVtb3J5Rm9v
dHByaW50Ojpub3coKTsKIAotICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgImN1cnJlbnQiLCBqc051
bWJlcihmb290cHJpbnQuY3VycmVudCkpOwotICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInBlYWsi
LCBqc051bWJlcihmb290cHJpbnQucGVhaykpOworICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgImN1
cnJlbnQiX3MsIGpzTnVtYmVyKGZvb3RwcmludC5jdXJyZW50KSk7CisgICAgICAgIGFkZFByb3Bl
cnR5KHZtLCAicGVhayJfcywganNOdW1iZXIoZm9vdHByaW50LnBlYWspKTsKICAgICB9CiAKICAg
ICBERUNMQVJFX0lORk87CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGRQcm9wZXJ0eShWTSYgdm0s
IGNvbnN0IGNoYXIqIG5hbWUsIEpTVmFsdWUgdmFsdWUpCisgICAgdm9pZCBhZGRQcm9wZXJ0eShW
TSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1lLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAg
SWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSk7
CiAgICAgICAgIHB1dERpcmVjdCh2bSwgaWRlbnRpZmllciwgdmFsdWUpOwpAQCAtMTUzOCw3ICsx
NTM4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVuLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKgogICAgICAgICBhcnJheS0+cHV0RGlyZWN0
SW5kZXgocmVhbG0sIGkgLSAxLCBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
fQotICAgIHJlYWxtLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJh
cmd1bWVudHMiKSwgYXJyYXkpOworICAgIHJlYWxtLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJhcmd1bWVudHMiX3MpLCBhcnJheSk7CiAKICAgICBOYWtlZFB0cjxF
eGNlcHRpb24+IGV4Y2VwdGlvbjsKICAgICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwpAQCAtMTU3Miw3
ICsxNTcyLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVuU3RyaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICAgICAgYXJyYXktPnB1dERp
cmVjdEluZGV4KHJlYWxtLCBpIC0gMSwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgIH0KLSAgICByZWFsbS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiYXJndW1lbnRzIiksIGFycmF5KTsKKyAgICByZWFsbS0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiYXJndW1lbnRzIl9zKSwgYXJyYXkpOwogCiAgICAgTmFrZWRQ
dHI8RXhjZXB0aW9uPiBleGNlcHRpb247CiAgICAgZXZhbHVhdGUocmVhbG0sIGpzY1NvdXJjZShz
b3VyY2UsIGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKSksIEpTVmFsdWUoKSwgZXhj
ZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA4YWM5YTg0NThi
NjAuLjY2NzNiYWY5M2YyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
NDEwLDcgKzQxMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQVNTRVJUKG1fZGl2
b3RFbmQub2Zmc2V0ID49IG1fZGl2b3Qub2Zmc2V0KTsKICAgICAgICAgfQogICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZ2lzdGVySUQqIGRzdCA9IG51bGxw
dHIpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihCeXRlY29k
ZUdlbmVyYXRvciYsIEFTQ0lJTGl0ZXJhbCBtZXNzYWdlLCBSZWdpc3RlcklEKiBkc3QgPSBudWxs
cHRyKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2b3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5k
ZXggNTczYTE3YjBkYzBkLi45Y2IwNzAwMTQ3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTg1LDIwICs4NSwyMCBAQCB2b2lk
IEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdFB1YmxpY05hbWUoKSwgYXJy
YXlQcm90b3R5cGVDb25jYXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQdWJs
aWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmlsbENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5qb2luLCBhcnJheVBy
b3RvRnVuY0pvaW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oInBvcCIsIGFycmF5UHJvdG9GdW5jUG9wLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgQXJyYXlQb3BJbnRyaW5zaWMpOworICAg
IEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicG9wIl9z
LCBhcnJheVByb3RvRnVuY1BvcCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDAsIEFycmF5UG9wSW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lO
VFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkucHVzaFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNQdXNoLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQXJyYXlQdXNo
SW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
cmV2ZXJzZSIsIGFycmF5UHJvdG9GdW5jUmV2ZXJzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJyZXZlcnNlIl9zLCBhcnJheVByb3RvRnVuY1JldmVyc2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5zaGlmdFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNTaGlmdCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwog
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnNoaWZ0UHJpdmF0ZU5hbWUoKSwgYXJyYXlQcm90b0Z1bmNTaGlm
dCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHksIDApOwogICAgIEpTQ19OQVRJVkVf
SU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5z
bGljZSwgYXJyYXlQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDIsIEFycmF5U2xpY2VJbnRyaW5zaWMpOwogICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5zb3J0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZVNvcnRDb2RlR2VuZXJh
dG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNwbGljZSIsIGFy
cmF5UHJvdG9GdW5jU3BsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oInVuc2hpZnQiLCBhcnJheVByb3RvRnVuY1VuU2hpZnQsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3BsaWNlIl9zLCBhcnJheVByb3RvRnVuY1NwbGlj
ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ1bnNoaWZ0Il9z
LCBhcnJheVByb3RvRnVuY1VuU2hpZnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZXZlcnlQdWJsaWNO
YW1lKCksIGFycmF5UHJvdG90eXBlRXZlcnlDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmZvckVhY2hQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRm9yRWFjaENvZGVHZW5lcmF0b3Is
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuc29tZVB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVTb21lQ29k
ZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiaW5kZXhPZiIsIGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEFycmF5SW5kZXhPZkludHJpbnNp
Yyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRl
eE9mIiwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfSU5UUklOU0lD
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiJfcywgYXJyYXlQcm90b0Z1bmNJ
bmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgMSwgQXJyYXlJbmRleE9mSW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigibGFzdEluZGV4T2YiX3MsIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4
T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlsdGVyUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlw
ZUZpbHRlckNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKICAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlHcm91cEJ5TWV0aG9k
KCkpIHsKICAgICAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdyb3VwQnlQdWJsaWNOYW1lKCksIGFycmF5
UHJvdG90eXBlR3JvdXBCeUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKaW5kZXggYjlhYWJkNGMxNDhkLi5lN2E3ZTk4NTM1NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3Bw
CkBAIC04OSwzMyArODksMzMgQEAgdm9pZCBDb25zb2xlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgLy8gRm9yIGxlZ2FjeSBy
ZWFzb25zLCBjb25zb2xlIHByb3BlcnRpZXMgYXJlIGVudW1lcmFibGUsIHdyaXRhYmxlLCBkZWxl
dGVhYmxlLAogICAgIC8vIGFuZCBhbGwgaGF2ZSBhIGxlbmd0aCBvZiAwLiBUaGlzIG1heSBjaGFu
Z2UgaWYgQ29uc29sZSBpcyBzdGFuZGFyZGl6ZWQuCiAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiZGVidWciLCBjb25zb2xlUHJvdG9GdW5jRGVidWcsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJlcnJvciIsIGNvbnNvbGVQcm90b0Z1
bmNFcnJvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwg
MCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxvZyIsIGNv
bnNvbGVQcm90b0Z1bmNMb2csIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJpbmZvIiwgY29uc29sZVByb3RvRnVuY0luZm8sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKCJ3YXJuIiwgY29uc29sZVByb3RvRnVuY1dhcm4sIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkZWJ1ZyJfcywgY29uc29sZVByb3RvRnVuY0RlYnVn
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXJyb3IiX3MsIGNvbnNv
bGVQcm90b0Z1bmNFcnJvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImxvZyJfcywgY29uc29sZVByb3RvRnVuY0xvZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImluZm8iX3MsIGNvbnNvbGVQcm90b0Z1bmNJbmZvLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2FybiJfcywgY29uc29sZVByb3RvRnVuY1dhcm4s
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwogCiAg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+Y2xlYXIsIGNvbnNvbGVQcm90b0Z1bmNDbGVhciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImRpciIsIGNvbnNvbGVQcm90b0Z1bmNEaXIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkaXJ4bWwiLCBjb25zb2xlUHJvdG9GdW5jRGlyWE1M
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidGFibGUiLCBjb25zb2xl
UHJvdG9GdW5jVGFibGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0
cmFjZSIsIGNvbnNvbGVQcm90b0Z1bmNUcmFjZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImFzc2VydCIsIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkaXIiX3MsIGNvbnNvbGVQcm90b0Z1bmNEaXIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkaXJ4bWwiX3MsIGNvbnNv
bGVQcm90b0Z1bmNEaXJYTUwsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJ0YWJsZSJfcywgY29uc29sZVByb3RvRnVuY1RhYmxlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigidHJhY2UiX3MsIGNvbnNvbGVQcm90b0Z1bmNUcmFjZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImFzc2VydCJfcywgY29uc29sZVByb3Rv
RnVuY0Fzc2VydCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25l
KSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+Y291bnQsIGNvbnNvbGVQcm90b0Z1bmNDb3VudCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvdW50UmVzZXQiLCBjb25zb2xlUHJvdG9GdW5jQ291
bnRSZXNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwg
MCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInByb2ZpbGUi
LCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oInByb2ZpbGVFbmQiLCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWUiLCBjb25zb2xlUHJvdG9GdW5j
VGltZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVMb2ciLCBj
b25zb2xlUHJvdG9GdW5jVGltZUxvZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oInRpbWVFbmQiLCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVTdGFtcCIsIGNvbnNvbGVQcm90b0Z1bmNUaW1l
U3RhbXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDAp
OwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0YWtlSGVhcFNu
YXBzaG90IiwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cCIsIGNvbnNvbGVQcm90b0Z1bmNHcm91cCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdyb3VwQ29sbGFwc2VkIiwg
Y29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiZ3JvdXBFbmQiLCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZWNvcmQiLCBjb25zb2xlUHJvdG9G
dW5jUmVjb3JkLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUp
LCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmVjb3Jk
RW5kIiwgY29uc29sZVByb3RvRnVuY1JlY29yZEVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oInNjcmVlbnNob3QiLCBjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvdW50UmVzZXQiX3MsIGNv
bnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigicHJvZmlsZSJfcywgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm9maWxlRW5kIl9zLCBjb25zb2xlUHJvdG9G
dW5jUHJvZmlsZUVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpO
b25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRp
bWUiX3MsIGNvbnNvbGVQcm90b0Z1bmNUaW1lLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigidGltZUxvZyJfcywgY29uc29sZVByb3RvRnVuY1RpbWVMb2csIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lRW5kIl9zLCBjb25zb2xlUHJvdG9G
dW5jVGltZUVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25l
KSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVT
dGFtcCJfcywgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInRha2VIZWFwU25hcHNob3QiX3MsIGNvbnNvbGVQcm90b0Z1bmNU
YWtlSGVhcFNuYXBzaG90LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
Z3JvdXAiX3MsIGNvbnNvbGVQcm90b0Z1bmNHcm91cCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImdyb3VwQ29sbGFwc2VkIl9zLCBjb25zb2xlUHJvdG9GdW5jR3JvdXBD
b2xsYXBzZWQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSks
IDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cEVu
ZCJfcywgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigicmVjb3JkIl9zLCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmVjb3JkRW5kIl9zLCBjb25zb2xlUHJv
dG9GdW5jUmVjb3JkRW5kLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
c2NyZWVuc2hvdCJfcywgY29uc29sZVByb3RvRnVuY1NjcmVlbnNob3QsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwogCiAgICAgSlNDX1RPX1NUUklO
R19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuY3BwCmluZGV4IGQ4NWZhMDYyMGI0YS4uMjJmMTM3ODJiZjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcApAQCAtMjcs
MTcgKzI3LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVJlZjxBdG9tU3RyaW5nSW1wbD4gSWRl
bnRpZmllcjo6YWRkKFZNJiB2bSwgY29uc3QgY2hhciogYykKLXsKLSAgICBBU1NFUlQoYyk7Ci0g
ICAgQVNTRVJUKGNbMF0pOwotICAgIGlmICghY1sxXSkKLSAgICAgICAgcmV0dXJuIHZtLnNtYWxs
U3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoY1swXSk7Ci0KLSAgICByZXR1cm4gKkF0
b21TdHJpbmdJbXBsOjphZGQoYyk7Ci19Ci0KLQogUmVmPEF0b21TdHJpbmdJbXBsPiBJZGVudGlm
aWVyOjphZGRMaXRlcmFsKFZNJiB2bSwgY29uc3QgY2hhciogbGl0ZXJhbCwgc2l6ZV90IGxlbmd0
aCkKIHsKICAgICBpZiAobGVuZ3RoID09IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JZGVudGlmaWVyLmgKaW5kZXggOGQ0ODBiYmYzMmM3Li5iZTUyNjUxYjMzM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKQEAgLTExNywxMiArMTE3LDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyBJZGVudGlmaWVyIGZyb21TdHJpbmcoVk0mLCBSZWY8QXRv
bVN0cmluZ0ltcGw+JiYpOwogICAgIHN0YXRpYyBJZGVudGlmaWVyIGZyb21TdHJpbmcoVk0mLCBj
b25zdCBBdG9tU3RyaW5nJik7CiAgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYg
dm0sIFN5bWJvbEltcGwqKTsKLSAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tU3RyaW5nKFZNJiwg
Y29uc3QgY2hhciopOwogICAgIHN0YXRpYyBJZGVudGlmaWVyIGZyb21TdHJpbmcoVk0mIHZtLCBj
b25zdCBWZWN0b3I8TENoYXI+JiBjaGFyYWN0ZXJzKSB7IHJldHVybiBmcm9tU3RyaW5nKHZtLCBj
aGFyYWN0ZXJzLmRhdGEoKSwgY2hhcmFjdGVycy5zaXplKCkpOyB9Ci0KLSAgICAvLyBGSVhNRTog
UG9ydCBjYWxsIHNpdGVzIHRvIGZyb21TdHJpbmcoQVNDSUlMaXRlcmFsKSBhbmQgcmVtb3ZlIHRo
aXMuCi0gICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgotICAgIHN0YXRpYyBJ
ZGVudGlmaWVyIGZyb21TdHJpbmcoVk0mLCBjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFj
dGVyc0NvdW50XSk7CisgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbUNTdHJpbmcoVk0mLCBjb25z
dCBjaGFyKik7CiAKICAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tVWlkKFZNJiwgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbVVpZChjb25zdCBQcml2
YXRlTmFtZSYpOwpAQCAtMTY4LDEwICsxNjQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFN0
cmluZyBtX3N0cmluZzsKIAotICAgIC8vIE9ubHkgdG8gYmUgdXNlZCB3aXRoIHN0cmluZyBsaXRl
cmFscy4KLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJzQ291bnQ+Ci0gICAgSWRlbnRp
ZmllcihWTSYgdm0sIGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJzQ291bnRdKSA6
IG1fc3RyaW5nKGFkZCh2bSwgY2hhcmFjdGVycykpIHsgQVNTRVJUKG1fc3RyaW5nLmltcGwoKS0+
aXNBdG9tKCkpOyB9Ci0KICAgICBJZGVudGlmaWVyKFZNJiB2bSwgY29uc3QgTENoYXIqIHMsIGlu
dCBsZW5ndGgpIDogbV9zdHJpbmcoYWRkKHZtLCBzLCBsZW5ndGgpKSB7IEFTU0VSVChtX3N0cmlu
Zy5pbXBsKCktPmlzQXRvbSgpKTsgfQogICAgIElkZW50aWZpZXIoVk0mIHZtLCBjb25zdCBVQ2hh
ciogcywgaW50IGxlbmd0aCkgOiBtX3N0cmluZyhhZGQodm0sIHMsIGxlbmd0aCkpIHsgQVNTRVJU
KG1fc3RyaW5nLmltcGwoKS0+aXNBdG9tKCkpOyB9CiAgICAgQUxXQVlTX0lOTElORSBJZGVudGlm
aWVyKFZNJiB2bSwgQVNDSUlMaXRlcmFsIGxpdGVyYWwpIDogbV9zdHJpbmcoYWRkTGl0ZXJhbCh2
bSwgbGl0ZXJhbC5jaGFyYWN0ZXJzKCksIGxpdGVyYWwubGVuZ3RoKCkpKSB7IEFTU0VSVChtX3N0
cmluZy5pbXBsKCktPmlzQXRvbSgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmgKaW5kZXggNzVjYmQ2MDJlNWI4Li5iMTQzYmNjMzBh
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllcklu
bGluZXMuaApAQCAtODAsMTIgKzgwLDYgQEAgaW5saW5lIElkZW50aWZpZXIgSWRlbnRpZmllcjo6
ZnJvbVVpZChTeW1ib2xJbXBsJiBzeW1ib2wpCiAgICAgcmV0dXJuIHN5bWJvbDsKIH0KIAotdGVt
cGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgotaW5saW5lIElkZW50aWZpZXIgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhWTSYgdm0sIGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0
ZXJzQ291bnRdKQotewotICAgIHJldHVybiBJZGVudGlmaWVyKCZ2bSwgY2hhcmFjdGVycyk7Ci19
Ci0KIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKFZNJiB2
bSwgQVNDSUlMaXRlcmFsIHMpCiB7CiAgICAgcmV0dXJuIElkZW50aWZpZXIodm0sIHMpOwpAQCAt
MTI2LDcgKzEyMCw3IEBAIGlubGluZSBJZGVudGlmaWVyIElkZW50aWZpZXI6OmZyb21TdHJpbmco
Vk0mIHZtLCBTeW1ib2xJbXBsKiBzeW1ib2xJbXBsKQogICAgIHJldHVybiBJZGVudGlmaWVyKHZt
LCBzeW1ib2xJbXBsKTsKIH0KIAotaW5saW5lIElkZW50aWZpZXIgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyhWTSYgdm0sIGNvbnN0IGNoYXIqIHMpCitpbmxpbmUgSWRlbnRpZmllciBJZGVudGlmaWVy
Ojpmcm9tQ1N0cmluZyhWTSYgdm0sIGNvbnN0IGNoYXIqIHMpCiB7CiAgICAgcmV0dXJuIElkZW50
aWZpZXIodm0sIEF0b21TdHJpbmcocykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKaW5k
ZXggZWMxODE1Njk4NzM4Li4xNWUyMGQxNjZiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNw
cApAQCAtODMsNyArODMsNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogI2lm
IEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JNQVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5nZVRv
UGFydHMiLCBpbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdl
VG9QYXJ0cyJfcywgaW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9Q
YXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDIpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURf
UEFSQU0oJmludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFydHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAwNTFmZmU4YWIzNDguLjE4MzZkYzVkNjhlMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTg3LDEwICs4NywxMCBAQCB2b2lkIEludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iagogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwog
ICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwogI2lmIEhBVkUoSUNVX1VfTlVNQkVSX1JB
TkdFX0ZPUk1BVFRFUikKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiZm9ybWF0UmFuZ2UiLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdl
Il9zLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiAjZW5kaWYKICNp
ZiBIQVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRT
KQotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5n
ZVRvUGFydHMiLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9QYXJ0
cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5n
ZVRvUGFydHMiX3MsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1Bh
cnRzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Mik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcAppbmRleCA1ZTE3NjllM2Y1OWEuLjE3NDcyM2E1MmVhNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2
b2lkIEludGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICBVTlVTRURfUEFSQU0oJmNyZWF0ZUxpc3RGb3JtYXRDb25zdHJ1Y3Rv
cik7CiAjZW5kaWYKICAgICBpZiAoT3B0aW9uczo6dXNlSW50bEVudW1lcmF0aW9uKCkpCi0gICAg
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdXBwb3J0ZWRWYWx1
ZXNPZiIsIGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICAgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBvcnRlZFZhbHVlc09mIl9zLCBpbnRs
T2JqZWN0RnVuY1N1cHBvcnRlZFZhbHVlc09mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiB9CiAKIFN0cnVjdHVyZSogSW50bE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKaW5kZXggNWMxMTE2NDFjZTRiLi5hZWFjYjJmZTBjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI2NjUsNyArMjY2NSw3IEBAIHZvaWQgSlNP
YmplY3Q6OnJlaWZ5QWxsU3RhdGljUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogCiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiAqaGFzaFRhYmxlKSB7CiAgICAgICAg
ICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgYXV0byBrZXkgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCB2YWx1ZS5tX2tleSk7CisgICAgICAgICAgICBhdXRvIGtleSA9
IElkZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCB2YWx1ZS5tX2tleSk7CiAgICAgICAgICAgICBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBnZXREaXJlY3RPZmZzZXQodm0sIGtleSwgYXR0cmlidXRl
cyk7CiAgICAgICAgICAgICBpZiAoIWlzVmFsaWRPZmZzZXQob2Zmc2V0KSkKICAgICAgICAgICAg
ICAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBoYXNoVGFibGUtPmNsYXNzRm9yVGhpcywga2V5
LCB2YWx1ZSwgKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggMmJmMDI3NGQ3NmM2Li42ZmFkN2ExMzg1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTY2OCwxNSArMTY2OCw5IEBAIGlubGluZSBzaXplX3Qg
bWF4T2Zmc2V0UmVsYXRpdmVUb0Jhc2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogCiBzdGF0aWNf
YXNzZXJ0KCEoc2l6ZW9mKEpTT2JqZWN0KSAlIHNpemVvZihXcml0ZUJhcnJpZXJCYXNlPFVua25v
d24+KSksICJKU09iamVjdCBpbmxpbmUgc3RvcmFnZSBoYXMgY29ycmVjdCBhbGlnbm1lbnQiKTsK
IAotdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgotQUxXQVlTX0lOTElORSBJZGVu
dGlmaWVyIG1ha2VJZGVudGlmaWVyKFZNJiB2bSwgY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2No
YXJhY3RlcnNDb3VudF0pCitBTFdBWVNfSU5MSU5FIElkZW50aWZpZXIgbWFrZUlkZW50aWZpZXIo
Vk0mIHZtLCBBU0NJSUxpdGVyYWwgbGl0ZXJhbCkKIHsKLSAgICByZXR1cm4gSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgY2hhcmFjdGVycyk7Ci19Ci0KLUFMV0FZU19JTkxJTkUgSWRlbnRpZmll
ciBtYWtlSWRlbnRpZmllcihWTSYgdm0sIGNvbnN0IGNoYXIqIG5hbWUpCi17Ci0gICAgcmV0dXJu
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG5hbWUpOworICAgIHJldHVybiBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCBsaXRlcmFsKTsKIH0KIAogQUxXQVlTX0lOTElORSBJZGVudGlmaWVy
IG1ha2VJZGVudGlmaWVyKFZNJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggODM0OTQyMmQ4
YjRhLi5iMTY1ZWFlNWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0SW5saW5lcy5oCkBAIC03MzcsNyArNzM3LDcgQEAgQUxXQVlTX0lOTElORSB2b2lk
IEpTT2JqZWN0OjpnZXROb25SZWlmaWVkU3RhdGljUHJvcGVydHlOYW1lcyhWTSYgdm0sIFByb3Bl
cnR5TmEKIAogICAgICAgICBmb3IgKGF1dG8gaXRlciA9IHRhYmxlLT5iZWdpbigpOyBpdGVyICE9
IHRhYmxlLT5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBpZiAobW9kZSA9PSBEb250RW51
bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlIHx8ICEoaXRlci0+YXR0cmlidXRlcygpICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBpdGVyLmtleSgpKSk7CisgICAgICAgICAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbUNTdHJpbmcodm0sIGl0ZXIua2V5
KCkpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKaW5kZXggM2Y5
ZWM4NDAwZTllLi4wMTE1YzBjNjlhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC00NDIs
MzUgKzQ0MiwzNSBAQCB2b2lkIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogCiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nLCBnbG9iYWxPYmpl
Y3QtPmFycmF5UHJvdG9Ub1N0cmluZ0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJ
VEhPVVRfVFJBTlNJVElPTigiYnVmZmVyIiwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNC
dWZmZXIsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSk7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJidWZm
ZXIiX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIEpTQ19O
QVRJVkVfSU5UUklOU0lDX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+Ynl0ZUxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHks
IFR5cGVkQXJyYXlCeXRlTGVuZ3RoSW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJ
Q19HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVPZmZzZXQs
IHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBUeXBlZEFycmF5Qnl0
ZU9mZnNldEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oImNvcHlXaXRoaW4iLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKLSAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2ZXJ5IiwgdHlwZWRB
cnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZmlsdGVyIiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbHRlckNvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvcnQi
LCB0eXBlZEFycmF5UHJvdG90eXBlU29ydENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29weVdpdGhpbiJfcywgdHlwZWRBcnJheVZpZXdQcm90
b0Z1bmNDb3B5V2l0aGluLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgMik7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJldmVyeSJfcywgdHlwZWRBcnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpT
Q19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmlsdGVyIl9zLCB0eXBlZEFy
cmF5UHJvdG90eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigic29ydCJfcywgdHlwZWRBcnJheVByb3RvdHlwZVNvcnRDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCksIHR5
cGVkQXJyYXlQcm90b1ZpZXdGdW5jRW50cmllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIFR5cGVkQXJyYXlFbnRyaWVzSW50cmluc2ljKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5jbHVkZXMiLCB0
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIl9zLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0lu
Y2x1ZGVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlsbFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNGaWxsLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJmaW5kIiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmaW5kIl9zLCB0eXBlZEFycmF5UHJv
dG90eXBlRmluZENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlGaW5kTGFzdE1l
dGhvZCgpKQogICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZExhc3RQdWJsaWNOYW1lKCksIHR5
cGVkQXJyYXlQcm90b3R5cGVGaW5kTGFzdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbmRJbmRleCIsIHR5cGVkQXJyYXlQcm90b3R5cGVG
aW5kSW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJmaW5kSW5kZXgiX3MsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkKICAgICAgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmZpbmRMYXN0SW5kZXhQdWJsaWNOYW1lKCksIHR5cGVkQXJyYXlQcm90
b3R5cGVGaW5kTGFzdEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5mb3JFYWNoLCB0eXBlZEFycmF5UHJv
dG90eXBlRm9yRWFjaENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiaW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmRleE9mIl9zLCB0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5qb2luLCB0eXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0pvaW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNLZXlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgVHlwZWRBcnJheUtleXNJbnRyaW5zaWMpOwotICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIsIHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigibGFzdEluZGV4T2YiX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19HRVRURVJfV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dl
dHRlckZ1bmNMZW5ndGgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBUeXBlZEFycmF5TGVuZ3Ro
SW50cmluc2ljKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
Im1hcCIsIHR5cGVkQXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZWR1Y2UiLCB0eXBlZEFycmF5UHJvdG90eXBl
UmVkdWNlQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigicmVkdWNlUmlnaHQiLCB0eXBlZEFycmF5UHJvdG90eXBlUmVkdWNlUmlnaHRDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldmVyc2Ui
LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oIm1hcCJfcywgdHlwZWRBcnJheVByb3RvdHlwZU1hcENvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVj
ZSJfcywgdHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJ
Tl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVjZVJpZ2h0Il9zLCB0eXBlZEFycmF5
UHJvdG90eXBlUmVkdWNlUmlnaHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInJldmVyc2UiX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2
ZXJzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPnNldCwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgdHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDIpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigic29tZSIsIHR5cGVkQXJyYXlQcm90b3R5cGVTb21lQ29kZUdlbmVyYXRv
ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwor
ICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic29tZSJfcywgdHlw
ZWRBcnJheVByb3RvdHlwZVNvbWVDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnN1YmFycmF5LCB0eXBlZEFycmF5
UHJvdG90eXBlU3ViYXJyYXlDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nLCB0eXBlZEFy
cmF5UHJvdG90eXBlVG9Mb2NhbGVTdHJpbmdDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODhjMTc3NGY4
MDgwLi5kNTZmY2IyNDQ5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC02OCw4ICs2OCw4IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihtYWtlUmV2b2NhYmxlUHJveHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsCiAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKIAogICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOwotICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInByb3h5IiksIHByb3h5LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKLSAgICByZXN1bHQt
PnB1dERpcmVjdCh2bSwgbWFrZUlkZW50aWZpZXIodm0sICJyZXZva2UiKSwgcmV2b2tlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICByZXN1bHQt
PnB1dERpcmVjdCh2bSwgbWFrZUlkZW50aWZpZXIodm0sICJwcm94eSJfcyksIHByb3h5LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICByZXN1bHQt
PnB1dERpcmVjdCh2bSwgbWFrZUlkZW50aWZpZXIodm0sICJyZXZva2UiX3MpLCByZXZva2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwogCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAtNzcsNyArNzcsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWFrZVJldm9jYWJsZVByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbAogdm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0sIDIsICJQcm94eSJfcywgUHJvcGVydHlBZGRpdGlvbk1vZGU6OldpdGhvdXRT
dHJ1Y3R1cmVUcmFuc2l0aW9uKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigicmV2b2NhYmxlIiwgbWFrZVJldm9jYWJsZVByb3h5LCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldm9jYWJsZSJfcywgbWFrZVJldm9jYWJsZVBy
b3h5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Mik7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RQcm94eU9iamVjdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCAxYjlj
ZjcwNmRmZDcuLmMzYmE4NTIzN2VmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5T2JqZWN0LmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgUHJveHlPYmplY3Q6
OnBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAKICAgICBKU09iamVjdCogaGFuZGxlciA9IGpzQ2FzdDxKU09iamVjdCo+KGhhbmRs
ZXJWYWx1ZSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgSlNWYWx1ZSBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JNZXRob2QgPSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBj
YWxsRGF0YSwgbWFrZUlkZW50aWZpZXIodm0sICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiKSwg
IidnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVy
IHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CisgICAgSlNWYWx1ZSBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JNZXRob2QgPSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwg
bWFrZUlkZW50aWZpZXIodm0sICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiX3MpLCAiJ2dldE93
blByb3BlcnR5RGVzY3JpcHRvcicgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxk
IGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
CiAgICAgaWYgKGdldE93blByb3BlcnR5RGVzY3JpcHRvck1ldGhvZC5pc1VuZGVmaW5lZCgpKQog
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHBlcmZvcm1EZWZhdWx0R2V0T3duUHJv
cGVydHkoKSk7CkBAIC01MTIsNyArNTEyLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHBl
cmZvcm1Qcm94eUNhbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKIAog
ICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsK
ICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIGFwcGx5TWV0aG9kID0gaGFuZGxl
ci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAi
YXBwbHkiKSwgIidhcHBseScgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJl
IGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGFwcGx5TWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0
aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiYXBwbHkiX3Mp
LCAiJ2FwcGx5JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFi
bGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSBwcm94eS0+dGFyZ2V0KCk7CiAgICAgaWYgKGFwcGx5
TWV0aG9kLmlzVW5kZWZpbmVkKCkpIHsKQEAgLTU1OSw3ICs1NTksNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ocGVyZm9ybVByb3h5Q29uc3RydWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQwogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPiho
YW5kbGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgY29uc3Ry
dWN0TWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1h
a2VJZGVudGlmaWVyKHZtLCAiY29uc3RydWN0IiksICInY29uc3RydWN0JyBwcm9wZXJ0eSBvZiBh
IFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgY29u
c3RydWN0TWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEs
IG1ha2VJZGVudGlmaWVyKHZtLCAiY29uc3RydWN0Il9zKSwgIidjb25zdHJ1Y3QnIHByb3BlcnR5
IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgSlNPYmplY3QqIHRh
cmdldCA9IHByb3h5LT50YXJnZXQoKTsKICAgICBpZiAoY29uc3RydWN0TWV0aG9kLmlzVW5kZWZp
bmVkKCkpIHsKQEAgLTYxNiw3ICs2MTYsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwZXJmb3JtRGVs
ZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZQogCiAg
ICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwog
ICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgZGVsZXRlUHJvcGVydHlNZXRob2Qg
PSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwgbWFrZUlkZW50aWZp
ZXIodm0sICJkZWxldGVQcm9wZXJ0eSIpLCAiJ2RlbGV0ZVByb3BlcnR5JyBwcm9wZXJ0eSBvZiBh
IFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgZGVs
ZXRlUHJvcGVydHlNZXRob2QgPSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxs
RGF0YSwgbWFrZUlkZW50aWZpZXIodm0sICJkZWxldGVQcm9wZXJ0eSJfcyksICInZGVsZXRlUHJv
cGVydHknIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJf
cyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgIEpTT2JqZWN0
KiB0YXJnZXQgPSB0aGlzLT50YXJnZXQoKTsKICAgICBpZiAoZGVsZXRlUHJvcGVydHlNZXRob2Qu
aXNVbmRlZmluZWQoKSkKQEAgLTY5Nyw3ICs2OTcsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwZXJm
b3JtUHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogICAg
IEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAg
ICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIHByZXZlbnRFeHRlbnNpb25zTWV0aG9k
ID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlm
aWVyKHZtLCAicHJldmVudEV4dGVuc2lvbnMiKSwgIidwcmV2ZW50RXh0ZW5zaW9ucycgcHJvcGVy
dHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1Zh
bHVlIHByZXZlbnRFeHRlbnNpb25zTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9i
amVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAicHJldmVudEV4dGVuc2lvbnMiX3Mp
LCAiJ3ByZXZlbnRFeHRlbnNpb25zJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91
bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNl
KTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CiAgICAgaWYgKHByZXZl
bnRFeHRlbnNpb25zTWV0aG9kLmlzVW5kZWZpbmVkKCkpCkBAIC03NDgsNyArNzQ4LDcgQEAgYm9v
bCBQcm94eU9iamVjdDo6cGVyZm9ybUlzRXh0ZW5zaWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5k
bGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgaXNFeHRlbnNp
YmxlTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1h
a2VJZGVudGlmaWVyKHZtLCAiaXNFeHRlbnNpYmxlIiksICInaXNFeHRlbnNpYmxlJyBwcm9wZXJ0
eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFs
dWUgaXNFeHRlbnNpYmxlTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwg
Y2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiaXNFeHRlbnNpYmxlIl9zKSwgIidpc0V4dGVu
c2libGUnIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJf
cyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogCiAgICAgSlNPYmpl
Y3QqIHRhcmdldCA9IHRoaXMtPnRhcmdldCgpOwpAQCAtOTA5LDcgKzkwOSw3IEBAIHZvaWQgUHJv
eHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFByb3BlCiAKICAgICBKU09iamVjdCogaGFuZGxlciA9IGpzQ2FzdDxKU09iamVj
dCo+KGhhbmRsZXJWYWx1ZSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgSlNWYWx1ZSBv
d25LZXlzTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEs
IG1ha2VJZGVudGlmaWVyKHZtLCAib3duS2V5cyIpLCAiJ293bktleXMnIHByb3BlcnR5IG9mIGEg
UHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CisgICAgSlNWYWx1ZSBvd25L
ZXlzTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1h
a2VJZGVudGlmaWVyKHZtLCAib3duS2V5cyJfcyksICInb3duS2V5cycgcHJvcGVydHkgb2YgYSBQ
cm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlzLT50YXJn
ZXQoKTsKICAgICBpZiAob3duS2V5c01ldGhvZC5pc1VuZGVmaW5lZCgpKSB7CkBAIC0xMDQwLDcg
KzEwNDAsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwZXJmb3JtU2V0UHJvdG90eXBlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdAogCiAgICAgSlNPYmplY3QqIGhhbmRs
ZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxE
YXRhOwotICAgIEpTVmFsdWUgc2V0UHJvdG90eXBlT2ZNZXRob2QgPSBoYW5kbGVyLT5nZXRNZXRo
b2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwgbWFrZUlkZW50aWZpZXIodm0sICJzZXRQcm90b3R5
cGVPZiIpLCAiJ3NldFByb3RvdHlwZU9mJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBz
aG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgc2V0UHJvdG90eXBlT2ZNZXRob2Qg
PSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwgbWFrZUlkZW50aWZp
ZXIodm0sICJzZXRQcm90b3R5cGVPZiJfcyksICInc2V0UHJvdG90eXBlT2YnIHByb3BlcnR5IG9m
IGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogCiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHRoaXMt
PnRhcmdldCgpOwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgSlNWYWx1ZSBQcm94eU9iamVjdDo6cGVy
Zm9ybUdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogCiAgICAgSlNP
YmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwogICAgIENh
bGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgZ2V0UHJvdG90eXBlT2ZNZXRob2QgPSBoYW5k
bGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwgbWFrZUlkZW50aWZpZXIodm0s
ICJnZXRQcm90b3R5cGVPZiIpLCAiJ2dldFByb3RvdHlwZU9mJyBwcm9wZXJ0eSBvZiBhIFByb3h5
J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgZ2V0UHJvdG90
eXBlT2ZNZXRob2QgPSBoYW5kbGVyLT5nZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwg
bWFrZUlkZW50aWZpZXIodm0sICJnZXRQcm90b3R5cGVPZiJfcyksICInZ2V0UHJvdG90eXBlT2Yn
IHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTT2JqZWN0KiB0YXJn
ZXQgPSB0aGlzLT50YXJnZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDQ1MGY4ZmE2YzE1MS4uZDEwNWEwYWRlMzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKQEAgLTEyOCwyNyArMTI4LDI3IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKICAgICBKU0NfTkFU
SVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+dG9TdHJpbmcsIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgU3RyaW5nUHJvdG90eXBlVmFsdWVP
ZkludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlT2YsIHN0cmluZ1Byb3RvRnVuY1RvU3Ry
aW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCwgU3RyaW5nUHJvdG90eXBlVmFsdWVPZkludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9JTlRS
SU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjaGFyQXQiLCBzdHJpbmdQcm90b0Z1
bmNDaGFyQXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxLCBDaGFyQXRJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY2hhckNvZGVBdCIsIHN0cmluZ1Byb3RvRnVuY0NoYXJD
b2RlQXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxLCBDaGFyQ29kZUF0SW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvZGVQb2ludEF0Iiwgc3RyaW5nUHJvdG9GdW5jQ29k
ZVBvaW50QXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxLCBTdHJpbmdQcm90b3R5cGVDb2RlUG9pbnRBdEludHJpbnNpYyk7Ci0gICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1
bmNJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxh
c3RJbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0lO
VFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNoYXJBdCJfcywgc3RyaW5nUHJv
dG9GdW5jQ2hhckF0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSwgQ2hhckF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNoYXJDb2RlQXQiX3MsIHN0cmluZ1Byb3RvRnVu
Y0NoYXJDb2RlQXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxLCBDaGFyQ29kZUF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJ
Q19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvZGVQb2ludEF0Il9zLCBzdHJpbmdQcm90
b0Z1bmNDb2RlUG9pbnRBdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDEsIFN0cmluZ1Byb3RvdHlwZUNvZGVQb2ludEF0SW50cmluc2ljKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiJfcywgc3Ry
aW5nUHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJsYXN0SW5kZXhPZiJfcywgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBK
U0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwg
c3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJl
Z0V4cEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2Vh
cmNoUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNo
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5h
bWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlND
X05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzbGljZSIsIHN0
cmluZ1Byb3RvRnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlU2xpY2VJbnRyaW5zaWMpOwotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHIiLCBzdHJpbmdQcm90
b0Z1bmNTdWJzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
c3Vic3RyaW5nIiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX05BVElWRV9JTlRS
SU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvd2VyQ2FzZSIsIHN0cmluZ1By
b3RvRnVuY1RvTG93ZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMCwgU3RyaW5nUHJvdG90eXBlVG9Mb3dlckNhc2VJbnRyaW5zaWMpOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b1VwcGVyQ2FzZSIs
IHN0cmluZ1Byb3RvRnVuY1RvVXBwZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImxvY2FsZUNvbXBhcmUiLCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21w
YXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvTG9jYWxl
TG93ZXJDYXNlIiwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKLSAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9Mb2NhbGVVcHBlckNhc2UiLCBzdHJp
bmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJ0cmltIiwgc3RyaW5nUHJvdG9GdW5jVHJpbSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwotICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdGFydHNXaXRoIiwgc3RyaW5nUHJvdG9G
dW5jU3RhcnRzV2l0aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJlbmRzV2l0aCIsIHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgc3RyaW5nUHJvdG9GdW5jSW5jbHVk
ZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9ybWFsaXpl
Iiwgc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzbGljZSJfcywgc3RyaW5nUHJvdG9GdW5jU2xpY2Us
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyLCBT
dHJpbmdQcm90b3R5cGVTbGljZUludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInN1YnN0ciJfcywgc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0cmluZyJfcywgc3Ry
aW5nUHJvdG9GdW5jU3Vic3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMik7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvd2VyQ2FzZSJfcywgc3RyaW5nUHJvdG9GdW5jVG9Mb3dl
ckNhc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAwLCBTdHJpbmdQcm90b3R5cGVUb0xvd2VyQ2FzZUludHJpbnNpYyk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvVXBwZXJDYXNlIl9zLCBzdHJpbmdQcm90
b0Z1bmNUb1VwcGVyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJsb2NhbGVDb21wYXJlIl9zLCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvTG9jYWxlTG93ZXJDYXNl
Il9zLCBzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZUxvd2VyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvY2FsZVVwcGVyQ2FzZSJfcywgc3RyaW5nUHJv
dG9GdW5jVG9Mb2NhbGVVcHBlckNhc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigidHJpbSJfcywgc3RyaW5nUHJvdG9GdW5jVHJpbSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdGFydHNXaXRoIl9zLCBzdHJpbmdQcm90b0Z1
bmNTdGFydHNXaXRoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImVuZHNXaXRoIl9zLCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aCwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmNsdWRlcyJfcywgc3RyaW5nUHJvdG9GdW5jSW5j
bHVkZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9ybWFs
aXplIl9zLCBzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJ
Q19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuY2hhckNvZGVBdFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBD
aGFyQ29kZUF0SW50cmluc2ljKTsKIAogICAgIGlmIChPcHRpb25zOjp1c2VBdE1ldGhvZCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDVjYjUwNDA5
M2NiYS4uNTBiMmRmZmJjMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9s
bGFyVk0uY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CiAKLSAgICAgICAgYXV0byBhZGRQcm9wZXJ0eSA9IFsmXSAoVk0mIHZtLCBjb25zdCBjaGFyKiBu
YW1lLCBKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgIGF1dG8gYWRkUHJvcGVydHkgPSBbJl0gKFZN
JiB2bSwgQVNDSUlMaXRlcmFsIG5hbWUsIEpTVmFsdWUgdmFsdWUpIHsKICAgICAgICAgICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgICAgICBKU0RvbGxhclZNQ2Fs
bEZyYW1lOjphZGRQcm9wZXJ0eSh2bSwgbmFtZSwgdmFsdWUpOwogICAgICAgICB9OwpAQCAtMTcz
LDI5ICsxNzMsMjkgQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKGZyYW1lSW5kZXgrKyAhPSBy
ZXF1ZXN0ZWRGcmFtZUluZGV4KQogICAgICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6
OkNvbnRpbnVlOwogCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgIm5hbWUiLCBqc1N0cmlu
Zyh2bSwgdmlzaXRvci0+ZnVuY3Rpb25OYW1lKCkpKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5
KHZtLCAibmFtZSJfcywganNTdHJpbmcodm0sIHZpc2l0b3ItPmZ1bmN0aW9uTmFtZSgpKSk7CiAK
ICAgICAgICAgICAgIGlmICh2aXNpdG9yLT5jYWxsZWUoKS5pc0NlbGwoKSkKLSAgICAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eSh2bSwgImNhbGxlZSIsIHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2VsbCgp
KTsKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgImNhbGxlZSJfcywgdmlzaXRvci0+
Y2FsbGVlKCkuYXNDZWxsKCkpOwogCiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IHZpc2l0b3ItPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgaWYgKGNvZGVCbG9jaykgewotICAg
ICAgICAgICAgICAgIGFkZFByb3BlcnR5KHZtLCAiY29kZUJsb2NrIiwgY29kZUJsb2NrKTsKLSAg
ICAgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInVubGlua2VkQ29kZUJsb2NrIiwgY29kZUJs
b2NrLT51bmxpbmtlZENvZGVCbG9jaygpKTsKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2
bSwgImV4ZWN1dGFibGUiLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsKKyAgICAgICAg
ICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgImNvZGVCbG9jayJfcywgY29kZUJsb2NrKTsKKyAgICAg
ICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInVubGlua2VkQ29kZUJsb2NrIl9zLCBjb2RlQmxv
Y2stPnVubGlua2VkQ29kZUJsb2NrKCkpOworICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5KHZt
LCAiZXhlY3V0YWJsZSJfcywgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTsKIAogICAgICAgICAgICAgcmV0dXJu
IFN0YWNrVmlzaXRvcjo6RG9uZTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgYWRkUHJvcGVydHko
dm0sICJ2YWxpZCIsIGpzQm9vbGVhbihpc1ZhbGlkKSk7CisgICAgICAgIGFkZFByb3BlcnR5KHZt
LCAidmFsaWQiX3MsIGpzQm9vbGVhbihpc1ZhbGlkKSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9J
TkZPOwogCiBwcml2YXRlOgotICAgIHZvaWQgYWRkUHJvcGVydHkoVk0mIHZtLCBjb25zdCBjaGFy
KiBuYW1lLCBKU1ZhbHVlIHZhbHVlKQorICAgIHZvaWQgYWRkUHJvcGVydHkoVk0mIHZtLCBBU0NJ
SUxpdGVyYWwgbmFtZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG5hbWUpOwpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgdm9p
ZCBET01KSVRHZXR0ZXJOb0VmZmVjdHM6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgY29uc3QgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRv
bUpJVCA9ICZET01KSVRHZXR0ZXJOb0VmZmVjdHNET01KSVQ7CiAgICAgYXV0byogY3VzdG9tR2V0
dGVyU2V0dGVyID0gRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+
Z2V0dGVyKCksIG51bGxwdHIsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBET01KSVROb2RlOjpp
bmZvKCksIGRvbUpJVCB9KTsKLSAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlciIpLCBjdXN0b21HZXR0ZXJTZXR0ZXIs
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3Nvcik7CisgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJjdXN0b21HZXR0ZXIiX3MpLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
cik7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihkb21KSVRHZXR0ZXJOb0VmZmVjdEN1
c3RvbUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKQEAgLTM4NTgsMTggKzM4NTgsMTggQEAgdm9pZCBK
U0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdGhpcy0+Z2xvYmFsT2JqZWN0KHZtKTsKIAotICAgIGF1dG8gYWRkRnVu
Y3Rpb24gPSBbJl0gKFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVu
Y3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cykgeworICAgIGF1dG8gYWRkRnVuY3Rpb24gPSBbJl0g
KFZNJiB2bSwgQVNDSUlMaXRlcmFsIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNp
Z25lZCBhcmd1bWVudHMpIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICAgICAgSlNEb2xsYXJWTTo6YWRkRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgbmFt
ZSwgZnVuY3Rpb24sIGFyZ3VtZW50cyk7CiAgICAgfTsKLSAgICBhdXRvIGFkZENvbnN0cnVjdGli
bGVGdW5jdGlvbiA9IFsmXSAoVk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKSB7CisgICAgYXV0byBhZGRDb25zdHJ1Y3Rp
YmxlRnVuY3Rpb24gPSBbJl0gKFZNJiB2bSwgQVNDSUlMaXRlcmFsIG5hbWUsIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpIHsKICAgICAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgSlNEb2xsYXJWTTo6YWRkQ29uc3RydWN0aWJs
ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG5hbWUsIGZ1bmN0aW9uLCBhcmd1bWVudHMpOwog
ICAgIH07CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImFib3J0IiwgZnVuY3Rpb25DcmFzaCwgMCk7
Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmFzaCIsIGZ1bmN0aW9uQ3Jhc2gsIDApOwotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiYnJlYWtwb2ludCIsIGZ1bmN0aW9uQnJlYWtwb2ludCwgMCk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJhYm9ydCJfcywgZnVuY3Rpb25DcmFzaCwgMCk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJjcmFzaCJfcywgZnVuY3Rpb25DcmFzaCwgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJicmVha3BvaW50Il9zLCBmdW5jdGlvbkJyZWFrcG9pbnQsIDApOwogCiAgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImRmZ1RydWUiX3MpLCAwLCBmdW5jdGlvbkRGR1RydWUsIERGR1RydWVJbnRyaW5zaWMs
IGpzRG9sbGFyVk1Qcm9wZXJ0eUF0dHJpYnV0ZXMpOwogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdGxUcnVl
Il9zKSwgMCwgZnVuY3Rpb25GVExUcnVlLCBGVExUcnVlSW50cmluc2ljLCBqc0RvbGxhclZNUHJv
cGVydHlBdHRyaWJ1dGVzKTsKQEAgLTM4NzgsMTYwICszODc4LDE2MCBAQCB2b2lkIEpTRG9sbGFy
Vk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3B1UmR0c2MiX3Mp
LCAwLCBmdW5jdGlvbkNwdVJkdHNjLCBDUFVSZHRzY0ludHJpbnNpYywganNEb2xsYXJWTVByb3Bl
cnR5QXR0cmlidXRlcyk7CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNwdUNwdWlkIl9zKSwgMCwgZnVuY3Rp
b25DcHVDcHVpZCwgQ1BVQ3B1aWRJbnRyaW5zaWMsIGpzRG9sbGFyVk1Qcm9wZXJ0eUF0dHJpYnV0
ZXMpOwogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJjcHVQYXVzZSJfcyksIDAsIGZ1bmN0aW9uQ3B1UGF1c2Us
IENQVVBhdXNlSW50cmluc2ljLCBqc0RvbGxhclZNUHJvcGVydHlBdHRyaWJ1dGVzKTsKLSAgICBh
ZGRGdW5jdGlvbih2bSwgImNwdUNsZmx1c2giLCBmdW5jdGlvbkNwdUNsZmx1c2gsIDIpOwotCi0g
ICAgYWRkRnVuY3Rpb24odm0sICJsbGludFRydWUiLCBmdW5jdGlvbkxMaW50VHJ1ZSwgMCk7Ci0g
ICAgYWRkRnVuY3Rpb24odm0sICJiYXNlbGluZUpJVFRydWUiLCBmdW5jdGlvbkJhc2VsaW5lSklU
VHJ1ZSwgMCk7Ci0KLSAgICBhZGRGdW5jdGlvbih2bSwgIm5vSW5saW5lIiwgZnVuY3Rpb25Ob0lu
bGluZSwgMSk7Ci0KLSAgICBhZGRGdW5jdGlvbih2bSwgImdjIiwgZnVuY3Rpb25HQywgMCk7Ci0g
ICAgYWRkRnVuY3Rpb24odm0sICJnY1N3ZWVwQXN5bmNocm9ub3VzbHkiLCBmdW5jdGlvbkdDU3dl
ZXBBc3luY2hyb25vdXNseSwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJlZGVuR0MiLCBmdW5j
dGlvbkVkZW5HQywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU3Vic3BhY2VIYXNoZXMi
LCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcywgMCk7Ci0KLSAgICBhZGRGdW5jdGlvbih2bSwg
ImNhbGxGcmFtZSIsIGZ1bmN0aW9uQ2FsbEZyYW1lLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImNvZGVCbG9ja0ZvciIsIGZ1bmN0aW9uQ29kZUJsb2NrRm9yLCAxKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImNvZGVCbG9ja0ZvckZyYW1lIiwgZnVuY3Rpb25Db2RlQmxvY2tGb3JGcmFtZSwgMSk7
Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU291cmNlRm9yIiwgZnVuY3Rpb25EdW1wU291cmNl
Rm9yLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBCeXRlY29kZUZvciIsIGZ1bmN0aW9u
RHVtcEJ5dGVjb2RlRm9yLCAxKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGF0YUxvZyIsIGZ1
bmN0aW9uRGF0YUxvZywgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJwcmludCIsIGZ1bmN0aW9u
UHJpbnQsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcENhbGxGcmFtZSIsIGZ1bmN0aW9u
RHVtcENhbGxGcmFtZSwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU3RhY2siLCBmdW5j
dGlvbkR1bXBTdGFjaywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wUmVnaXN0ZXJzIiwg
ZnVuY3Rpb25EdW1wUmVnaXN0ZXJzLCAxKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcENl
bGwiLCBmdW5jdGlvbkR1bXBDZWxsLCAxKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaW5kZXhp
bmdNb2RlIiwgZnVuY3Rpb25JbmRleGluZ01vZGUsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
aW5saW5lQ2FwYWNpdHkiLCBmdW5jdGlvbklubGluZUNhcGFjaXR5LCAxKTsKLSAgICBhZGRGdW5j
dGlvbih2bSwgImNsZWFyTGlua0J1ZmZlclN0YXRzIiwgZnVuY3Rpb25DbGVhckxpbmtCdWZmZXJT
dGF0cywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJsaW5rQnVmZmVyU3RhdHMiLCBmdW5jdGlv
bkxpbmtCdWZmZXJTdGF0cywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJ2YWx1ZSIsIGZ1bmN0
aW9uVmFsdWUsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0cGlkIiwgZnVuY3Rpb25HZXRQ
SUQsIDApOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJoYXZlQUJhZFRpbWUiLCBmdW5jdGlvbkhh
dmVBQmFkVGltZSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJpc0hhdmluZ0FCYWRUaW1lIiwg
ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lLCAxKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2Fs
bFdpdGhTdGFja1NpemUiLCBmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplLCAyKTsKLQotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxP
YmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlUHJveHkiLCBmdW5jdGlvbkNy
ZWF0ZVByb3h5LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVJ1bnRpbWVBcnJheSIs
IGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFycmF5LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNy
ZWF0ZU51bGxSb3BlU3RyaW5nIiwgZnVuY3Rpb25DcmVhdGVOdWxsUm9wZVN0cmluZywgMCk7Ci0K
LSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUltcHVyZUdldHRlciIsIGZ1bmN0aW9uQ3JlYXRl
SW1wdXJlR2V0dGVyLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUN1c3RvbUdldHRl
ck9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAwKTsKLSAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVE5vZGVPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVy
T2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QsIDApOwotICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0IiwgZnVuY3Rpb25D
cmVhdGVET01KSVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklU
R2V0dGVyQ29tcGxleE9iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01K
SVRGdW5jdGlvbk9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIDAp
OwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QiLCBm
dW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyQmFzZUpTT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJ1
aWx0aW4iLCBmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4sIDIpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3B1Q2xmbHVzaCJfcywgZnVuY3Rpb25DcHVDbGZsdXNoLCAyKTsKKworICAgIGFkZEZ1bmN0aW9u
KHZtLCAibGxpbnRUcnVlIl9zLCBmdW5jdGlvbkxMaW50VHJ1ZSwgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJiYXNlbGluZUpJVFRydWUiX3MsIGZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlLCAwKTsK
KworICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9JbmxpbmUiX3MsIGZ1bmN0aW9uTm9JbmxpbmUsIDEp
OworCisgICAgYWRkRnVuY3Rpb24odm0sICJnYyJfcywgZnVuY3Rpb25HQywgMCk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJnY1N3ZWVwQXN5bmNocm9ub3VzbHkiX3MsIGZ1bmN0aW9uR0NTd2VlcEFz
eW5jaHJvbm91c2x5LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImVkZW5HQyJfcywgZnVuY3Rp
b25FZGVuR0MsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcFN1YnNwYWNlSGFzaGVzIl9z
LCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcywgMCk7CisKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImNhbGxGcmFtZSJfcywgZnVuY3Rpb25DYWxsRnJhbWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY29kZUJsb2NrRm9yIl9zLCBmdW5jdGlvbkNvZGVCbG9ja0ZvciwgMSk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJjb2RlQmxvY2tGb3JGcmFtZSJfcywgZnVuY3Rpb25Db2RlQmxvY2tGb3JGcmFt
ZSwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU291cmNlRm9yIl9zLCBmdW5jdGlvbkR1
bXBTb3VyY2VGb3IsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEJ5dGVjb2RlRm9yIl9z
LCBmdW5jdGlvbkR1bXBCeXRlY29kZUZvciwgMSk7CisKKyAgICBhZGRGdW5jdGlvbih2bSwgImRh
dGFMb2ciX3MsIGZ1bmN0aW9uRGF0YUxvZywgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJwcmlu
dCJfcywgZnVuY3Rpb25QcmludCwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wQ2FsbEZy
YW1lIl9zLCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZHVtcFN0YWNrIl9zLCBmdW5jdGlvbkR1bXBTdGFjaywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0s
ICJkdW1wUmVnaXN0ZXJzIl9zLCBmdW5jdGlvbkR1bXBSZWdpc3RlcnMsIDEpOworCisgICAgYWRk
RnVuY3Rpb24odm0sICJkdW1wQ2VsbCJfcywgZnVuY3Rpb25EdW1wQ2VsbCwgMSk7CisKKyAgICBh
ZGRGdW5jdGlvbih2bSwgImluZGV4aW5nTW9kZSJfcywgZnVuY3Rpb25JbmRleGluZ01vZGUsIDEp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaW5saW5lQ2FwYWNpdHkiX3MsIGZ1bmN0aW9uSW5saW5l
Q2FwYWNpdHksIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2xlYXJMaW5rQnVmZmVyU3RhdHMi
X3MsIGZ1bmN0aW9uQ2xlYXJMaW5rQnVmZmVyU3RhdHMsIDApOworICAgIGFkZEZ1bmN0aW9uKHZt
LCAibGlua0J1ZmZlclN0YXRzIl9zLCBmdW5jdGlvbkxpbmtCdWZmZXJTdGF0cywgMCk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJ2YWx1ZSJfcywgZnVuY3Rpb25WYWx1ZSwgMSk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJnZXRwaWQiX3MsIGZ1bmN0aW9uR2V0UElELCAwKTsKKworICAgIGFkZEZ1bmN0
aW9uKHZtLCAiaGF2ZUFCYWRUaW1lIl9zLCBmdW5jdGlvbkhhdmVBQmFkVGltZSwgMSk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJpc0hhdmluZ0FCYWRUaW1lIl9zLCBmdW5jdGlvbklzSGF2aW5nQUJh
ZFRpbWUsIDEpOworCisgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsV2l0aFN0YWNrU2l6ZSJfcywg
ZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSwgMik7CisKKyAgICBhZGRGdW5jdGlvbih2bSwgImNy
ZWF0ZUdsb2JhbE9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlUHJveHkiX3MsIGZ1bmN0aW9uQ3JlYXRlUHJveHksIDEp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlUnVudGltZUFycmF5Il9zLCBmdW5jdGlvbkNy
ZWF0ZVJ1bnRpbWVBcnJheSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVOdWxsUm9w
ZVN0cmluZyJfcywgZnVuY3Rpb25DcmVhdGVOdWxsUm9wZVN0cmluZywgMCk7CisKKyAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZUltcHVyZUdldHRlciJfcywgZnVuY3Rpb25DcmVhdGVJbXB1cmVH
ZXR0ZXIsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0
Il9zLCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJjcmVhdGVET01KSVROb2RlT2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVE5v
ZGVPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2Jq
ZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdCwgMCk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QiX3MsIGZ1bmN0aW9u
Q3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QiX3MsIGZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyQ29tcGxleE9iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVE
T01KSVRGdW5jdGlvbk9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVj
dCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVj
dCJfcywgZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCwgMCk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QiX3MsIGZ1bmN0aW9u
Q3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZUJ1aWx0aW4iX3MsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlV2FzbVN0cmVhbWluZ1Bh
cnNlciIsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlciwgMCk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JDb21waWxlIiwgZnVuY3Rp
b25DcmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JDb21waWxlLCAwKTsKLSAgICBhZGRGdW5j
dGlvbih2bSwgImNyZWF0ZVdhc21TdHJlYW1pbmdDb21waWxlckZvckluc3RhbnRpYXRlIiwgZnVu
Y3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JJbnN0YW50aWF0ZSwgMCk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyIl9zLCBmdW5jdGlvbkNy
ZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
V2FzbVN0cmVhbWluZ0NvbXBpbGVyRm9yQ29tcGlsZSJfcywgZnVuY3Rpb25DcmVhdGVXYXNtU3Ry
ZWFtaW5nQ29tcGlsZXJGb3JDb21waWxlLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZVdhc21TdHJlYW1pbmdDb21waWxlckZvckluc3RhbnRpYXRlIl9zLCBmdW5jdGlvbkNyZWF0ZVdh
c21TdHJlYW1pbmdDb21waWxlckZvckluc3RhbnRpYXRlLCAwKTsKICNlbmRpZgotICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3IiLCBmdW5jdGlvbkNyZWF0ZVN0
YXRpY0N1c3RvbUFjY2Vzc29yLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVN0YXRp
Y0N1c3RvbVZhbHVlIiwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21WYWx1ZSwgMCk7Ci0gICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29y
cmVjdFNsb3RTdGF0dXMiLCBmdW5jdGlvbkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdp
dGhvdXRDb3JyZWN0U2xvdFN0YXR1cywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVF
bXB0eUZ1bmN0aW9uV2l0aE5hbWUiLCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFt
ZSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJnZXRQcml2YXRlUHJvcGVydHkiLCBmdW5jdGlv
bkdldFByaXZhdGVQcm9wZXJ0eSwgMik7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJzZXRJbXB1cmVH
ZXR0ZXJEZWxlZ2F0ZSIsIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUsIDIpOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3IiX3MsIGZ1bmN0aW9u
Q3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3IsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlU3RhdGljQ3VzdG9tVmFsdWUiX3MsIGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUs
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0
V2l0aG91dENvcnJlY3RTbG90U3RhdHVzIl9zLCBmdW5jdGlvbkNyZWF0ZU9iamVjdERvaW5nU2lk
ZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cywgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJjcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUiX3MsIGZ1bmN0aW9uQ3JlYXRlRW1wdHlG
dW5jdGlvbldpdGhOYW1lLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdldFByaXZhdGVQcm9w
ZXJ0eSJfcywgZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHksIDIpOworICAgIGFkZEZ1bmN0aW9u
KHZtLCAic2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUiX3MsIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVy
RGVsZWdhdGUsIDIpOwogCi0gICAgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKHZtLCAiUm9vdCIs
IGZ1bmN0aW9uQ3JlYXRlUm9vdCwgMCk7Ci0gICAgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKHZt
LCAiRWxlbWVudCIsIGZ1bmN0aW9uQ3JlYXRlRWxlbWVudCwgMSk7Ci0gICAgYWRkRnVuY3Rpb24o
dm0sICJnZXRFbGVtZW50IiwgZnVuY3Rpb25HZXRFbGVtZW50LCAxKTsKKyAgICBhZGRDb25zdHJ1
Y3RpYmxlRnVuY3Rpb24odm0sICJSb290Il9zLCBmdW5jdGlvbkNyZWF0ZVJvb3QsIDApOworICAg
IGFkZENvbnN0cnVjdGlibGVGdW5jdGlvbih2bSwgIkVsZW1lbnQiX3MsIGZ1bmN0aW9uQ3JlYXRl
RWxlbWVudCwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJnZXRFbGVtZW50Il9zLCBmdW5jdGlv
bkdldEVsZW1lbnQsIDEpOwogCi0gICAgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKHZtLCAiU2lt
cGxlT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZ2V0SGlkZGVuVmFsdWUiLCBmdW5jdGlvbkdldEhpZGRlblZhbHVlLCAxKTsKLSAg
ICBhZGRGdW5jdGlvbih2bSwgInNldEhpZGRlblZhbHVlIiwgZnVuY3Rpb25TZXRIaWRkZW5WYWx1
ZSwgMik7CisgICAgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKHZtLCAiU2ltcGxlT2JqZWN0Il9z
LCBmdW5jdGlvbkNyZWF0ZVNpbXBsZU9iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJn
ZXRIaWRkZW5WYWx1ZSJfcywgZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZSwgMSk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJzZXRIaWRkZW5WYWx1ZSJfcywgZnVuY3Rpb25TZXRIaWRkZW5WYWx1ZSwgMik7
CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgInNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrIiwg
ZnVuY3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjaywgMCk7Ci0gICAgYWRkRnVuY3Rp
b24odm0sICJzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdyIsIGZ1bmN0
aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3csIDApOworICAgIGFk
ZEZ1bmN0aW9uKHZtLCAic2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2siX3MsIGZ1bmN0aW9u
U2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2ssIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
c2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3ciX3MsIGZ1bmN0aW9uU2V0
R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3csIDApOwogCi0gICAgYWRkRnVu
Y3Rpb24odm0sICJmaW5kVHlwZUZvckV4cHJlc3Npb24iLCBmdW5jdGlvbkZpbmRUeXBlRm9yRXhw
cmVzc2lvbiwgMik7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJyZXR1cm5UeXBlRm9yIiwgZnVuY3Rp
b25SZXR1cm5UeXBlRm9yLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImZpbmRUeXBlRm9yRXhw
cmVzc2lvbiJfcywgZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24sIDIpOworICAgIGFkZEZ1
bmN0aW9uKHZtLCAicmV0dXJuVHlwZUZvciJfcywgZnVuY3Rpb25SZXR1cm5UeXBlRm9yLCAxKTsK
IAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmxhdHRlbkRpY3Rpb25hcnlPYmplY3QiLCBmdW5jdGlv
bkZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImZsYXR0
ZW5EaWN0aW9uYXJ5T2JqZWN0Il9zLCBmdW5jdGlvbkZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0LCAx
KTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMi
LCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzICwgMCk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQiLCBmdW5jdGlvbkhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCwgMik7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJiYXNpY0Jsb2NrRXhlY3V0aW9uQ291
bnQiLCBmdW5jdGlvbkJhc2ljQmxvY2tFeGVjdXRpb25Db3VudCwgMik7CisgICAgYWRkRnVuY3Rp
b24odm0sICJkdW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcyJfcywgZnVuY3Rpb25EdW1wQmFz
aWNCbG9ja0V4ZWN1dGlvblJhbmdlcyAsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkIl9zLCBmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCwgMik7Cisg
ICAgYWRkRnVuY3Rpb24odm0sICJiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQiX3MsIGZ1bmN0aW9u
QmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50LCAyKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5h
YmxlRGVidWdnZXJNb2RlV2hlbklkbGUiLCBmdW5jdGlvbkVuYWJsZURlYnVnZ2VyTW9kZVdoZW5J
ZGxlLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImRpc2FibGVEZWJ1Z2dlck1vZGVXaGVuSWRs
ZSIsIGZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlLCAwKTsKKyAgICBhZGRGdW5j
dGlvbih2bSwgImVuYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlIl9zLCBmdW5jdGlvbkVuYWJsZURl
YnVnZ2VyTW9kZVdoZW5JZGxlLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImRpc2FibGVEZWJ1
Z2dlck1vZGVXaGVuSWRsZSJfcywgZnVuY3Rpb25EaXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUs
IDApOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJkZWxldGVBbGxDb2RlV2hlbklkbGUiLCBmdW5j
dGlvbkRlbGV0ZUFsbENvZGVXaGVuSWRsZSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkZWxl
dGVBbGxDb2RlV2hlbklkbGUiX3MsIGZ1bmN0aW9uRGVsZXRlQWxsQ29kZVdoZW5JZGxlLCAwKTsK
IAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2xvYmFsT2JqZWN0Q291bnQiLCBmdW5jdGlvbkdsb2Jh
bE9iamVjdENvdW50LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImdsb2JhbE9iamVjdEZvck9i
amVjdCIsIGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9yT2JqZWN0LCAxKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImdsb2JhbE9iamVjdENvdW50Il9zLCBmdW5jdGlvbkdsb2JhbE9iamVjdENvdW50LCAw
KTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdsb2JhbE9iamVjdEZvck9iamVjdCJfcywgZnVuY3Rp
b25HbG9iYWxPYmplY3RGb3JPYmplY3QsIDEpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJnZXRH
ZXR0ZXJTZXR0ZXIiLCBmdW5jdGlvbkdldEdldHRlclNldHRlciwgMik7Ci0gICAgYWRkRnVuY3Rp
b24odm0sICJsb2FkR2V0dGVyRnJvbUdldHRlclNldHRlciIsIGZ1bmN0aW9uTG9hZEdldHRlckZy
b21HZXR0ZXJTZXR0ZXIsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQ3VzdG9tVGVz
dEdldHRlclNldHRlciIsIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlciwgMSk7
CisgICAgYWRkRnVuY3Rpb24odm0sICJnZXRHZXR0ZXJTZXR0ZXIiX3MsIGZ1bmN0aW9uR2V0R2V0
dGVyU2V0dGVyLCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImxvYWRHZXR0ZXJGcm9tR2V0dGVy
U2V0dGVyIl9zLCBmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVyLCAxKTsKKyAgICBh
ZGRGdW5jdGlvbih2bSwgImNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIiX3MsIGZ1bmN0aW9u
Q3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlciwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzIiwgZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGll
cywgMik7CisgICAgYWRkRnVuY3Rpb24odm0sICJkZWx0YUJldHdlZW5CdXR0ZXJmbGllcyJfcywg
ZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcywgMik7CiAgICAgCi0gICAgYWRkRnVuY3Rp
b24odm0sICJjdXJyZW50Q1BVVGltZSIsIGZ1bmN0aW9uQ3VycmVudENQVVRpbWUsIDApOwotICAg
IGFkZEZ1bmN0aW9uKHZtLCAidG90YWxHQ1RpbWUiLCBmdW5jdGlvblRvdGFsR0NUaW1lLCAwKTsK
KyAgICBhZGRGdW5jdGlvbih2bSwgImN1cnJlbnRDUFVUaW1lIl9zLCBmdW5jdGlvbkN1cnJlbnRD
UFVUaW1lLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInRvdGFsR0NUaW1lIl9zLCBmdW5jdGlv
blRvdGFsR0NUaW1lLCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAicGFyc2VDb3VudCIsIGZ1
bmN0aW9uUGFyc2VDb3VudCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJwYXJzZUNvdW50Il9z
LCBmdW5jdGlvblBhcnNlQ291bnQsIDApOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJpc1dhc21T
dXBwb3J0ZWQiLCBmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24o
dm0sICJtYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlIiwgZnVuY3Rpb25NYWtlMTZCaXRTdHJpbmdJ
ZlBvc3NpYmxlLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlzV2FzbVN1cHBvcnRlZCJfcywg
ZnVuY3Rpb25Jc1dhc21TdXBwb3J0ZWQsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFrZTE2
Qml0U3RyaW5nSWZQb3NzaWJsZSJfcywgZnVuY3Rpb25NYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxl
LCAxKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3Qi
LCBmdW5jdGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAxKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImdldENvbmN1cnJlbnRseSIsIGZ1bmN0aW9uR2V0Q29uY3VycmVudGx5LCAyKTsKKyAg
ICBhZGRGdW5jdGlvbih2bSwgImdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0Il9zLCBmdW5jdGlv
bkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdl
dENvbmN1cnJlbnRseSJfcywgZnVuY3Rpb25HZXRDb25jdXJyZW50bHksIDIpOwogCi0gICAgYWRk
RnVuY3Rpb24odm0sICJoYXNPd25MZW5ndGhQcm9wZXJ0eSIsIGZ1bmN0aW9uSGFzT3duTGVuZ3Ro
UHJvcGVydHksIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVqZWN0UHJvbWlzZUFzSGFuZGxl
ZCIsIGZ1bmN0aW9uUmVqZWN0UHJvbWlzZUFzSGFuZGxlZCwgMSk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJoYXNPd25MZW5ndGhQcm9wZXJ0eSJfcywgZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0
eSwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJyZWplY3RQcm9taXNlQXNIYW5kbGVkIl9zLCBm
dW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQsIDEpOwogCi0gICAgYWRkRnVuY3Rpb24odm0s
ICJzZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzIiwgZnVuY3Rpb25TZXRVc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImljdVZlcnNpb24iLCBmdW5jdGlvbklD
VVZlcnNpb24sIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaWN1SGVhZGVyVmVyc2lvbiIsIGZ1
bmN0aW9uSUNVSGVhZGVyVmVyc2lvbiwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJzZXRVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzIl9zLCBmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMs
IDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaWN1VmVyc2lvbiJfcywgZnVuY3Rpb25JQ1VWZXJz
aW9uLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImljdUhlYWRlclZlcnNpb24iX3MsIGZ1bmN0
aW9uSUNVSGVhZGVyVmVyc2lvbiwgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImFzc2VydEVu
YWJsZWQiLCBmdW5jdGlvbkFzc2VydEVuYWJsZWQsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
c2VjdXJpdHlBc3NlcnRFbmFibGVkIiwgZnVuY3Rpb25TZWN1cml0eUFzc2VydEVuYWJsZWQsIDAp
OwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXNhbkVuYWJsZWQiLCBmdW5jdGlvbkFzYW5FbmFibGVk
LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImFzc2VydEVuYWJsZWQiX3MsIGZ1bmN0aW9uQXNz
ZXJ0RW5hYmxlZCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJzZWN1cml0eUFzc2VydEVuYWJs
ZWQiX3MsIGZ1bmN0aW9uU2VjdXJpdHlBc3NlcnRFbmFibGVkLCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImFzYW5FbmFibGVkIl9zLCBmdW5jdGlvbkFzYW5FbmFibGVkLCAwKTsKIAotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiaXNNZW1vcnlMaW1pdGVkIiwgZnVuY3Rpb25Jc01lbW9yeUxpbWl0ZWQs
IDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAidXNlSklUIiwgZnVuY3Rpb25Vc2VKSVQsIDApOwot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNHaWdhY2FnZUVuYWJsZWQiLCBmdW5jdGlvbklzR2lnYWNh
Z2VFbmFibGVkLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlzTWVtb3J5TGltaXRlZCJfcywg
ZnVuY3Rpb25Jc01lbW9yeUxpbWl0ZWQsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAidXNlSklU
Il9zLCBmdW5jdGlvblVzZUpJVCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJpc0dpZ2FjYWdl
RW5hYmxlZCJfcywgZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCwgMCk7CiAKLSAgICBhZGRGdW5j
dGlvbih2bSwgInRvQ2FjaGVhYmxlRGljdGlvbmFyeSIsIGZ1bmN0aW9uVG9DYWNoZWFibGVEaWN0
aW9uYXJ5LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5
IiwgZnVuY3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlvbmFyeSwgMSk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJ0b0NhY2hlYWJsZURpY3Rpb25hcnkiX3MsIGZ1bmN0aW9uVG9DYWNoZWFibGVEaWN0aW9u
YXJ5LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5Il9z
LCBmdW5jdGlvblRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5LCAxKTsKIAotICAgIGFkZEZ1bmN0aW9u
KHZtLCAiaXNQcml2YXRlU3ltYm9sIiwgZnVuY3Rpb25Jc1ByaXZhdGVTeW1ib2wsIDEpOwotICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEFuZFJlc2V0UGFzRGVidWdTcGVjdHJ1bSIsIGZ1bmN0aW9u
RHVtcEFuZFJlc2V0UGFzRGVidWdTcGVjdHJ1bSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJp
c1ByaXZhdGVTeW1ib2wiX3MsIGZ1bmN0aW9uSXNQcml2YXRlU3ltYm9sLCAxKTsKKyAgICBhZGRG
dW5jdGlvbih2bSwgImR1bXBBbmRSZXNldFBhc0RlYnVnU3BlY3RydW0iX3MsIGZ1bmN0aW9uRHVt
cEFuZFJlc2V0UGFzRGVidWdTcGVjdHJ1bSwgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgIm1v
bm90b25pY1RpbWVOb3ciLCBmdW5jdGlvbk1vbm90b25pY1RpbWVOb3csIDApOwotICAgIGFkZEZ1
bmN0aW9uKHZtLCAid2FsbFRpbWVOb3ciLCBmdW5jdGlvbldhbGxUaW1lTm93LCAwKTsKLSAgICBh
ZGRGdW5jdGlvbih2bSwgImFwcHJveGltYXRlVGltZU5vdyIsIGZ1bmN0aW9uQXBwcm94aW1hdGVU
aW1lTm93LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgIm1vbm90b25pY1RpbWVOb3ciX3MsIGZ1
bmN0aW9uTW9ub3RvbmljVGltZU5vdywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJ3YWxsVGlt
ZU5vdyJfcywgZnVuY3Rpb25XYWxsVGltZU5vdywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJh
cHByb3hpbWF0ZVRpbWVOb3ciX3MsIGZ1bmN0aW9uQXBwcm94aW1hdGVUaW1lTm93LCAwKTsKIAog
I2lmIEVOQUJMRShKSVQpCi0gICAgYWRkRnVuY3Rpb24odm0sICJqaXRTaXplU3RhdGlzdGljcyIs
IGZ1bmN0aW9uSklUU2l6ZVN0YXRpc3RpY3MsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVt
cEpJVFNpemVTdGF0aXN0aWNzIiwgZnVuY3Rpb25EdW1wSklUU2l6ZVN0YXRpc3RpY3MsIDApOwot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRKSVRTaXplU3RhdGlzdGljcyIsIGZ1bmN0aW9uUmVz
ZXRKSVRTaXplU3RhdGlzdGljcywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJqaXRTaXplU3Rh
dGlzdGljcyJfcywgZnVuY3Rpb25KSVRTaXplU3RhdGlzdGljcywgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJkdW1wSklUU2l6ZVN0YXRpc3RpY3MiX3MsIGZ1bmN0aW9uRHVtcEpJVFNpemVTdGF0
aXN0aWNzLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInJlc2V0SklUU2l6ZVN0YXRpc3RpY3Mi
X3MsIGZ1bmN0aW9uUmVzZXRKSVRTaXplU3RhdGlzdGljcywgMCk7CiAjZW5kaWYKIAotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZW5zdXJlQXJyYXlTdG9yYWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0
b3JhZ2UsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5zdXJlQXJyYXlTdG9yYWdlIl9zLCBm
dW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgMSk7CiAKICAgICBtX29iamVjdERvaW5nU2lkZUVm
ZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZUlELnNldCh2bSwgdGhpcywg
T2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpKTsKIH0KIAotdm9pZCBKU0RvbGxh
clZNOjphZGRGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IGNoYXIqIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVu
dHMpCit2b2lkIEpTRG9sbGFyVk06OmFkZEZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQVNDSUlMaXRlcmFsIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9u
LCB1bnNpZ25lZCBhcmd1bWVudHMpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCBuYW1lKTsKICAgICBwdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHMsIGlkZW50aWZpZXIuc3RyaW5nKCksIGZ1
bmN0aW9uKSwganNEb2xsYXJWTVByb3BlcnR5QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgSlNEb2xs
YXJWTTo6YWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVu
c2lnbmVkIGFyZ3VtZW50cykKK3ZvaWQgSlNEb2xsYXJWTTo6YWRkQ29uc3RydWN0aWJsZUZ1bmN0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQVNDSUlMaXRlcmFsIG5h
bWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBJZGVudGlmaWVyIGlkZW50aWZp
ZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvSlNEb2xsYXJWTS5oCmluZGV4IDAzZmUwYTk2MDNlNC4uMTBkNzg3NmFhNTk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmgKQEAgLTcxLDggKzcxLDgg
QEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0gICAg
dm9pZCBhZGRGdW5jdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgY2hhciogbmFtZSwg
TmF0aXZlRnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBhZGRDb25zdHJ1
Y3RpYmxlRnVuY3Rpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IGNoYXIqIG5hbWUsIE5h
dGl2ZUZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpOworICAgIHZvaWQgYWRkRnVuY3Rpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCosIEFTQ0lJTGl0ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiwg
dW5zaWduZWQgYXJndW1lbnRzKTsKKyAgICB2b2lkIGFkZENvbnN0cnVjdGlibGVGdW5jdGlvbihW
TSYsIEpTR2xvYmFsT2JqZWN0KiwgQVNDSUlMaXRlcmFsIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uLCB1
bnNpZ25lZCBhcmd1bWVudHMpOwogCiAgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcAppbmRleCBj
NTQxYjU5NDY2NjguLjRkODQwZTliN2ZhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIEpTV2Vi
QXNzZW1ibHk6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgIEpTQ19UT19TVFJJ
TkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKCktPmNvbXBpbGVTdHJlYW1pbmcpCi0gICAgICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29tcGlsZVN0cmVhbWluZyIsIHdlYkFz
c2VtYmx5Q29tcGlsZVN0cmVhbWluZ0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PigwKSk7CisgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
Y29tcGlsZVN0cmVhbWluZyJfcywgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nQ29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5pbnN0YW50aWF0ZVN0cmVhbWluZykKLSAgICAgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbnN0YW50aWF0ZVN0cmVh
bWluZyIsIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVTdHJlYW1pbmdDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oMCkpOworICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImluc3RhbnRpYXRlU3RyZWFtaW5nIl9zLCB3ZWJBc3NlbWJseUluc3Rh
bnRpYXRlU3RyZWFtaW5nQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApKTsK
IH0KIAogSlNXZWJBc3NlbWJseTo6SlNXZWJBc3NlbWJseShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHAK
aW5kZXggYTM1ZjJhOWFmMjk0Li5hZjk4MDk3MjgwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktl
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kv
TGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wgQ0RN
U2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoVWludDhBcnJheSogcmF3S2V5c0RhdGEsIFJlZlB0cjxV
aW50OEFycmF5PiYgbmV4CiAKICAgICAgICAgICAgIGF1dG8ga2V5T2JqZWN0ID0gYXNPYmplY3Qo
a2V5VmFsdWUpOwogCi0gICAgICAgICAgICBhdXRvIGdldFN0cmluZ1Byb3BlcnR5ID0gWyZzY29w
ZSwgJmxleGljYWxHbG9iYWxPYmplY3QsICZrZXlPYmplY3QsICZ2bV0oY29uc3QgY2hhciogbmFt
ZSkgLT4gU3RyaW5nIHsKKyAgICAgICAgICAgIGF1dG8gZ2V0U3RyaW5nUHJvcGVydHkgPSBbJnNj
b3BlLCAmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmtleU9iamVjdCwgJnZtXShBU0NJSUxpdGVyYWwg
bmFtZSkgLT4gU3RyaW5nIHsKICAgICAgICAgICAgICAgICBhdXRvIHZhbHVlID0ga2V5T2JqZWN0
LT5nZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG5h
bWUpKTsKICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkgfHwgIXZhbHVlLmlz
U3RyaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNDUsMjUgKzE0
NSwyNSBAQCBib29sIENETVNlc3Npb25DbGVhcktleTo6dXBkYXRlKFVpbnQ4QXJyYXkqIHJhd0tl
eXNEYXRhLCBSZWZQdHI8VWludDhBcnJheT4mIG5leAogICAgICAgICAgICAgICAgIHJldHVybiBz
dHJpbmc7CiAgICAgICAgICAgICB9OwogCi0gICAgICAgICAgICBhdXRvIGFsZ29yaXRobSA9IGdl
dFN0cmluZ1Byb3BlcnR5KCJhbGciKTsKKyAgICAgICAgICAgIGF1dG8gYWxnb3JpdGhtID0gZ2V0
U3RyaW5nUHJvcGVydHkoImFsZyJfcyk7CiAgICAgICAgICAgICBpZiAoIWVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGFsZ29yaXRobSwgImExMjhrdyIpKSB7CiAgICAgICAgICAgICAgICAg
TE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoJXApIC0gZmFpbGVkOiBhbGdv
cml0aG0gdW5zdXBwb3J0ZWQiLCB0aGlzKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBrZXlUeXBlID0gZ2V0U3RyaW5nUHJvcGVy
dHkoImt0eSIpOworICAgICAgICAgICAgYXV0byBrZXlUeXBlID0gZ2V0U3RyaW5nUHJvcGVydHko
Imt0eSJfcyk7CiAgICAgICAgICAgICBpZiAoIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGtleVR5cGUsICJvY3QiKSkgewogICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Np
b25DbGVhcktleTo6dXBkYXRlKCVwKSAtIGZhaWxlZDoga2V5VHlwZSB1bnN1cHBvcnRlZCIsIHRo
aXMpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBhdXRvIGtleUlkID0gZ2V0U3RyaW5nUHJvcGVydHkoImtpZCIpOworICAgICAgICAgICAg
YXV0byBrZXlJZCA9IGdldFN0cmluZ1Byb3BlcnR5KCJraWQiX3MpOwogICAgICAgICAgICAgaWYg
KGtleUlkLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Np
b25DbGVhcktleTo6dXBkYXRlKCVwKSAtIGZhaWxlZDoga2V5SWQgbWlzc2luZyBvciBlbXB0eSIs
IHRoaXMpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBhdXRvIHJhd0tleURhdGEgPSBnZXRTdHJpbmdQcm9wZXJ0eSgiayIpOworICAgICAg
ICAgICAgYXV0byByYXdLZXlEYXRhID0gZ2V0U3RyaW5nUHJvcGVydHkoImsiX3MpOwogICAgICAg
ICAgICAgaWYgKHJhd0tleURhdGEuaXNFbXB0eSgpKSAgewogICAgICAgICAgICAgICAgIExPRyhN
ZWRpYSwgIkNETVNlc3Npb25DbGVhcktleTo6dXBkYXRlKCVwKSAtIGZhaWxlZDoga2V5IG1pc3Np
bmcgb3IgZW1wdHkiLCB0aGlzKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0YmluZGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5jcHAKaW5kZXggMGJmNzRlMTI4NTQ0Li4yYjQ3OTk1YmNm
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0YmluZGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0YmluZGluZ3MuY3BwCkBAIC0zODAsNyArMzgw
LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAKICAgICAgICAg
TXlPYmplY3QgKm15T2JqZWN0ID0gKE15T2JqZWN0ICopTlBOX0NyZWF0ZU9iamVjdCAobXlGdW5j
dGlvblB0cnMpOwogICAgICAgICAKLSAgICAgICAgZ2xvYmFsLnB1dChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3QsICJteUludGVy
ZmFjZSIpLCBJbnN0YW5jZTo6Y3JlYXRlUnVudGltZU9iamVjdChJbnN0YW5jZTo6Q0xhbmd1YWdl
LCAodm9pZCAqKW15T2JqZWN0KSk7CisgICAgICAgIGdsb2JhbC5wdXQobGV4aWNhbEdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAibXlJbnRl
cmZhY2UiX3MpLCBJbnN0YW5jZTo6Y3JlYXRlUnVudGltZU9iamVjdChJbnN0YW5jZTo6Q0xhbmd1
YWdlLCAodm9pZCAqKW15T2JqZWN0KSk7CiAgICAgICAgIAogICAgICAgICBmb3IgKGludCBpID0g
MTsgaSA8IGFyZ2M7IGkrKykgewogICAgICAgICAgICAgY29uc3QgY2hhciAqY29kZSA9IHJlYWRK
YXZhU2NyaXB0RnJvbUZpbGUoYXJndltpXSk7CkBAIC0zOTYsNyArMzk2LDcgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBt
c2cgPSBjc3RyaW5nLmRhdGEoKTsKICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVubyA9IC0x
OwogICAgICAgICAgICAgICAgICAgICBpZiAoZXhWYWwudHlwZSgpID09IE9iamVjdFR5cGUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlIGxpbmVWYWwgPSBPYmplY3Q6OmR5bmFtaWND
YXN0KGV4VmFsKS5nZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAibGluZSIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlIGxpbmVWYWwgPSBPYmplY3Q6OmR5bmFtaWNDYXN0KGV4VmFsKS5nZXQobGV4aWNhbEds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
bGluZSJfcykpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVWYWwudHlwZSgpID09
IE51bWJlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZW5vID0gaW50KGxp
bmVWYWwudG9OdW1iZXIobGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdGJpbmRpbmdzLm1tIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5tbQppbmRleCAxZDYxYzNjNDVmM2Yu
LmM2MmM0ZjljOGRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5k
aW5ncy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdGJpbmRpbmdzLm1tCkBAIC0y
MzgsNyArMjM4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgICAg
ICAgICBhdXRvIG15SW50ZXJmYWNlID0gYWRvcHROUyhbW015Rmlyc3RJbnRlcmZhY2UgYWxsb2Nd
IGluaXRdKTsKIAotICAgICAgICAgICAgZ2xvYmFsLnB1dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3QsICJteUludGVyZmFjZSIp
LCBJbnN0YW5jZTo6Y3JlYXRlUnVudGltZU9iamVjdChJbnN0YW5jZTo6T2JqZWN0aXZlQ0xhbmd1
YWdlLCAodm9pZCAqKW15SW50ZXJmYWNlLmdldCgpKSk7CisgICAgICAgICAgICBnbG9iYWwucHV0
KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2Jh
bE9iamVjdCwgIm15SW50ZXJmYWNlIl9zKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3Qo
SW5zdGFuY2U6Ok9iamVjdGl2ZUNMYW5ndWFnZSwgKHZvaWQgKilteUludGVyZmFjZS5nZXQoKSkp
OwogCiAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykgewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKmNvZGUgPSByZWFkSmF2YVNjcmlwdEZyb21GaWxlKGFyZ3Zb
aV0pOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm1zZyA9IGV4VmFsLnRvU3RyaW5nKGxleGlj
YWxHbG9iYWxPYmplY3QpLmFzY2lpKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGlu
ZW5vID0gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhWYWwudHlwZSgpID09IE9i
amVjdFR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSBsaW5lVmFsID0g
T2JqZWN0OjpkeW5hbWljQ2FzdChleFZhbCkuZ2V0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgImxpbmUiKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWUgbGluZVZhbCA9IE9iamVjdDo6ZHluYW1pY0Nhc3Qo
ZXhWYWwpLmdldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxl
eGljYWxHbG9iYWxPYmplY3QsICJsaW5lIl9zKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGxpbmVWYWwudHlwZSgpID09IE51bWJlclR5cGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmVubyA9IGludChsaW5lVmFsLnRvTnVtYmVyKGxleGljYWxHbG9iYWxP
YmplY3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKaW5kZXggOWQ2ZjQzMDM2NTk4Li41MmE4YTJjYTRhMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4+IG5v
cm1hbGl6ZUNyeXB0b0FsCiAKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxTdHJpbmc+
KGFsZ29yaXRobUlkZW50aWZpZXIpKSB7CiAgICAgICAgIGF1dG8gbmV3UGFyYW1zID0gU3Ryb25n
PEpTT2JqZWN0Pih2bSwgY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKSk7Ci0gICAgICAgIG5l
d1BhcmFtcy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSIp
LCBqc1N0cmluZyh2bSwgc3RkOjpnZXQ8U3RyaW5nPihhbGdvcml0aG1JZGVudGlmaWVyKSkpOwor
ICAgICAgICBuZXdQYXJhbXMtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgIm5hbWUiX3MpLCBqc1N0cmluZyh2bSwgc3RkOjpnZXQ8U3RyaW5nPihhbGdvcml0aG1JZGVu
dGlmaWVyKSkpOwogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMoc3RhdGUsIG5ld1BhcmFtcywgb3BlcmF0aW9uKTsKICAgICB9CkBAIC0y
NDEsMTEgKzI0MSwxMSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+PiBub3JtYWxpemVDcnlwdG9BbAogICAgICAgICBzd2l0Y2gg
KCppZGVudGlmaWVyKSB7CiAgICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
RUNESDogewogICAgICAgICAgICAgLy8gUmVtb3ZlIHRoaXMgaGFjayBvbmNlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMzMgaXMgZml4ZWQuCi0gICAgICAgICAg
ICBKU1ZhbHVlIG5hbWVWYWx1ZSA9IHZhbHVlLmdldCgpLT5nZXQoJnN0YXRlLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAibmFtZSIpKTsKLSAgICAgICAgICAgIEpTVmFsdWUgcHVibGljVmFs
dWUgPSB2YWx1ZS5nZXQoKS0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
InB1YmxpYyIpKTsKKyAgICAgICAgICAgIEpTVmFsdWUgbmFtZVZhbHVlID0gdmFsdWUuZ2V0KCkt
PmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSk7CisgICAg
ICAgICAgICBKU1ZhbHVlIHB1YmxpY1ZhbHVlID0gdmFsdWUuZ2V0KCktPmdldCgmc3RhdGUsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwdWJsaWMiX3MpKTsKICAgICAgICAgICAgIEpTT2Jq
ZWN0KiBuZXdWYWx1ZSA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSk7Ci0gICAgICAgICAg
ICBuZXdWYWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFt
ZSIpLCBuYW1lVmFsdWUpOwotICAgICAgICAgICAgbmV3VmFsdWUtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInB1YmxpY0tleSIpLCBwdWJsaWNWYWx1ZSk7CisgICAg
ICAgICAgICBuZXdWYWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAibmFtZSJfcyksIG5hbWVWYWx1ZSk7CisgICAgICAgICAgICBuZXdWYWx1ZS0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicHVibGljS2V5Il9zKSwgcHVibGljVmFs
dWUpOwogCiAgICAgICAgICAgICBhdXRvIHBhcmFtcyA9IGNvbnZlcnREaWN0aW9uYXJ5PENyeXB0
b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXM+KHN0YXRlLCBuZXdWYWx1ZSk7CiAgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2Vw
dGlvbkVycm9yIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggZmZiYmRiOGVlNzFlLi40YjZkMGU1YjQ0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtNzY0Myw3ICs3NjQzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVQYWdlU2NhbGVGYWN0b3JKU1Byb3BlcnR5KCkKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJwYWdlU2NhbGVG
YWN0b3IiLCBKU0M6OmpzTnVtYmVyKHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpKSk7CisgICAgc2V0
Q29udHJvbGxlckpTUHJvcGVydHkoInBhZ2VTY2FsZUZhY3RvciJfcywgSlNDOjpqc051bWJlcihw
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKSkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uSlNQcm9wZXJ0eSgpCkBAIC03
NjUzLDEwICs3NjUzLDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlVXNlc0xUUlVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25KU1Byb3BlcnR5KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYm9vbCB1c2VzTFRSVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblByb3BlcnR5ID0g
cGFnZS0+dXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpID09IFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb246OkxUUjsKLSAgICBzZXRDb250cm9sbGVySlNQcm9wZXJ0eSgidXNlc0xUUlVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24iLCBKU0M6OmpzQm9vbGVhbih1c2VzTFRSVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvblByb3BlcnR5KSk7CisgICAgc2V0Q29udHJvbGxlckpTUHJv
cGVydHkoInVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIl9zLCBKU0M6OmpzQm9v
bGVhbih1c2VzTFRSVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblByb3BlcnR5KSk7CiB9CiAK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlckpTUHJvcGVydHkoY29uc3QgY2hh
ciogcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUgcHJvcGVydHlWYWx1ZSkKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlckpTUHJvcGVydHkoQVNDSUlMaXRlcmFsIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlIHByb3BlcnR5VmFsdWUpCiB7CiAgICAgc2V0dXBBbmRDYWxsSlMo
W3RoaXMsIHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZV0oSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgU2Ny
aXB0Q29udHJvbGxlciYsIERPTVdyYXBwZXJXb3JsZCYpIHsKICAgICAgICAgYXV0byYgdm0gPSBn
bG9iYWxPYmplY3Qudm0oKTsKQEAgLTc4NjQsMTIgKzc4NjQsMTIgQEAgU3RyaW5nIEhUTUxNZWRp
YUVsZW1lbnQ6OmdldEN1cnJlbnRNZWRpYUNvbnRyb2xzU3RhdHVzKCkKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xzTWF4aW11bVJpZ2h0Q29udGFpbmVyQnV0dG9uQ291
bnRPdmVycmlkZShzaXplX3QgY291bnQpCiB7Ci0gICAgc2V0Q29udHJvbGxlckpTUHJvcGVydHko
Im1heGltdW1SaWdodENvbnRhaW5lckJ1dHRvbkNvdW50T3ZlcnJpZGUiLCBKU0M6OmpzTnVtYmVy
KGNvdW50KSk7CisgICAgc2V0Q29udHJvbGxlckpTUHJvcGVydHkoIm1heGltdW1SaWdodENvbnRh
aW5lckJ1dHRvbkNvdW50T3ZlcnJpZGUiX3MsIEpTQzo6anNOdW1iZXIoY291bnQpKTsKIH0KIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xzSGlkZVBsYXliYWNrUmF0ZXMo
Ym9vbCBoaWRlUGxheWJhY2tSYXRlcykKIHsKLSAgICBzZXRDb250cm9sbGVySlNQcm9wZXJ0eSgi
aGlkZVBsYXliYWNrUmF0ZXMiLCBKU0M6OmpzQm9vbGVhbihoaWRlUGxheWJhY2tSYXRlcykpOwor
ICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJoaWRlUGxheWJhY2tSYXRlcyJfcywgSlNDOjpq
c0Jvb2xlYW4oaGlkZVBsYXliYWNrUmF0ZXMpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIEhU
TUxNZWRpYUVsZW1lbnQ6OmZpbGVTaXplKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKaW5kZXggMDdjY2RiNjI0ZmI3Li40NWJiZDliOTFmMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05NjMsNyArOTYzLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgdXBkYXRlUGFnZVNjYWxlRmFjdG9ySlNQcm9wZXJ0eSgpOwogICAgIHZvaWQg
dXBkYXRlVXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25KU1Byb3BlcnR5KCk7Ci0g
ICAgdm9pZCBzZXRDb250cm9sbGVySlNQcm9wZXJ0eShjb25zdCBjaGFyKiwgSlNDOjpKU1ZhbHVl
KTsKKyAgICB2b2lkIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KEFTQ0lJTGl0ZXJhbCwgSlNDOjpK
U1ZhbHVlKTsKIAogICAgIHZvaWQgYWRkQmVoYXZpb3JSZXN0cmljdGlvbnNPbkVuZElmTmVjZXNz
YXJ5KCk7CiAgICAgdm9pZCBoYW5kbGVTZWVrVG9QbGF5YmFja1Bvc2l0aW9uKGRvdWJsZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CmluZGV4IGQzNmE3MTA4ODBjNy4uMzcyZmNkNDU1YWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcApAQCAtMTY5LDcgKzE2OSw3
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjphZGRTZWxmVG9HbG9iYWxPYmplY3RJbldv
cmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qu
dm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0gICAgZ2xvYmFsT2JqZWN0LnB1dERpcmVjdCh2bSwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSW5zcGVjdG9yRnJvbnRlbmRIb3N0Iiks
IHRvSlM8SURMSW50ZXJmYWNlPEluc3BlY3RvckZyb250ZW5kSG9zdD4+KGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LCAqdGhpcykpOworICAgIGdsb2JhbE9iamVjdC5wdXREaXJlY3Qodm0sIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkluc3BlY3RvckZyb250ZW5kSG9zdCJfcyks
IHRvSlM8SURMSW50ZXJmYWNlPEluc3BlY3RvckZyb250ZW5kSG9zdD4+KGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LCAqdGhpcykpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24o
KSkpCiAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbigmZ2xvYmFsT2JqZWN0LCBzY29wZS5leGNlcHRp
b24oKSk7CiB9CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0KICAg
ICBBU1NFUlQobV9mcm9udGVuZFBhZ2UpOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2Zy
b250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZ2xvYmFsT2JqZWN0KGRlYnVnZ2VyV29y
bGQoKSk7CiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKLSAgICBhdXRvIHZhbHVl
ID0gZ2xvYmFsT2JqZWN0LmdldCgmZ2xvYmFsT2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJJbnNwZWN0b3JGcm9udGVuZEFQSSIpKTsKKyAgICBhdXRvIHZhbHVlID0gZ2xv
YmFsT2JqZWN0LmdldCgmZ2xvYmFsT2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJJbnNwZWN0b3JGcm9udGVuZEFQSSJfcykpOwogICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAg
QVNTRVJUKHZhbHVlLmlzT2JqZWN0KCkpOwogICAgIGF1dG8qIGZyb250ZW5kQVBJT2JqZWN0ID0g
YXNPYmplY3QodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkluamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5q
ZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCA0MWYzM2IxMjUxZWIuLjcwYzM0MTIwMWM0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9zdC5j
cHAKQEAgLTY2LDggKzY2LDggQEAgSlNWYWx1ZSBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5
cGUoSlNHbG9iYWxPYmplY3QqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiBzdGF0aWMgSlNPYmplY3Qq
IGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywg
Y29uc3QgU3RyaW5nJiBuYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8qIG9iamVjdCA9
IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSIpLCBqc1N0cmluZyh2bSwgbmFtZSkpOwot
ICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFs
dWUiKSwgdmFsdWUpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAibmFtZSJfcyksIGpzU3RyaW5nKHZtLCBuYW1lKSk7CisgICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSJfcyksIHZhbHVl
KTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCkBAIC03NSw1MiArNzUsNTIgQEAgc3RhdGljIEpT
T2JqZWN0KiBjb25zdHJ1Y3RJbnRlcm5hbFByb3BlcnR5KFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGV4ZWMsIGNvbnN0IFMKIHN0YXRpYyBKU09iamVjdCogb2JqZWN0Rm9yUGF5bWVudE9wdGlvbnMo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgUGF5bWVudE9wdGlvbnMmIHBheW1l
bnRPcHRpb25zKQogewogICAgIGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4
ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAicmVxdWVzdFBheWVyTmFtZSIpLCBqc0Jvb2xlYW4ocGF5bWVudE9wdGlvbnMucmVxdWVzdFBh
eWVyTmFtZSkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAicmVxdWVzdFBheWVyRW1haWwiKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJl
cXVlc3RQYXllckVtYWlsKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJyZXF1ZXN0UGF5ZXJQaG9uZSIpLCBqc0Jvb2xlYW4ocGF5bWVudE9w
dGlvbnMucmVxdWVzdFBheWVyUGhvbmUpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RTaGlwcGluZyIpLCBqc0Jvb2xlYW4ocGF5
bWVudE9wdGlvbnMucmVxdWVzdFNoaXBwaW5nKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaGlwcGluZ1R5cGUiKSwganNOb250cml2aWFs
U3RyaW5nKHZtLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhwYXltZW50T3B0aW9ucy5zaGlw
cGluZ1R5cGUpKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJyZXF1ZXN0UGF5ZXJOYW1lIl9zKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25z
LnJlcXVlc3RQYXllck5hbWUpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RQYXllckVtYWlsIl9zKSwganNCb29sZWFuKHBheW1l
bnRPcHRpb25zLnJlcXVlc3RQYXllckVtYWlsKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJyZXF1ZXN0UGF5ZXJQaG9uZSJfcyksIGpzQm9v
bGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJQaG9uZSkpOworICAgIG9iamVjdC0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVxdWVzdFNoaXBwaW5nIl9z
KSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RTaGlwcGluZykpOworICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hpcHBpbmdUeXBl
Il9zKSwganNOb250cml2aWFsU3RyaW5nKHZtLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhw
YXltZW50T3B0aW9ucy5zaGlwcGluZ1R5cGUpKSk7CiAgICAgcmV0dXJuIG9iamVjdDsKIH0KIAog
c3RhdGljIEpTT2JqZWN0KiBvYmplY3RGb3JQYXltZW50Q3VycmVuY3lBbW91bnQoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgUGF5bWVudEN1cnJlbmN5QW1vdW50JiBwYXltZW50
Q3VycmVuY3lBbW91bnQpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZXhlYyk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJjdXJyZW5jeSIpLCBqc1N0cmluZyh2bSwgcGF5bWVudEN1cnJlbmN5QW1vdW50LmN1
cnJlbmN5KSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJ2YWx1ZSIpLCBqc1N0cmluZyh2bSwgcGF5bWVudEN1cnJlbmN5QW1vdW50LnZhbHVl
KSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJjdXJyZW5jeSJfcyksIGpzU3RyaW5nKHZtLCBwYXltZW50Q3VycmVuY3lBbW91bnQuY3VycmVu
Y3kpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInZhbHVlIl9zKSwganNTdHJpbmcodm0sIHBheW1lbnRDdXJyZW5jeUFtb3VudC52YWx1ZSkp
OwogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIHN0YXRpYyBKU09iamVjdCogb2JqZWN0Rm9yUGF5
bWVudEl0ZW0oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgUGF5bWVudEl0ZW0m
IHBheW1lbnRJdGVtKQogewogICAgIGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAibGFiZWwiKSwganNTdHJpbmcodm0sIHBheW1lbnRJdGVtLmxhYmVsKSk7Ci0gICAgb2Jq
ZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJhbW91bnQiKSwg
b2JqZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KHZtLCBleGVjLCBwYXltZW50SXRlbS5hbW91
bnQpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInBlbmRpbmciKSwganNCb29sZWFuKHBheW1lbnRJdGVtLnBlbmRpbmcpKTsKKyAgICBvYmpl
Y3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxhYmVsIl9zKSwg
anNTdHJpbmcodm0sIHBheW1lbnRJdGVtLmxhYmVsKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJhbW91bnQiX3MpLCBvYmplY3RGb3JQYXlt
ZW50Q3VycmVuY3lBbW91bnQodm0sIGV4ZWMsIHBheW1lbnRJdGVtLmFtb3VudCkpOworICAgIG9i
amVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicGVuZGluZyJf
cyksIGpzQm9vbGVhbihwYXltZW50SXRlbS5wZW5kaW5nKSk7CiAgICAgcmV0dXJuIG9iamVjdDsK
IH0KIAogc3RhdGljIEpTT2JqZWN0KiBvYmplY3RGb3JQYXltZW50U2hpcHBpbmdPcHRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgUGF5bWVudFNoaXBwaW5nT3B0aW9uJiBw
YXltZW50U2hpcHBpbmdPcHRpb24pCiB7CiAgICAgYXV0byogb2JqZWN0ID0gY29uc3RydWN0RW1w
dHlPYmplY3QoZXhlYyk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJpZCIpLCBqc1N0cmluZyh2bSwgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmlk
KSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJsYWJlbCIpLCBqc1N0cmluZyh2bSwgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmxhYmVsKSk7Ci0g
ICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJhbW91
bnQiKSwgb2JqZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KHZtLCBleGVjLCBwYXltZW50U2hp
cHBpbmdPcHRpb24uYW1vdW50KSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJzZWxlY3RlZCIpLCBqc0Jvb2xlYW4ocGF5bWVudFNoaXBwaW5n
T3B0aW9uLnNlbGVjdGVkKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJpZCJfcyksIGpzU3RyaW5nKHZtLCBwYXltZW50U2hpcHBpbmdPcHRp
b24uaWQpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImxhYmVsIl9zKSwganNTdHJpbmcodm0sIHBheW1lbnRTaGlwcGluZ09wdGlvbi5sYWJl
bCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiYW1vdW50Il9zKSwgb2JqZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KHZtLCBleGVjLCBw
YXltZW50U2hpcHBpbmdPcHRpb24uYW1vdW50KSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzZWxlY3RlZCJfcyksIGpzQm9vbGVhbihwYXlt
ZW50U2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQpKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCiBz
dGF0aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnREZXRhaWxzTW9kaWZpZXIoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZXhlYywgY29uc3QgUGF5bWVudERldGFpbHNNb2RpZmllciYgbW9kaWZp
ZXIpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7Ci0g
ICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzdXBw
b3J0ZWRNZXRob2RzIiksIGpzU3RyaW5nKHZtLCBtb2RpZmllci5zdXBwb3J0ZWRNZXRob2RzKSk7
CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJz
dXBwb3J0ZWRNZXRob2RzIl9zKSwganNTdHJpbmcodm0sIG1vZGlmaWVyLnN1cHBvcnRlZE1ldGhv
ZHMpKTsKICAgICBpZiAobW9kaWZpZXIudG90YWwpCi0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidG90YWwiKSwgb2JqZWN0Rm9yUGF5bWVu
dEl0ZW0odm0sIGV4ZWMsICptb2RpZmllci50b3RhbCkpOworICAgICAgICBvYmplY3QtPnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInRvdGFsIl9zKSwgb2JqZWN0Rm9y
UGF5bWVudEl0ZW0odm0sIGV4ZWMsICptb2RpZmllci50b3RhbCkpOwogICAgIGlmICghbW9kaWZp
ZXIuYWRkaXRpb25hbERpc3BsYXlJdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byogYWRk
aXRpb25hbERpc3BsYXlJdGVtcyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cik7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtb2RpZmllci5hZGRpdGlvbmFsRGlz
cGxheUl0ZW1zLnNpemUoKTsgKytpKQogICAgICAgICAgICAgYWRkaXRpb25hbERpc3BsYXlJdGVt
cy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2JqZWN0Rm9yUGF5bWVudEl0ZW0odm0sIGV4ZWMs
IG1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5SXRlbXNbaV0pKTsKLSAgICAgICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJhZGRpdGlvbmFsRGlzcGxh
eUl0ZW1zIiksIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMpOworICAgICAgICBvYmplY3QtPnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFkZGl0aW9uYWxEaXNwbGF5SXRl
bXMiX3MpLCBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zKTsKICAgICB9CiAgICAgcmV0dXJuIG9iamVj
dDsKIH0KQEAgLTEyOCwyNSArMTI4LDI1IEBAIHN0YXRpYyBKU09iamVjdCogb2JqZWN0Rm9yUGF5
bWVudERldGFpbHNNb2RpZmllcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBjCiBzdGF0
aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnREZXRhaWxzKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGV4ZWMsIGNvbnN0IFBheW1lbnREZXRhaWxzSW5pdCYgcGF5bWVudERldGFpbHMpCiB7CiAg
ICAgYXV0byogb2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7Ci0gICAgb2JqZWN0
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJpZCIpLCBqc1N0cmlu
Zyh2bSwgcGF5bWVudERldGFpbHMuaWQpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInRvdGFsIiksIG9iamVjdEZvclBheW1lbnRJdGVtKHZt
LCBleGVjLCBwYXltZW50RGV0YWlscy50b3RhbCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQiX3MpLCBqc1N0cmluZyh2bSwgcGF5bWVu
dERldGFpbHMuaWQpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgInRvdGFsIl9zKSwgb2JqZWN0Rm9yUGF5bWVudEl0ZW0odm0sIGV4ZWMsIHBh
eW1lbnREZXRhaWxzLnRvdGFsKSk7CiAgICAgaWYgKHBheW1lbnREZXRhaWxzLmRpc3BsYXlJdGVt
cykgewogICAgICAgICBhdXRvKiBkaXNwbGF5SXRlbXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4
ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF5bWVudERl
dGFpbHMuZGlzcGxheUl0ZW1zLT5zaXplKCk7ICsraSkKICAgICAgICAgICAgIGRpc3BsYXlJdGVt
cy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2JqZWN0Rm9yUGF5bWVudEl0ZW0odm0sIGV4ZWMs
IHBheW1lbnREZXRhaWxzLmRpc3BsYXlJdGVtcy0+YXQoaSkpKTsKLSAgICAgICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJkaXNwbGF5SXRlbXMiKSwg
ZGlzcGxheUl0ZW1zKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJkaXNwbGF5SXRlbXMiX3MpLCBkaXNwbGF5SXRlbXMpOwogICAgIH0K
ICAgICBpZiAocGF5bWVudERldGFpbHMuc2hpcHBpbmdPcHRpb25zKSB7CiAgICAgICAgIGF1dG8q
IHNoaXBwaW5nT3B0aW9ucyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cik7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXltZW50RGV0YWlscy5zaGlwcGluZ09w
dGlvbnMtPnNpemUoKTsgKytpKQogICAgICAgICAgICAgc2hpcHBpbmdPcHRpb25zLT5wdXREaXJl
Y3RJbmRleChleGVjLCBpLCBvYmplY3RGb3JQYXltZW50U2hpcHBpbmdPcHRpb24odm0sIGV4ZWMs
IHBheW1lbnREZXRhaWxzLnNoaXBwaW5nT3B0aW9ucy0+YXQoaSkpKTsKLSAgICAgICAgb2JqZWN0
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaGlwcGluZ09wdGlv
bnMiKSwgc2hpcHBpbmdPcHRpb25zKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaGlwcGluZ09wdGlvbnMiX3MpLCBzaGlwcGluZ09w
dGlvbnMpOwogICAgIH0KICAgICBpZiAocGF5bWVudERldGFpbHMubW9kaWZpZXJzKSB7CiAgICAg
ICAgIGF1dG8qIG1vZGlmaWVycyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cik7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXltZW50RGV0YWlscy5tb2RpZmll
cnMtPnNpemUoKTsgKytpKQogICAgICAgICAgICAgbW9kaWZpZXJzLT5wdXREaXJlY3RJbmRleChl
eGVjLCBpLCBvYmplY3RGb3JQYXltZW50RGV0YWlsc01vZGlmaWVyKHZtLCBleGVjLCBwYXltZW50
RGV0YWlscy5tb2RpZmllcnMtPmF0KGkpKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibW9kaWZpZXJzIiksIG1vZGlmaWVycyk7Cisg
ICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bW9kaWZpZXJzIl9zKSwgbW9kaWZpZXJzKTsKICAgICB9CiAgICAgcmV0dXJuIG9iamVjdDsKIH0K
QEAgLTE5MiwxMCArMTkyLDEwIEBAIHN0YXRpYyBKU09iamVjdCogb2JqZWN0Rm9yRXZlbnRUYXJn
ZXRMaXN0ZW5lcnMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywgRXZlCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGF1dG8qIHByb3BlcnRpZXNGb3JMaXN0ZW5l
ciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgICAgICAgICAgcHJvcGVydGllc0Zv
ckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjYWxs
YmFjayIpLCBqc0Z1bmN0aW9uKTsKLSAgICAgICAgICAgIHByb3BlcnRpZXNGb3JMaXN0ZW5lci0+
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY2FwdHVyZSIpLCBqc0Jv
b2xlYW4oZXZlbnRMaXN0ZW5lci0+dXNlQ2FwdHVyZSgpKSk7Ci0gICAgICAgICAgICBwcm9wZXJ0
aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
InBhc3NpdmUiKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPmlzUGFzc2l2ZSgpKSk7Ci0gICAg
ICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgIm9uY2UiKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPmlzT25jZSgp
KSk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNhbGxiYWNrIl9zKSwganNGdW5jdGlvbik7CisgICAg
ICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImNhcHR1cmUiX3MpLCBqc0Jvb2xlYW4oZXZlbnRMaXN0ZW5lci0+dXNl
Q2FwdHVyZSgpKSk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInBhc3NpdmUiX3MpLCBqc0Jvb2xlYW4o
ZXZlbnRMaXN0ZW5lci0+aXNQYXNzaXZlKCkpKTsKKyAgICAgICAgICAgIHByb3BlcnRpZXNGb3JM
aXN0ZW5lci0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAib25jZSJf
cyksIGpzQm9vbGVhbihldmVudExpc3RlbmVyLT5pc09uY2UoKSkpOwogICAgICAgICAgICAgbGlz
dGVuZXJzRm9yRXZlbnQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGxpc3RlbmVyc0ZvckV2ZW50SW5k
ZXgrKywgcHJvcGVydGllc0Zvckxpc3RlbmVyKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3Bw
CmluZGV4IGY1ZDAwMjlkMWQwZS4uOTMyM2UyMDZkMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAt
NTAyLDEzICs1MDIsMTMgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y29uc29sZVN0YXJ0
UmVjb3JkaW5nQ2FudmFzKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmIGMKICAgICBSZWNvcmRpbmdP
cHRpb25zIHJlY29yZGluZ09wdGlvbnM7CiAgICAgaWYgKG9wdGlvbnMpIHsKICAgICAgICAgSlND
OjpWTSYgdm0gPSBleGVjLnZtKCk7Ci0gICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uU2lu
Z2xlRnJhbWUgPSBvcHRpb25zLT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgInNpbmdsZUZyYW1lIikpKQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvblNp
bmdsZUZyYW1lID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJzaW5nbGVGcmFtZSJfcykpKQogICAgICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucy5m
cmFtZUNvdW50ID0gb3B0aW9uU2luZ2xlRnJhbWUudG9Cb29sZWFuKCZleGVjKSA/IDEgOiAwOwot
ICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvbkZyYW1lQ291bnQgPSBvcHRpb25zLT5nZXQo
JmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZyYW1lQ291bnQiKSkpCisg
ICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uRnJhbWVDb3VudCA9IG9wdGlvbnMtPmdldCgm
ZXhlYywgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnJhbWVDb3VudCJfcykpKQog
ICAgICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucy5mcmFtZUNvdW50ID0gb3B0aW9uRnJhbWVDb3Vu
dC50b051bWJlcigmZXhlYyk7Ci0gICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uTWVtb3J5
TGltaXQgPSBvcHRpb25zLT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgIm1lbW9yeUxpbWl0IikpKQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvbk1lbW9y
eUxpbWl0ID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJtZW1vcnlMaW1pdCJfcykpKQogICAgICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucy5tZW1v
cnlMaW1pdCA9IG9wdGlvbk1lbW9yeUxpbWl0LnRvTnVtYmVyKCZleGVjKTsKLSAgICAgICAgaWYg
KEpTQzo6SlNWYWx1ZSBvcHRpb25OYW1lID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIikpKQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVl
IG9wdGlvbk5hbWUgPSBvcHRpb25zLT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm5hbWUiX3MpKSkKICAgICAgICAgICAgIHJlY29yZGluZ09wdGlvbnMubmFtZSA9
IG9wdGlvbk5hbWUudG9XVEZTdHJpbmcoJmV4ZWMpOwogICAgIH0KICAgICBzdGFydFJlY29yZGlu
ZygqaW5zcGVjdG9yQ2FudmFzLCBQcm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWF0b3I6OkNvbnNv
bGUsIFdURk1vdmUocmVjb3JkaW5nT3B0aW9ucykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmMDQ2Njg4MGU4
OGIuLmQzODllYzA3YWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTE5OTYsNyArMTk5Niw3IEBAIFJlZjxQ
cm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmpl
Y3RGb3JFdmVudExpc3RlbmVyCiAgICAgICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
Q0FUQ0hfU0NPUEUodm0pOwogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGhhbmRsZXIgaXMg
bm90IGFjdHVhbGx5IGEgZnVuY3Rpb24sIHNlZSBpZiBpdCBpbXBsZW1lbnRzIHRoZSBFdmVudExp
c3RlbmVyIGludGVyZmFjZSBhbmQgdXNlIHRoYXQuCi0gICAgICAgICAgICAgICAgYXV0byBoYW5k
bGVFdmVudFZhbHVlID0gaGFuZGxlck9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaGFuZGxlRXZlbnQiKSk7CisgICAgICAgICAgICAgICAg
YXV0byBoYW5kbGVFdmVudFZhbHVlID0gaGFuZGxlck9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaGFuZGxlRXZlbnQiX3MpKTsKIAogICAg
ICAgICAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgICAg
ICAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcAppbmRleCAxNzRk
NTExOTM0YjkuLjY2YzY3MzU0MDY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwCkBAIC04OCwxMyArODgsMTMg
QEAgdm9pZCBQYWdlQXVkaXRBZ2VudDo6cG9wdWxhdGVBdWRpdE9iamVjdChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
ayh2bSk7CiAKICAgICAgICAgaWYgKEpTQzo6SlNWYWx1ZSBqc0luc3BlY3RvckF1ZGl0QWNjZXNz
aWJpbGl0eU9iamVjdCA9IHRvSlNOZXdseUNyZWF0ZWQobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LCBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNyZWF0ZSgqdGhp
cykpKQotICAgICAgICAgICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiQWNjZXNzaWJpbGl0eSIpLCBqc0luc3BlY3RvckF1ZGl0QWNj
ZXNzaWJpbGl0eU9iamVjdCk7CisgICAgICAgICAgICBhdWRpdE9iamVjdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJBY2Nlc3NpYmlsaXR5Il9zKSwganNJ
bnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QpOwogCiAgICAgICAgIGlmIChKU0M6OkpT
VmFsdWUganNJbnNwZWN0b3JBdWRpdERPTU9iamVjdCA9IHRvSlNOZXdseUNyZWF0ZWQobGV4aWNh
bEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBJbnNwZWN0b3JBdWRpdERPTU9iamVjdDo6Y3Jl
YXRlKCp0aGlzKSkpCi0gICAgICAgICAgICBhdWRpdE9iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6
OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJET00iKSwganNJbnNwZWN0b3JBdWRpdERPTU9i
amVjdCk7CisgICAgICAgICAgICBhdWRpdE9iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJET00iX3MpLCBqc0luc3BlY3RvckF1ZGl0RE9NT2JqZWN0
KTsKIAogICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIGpzSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNP
YmplY3QgPSB0b0pTTmV3bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dCwgSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3Q6OmNyZWF0ZSgqdGhpcykpKQotICAgICAg
ICAgICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAiUmVzb3VyY2VzIiksIGpzSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QpOwor
ICAgICAgICAgICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAiUmVzb3VyY2VzIl9zKSwganNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
MzhiNTk1YmI1MmZiLi5hOTA5MGY3ZWExYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTQ5Nyw4ICs0OTcsNiBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFByaW50Q29u
dGV4dD4mIHByaW50Q29udGV4dEZvclRlc3RpbmcoKQogICAgIHJldHVybiBjb250ZXh0OwogfQog
Ci1jb25zdCBjaGFyKiBJbnRlcm5hbHM6OmludGVybmFsc0lkID0gImludGVybmFscyI7Ci0KIFJl
ZjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnRlcm5hbHMoZG9jdW1lbnQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDkzNDRjNmQwZjdkOS4uMTc3ZDkwN2EyODVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQyNSw3ICs0MjUsNyBAQCBwdWJsaWM6CiAKICAg
ICBFeGNlcHRpb25Pcjxib29sPiBpc1BhZ2VCb3hWaXNpYmxlKGludCBwYWdlTnVtYmVyKTsKIAot
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEFTQ0lJTGl0ZXJhbCBpbnRlcm5hbHNJZCA9ICJpbnRlcm5hbHMiX3M7CiAKICAgICBJbnRlcm5h
bFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0OwogICAgIHVuc2lnbmVkIHdvcmtlclRocmVhZENv
dW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdv
cmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmts
ZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggYjhkODUwMjY1MGMyLi43MjM1OTEwZmJkYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5j
cHAKQEAgLTkyLDcgKzkyLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGU6OnJlZ2lzdGVyUGFpbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKIAogICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBpbnB1dFByb3BlcnRpZXM7CiAKLSAgICAgICAgSlNWYWx1ZSBpbnB1dFBy
b3BlcnRpZXNJdGVyYWJsZVZhbHVlID0gcGFpbnRDb25zdHJ1Y3Rvci0+Z2V0KCZnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJpbnB1dFByb3BlcnRpZXMiKSk7CisgICAg
ICAgIEpTVmFsdWUgaW5wdXRQcm9wZXJ0aWVzSXRlcmFibGVWYWx1ZSA9IHBhaW50Q29uc3RydWN0
b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaW5wdXRQ
cm9wZXJ0aWVzIl9zKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2Vw
dGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAKICAgICAgICAgaWYgKCFpbnB1dFBy
b3BlcnRpZXNJdGVyYWJsZVZhbHVlLmlzVW5kZWZpbmVkKCkpCkBAIC0xMDMsNyArMTAzLDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZ2lzdGVyUGFpbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiBpbnB1dEFy
Z3VtZW50czsKIAotICAgICAgICBKU1ZhbHVlIGlucHV0QXJndW1lbnRzSXRlcmFibGVWYWx1ZSA9
IHBhaW50Q29uc3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAiaW5wdXRBcmd1bWVudHMiKSk7CisgICAgICAgIEpTVmFsdWUgaW5wdXRBcmd1bWVu
dHNJdGVyYWJsZVZhbHVlID0gcGFpbnRDb25zdHJ1Y3Rvci0+Z2V0KCZnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJpbnB1dEFyZ3VtZW50cyJfcykpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH0pOwogCiAgICAgICAgIGlmICghaW5wdXRBcmd1bWVudHNJdGVyYWJsZVZhbHVlLmlzVW5k
ZWZpbmVkKCkpCkBAIC0xMTIsNyArMTEyLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGU6OnJlZ2lzdGVyUGFpbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKIAog
ICAgICAgICAvLyBGSVhNRTogUGFyc2Ugc3ludGF4IGZvciBpbnB1dEFyZ3VtZW50cyBoZXJlIChz
dGVwcyAxMSBhbmQgMTIpLgogCi0gICAgICAgIEpTVmFsdWUgY29udGV4dE9wdGlvbnNWYWx1ZSA9
IHBhaW50Q29uc3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAiY29udGV4dE9wdGlvbnMiKSk7CisgICAgICAgIEpTVmFsdWUgY29udGV4dE9wdGlv
bnNWYWx1ZSA9IHBhaW50Q29uc3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAiY29udGV4dE9wdGlvbnMiX3MpKTsKICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsK
ICAgICAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRPcHRpb25zVmFsdWUpOwogCkBAIC0xMjcsNyAr
MTI3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZ2lz
dGVyUGFpbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKICAgICAgICAgaWYgKCFwcm90b3R5cGVW
YWx1ZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIlRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBoYXZlIGEgcHJvdG90eXBlIHRoYXQgaXMgYW4g
b2JqZWN0Il9zIH07CiAKLSAgICAgICAgSlNWYWx1ZSBwYWludFZhbHVlID0gcHJvdG90eXBlVmFs
dWUuZ2V0KCZnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwYWludCIp
KTsKKyAgICAgICAgSlNWYWx1ZSBwYWludFZhbHVlID0gcHJvdG90eXBlVmFsdWUuZ2V0KCZnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwYWludCJfcykpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlv
bkVycm9yIH0pOwogCiAgICAgICAgIGlmIChwYWludFZhbHVlLmlzVW5kZWZpbmVkKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmlu
ZGV4IGVlMTY0NWVmNGUwYy4uNjc0Mzk0NGEzZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtMTY1Myw3ICsxNjUzLDcg
QEAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGpzUmVzdWx0RnJvbVJlcGx5RGVjb2RlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMsICpqc1JlcGx5QXJndW1lbnRzKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIG51bGxwdHIpOwogCi0gICAganNSZXN1bHQtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYnVmZmVyIiksIGpz
QXJyYXlCdWZmZXIpOworICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImJ1ZmZlciJfcyksIGpzQXJyYXlCdWZmZXIpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgbnVsbHB0cik7CiAKICAgICByZXR1cm4ganNSZXN1
bHQ7CkBAIC0xOTgzLDE3ICsxOTgzLDE3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgY3JlYXRlSlNB
cnJheUZvckFyZ3VtZW50RGVzY3JpcHRpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsCiAgICAg
ICAgIGFyZ3VtZW50c0FycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGFyZ3VtZW50
SW5kZXgsIGpzRGVzY3JpcHRpb25zKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNDOjpqc1REWlZhbHVlKCkpOwogCi0gICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJl
Y3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiKSwgSlNDOjpqc1N0
cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9uLm5hbWUpKSk7CisgICAgICAgIGpzRGVzY3JpcHRp
b25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUi
X3MpLCBKU0M6OmpzU3RyaW5nKHZtLCBTdHJpbmcoZGVzY3JpcHRpb24ubmFtZSkpKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpqc1REWlZhbHVlKCkpOwogCi0gICAg
ICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgInR5cGUiKSwgSlNDOjpqc1N0cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9uLnR5
cGUpKSk7CisgICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgInR5cGUiX3MpLCBKU0M6OmpzU3RyaW5nKHZtLCBTdHJpbmco
ZGVzY3JpcHRpb24udHlwZSkpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNDOjpqc1REWlZhbHVlKCkpOwogCi0gICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm9wdGlvbmFsIiksIEpTQzo6anNC
b29sZWFuKGRlc2NyaXB0aW9uLmlzT3B0aW9uYWwpKTsKKyAgICAgICAganNEZXNjcmlwdGlvbnMt
PnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAib3B0aW9uYWwi
X3MpLCBKU0M6OmpzQm9vbGVhbihkZXNjcmlwdGlvbi5pc09wdGlvbmFsKSk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgpKTsKIAogICAgICAgICBp
ZiAoZGVzY3JpcHRpb24uZW51bU5hbWUpIHsKLSAgICAgICAgICAgIGpzRGVzY3JpcHRpb25zLT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVudW0iKSwgSlND
Ojpqc1N0cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9uLmVudW1OYW1lKSkpOworICAgICAgICAg
ICAganNEZXNjcmlwdGlvbnMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAiZW51bSJfcyksIEpTQzo6anNTdHJpbmcodm0sIFN0cmluZyhkZXNjcmlwdGlvbi5l
bnVtTmFtZSkpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6
anNURFpWYWx1ZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIwMTYsOSArMjAxNiw5IEBAIEpT
VmFsdWVSZWYgSlNJUEM6Om1lc3NhZ2VzKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBKU1N0cmluCiAgICAgSlNDOjpKU09iamVjdCogbWVzc2FnZXNPYmplY3Qg
PSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpKTsKIAotICAgIGF1dG8gbmFtZUlkZW50ID0gSlNDOjpJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSIpOwotICAgIGF1dG8gcmVwbHlBcmd1bWVudHNJZGVu
dCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcGx5QXJndW1lbnRzIik7Ci0g
ICAgYXV0byBpc1N5bmNJZGVudCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlz
U3luYyIpOworICAgIGF1dG8gbmFtZUlkZW50ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAibmFtZSJfcyk7CisgICAgYXV0byByZXBseUFyZ3VtZW50c0lkZW50ID0gSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVwbHlBcmd1bWVudHMiX3MpOworICAgIGF1dG8gaXNT
eW5jSWRlbnQgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJpc1N5bmMiX3MpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSVBDOjpN
ZXNzYWdlTmFtZTo6TGFzdCk7ICsraSkgewogICAgICAgICBhdXRvIG5hbWUgPSBzdGF0aWNfY2Fz
dDxJUEM6Ok1lc3NhZ2VOYW1lPihpKTsKIApAQCAtMjA0Myw3ICsyMDQzLDcgQEAgSlNWYWx1ZVJl
ZiBKU0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIEpTU3RyaW4KICAgICAgICAgZGljdGlvbmFyeS0+cHV0RGlyZWN0KHZtLCBpc1N5bmNJ
ZGVudCwgSlNDOjpqc0Jvb2xlYW4obWVzc2FnZUlzU3luYyhuYW1lKSkpOyAgICAgICAgICAgIAog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KSk7CiAKLSAgICAgICAgbWVzc2FnZXNPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBkZXNjcmlwdGlvbihuYW1lKSksIGRpY3Rpb25hcnkp
OworICAgICAgICBtZXNzYWdlc09iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21DU3RyaW5nKHZtLCBkZXNjcmlwdGlvbihuYW1lKSksIGRpY3Rpb25hcnkpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KSk7CiAgICAgfQogCkBAIC0yMTM4LDI0ICsyMTM4LDI0IEBAIEpTQzo6SlNPYmplY3QqIEpTTWVz
c2FnZUxpc3RlbmVyOjpqc0Rlc2NyaXB0aW9uRnJvbURlY29kZXIoSlNDOjpKU0dsb2JhbE9iamVj
dCoKICAgICBhdXRvKiBqc1Jlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6
OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIiksIEpTQzo6SlNWYWx1ZShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSkpOworICAgIGpzUmVzdWx0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpLCBK
U0M6OkpTVmFsdWUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlY29kZXIubWVzc2FnZU5hbWUoKSkp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIGpzUmVz
dWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImRlc2Ny
aXB0aW9uIiksIEpTQzo6anNTdHJpbmcodm0sIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSkpOworICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImRlc2NyaXB0aW9uIl9zKSwgSlNDOjpqc1N0cmluZyh2bSwgSVBD
OjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBK
U0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJkZXN0aW5hdGlvbklEIiksIEpTQzo6SlNW
YWx1ZShkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpOworICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImRlc3RpbmF0aW9uSUQiX3MpLCBK
U0M6OkpTVmFsdWUoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIGlmIChkZWNvZGVyLmlzU3luY01lc3NhZ2Uo
KSkgewogICAgICAgICBJUEM6OkNvbm5lY3Rpb246OlN5bmNSZXF1ZXN0SUQgc3luY1JlcXVlc3RJ
RDsKICAgICAgICAgaWYgKGRlY29kZXIuZGVjb2RlKHN5bmNSZXF1ZXN0SUQpKSB7Ci0gICAgICAg
ICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJzeW5jUmVxdWVzdElEIiksIEpTQzo6SlNWYWx1ZShzeW5jUmVxdWVzdElELnRvVUludDY0
KCkpKTsKKyAgICAgICAgICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInN5bmNSZXF1ZXN0SUQiX3MpLCBKU0M6OkpTVmFsdWUoc3luY1Jl
cXVlc3RJRC50b1VJbnQ2NCgpKSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobWVzc2FnZVJlcGx5QXJn
dW1lbnREZXNjcmlwdGlvbnMoZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSkgewogICAgICAgICBpZiAo
dWludDY0X3QgbGlzdGVuZXJJRCA9IDA7IGRlY29kZXIuZGVjb2RlKGxpc3RlbmVySUQpKSB7Ci0g
ICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJsaXN0ZW5lcklEIiksIEpTQzo6SlNWYWx1ZShsaXN0ZW5lcklEKSk7CisgICAg
ICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJsaXN0ZW5lcklEIl9zKSwgSlNDOjpKU1ZhbHVlKGxpc3RlbmVySUQpKTsKICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjE2Myw3ICsyMTYzLDcgQEAgSlNDOjpKU09iamVjdCogSlNNZXNzYWdlTGlzdGVu
ZXI6OmpzRGVzY3JpcHRpb25Gcm9tRGVjb2RlcihKU0M6OkpTR2xvYmFsT2JqZWN0KgogICAgIGF1
dG8gYXJyYXlCdWZmZXIgPSBKU0M6OkFycmF5QnVmZmVyOjpjcmVhdGUoZGVjb2Rlci5idWZmZXIo
KSwgZGVjb2Rlci5sZW5ndGgoKSk7CiAgICAgaWYgKGF1dG8qIHN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoYXJyYXlCdWZmZXItPnNoYXJpbmdNb2RlKCkpKSB7
CiAgICAgICAgIGlmIChhdXRvKiBqc0FycmF5QnVmZmVyID0gSlNDOjpKU0FycmF5QnVmZmVyOjpj
cmVhdGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShhcnJheUJ1ZmZlcikpKSB7Ci0gICAgICAgICAg
ICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJidWZmZXIiKSwganNBcnJheUJ1ZmZlcik7CisgICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGly
ZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJidWZmZXIiX3MpLCBqc0Fy
cmF5QnVmZmVyKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE4Niw3ICsyMTg2LDcgQEAgdm9pZCBpbmplY3Qo
V2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lLCBXZWJDb3JlOjpET01XcmFwcGVy
V29ybGQmIHdvcmwKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAg
ICAgYXV0byB3cmFwcGVkID0gSlNJUEM6OmNyZWF0ZSh3ZWJQYWdlLCB3ZWJGcmFtZSk7CiAgICAg
SlNPYmplY3RSZWYgd3JhcHBlck9iamVjdCA9IEpTT2JqZWN0TWFrZSh0b0dsb2JhbFJlZihnbG9i
YWxPYmplY3QpLCBKU0lQQzo6d3JhcHBlckNsYXNzKCksIHdyYXBwZWQucHRyKCkpOwotICAgIGds
b2JhbE9iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJJUEMiKSwgdG9KUyhnbG9iYWxPYmplY3QsIHdyYXBwZXJPYmplY3QpKTsKKyAgICBnbG9iYWxP
YmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSVBD
Il9zKSwgdG9KUyhnbG9iYWxPYmplY3QsIHdyYXBwZXJPYmplY3QpKTsKIAogICAgIHNjb3BlLmNs
ZWFyRXhjZXB0aW9uKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456186</attachid>
            <date>2022-03-30 16:45:06 -0700</date>
            <delta_ts>2022-03-31 07:23:59 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>Identifier_from_ACIILiteral_full_wip.patch</filename>
            <type>text/plain</type>
            <size>159989</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAppbmRleCA2NjIwMWYyZDExMmIuLjkzZWM3
MDVhMGYwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcApAQCAtMjA3LDcgKzIw
Nyw3IEBAIEpTT2JqZWN0UmVmIEpTR2V0TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEpTQ29udGV4dFJl
ZiBjdHgpCiAgICAgYXV0byB0eXBlQ291bnRzID0gdm0uaGVhcC5vYmplY3RUeXBlQ291bnRzKCk7
CiAgICAgSlNPYmplY3QqIG9iamVjdFR5cGVDb3VudHMgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChn
bG9iYWxPYmplY3QpOwogICAgIGZvciAoYXV0byYgaXQgOiAqdHlwZUNvdW50cykKLSAgICAgICAg
b2JqZWN0VHlwZUNvdW50cy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCBpdC5rZXkpLCBqc051bWJlcihpdC52YWx1ZSkpOworICAgICAgICBvYmplY3RUeXBlQ291bnRz
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCBpdC5rZXkpLCBqc051
bWJlcihpdC52YWx1ZSkpOwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5
T2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJoZWFwU2l6ZSJfcyksIGpzTnVtYmVyKHZtLmhlYXAuc2l6ZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMt
cmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdApp
bmRleCBkZjk5OGQzZjUwMzEuLmRkNWIzZWNmNTFhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CkBAIC02MCw4ICs2MCw4IEBAIGV4dGVybiBj
b25zdCBKU0M6OkNvbnN0cnVjdG9yS2luZCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VD
b2RlQ29uc3RydWN0b3JLCiAgICAgbWFjcm8oZnVsZmlsbFByb21pc2UsIGJ1aWx0aW5Qcm9taXNl
RnVsZmlsbFByb21pc2UsIDIpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUo
bWFjcm8pIFwKLSAgICBtYWNybyhidWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVs
ZmlsbFByb21pc2UsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgc19idWlsdGlu
UHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9t
aXNlUmVqZWN0UHJvbWlzZUNvZGUsIHJlamVjdFByb21pc2UsIHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihudWxscHRyKSwgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlTGVuZ3RoKSBc
CisgICAgbWFjcm8oYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUsIGZ1bGZpbGxQcm9t
aXNlLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNl
Q29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUs
IHJlamVjdFByb21pc2UsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Qcm9taXNlUmVq
ZWN0UHJvbWlzZUNvZGVMZW5ndGgpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggZmQ0ZGQ5
NzJhMWM2Li41OTI2MDMwMGU3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJv
bWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNl
LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtNTcsOCArNTcsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpD
b25zdHJ1Y3RvcktpbmQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUNvbnN0cnVj
dG9ySwogI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOX1BST01JU0VfRlVMRklMTFBST01JU0Ug
MQogCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NPREUobWFj
cm8pIFwKLSAgICBtYWNybyhidWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQ
cm9taXNlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYnVpbHRpblByb21p
c2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVs
ZmlsbFByb21pc2VDb2RlLCBmdWxmaWxsUHJvbWlzZSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+
KG51bGxwdHIpLCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoKSBcCisg
ICAgbWFjcm8oYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZSwgcmVqZWN0UHJvbWlzZSwg
QVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxl
bmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBmdWxm
aWxsUHJvbWlzZSwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb21pc2VGdWxmaWxs
UHJvbWlzZUNvZGVMZW5ndGgpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01J
U0VfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZnVsZmlsbFByb21p
c2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVk
LmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJl
c3VsdAppbmRleCBiMmNhMjQzMDExZjIuLjA0OTlkZjA4OTZjNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdApAQCAtNzAsMTAgKzcwLDEw
IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdG9yS2luZCBzX2J1aWx0aW5Qcm90b3R5cGVU
ZXN0Q29kZUNvbnN0cnVjdG9yS2luZDsKICAgICBtYWNybyh0ZXN0LCBidWlsdGluUHJvdG90eXBl
VGVzdCwgMSkgXAogCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAot
ICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUsIGV2ZXJ5LCBzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4obnVsbHB0ciksIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkg
XAotICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSwgZm9yRWFjaCwgc3RhdGlj
X2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29k
ZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVNYXRjaENvZGUsIG1hdGNoLCAi
W1N5bWJvbC5tYXRjaF0iLCBzX2J1aWx0aW5Qcm90b3R5cGVNYXRjaENvZGVMZW5ndGgpIFwKLSAg
ICBtYWNybyhidWlsdGluUHJvdG90eXBlVGVzdENvZGUsIHRlc3QsIHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihudWxscHRyKSwgc19idWlsdGluUHJvdG90eXBlVGVzdENvZGVMZW5ndGgpIFwKKyAg
ICBtYWNybyhidWlsdGluUHJvdG90eXBlRXZlcnlDb2RlLCBldmVyeSwgQVNDSUlMaXRlcmFsOjpu
dWxsKCksIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1
aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSwgZm9yRWFjaCwgQVNDSUlMaXRlcmFsOjpudWxsKCks
IHNfYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRp
blByb3RvdHlwZU1hdGNoQ29kZSwgbWF0Y2gsICJbU3ltYm9sLm1hdGNoXSJfcywgc19idWlsdGlu
UHJvdG90eXBlTWF0Y2hDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZVRl
c3RDb2RlLCB0ZXN0LCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGluUHJvdG90eXBlVGVz
dENvZGVMZW5ndGgpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUobWFjcm8pIFwKICAgICBtYWNybyhldmVyeSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IGRlYTk1NzlmYzU1Ni4uYWY1MDFj
MGYxZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0
ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUu
anMtcmVzdWx0CkBAIC02OSwxMCArNjksMTAgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
b3JLaW5kIHNfYnVpbHRpblByb3RvdHlwZVRlc3RDb2RlQ29uc3RydWN0b3JLaW5kOwogI2RlZmlu
ZSBKU0NfQlVJTFRJTl9CVUlMVElOX1BST1RPVFlQRV9URVNUIDEKIAogI2RlZmluZSBKU0NfRk9S
RUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhi
dWlsdGluUHJvdG90eXBlRXZlcnlDb2RlLCBldmVyeSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+
KG51bGxwdHIpLCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGgpIFwKLSAgICBtYWNy
byhidWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUsIGZvckVhY2gsIHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihudWxscHRyKSwgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwK
LSAgICBtYWNybyhidWlsdGluUHJvdG90eXBlTWF0Y2hDb2RlLCBtYXRjaCwgIltTeW1ib2wubWF0
Y2hdIiwgc19idWlsdGluUHJvdG90eXBlTWF0Y2hDb2RlTGVuZ3RoKSBcCi0gICAgbWFjcm8oYnVp
bHRpblByb3RvdHlwZVRlc3RDb2RlLCB0ZXN0LCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVs
bHB0ciksIHNfYnVpbHRpblByb3RvdHlwZVRlc3RDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVp
bHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1
aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJvdG90
eXBlRm9yRWFjaENvZGUsIGZvckVhY2gsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Q
cm90b3R5cGVGb3JFYWNoQ29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVN
YXRjaENvZGUsIG1hdGNoLCAiW1N5bWJvbC5tYXRjaF0iX3MsIHNfYnVpbHRpblByb3RvdHlwZU1h
dGNoQ29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZSwgdGVz
dCwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb3RvdHlwZVRlc3RDb2RlTGVuZ3Ro
KSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9GVU5D
VElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZXZlcnkpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0CmluZGV4IGQwYmJkMGE5Mzky
ZC4uNmVkNTVmNDVjNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0
b3ItQ29tYmluZWQuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rv
ci1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTU5LDggKzU5LDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6
Q29uc3RydWN0b3JLaW5kIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3Rvcktp
bmQ7CiAgICAgbWFjcm8oZnJvbSwgYnVpbHRpbkNvbnN0cnVjdG9yRnJvbSwgMSkgXAogCiAjZGVm
aW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGJ1aWx0aW5D
b25zdHJ1Y3RvckZyb21Db2RlLCBmcm9tLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0
ciksIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhidWls
dGluQ29uc3RydWN0b3JPZkNvZGUsIG9mLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0
ciksIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRp
bkNvbnN0cnVjdG9yRnJvbUNvZGUsIGZyb20sIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0
aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpbkNvbnN0cnVj
dG9yT2ZDb2RlLCBvZiwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpbkNvbnN0cnVjdG9y
T2ZDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9O
QU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZnJvbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0
aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggOTQxYzQ5YTRiNGIxLi43NWY2
ZDNmM2Y0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBh
cmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFy
YXRlLmpzLXJlc3VsdApAQCAtNTYsOCArNTYsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1
Y3RvcktpbmQgc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVjdG9yS2luZDsKICNk
ZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTkNPTlNUUlVDVE9SX0ZST00gMQogCiAjZGVmaW5lIEpT
Q19GT1JFQUNIX0JVSUxUSU5DT05TVFJVQ1RPUl9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBt
YWNybyhidWlsdGluQ29uc3RydWN0b3JPZkNvZGUsIG9mLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4obnVsbHB0ciksIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoKSBcCi0gICAgbWFj
cm8oYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUsIGZyb20sIHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihudWxscHRyKSwgc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZUxlbmd0aCkgXAorICAg
IG1hY3JvKGJ1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZSwgb2YsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgp
LCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5D
b25zdHJ1Y3RvckZyb21Db2RlLCBmcm9tLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGlu
Q29uc3RydWN0b3JGcm9tQ29kZUxlbmd0aCkgXAogCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxU
SU5DT05TVFJVQ1RPUl9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhm
cm9tKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29t
YmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJp
bmVkLmpzLXJlc3VsdAppbmRleCBkMGVkYTg0NzY3MDcuLjY0ZGQxODg4MWNlMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
SmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29tYmluZWQuanMtcmVzdWx0
CkBAIC02MCw4ICs2MCw4IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdG9yS2luZCBzX2lu
dGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDCiAgICAgbWFjcm8oaXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZCwgaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZCwgMSkgXAogCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykg
XAotICAgIG1hY3JvKGludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVs
bHB0ciksIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVM
ZW5ndGgpIFwKLSAgICBtYWNybyhpbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFt
TG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG51bGxwdHIpLCBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2Nr
ZWRDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJs
ZVN0cmVhbUxvY2tlZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIEFTQ0lJTGl0ZXJhbDo6
bnVsbCgpLCBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2Rl
TGVuZ3RoKSBcCisgICAgbWFjcm8oaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgp
LCBzX2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3Ro
KSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBc
CiAgICAgbWFjcm8oaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1B
bm90aGVyR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFu
b3RoZXJHdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCBhMjhi
MDc5MTllNjMuLmE5Nzg4ZDAyMmZjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Bbm90aGVyR3VhcmRlZElu
dGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Bbm90aGVyR3VhcmRl
ZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTU1LDcgKzU1LDcgQEAgZXh0
ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0b3JLaW5kIHNfYW5vdGhlckd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW5MZXRzRmV0Y2hDb2RlQ28KICNkZWZpbmUgV0VCQ09SRV9CVUlMVElOX0FOT1RIRVJHVUFS
REVESU5URVJOQUxCVUlMVElOX0xFVFNGRVRDSCAxCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JFQUNI
X0FOT1RIRVJHVUFSREVESU5URVJOQUxCVUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAg
IG1hY3JvKGFub3RoZXJHdWFyZGVkSW50ZXJuYWxCdWlsdGluTGV0c0ZldGNoQ29kZSwgbGV0c0Zl
dGNoLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYW5vdGhlckd1YXJkZWRJ
bnRlcm5hbEJ1aWx0aW5MZXRzRmV0Y2hDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYW5vdGhlckd1
YXJkZWRJbnRlcm5hbEJ1aWx0aW5MZXRzRmV0Y2hDb2RlLCBsZXRzRmV0Y2gsIEFTQ0lJTGl0ZXJh
bDo6bnVsbCgpLCBzX2Fub3RoZXJHdWFyZGVkSW50ZXJuYWxCdWlsdGluTGV0c0ZldGNoQ29kZUxl
bmd0aCkgXAogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9BTk9USEVSR1VBUkRFRElOVEVSTkFM
QlVJTFRJTl9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhsZXRzRmV0
Y2gpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0
ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMt
cmVzdWx0CmluZGV4IGIzNWYzNzVmZDIyMC4uNGY1YjEyMzA2Njg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3Jl
LUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
QXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTU2LDcgKzU2
LDcgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0b3JLaW5kIHNfYXJiaXRyYXJ5Q29uZGl0
aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2MKICNkZWZpbmUgV0VCQ09SRV9CVUlMVElOX0FS
QklUUkFSWUNPTkRJVElPTkFMR1VBUkRfSVNSRUFEQUJMRVNUUkVBTUxPQ0tFRCAxCiAKICNkZWZp
bmUgV0VCQ09SRV9GT1JFQUNIX0FSQklUUkFSWUNPTkRJVElPTkFMR1VBUkRfQlVJTFRJTl9DT0RF
KG1hY3JvKSBcCi0gICAgbWFjcm8oYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBzdGF0aWNfY2FzdDxjb25z
dCBjaGFyKj4obnVsbHB0ciksIHNfYXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYXJiaXRyYXJ5Q29uZGl0aW9uYWxH
dWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBB
U0NJSUxpdGVyYWw6Om51bGwoKSwgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJs
ZVN0cmVhbUxvY2tlZENvZGVMZW5ndGgpIFwKIAogI2RlZmluZSBXRUJDT1JFX0ZPUkVBQ0hfQVJC
SVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKICAg
ICBtYWNybyhpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2VwYXJh
dGUuanMtcmVzdWx0CmluZGV4IDJmMWY0NDQwN2UwMS4uMzU2MTA0YjQ0YmQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtNTYsNyArNTYsNyBAQCBleHRlcm4gY29u
c3QgSlNDOjpDb25zdHJ1Y3RvcktpbmQgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlQ29ucwogI2RlZmluZSBXRUJDT1JFX0JVSUxUSU5fR1VBUkRFREJVSUxUSU5fSVNS
RUFEQUJMRVNUUkVBTUxPQ0tFRCAxCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JFQUNIX0dVQVJERURC
VUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGd1YXJkZWRCdWlsdGluSXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIHN0YXRpY19j
YXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJl
YW1Mb2NrZWRDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxl
U3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCwgQVNDSUlMaXRlcmFsOjpu
dWxsKCksIHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkg
XAogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9HVUFSREVEQlVJTFRJTl9CVUlMVElOX0ZVTkNU
SU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA1
NTliNzExNWFmMjAuLjQzNjlkYmFkYWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJu
YWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CkBAIC01Niw3ICs1Niw3IEBAIGV4dGVybiBjb25zdCBK
U0M6OkNvbnN0cnVjdG9yS2luZCBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkCiAjZGVmaW5lIFdFQkNPUkVfQlVJTFRJTl9HVUFSREVESU5URVJOQUxCVUlMVElO
X0lTUkVBREFCTEVTVFJFQU1MT0NLRUQgMQogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9HVUFS
REVESU5URVJOQUxCVUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0
cmVhbUxvY2tlZCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX2d1YXJkZWRJ
bnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkgXAorICAgIG1h
Y3JvKGd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZCwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfZ3VhcmRlZEludGVy
bmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUg
V0VCQ09SRV9GT1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9GVU5DVElPTl9O
QU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5n
dWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggYzdiODFkOWQ0NTBjLi5mZGY4
ZDI2YzA5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1y
ZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAt
NTQsNyArNTQsNyBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RvcktpbmQgc191bmd1YXJk
ZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDbwogI2RlZmluZSBXRUJDT1JFX0JV
SUxUSU5fVU5HVUFSREVEQlVJTFRJTl9JU1JFQURBQkxFU1RSRUFNTE9DS0VEIDEKIAogI2RlZmlu
ZSBXRUJDT1JFX0ZPUkVBQ0hfVU5HVUFSREVEQlVJTFRJTl9CVUlMVElOX0NPREUobWFjcm8pIFwK
LSAgICBtYWNybyh1bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUsIGlz
UmVhZGFibGVTdHJlYW1Mb2NrZWQsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwg
c191bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGgpIFwKKyAg
ICBtYWNybyh1bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUsIGlzUmVh
ZGFibGVTdHJlYW1Mb2NrZWQsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX3VuZ3VhcmRlZEJ1aWx0
aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkgXAogCiAjZGVmaW5lIFdFQkNPUkVf
Rk9SRUFDSF9VTkdVQVJERURCVUlMVElOX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAog
ICAgIG1hY3JvKGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1s
Q2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJh
dGUuanMtcmVzdWx0CmluZGV4IGQyYjA0MGQ5ZjNhZC4uOTMxZDk5YWVmN2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2Fz
aW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTY4LDkgKzY4LDkgQEAgZXh0ZXJuIGNvbnN0
IEpTQzo6Q29uc3RydWN0b3JLaW5kIHNfeG1sQ2FzaW5nVGVzdFVybENhc2luZ1Rlc3RDb2RlQ29u
c3RydWN0b3JLaW4KICNkZWZpbmUgV0VCQ09SRV9CVUlMVElOX1hNTENBU0lOR1RFU1RfVVJMQ0FT
SU5HVEVTVCAxCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JFQUNIX1hNTENBU0lOR1RFU1RfQlVJTFRJ
Tl9DT0RFKG1hY3JvKSBcCi0gICAgbWFjcm8oeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rlc3RDb2Rl
LCB4bWxDYXNpbmdUZXN0LCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfeG1s
Q2FzaW5nVGVzdFhNTENhc2luZ1Rlc3RDb2RlTGVuZ3RoKSBcCi0gICAgbWFjcm8oeG1sQ2FzaW5n
VGVzdENzc0Nhc2luZ1Rlc3RDb2RlLCBjc3NDYXNpbmdUZXN0LCBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4obnVsbHB0ciksIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlTGVuZ3RoKSBc
Ci0gICAgbWFjcm8oeG1sQ2FzaW5nVGVzdFVybENhc2luZ1Rlc3RDb2RlLCB1cmxDYXNpbmdUZXN0
LCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfeG1sQ2FzaW5nVGVzdFVybENh
c2luZ1Rlc3RDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rl
c3RDb2RlLCB4bWxDYXNpbmdUZXN0LCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc194bWxDYXNpbmdU
ZXN0WE1MQ2FzaW5nVGVzdENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyh4bWxDYXNpbmdUZXN0Q3Nz
Q2FzaW5nVGVzdENvZGUsIGNzc0Nhc2luZ1Rlc3QsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX3ht
bENhc2luZ1Rlc3RDc3NDYXNpbmdUZXN0Q29kZUxlbmd0aCkgXAorICAgIG1hY3JvKHhtbENhc2lu
Z1Rlc3RVcmxDYXNpbmdUZXN0Q29kZSwgdXJsQ2FzaW5nVGVzdCwgQVNDSUlMaXRlcmFsOjpudWxs
KCksIHNfeG1sQ2FzaW5nVGVzdFVybENhc2luZ1Rlc3RDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUg
V0VCQ09SRV9GT1JFQUNIX1hNTENBU0lOR1RFU1RfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3Jv
KSBcCiAgICAgbWFjcm8oY3NzQ2FzaW5nVGVzdCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvd2tidWlsdGlucy9idWlsdGluc19tb2RlbC5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3drYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkKaW5kZXgg
NDI2MzBmNWYxYzY1Li5lNDU2OWExZDI5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3drYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvd2tidWlsdGlucy9idWlsdGluc19tb2RlbC5weQpAQCAtMTUw
LDEwICsxNTAsMTMgQEAgY2xhc3MgQnVpbHRpbkZ1bmN0aW9uOgogICAgICAgICAgICAgcGFyYW1l
dGVycyA9IFtdCiAKICAgICAgICAgaWYgaXNfZ2V0dGVyIGFuZCBub3Qgb3ZlcnJpZGRlbl9uYW1l
OgotICAgICAgICAgICAgb3ZlcnJpZGRlbl9uYW1lID0gIlwiZ2V0ICVzXCIiICUgKGZ1bmN0aW9u
X25hbWUpCisgICAgICAgICAgICBvdmVycmlkZGVuX25hbWUgPSAiXCJnZXQgJXNcIl9zIiAlIChm
dW5jdGlvbl9uYW1lKQogCiAgICAgICAgIGlmIG5vdCBvdmVycmlkZGVuX25hbWU6Ci0gICAgICAg
ICAgICBvdmVycmlkZGVuX25hbWUgPSAic3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIp
IgorICAgICAgICAgICAgb3ZlcnJpZGRlbl9uYW1lID0gIkFTQ0lJTGl0ZXJhbDo6bnVsbCgpIgor
CisgICAgICAgIGlmIG92ZXJyaWRkZW5fbmFtZVstMV0gPT0gIlwiIjoKKyAgICAgICAgICAgIG92
ZXJyaWRkZW5fbmFtZSArPSAiX3MiCiAKICAgICAgICAgcmV0dXJuIEJ1aWx0aW5GdW5jdGlvbihm
dW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2FzeW5jLCBpc19j
b25zdHJ1Y3RvciwgaXNfZ2xvYmFsX3ByaXZhdGUsIGlzX25ha2VkX2NvbnN0cnVjdG9yLCBpbnRy
aW5zaWMsIG92ZXJyaWRkZW5fbmFtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCAzYTAzNzBkNTZl
NTMuLjVhNmJmYmUwNmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTQwMjksMTIgKzQwMjksMTIg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRocm93U3RhdGljRXJyb3IoRXJyb3JUeXBl
V2l0aEV4dGVuc2lvbiBlcnJvclR5cGUsIGMKICAgICBPcFRocm93U3RhdGljRXJyb3I6OmVtaXQo
dGhpcywgYWRkQ29uc3RhbnRWYWx1ZShhZGRTdHJpbmdDb25zdGFudChtZXNzYWdlKSksIGVycm9y
VHlwZSk7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRUaHJvd1JlZmVyZW5jZUVy
cm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRU
aHJvd1JlZmVyZW5jZUVycm9yKEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQogewogICAgIGVtaXRUaHJv
d1N0YXRpY0Vycm9yKEVycm9yVHlwZVdpdGhFeHRlbnNpb246OlJlZmVyZW5jZUVycm9yLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKG1fdm0sIG1lc3NhZ2UpKTsKIH0KIAotdm9pZCBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdFRocm93VHlwZUVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRUaHJvd1R5cGVFcnJvcihBU0NJSUxpdGVyYWwgbWVzc2Fn
ZSkKIHsKICAgICBlbWl0VGhyb3dTdGF0aWNFcnJvcihFcnJvclR5cGVXaXRoRXh0ZW5zaW9uOjpU
eXBlRXJyb3IsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobV92bSwgbWVzc2FnZSkpOwogfQpAQCAt
NDczNSw3ICs0NzM1LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXN0
UGFyYW1ldGVyKFJlZ2lzdGVySUQqIHJlc3VsdCwgdW5zaWduZWQgbnUKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVxdWlyZU9iamVjdENvZXJj
aWJsZShSZWdpc3RlcklEKiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBlcnJvcikKK3ZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVl
LCBBU0NJSUxpdGVyYWwgZXJyb3IpCiB7CiAgICAgUmVmPExhYmVsPiB0YXJnZXQgPSBuZXdMYWJl
bCgpOwogICAgIE9wSm51bmRlZmluZWRPck51bGw6OmVtaXQodGhpcywgdmFsdWUsIHRhcmdldC0+
YmluZCh0aGlzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggNDAyMDRjNTJhMTk4Li5jZmYyZDczNjMzOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKQEAgLTkwMSw3ICs5MDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdElzVW5kZWZpbmVkT3JOdWxsKFJlZ2lzdGVySUQqIGRzdCwgUmVn
aXN0ZXJJRCogc3JjKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzRW1wdHkoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNEZXJp
dmVkQXJyYXkoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRJ
c0NlbGxXaXRoVHlwZShkc3QsIHNyYywgRGVyaXZlZEFycmF5VHlwZSk7IH0KLSAgICAgICAgdm9p
ZCBlbWl0UmVxdWlyZU9iamVjdENvZXJjaWJsZShSZWdpc3RlcklEKiB2YWx1ZSwgY29uc3QgU3Ry
aW5nJiBlcnJvcik7CisgICAgICAgIHZvaWQgZW1pdFJlcXVpcmVPYmplY3RDb2VyY2libGUoUmVn
aXN0ZXJJRCogdmFsdWUsIEFTQ0lJTGl0ZXJhbCBlcnJvcik7CiAKICAgICAgICAgdm9pZCBlbWl0
SXRlcmF0b3JPcGVuKFJlZ2lzdGVySUQqIGl0ZXJhdG9yLCBSZWdpc3RlcklEKiBuZXh0T3JJbmRl
eCwgUmVnaXN0ZXJJRCogc3ltYm9sSXRlcmF0b3IsIENhbGxBcmd1bWVudHMmIGl0ZXJhYmxlLCBj
b25zdCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSopOwogICAgICAgICB2b2lkIGVtaXRJdGVyYXRv
ck5leHQoUmVnaXN0ZXJJRCogZG9uZSwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGl0
ZXJhYmxlLCBSZWdpc3RlcklEKiBuZXh0T3JJbmRleCwgQ2FsbEFyZ3VtZW50cyYgaXRlcmF0b3Is
IGNvbnN0IFRocm93YWJsZUV4cHJlc3Npb25EYXRhKik7CkBAIC05NTUsOCArOTU1LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBlbWl0VGhyb3dTdGF0aWNFcnJvcihFcnJvclR5
cGVXaXRoRXh0ZW5zaW9uLCBSZWdpc3RlcklEKik7CiAgICAgICAgIHZvaWQgZW1pdFRocm93U3Rh
dGljRXJyb3IoRXJyb3JUeXBlV2l0aEV4dGVuc2lvbiwgY29uc3QgSWRlbnRpZmllciYgbWVzc2Fn
ZSk7Ci0gICAgICAgIHZvaWQgZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKLSAgICAgICAgdm9pZCBlbWl0VGhyb3dUeXBlRXJyb3IoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKKyAgICAgICAgdm9pZCBlbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihBU0NJSUxpdGVy
YWwgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgZW1pdFRocm93VHlwZUVycm9yKEFTQ0lJTGl0ZXJh
bCBtZXNzYWdlKTsKICAgICAgICAgdm9pZCBlbWl0VGhyb3dUeXBlRXJyb3IoY29uc3QgSWRlbnRp
ZmllciYgbWVzc2FnZSk7CiAgICAgICAgIHZvaWQgZW1pdFRocm93UmFuZ2VFcnJvcihjb25zdCBJ
ZGVudGlmaWVyJiBtZXNzYWdlKTsKICAgICAgICAgdm9pZCBlbWl0VGhyb3dPdXRPZk1lbW9yeUVy
cm9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKaW5kZXggN2FjNzU4NjY1ZDlmLi5iZjY1YTQxNGZjZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAg
LTg2LDcgKzg2LDcgQEAgdm9pZCBFeHByZXNzaW9uTm9kZTo6ZW1pdEJ5dGVjb2RlSW5Db25kaXRp
b25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlZ2lzdGVySUQqIFRocm93YWJsZUV4cHJlc3Npb25EYXRh
OjplbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZ2lzdGVySUQqIGRzdCkKK1JlZ2lzdGVySUQqIFRocm93
YWJsZUV4cHJlc3Npb25EYXRhOjplbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBBU0NJSUxpdGVyYWwgbWVzc2FnZSwgUmVnaXN0ZXJJRCogZHN0KQog
ewogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgp
LCBkaXZvdEVuZCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdFRocm93UmVmZXJlbmNlRXJyb3IobWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCmluZGV4IDk4YjUyZWMyZTg0
OC4uODBkMzU3ODI3NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcApAQCAt
NTksMjQgKzU5LDI0IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiAgICAgCi0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnR5cGUiLCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uU3VidHlwZSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmdW5jdGlvbkRldGFpbHMiLCBqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldEludGVybmFsUHJvcGVydGllcyIsIGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW50ZXJuYWxDb25z
dHJ1Y3Rvck5hbWUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJu
YWxDb25zdHJ1Y3Rvck5hbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiaXNIVE1MQWxsQ29sbGVjdGlvbiIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJv
ciIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigicHJveHlUYXJnZXRWYWx1ZSIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBTaXplIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbldlYWtNYXBTaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oIndlYWtNYXBFbnRyaWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oIndlYWtTZXRTaXplIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbldlYWtTZXRTaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oIndlYWtTZXRFbnRyaWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbldlYWtTZXRFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oIml0ZXJhdG9yRW50cmllcyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25JdGVyYXRvckVudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigicXVlcnlJbnN0YW5jZXMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uUXVlcnlJbnN0YW5jZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigicXVlcnlIb2xkZXJzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblF1ZXJ5SG9sZGVycywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotCi0gICAgSlNDX05BVElW
RV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJldmFsdWF0ZSIsIGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJf
V0lUSE9VVF9UUkFOU0lUSU9OKCJzYXZlZFJlc3VsdEFsaWFzIiwganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsaWFzLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJ0eXBlIl9zLCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uU3VidHlwZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJmdW5jdGlvbkRldGFpbHMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzIl9zLCBqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImludGVybmFsQ29uc3RydWN0b3JO
YW1lIl9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25z
dHJ1Y3Rvck5hbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
aXNIVE1MQWxsQ29sbGVjdGlvbiJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbklzSFRNTEFsbENvbGxlY3Rpb24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiaXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIl9z
LCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRX
aXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInByb3h5VGFyZ2V0VmFsdWUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBTaXplIl9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigid2Vha01hcEVudHJpZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJ3ZWFrU2V0U2l6ZSJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbldlYWtTZXRTaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oIndlYWtTZXRFbnRyaWVzIl9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiaXRlcmF0b3JFbnRyaWVzIl9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInF1ZXJ5SW5zdGFuY2VzIl9zLCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigicXVlcnlIb2xkZXJzIl9zLCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlIb2xkZXJzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIl9zLCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24s
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
KworICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiZXZhbHVhdGUiX3Ms
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAg
SlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJzYXZlZFJlc3VsdEFsaWFzIl9z
LCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZVNhdmVkUmVzdWx0QWxpYXMs
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nv
cik7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUF0dHJpYnV0ZUV2YWx1YXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3Bw
CmluZGV4IDE3MDg4ZDg1OTM2ZC4uODMxMjg2MzE3NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJh
bWVQcm90b3R5cGUuY3BwCkBAIC01NSwxOCArNTUsMTggQEAgdm9pZCBKU0phdmFTY3JpcHRDYWxs
RnJhbWVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2IKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZt
LCBpbmZvKCkpKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24iLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQ
cm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNjb3BlRGVzY3JpcHRpb25zIiwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25TY29wZURlc2NyaXB0aW9ucywgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwotCi0gICAg
SlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJjYWxsZXIiLCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJfV0lU
SE9VVF9UUkFOU0lUSU9OKCJzb3VyY2VJRCIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVNvdXJjZUlELCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6QWNjZXNzb3IpOwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigi
bGluZSIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUxpbmUsIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05B
VElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJjb2x1bW4iLCBqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVDb2x1bW4sIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9U
UkFOU0lUSU9OKCJmdW5jdGlvbk5hbWUiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVG
dW5jdGlvbk5hbWUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9O
KCJzY29wZUNoYWluIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbiwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oInRoaXNPYmplY3Qi
LCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgIEpTQ19O
QVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigidHlwZSIsIGpzSmF2YVNjcmlwdENhbGxG
cmFtZUF0dHJpYnV0ZVR5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFO
U0lUSU9OKCJpc1RhaWxEZWxldGVkIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRl
ZCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXZhbHVh
dGVXaXRoU2NvcGVFeHRlbnNpb24iX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1
bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigic2NvcGVEZXNjcmlwdGlvbnMiX3MsIGpzSmF2YVNjcmlwdENh
bGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlvbnMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKworICAgIEpTQ19OQVRJ
VkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiY2FsbGVyIl9zLCBqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVDYWxsZXIsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9U
UkFOU0lUSU9OKCJzb3VyY2VJRCJfcywganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291
cmNlSUQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJsaW5l
Il9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5lLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19OQVRJ
VkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiY29sdW1uIl9zLCBqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVDb2x1bW4sIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9U
UkFOU0lUSU9OKCJmdW5jdGlvbk5hbWUiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZUZ1bmN0aW9uTmFtZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJ
T04oInNjb3BlQ2hhaW4iX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hh
aW4sIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aGlzT2Jq
ZWN0Il9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0LCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAg
IEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigidHlwZSJfcywganNKYXZhU2Ny
aXB0Q2FsbEZyYW1lQXR0cmlidXRlVHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRI
T1VUX1RSQU5TSVRJT04oImlzVGFpbERlbGV0ZWQiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlz
VGFpbERlbGV0ZWQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpBY2Nlc3Nvcik7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3Jp
cHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAppbmRleCAxOTI1MTA3Yzg4OGEuLjg5N2YwOTVmNjMzNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTUyNyw0OSArNTI3LDQ5IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9U
UkFOU0lUSU9OKCk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkZWJ1ZyIsIGZ1bmN0aW9u
RGVidWcsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRlc2NyaWJlIiwgZnVuY3Rpb25E
ZXNjcmliZSwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGVzY3JpYmVBcnJheSIsIGZ1
bmN0aW9uRGVzY3JpYmVBcnJheSwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJpbnQi
LCBmdW5jdGlvblByaW50U3RkT3V0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmlu
dEVyciIsIGZ1bmN0aW9uUHJpbnRTdGRFcnIsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
InByZXR0eVByaW50IiwgZnVuY3Rpb25QcmV0dHlQcmludCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAicXVpdCIsIGZ1bmN0aW9uUXVpdCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiZ2MiLCBmdW5jdGlvbkdDQW5kU3dlZXAsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImZ1bGxHQyIsIGZ1bmN0aW9uRnVsbEdDLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJl
ZGVuR0MiLCBmdW5jdGlvbkVkZW5HQywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2NI
ZWFwU2l6ZSIsIGZ1bmN0aW9uSGVhcFNpemUsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
Im1lbW9yeVVzYWdlU3RhdGlzdGljcyIsIGZ1bmN0aW9uTWVtb3J5VXNhZ2VTdGF0aXN0aWNzLCAw
KTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJNZW1vcnlGb290cHJpbnQiLCBmdW5jdGlvbkNy
ZWF0ZU1lbW9yeUZvb3RwcmludCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRN
ZW1vcnlQZWFrIiwgZnVuY3Rpb25SZXNldE1lbW9yeVBlYWssIDApOwotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImFkZHJlc3NPZiIsIGZ1bmN0aW9uQWRkcmVzc09mLCAxKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJ2ZXJzaW9uIiwgZnVuY3Rpb25WZXJzaW9uLCAxKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJydW4iLCBmdW5jdGlvblJ1biwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAicnVuU3RyaW5nIiwgZnVuY3Rpb25SdW5TdHJpbmcsIDEpOwotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImxvYWQiLCBmdW5jdGlvbkxvYWQsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImxvYWRTdHJpbmciLCBmdW5jdGlvbkxvYWRTdHJpbmcsIDEpOwotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgInJlYWRGaWxlIiwgZnVuY3Rpb25SZWFkRmlsZSwgMik7Ci0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAicmVhZCIsIGZ1bmN0aW9uUmVhZEZpbGUsIDIpOwotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImNoZWNrU3ludGF4IiwgZnVuY3Rpb25DaGVja1N5bnRheCwgMSk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAic2xlZXBTZWNvbmRzIiwgZnVuY3Rpb25TbGVlcFNlY29uZHMsIDEp
OwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImpzY1N0YWNrIiwgZnVuY3Rpb25KU0NTdGFjaywg
MSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAib3BlbkZpbGUiLCBmdW5jdGlvbk9wZW5GaWxl
LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZWFkbGluZSIsIGZ1bmN0aW9uUmVhZGxp
bmUsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByZWNpc2VUaW1lIiwgZnVuY3Rpb25Q
cmVjaXNlVGltZSwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibmV2ZXJJbmxpbmVGdW5j
dGlvbiIsIGZ1bmN0aW9uTmV2ZXJJbmxpbmVGdW5jdGlvbiwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAibm9JbmxpbmUiLCBmdW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24sIDEpOwotICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgIm5vREZHIiwgZnVuY3Rpb25Ob0RGRywgMSk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAibm9GVEwiLCBmdW5jdGlvbk5vRlRMLCAxKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJub09TUkV4aXRGdXp6aW5nIiwgZnVuY3Rpb25Ob09TUkV4aXRGdXp6aW5n
LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJudW1iZXJPZkRGR0NvbXBpbGVzIiwgZnVu
Y3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVzLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJj
YWxsZXJJc0JCUU9yT01HQ29tcGlsZWQiLCBmdW5jdGlvbkNhbGxlcklzQkJRT3JPTUdDb21waWxl
ZCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAianNjT3B0aW9ucyIsIGZ1bmN0aW9uSlND
T3B0aW9ucywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAib3B0aW1pemVOZXh0SW52b2Nh
dGlvbiIsIGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbiwgMSk7Ci0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAicmVvcHRpbWl6YXRpb25SZXRyeUNvdW50IiwgZnVuY3Rpb25SZW9wdGltaXph
dGlvblJldHJ5Q291bnQsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInRyYW5zZmVyQXJy
YXlCdWZmZXIiLCBmdW5jdGlvblRyYW5zZmVyQXJyYXlCdWZmZXIsIDEpOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImZhaWxOZXh0TmV3Q29kZUJsb2NrIiwgZnVuY3Rpb25GYWlsTmV4dE5ld0Nv
ZGVCbG9jaywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGVidWciX3MsIGZ1bmN0aW9u
RGVidWcsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRlc2NyaWJlIl9zLCBmdW5jdGlv
bkRlc2NyaWJlLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkZXNjcmliZUFycmF5Il9z
LCBmdW5jdGlvbkRlc2NyaWJlQXJyYXksIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInBy
aW50Il9zLCBmdW5jdGlvblByaW50U3RkT3V0LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJwcmludEVyciJfcywgZnVuY3Rpb25QcmludFN0ZEVyciwgMSk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAicHJldHR5UHJpbnQiX3MsIGZ1bmN0aW9uUHJldHR5UHJpbnQsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgInF1aXQiX3MsIGZ1bmN0aW9uUXVpdCwgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZ2MiX3MsIGZ1bmN0aW9uR0NBbmRTd2VlcCwgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZnVsbEdDIl9zLCBmdW5jdGlvbkZ1bGxHQywgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZWRlbkdDIl9zLCBmdW5jdGlvbkVkZW5HQywgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZ2NIZWFwU2l6ZSJfcywgZnVuY3Rpb25IZWFwU2l6ZSwgMCk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAibWVtb3J5VXNhZ2VTdGF0aXN0aWNzIl9zLCBmdW5jdGlvbk1l
bW9yeVVzYWdlU3RhdGlzdGljcywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiTWVtb3J5
Rm9vdHByaW50Il9zLCBmdW5jdGlvbkNyZWF0ZU1lbW9yeUZvb3RwcmludCwgMCk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRNZW1vcnlQZWFrIl9zLCBmdW5jdGlvblJlc2V0TWVtb3J5
UGVhaywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYWRkcmVzc09mIl9zLCBmdW5jdGlv
bkFkZHJlc3NPZiwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidmVyc2lvbiJfcywgZnVu
Y3Rpb25WZXJzaW9uLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJydW4iX3MsIGZ1bmN0
aW9uUnVuLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJydW5TdHJpbmciX3MsIGZ1bmN0
aW9uUnVuU3RyaW5nLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJsb2FkIl9zLCBmdW5j
dGlvbkxvYWQsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImxvYWRTdHJpbmciX3MsIGZ1
bmN0aW9uTG9hZFN0cmluZywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVhZEZpbGUi
X3MsIGZ1bmN0aW9uUmVhZEZpbGUsIDIpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJlYWQi
X3MsIGZ1bmN0aW9uUmVhZEZpbGUsIDIpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNr
U3ludGF4Il9zLCBmdW5jdGlvbkNoZWNrU3ludGF4LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJzbGVlcFNlY29uZHMiX3MsIGZ1bmN0aW9uU2xlZXBTZWNvbmRzLCAxKTsKKyAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJqc2NTdGFjayJfcywgZnVuY3Rpb25KU0NTdGFjaywgMSk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAib3BlbkZpbGUiX3MsIGZ1bmN0aW9uT3BlbkZpbGUsIDEpOwor
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJlYWRsaW5lIl9zLCBmdW5jdGlvblJlYWRsaW5lLCAw
KTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmVjaXNlVGltZSJfcywgZnVuY3Rpb25QcmVj
aXNlVGltZSwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibmV2ZXJJbmxpbmVGdW5jdGlv
biJfcywgZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJub0lubGluZSJfcywgZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uLCAxKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJub0RGRyJfcywgZnVuY3Rpb25Ob0RGRywgMSk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9GVEwiX3MsIGZ1bmN0aW9uTm9GVEwsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgIm5vT1NSRXhpdEZ1enppbmciX3MsIGZ1bmN0aW9uTm9PU1JFeGl0
RnV6emluZywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibnVtYmVyT2ZERkdDb21waWxl
cyJfcywgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVzLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJjYWxsZXJJc0JCUU9yT01HQ29tcGlsZWQiX3MsIGZ1bmN0aW9uQ2FsbGVySXNCQlFP
ck9NR0NvbXBpbGVkLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJqc2NPcHRpb25zIl9z
LCBmdW5jdGlvbkpTQ09wdGlvbnMsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm9wdGlt
aXplTmV4dEludm9jYXRpb24iX3MsIGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbiwgMSk7
CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVvcHRpbWl6YXRpb25SZXRyeUNvdW50Il9zLCBm
dW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAidHJhbnNmZXJBcnJheUJ1ZmZlciJfcywgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVy
LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJmYWlsTmV4dE5ld0NvZGVCbG9jayJfcywg
ZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9jaywgMSk7CiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZM
QUdTKQotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldFNhbXBsaW5nRmxhZ3MiLCBmdW5jdGlv
blNldFNhbXBsaW5nRmxhZ3MsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNsZWFyU2Ft
cGxpbmdGbGFncyIsIGZ1bmN0aW9uQ2xlYXJTYW1wbGluZ0ZsYWdzLCAxKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJzZXRTYW1wbGluZ0ZsYWdzIl9zLCBmdW5jdGlvblNldFNhbXBsaW5nRmxh
Z3MsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNsZWFyU2FtcGxpbmdGbGFncyJfcywg
ZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MsIDEpOwogI2VuZGlmCiAKICAgICAgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJP
U1JFeGl0Il9zKSwgMCwgZnVuY3Rpb25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250
RW51bSk7CkBAIC01NzksNTUgKzU3OSw1NSBAQCBwcml2YXRlOgogICAgICAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbih2bSwgdGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlzUHVy
ZU5hTiJfcyksIDAsIGZ1bmN0aW9uSXNQdXJlTmFOLCBDaGVja0ludDMySW50cmluc2ljLCBEb250
RW51bSk7CiAgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiZmlhdEludDUyIl9zKSwgMCwgZnVuY3Rpb25JZGVudGl0eSwg
RmlhdEludDUySW50cmluc2ljLCBEb250RW51bSk7CiAgICAgICAgIAotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImVmZmVjdGZ1bDQyIiwgZnVuY3Rpb25FZmZlY3RmdWw0MiwgMCk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAibWFrZU1hc3F1ZXJhZGVyIiwgZnVuY3Rpb25NYWtlTWFzcXVlcmFk
ZXIsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImhhc0N1c3RvbVByb3BlcnRpZXMiLCBm
dW5jdGlvbkhhc0N1c3RvbVByb3BlcnRpZXMsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImVmZmVjdGZ1bDQyIl9zLCBmdW5jdGlvbkVmZmVjdGZ1bDQyLCAwKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJtYWtlTWFzcXVlcmFkZXIiX3MsIGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyLCAw
KTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJoYXNDdXN0b21Qcm9wZXJ0aWVzIl9zLCBmdW5j
dGlvbkhhc0N1c3RvbVByb3BlcnRpZXMsIDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwotICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUhlYXBCaWdJbnQiLCBmdW5jdGlvbkNyZWF0ZUhl
YXBCaWdJbnQsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUdsb2JhbE9iamVj
dCJfcywgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZUhlYXBCaWdJbnQiX3MsIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCwgMSk7
CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJpZ0lu
dDMyIiwgZnVuY3Rpb25DcmVhdGVCaWdJbnQzMiwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlQmlnSW50MzIiX3MsIGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIsIDEpOwogI2VuZGlm
Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidXNlQmlnSW50MzIiLCBmdW5jdGlvblVzZUJpZ0lu
dDMyLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc0JpZ0ludDMyIiwgZnVuY3Rpb25J
c0JpZ0ludDMyLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc0hlYXBCaWdJbnQiLCBm
dW5jdGlvbklzSGVhcEJpZ0ludCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidXNlQmln
SW50MzIiX3MsIGZ1bmN0aW9uVXNlQmlnSW50MzIsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImlzQmlnSW50MzIiX3MsIGZ1bmN0aW9uSXNCaWdJbnQzMiwgMSk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiaXNIZWFwQmlnSW50Il9zLCBmdW5jdGlvbklzSGVhcEJpZ0ludCwgMSk7CiAK
LSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMiLCBmdW5j
dGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyAsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImR1bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyJfcywgZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxW
YXJpYWJsZXMgLCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRyYWluTWljcm90YXNr
cyIsIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJzZXRUaW1lb3V0IiwgZnVuY3Rpb25TZXRUaW1lb3V0LCAyKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJkcmFpbk1pY3JvdGFza3MiX3MsIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzLCAwKTsK
KyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRUaW1lb3V0Il9zLCBmdW5jdGlvblNldFRpbWVv
dXQsIDIpOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVsZWFzZVdlYWtSZWZzIiwgZnVu
Y3Rpb25SZWxlYXNlV2Vha1JlZnMsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZpbmFs
aXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50IiwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxp
dmVDb3VudCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmluYWxpemF0aW9uUmVnaXN0
cnlEZWFkQ291bnQiLCBmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50LCAwKTsK
KyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZWxlYXNlV2Vha1JlZnMiX3MsIGZ1bmN0aW9uUmVs
ZWFzZVdlYWtSZWZzLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJmaW5hbGl6YXRpb25S
ZWdpc3RyeUxpdmVDb3VudCJfcywgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3Vu
dCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmluYWxpemF0aW9uUmVnaXN0cnlEZWFk
Q291bnQiX3MsIGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQsIDApOwogICAg
ICAgICAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnZXRSYW5kb21TZWVkIiwgZnVuY3Rpb25H
ZXRSYW5kb21TZWVkLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRSYW5kb21TZWVk
IiwgZnVuY3Rpb25TZXRSYW5kb21TZWVkLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJp
c1JvcGUiLCBmdW5jdGlvbklzUm9wZSwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2Fs
bGVyU291cmNlT3JpZ2luIiwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4sIDApOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImdldFJhbmRvbVNlZWQiX3MsIGZ1bmN0aW9uR2V0UmFuZG9tU2Vl
ZCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0UmFuZG9tU2VlZCJfcywgZnVuY3Rp
b25TZXRSYW5kb21TZWVkLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc1JvcGUiX3Ms
IGZ1bmN0aW9uSXNSb3BlLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsZXJTb3Vy
Y2VPcmlnaW4iX3MsIGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2luLCAwKTsKIAotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImlzMzJCaXRQbGF0Zm9ybSIsIGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3Jt
LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpczMyQml0UGxhdGZvcm0iX3MsIGZ1bmN0
aW9uSXMzMkJpdFBsYXRmb3JtLCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNr
TW9kdWxlU3ludGF4IiwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCwgMSk7Ci0gICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY2hlY2tTY3JpcHRTeW50YXgiLCBmdW5jdGlvbkNoZWNrU2NyaXB0U3lu
dGF4LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjaGVja01vZHVsZVN5bnRheCJfcywg
ZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y2hlY2tTY3JpcHRTeW50YXgiX3MsIGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgsIDEpOwogCi0g
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIi
LCBmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyLCAwKTsKLSAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJnZW5lcmF0ZUhlYXBTbmFwc2hvdCIsIGZ1bmN0aW9uR2VuZXJhdGVI
ZWFwU25hcHNob3QsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImdlbmVyYXRlSGVhcFNu
YXBzaG90Rm9yR0NEZWJ1Z2dpbmciLCBmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NE
ZWJ1Z2dpbmcsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJlc2V0U3VwZXJTYW1wbGVy
U3RhdGUiLCBmdW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUsIDApOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImVuc3VyZUFycmF5U3RvcmFnZSIsIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9y
YWdlLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwbGF0Zm9ybVN1cHBvcnRzU2FtcGxp
bmdQcm9maWxlciJfcywgZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwg
MCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2VuZXJhdGVIZWFwU25hcHNob3QiX3MsIGZ1
bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImdlbmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmciX3MsIGZ1bmN0aW9uR2VuZXJhdGVI
ZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
cmVzZXRTdXBlclNhbXBsZXJTdGF0ZSJfcywgZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0YXRl
LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJlbnN1cmVBcnJheVN0b3JhZ2UiX3MsIGZ1
bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCAwKTsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklM
RVIpCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic3RhcnRTYW1wbGluZ1Byb2ZpbGVyIiwgZnVu
Y3Rpb25TdGFydFNhbXBsaW5nUHJvZmlsZXIsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
InNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcyIsIGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0
YWNrVHJhY2VzLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzdGFydFNhbXBsaW5nUHJv
ZmlsZXIiX3MsIGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyLCAwKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJzYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXMiX3MsIGZ1bmN0aW9uU2Ft
cGxpbmdQcm9maWxlclN0YWNrVHJhY2VzLCAwKTsKICNlbmRpZgogCi0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAibWF4QXJndW1lbnRzIiwgZnVuY3Rpb25NYXhBcmd1bWVudHMsIDApOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgIm1heEFyZ3VtZW50cyJfcywgZnVuY3Rpb25NYXhBcmd1bWVudHMs
IDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXN5bmNUZXN0U3RhcnQiLCBmdW5jdGlv
bkFzeW5jVGVzdFN0YXJ0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJhc3luY1Rlc3RQ
YXNzZWQiLCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiYXN5bmNUZXN0U3RhcnQiX3MsIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQsIDEpOworICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImFzeW5jVGVzdFBhc3NlZCJfcywgZnVuY3Rpb25Bc3luY1Rl
c3RQYXNzZWQsIDEpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgIldlYkFzc2VtYmx5TWVtb3J5TW9kZSIsIGZ1bmN0aW9uV2ViQXNzZW1ibHlNZW1v
cnlNb2RlLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJXZWJBc3NlbWJseU1lbW9yeU1v
ZGUiX3MsIGZ1bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlLCAxKTsKICNlbmRpZgogCiAgICAg
ICAgIGlmICghYXJndW1lbnRzLmlzRW1wdHkoKSkgewpAQCAtNjQ1LDEzICs2NDUsMTMgQEAgcHJp
dmF0ZToKICAgICAgICAgcHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
JCJfcyksIGRvbGxhciwgRG9udEVudW0pOwogICAgICAgICBwdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICIkMjYyIl9zKSwgZG9sbGFyLCBEb250RW51bSk7CiAgICAgICAg
IAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiY3JlYXRlUmVhbG0iLCBmdW5jdGlv
bkRvbGxhckNyZWF0ZVJlYWxtLCAwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImRldGFjaEFy
cmF5QnVmZmVyIiwgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyLCAxLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sIGRvbGxhciwgImV2YWxTY3JpcHQiLCBmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQsIDEsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZ2MiLCBmdW5jdGlvbkRvbGxhckdDLCAwLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sIGRvbGxhciwgImNsZWFyS2VwdE9iamVjdHMiLCBmdW5jdGlvbkRvbGxhckNsZWFy
S2VwdE9iamVjdHMsIDAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZ2xvYmFsT2JqZWN0Rm9y
IiwgZnVuY3Rpb25Eb2xsYXJHbG9iYWxPYmplY3RGb3IsIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9s
bGFyLCAiaXNSZW1vdGVGdW5jdGlvbiIsIGZ1bmN0aW9uRG9sbGFySXNSZW1vdGVGdW5jdGlvbiwg
MSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJjcmVhdGVSZWFsbSJfcywgZnVuY3Rpb25Eb2xs
YXJDcmVhdGVSZWFsbSwgMCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJkZXRhY2hBcnJheUJ1
ZmZlciJfcywgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyLCAxLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
IGRvbGxhciwgImV2YWxTY3JpcHQiX3MsIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCwgMSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJnYyJfcywgZnVuY3Rpb25Eb2xsYXJHQywgMCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCBkb2xsYXIsICJjbGVhcktlcHRPYmplY3RzIl9zLCBmdW5jdGlvbkRvbGxhckNs
ZWFyS2VwdE9iamVjdHMsIDAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Tm9uZSkpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZ2xvYmFsT2JqZWN0
Rm9yIl9zLCBmdW5jdGlvbkRvbGxhckdsb2JhbE9iamVjdEZvciwgMSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCBkb2xsYXIsICJpc1JlbW90ZUZ1bmN0aW9uIl9zLCBmdW5jdGlvbkRvbGxhcklzUmVtb3RlRnVu
Y3Rpb24sIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkp
OwogICAgICAgICAKICAgICAgICAgZG9sbGFyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJnbG9iYWwiX3MpLCBnbG9iYWxUaGlzKCkpOwogICAgICAgICBkb2xsYXIt
PnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
SXNIVE1MRERBIl9zKSwKQEAgLTY2NCwyOSArNjY0LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIAog
ICAgICAgICAvLyBUaGUgdGVzdDI2MiBJTlRFUlBSRVRJTkcubWQgZG9jdW1lbnQgc2F5cyB0aGF0
IHNvbWUgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBqdXN0IGluIHRoZSBtYWluCiAgICAgICAgIC8v
IHRocmVhZCBhbmQgc29tZSBhcmUgaW4gdGhlIG90aGVyIHRocmVhZHMuIFdlIGp1c3QgcHV0IHRo
ZW0gaW4gYWxsIHRocmVhZHMuCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgInN0YXJ0
IiwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0s
IGFnZW50LCAicmVjZWl2ZUJyb2FkY2FzdCIsIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJv
YWRjYXN0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVwb3J0IiwgZnVu
Y3Rpb25Eb2xsYXJBZ2VudFJlcG9ydCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2Vu
dCwgInNsZWVwIiwgZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwLCAxKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sIGFnZW50LCAiYnJvYWRjYXN0IiwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2Fz
dCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImdldFJlcG9ydCIsIGZ1bmN0
aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdl
bnQsICJsZWF2aW5nIiwgZnVuY3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcsIDApOwotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgYWdlbnQsICJtb25vdG9uaWNOb3ciLCBmdW5jdGlvbkRvbGxhckFnZW50
TW9ub3RvbmljTm93LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAic3RhcnQi
X3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFydCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCBhZ2VudCwgInJlY2VpdmVCcm9hZGNhc3QiX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZl
QnJvYWRjYXN0LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVwb3J0Il9z
LCBmdW5jdGlvbkRvbGxhckFnZW50UmVwb3J0LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
IGFnZW50LCAic2xlZXAiX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRTbGVlcCwgMSk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImJyb2FkY2FzdCJfcywgZnVuY3Rpb25Eb2xsYXJBZ2Vu
dEJyb2FkY2FzdCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImdldFJlcG9y
dCJfcywgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydCwgMCk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCBhZ2VudCwgImxlYXZpbmciX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRMZWF2aW5nLCAw
KTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAibW9ub3RvbmljTm93Il9zLCBmdW5j
dGlvbkRvbGxhckFnZW50TW9ub3RvbmljTm93LCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgIndhaXRGb3JSZXBvcnQiLCBmdW5jdGlvbldhaXRGb3JSZXBvcnQsIDApOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgIndhaXRGb3JSZXBvcnQiX3MsIGZ1bmN0aW9uV2FpdEZvclJlcG9ydCwg
MCk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJoZWFwQ2FwYWNpdHkiLCBmdW5jdGlvbkhl
YXBDYXBhY2l0eSwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmxhc2hIZWFwQWNjZXNz
IiwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImhlYXBDYXBhY2l0eSJfcywgZnVuY3Rpb25IZWFwQ2FwYWNpdHksIDApOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImZsYXNoSGVhcEFjY2VzcyJfcywgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3Ms
IDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGlzYWJsZVJpY2hTb3VyY2VJbmZvIiwg
ZnVuY3Rpb25EaXNhYmxlUmljaFNvdXJjZUluZm8sIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2
bSwgIm1hbGxvY0luQUxvb3AiLCBmdW5jdGlvbk1hbGxvY0luQUxvb3AsIDApOwotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgInRvdGFsQ29tcGlsZVRpbWUiLCBmdW5jdGlvblRvdGFsQ29tcGlsZVRp
bWUsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRpc2FibGVSaWNoU291cmNlSW5mbyJf
cywgZnVuY3Rpb25EaXNhYmxlUmljaFNvdXJjZUluZm8sIDApOworICAgICAgICBhZGRGdW5jdGlv
bih2bSwgIm1hbGxvY0luQUxvb3AiX3MsIGZ1bmN0aW9uTWFsbG9jSW5BTG9vcCwgMCk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAidG90YWxDb21waWxlVGltZSJfcywgZnVuY3Rpb25Ub3RhbENv
bXBpbGVUaW1lLCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldFVuaGFuZGxlZFJl
amVjdGlvbkNhbGxiYWNrIiwgZnVuY3Rpb25TZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjaywg
MSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJh
Y2siX3MsIGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2ssIDEpOwogCi0gICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXNEb3VibGVOdW1iZXIiLCBmdW5jdGlvbkFzRG91YmxlTnVt
YmVyLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJhc0RvdWJsZU51bWJlciJfcywgZnVu
Y3Rpb25Bc0RvdWJsZU51bWJlciwgMSk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkcm9w
QWxsTG9ja3MiLCBmdW5jdGlvbkRyb3BBbGxMb2NrcywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiZHJvcEFsbExvY2tzIl9zLCBmdW5jdGlvbkRyb3BBbGxMb2NrcywgMSk7CiAKICAgICAg
ICAgaWYgKE9wdGlvbnM6OmV4cG9zZUN1c3RvbVNldHRlcnNPbkdsb2JhbE9iamVjdEZvclRlc3Rp
bmcoKSkgewogICAgICAgICAgICAgewpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAgICAg
fQogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgdGVzdEN1c3RvbVNldHRlckltcGwoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCisg
ICAgc3RhdGljIGJvb2wgdGVzdEN1c3RvbVNldHRlckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBBU0NJSUxpdGVyYWwgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAg
Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKIApAQCAtNzE1LDEzICs3MTUsMTMg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEZ1bmN0aW9uKFZNJiB2
bSwgSlNPYmplY3QqIG9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVu
Y3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cywgdW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKQorICAgIHZvaWQgYWRk
RnVuY3Rpb24oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0
aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cywgdW5zaWduZWQgYXR0cmli
dXRlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
KQogICAgIHsKICAgICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgbmFtZSk7CiAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBpZGVudGlm
aWVyLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIGFyZ3VtZW50cywgaWRlbnRpZmllci5z
dHJpbmcoKSwgZnVuY3Rpb24pLCBhdHRyaWJ1dGVzKTsKICAgICB9CiAKLSAgICB2b2lkIGFkZEZ1
bmN0aW9uKFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24s
IHVuc2lnbmVkIGFyZ3VtZW50cywgdW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKQorICAgIHZvaWQgYWRkRnVuY3Rp
b24oVk0mIHZtLCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVu
c2lnbmVkIGFyZ3VtZW50cywgdW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKQogICAgIHsKICAgICAgICAgYWRkRnVu
Y3Rpb24odm0sIHRoaXMsIG5hbWUsIGZ1bmN0aW9uLCBhcmd1bWVudHMsIGF0dHJpYnV0ZXMpOwog
ICAgIH0KQEAgLTc3Nyw3ICs3NzcsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIodGVzdEN1
c3RvbUFjY2Vzc29yU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIFJF
TEVBU0VfQVNTRVJUKHRoaXNDZWxsLT50eXBlKCkgPT0gUHVyZUZvcndhcmRpbmdQcm94eVR5cGUp
OwogICAgIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2Jq
ZWN0Kj4odm0sIGpzQ2FzdDxKU1Byb3h5Kj4odGhpc0NlbGwpLT50YXJnZXQoKSk7CiAgICAgUkVM
RUFTRV9BU1NFUlQodGhpc09iamVjdCk7Ci0gICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6dGVzdEN1
c3RvbVNldHRlckltcGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZh
bHVlLCAiX3Rlc3RDdXN0b21BY2Nlc3NvclNldHRlciIpOworICAgIHJldHVybiBHbG9iYWxPYmpl
Y3Q6OnRlc3RDdXN0b21TZXR0ZXJJbXBsKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qs
IGVuY29kZWRWYWx1ZSwgIl90ZXN0Q3VzdG9tQWNjZXNzb3JTZXR0ZXIiX3MpOwogfQogCiBKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIodGVzdEN1c3RvbVZhbHVlU2V0dGVyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBQcm9wZXJ0eU5hbWUpKQpAQCAtNzg3LDcgKzc4Nyw3IEBA
IEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUih0ZXN0Q3VzdG9tVmFsdWVTZXR0ZXIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iCiAgICAgSlNDZWxsKiB0aGlzQ2VsbCA9IEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpLmFzQ2VsbCgpOwogICAgIEdsb2JhbE9iamVjdCogdGhpc09iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2JqZWN0Kj4odm0sIHRoaXNDZWxsKTsKICAgICBSRUxF
QVNFX0FTU0VSVCh0aGlzT2JqZWN0KTsKLSAgICByZXR1cm4gR2xvYmFsT2JqZWN0Ojp0ZXN0Q3Vz
dG9tU2V0dGVySW1wbChsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFs
dWUsICJfdGVzdEN1c3RvbVZhbHVlU2V0dGVyIik7CisgICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6
dGVzdEN1c3RvbVNldHRlckltcGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5j
b2RlZFZhbHVlLCAiX3Rlc3RDdXN0b21WYWx1ZVNldHRlciJfcyk7CiB9CiAKIHN0YXRpYyBVQ2hh
ciBwYXRoU2VwYXJhdG9yKCkKQEAgLTE0NTcsMjAgKzE0NTcsMjAgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogCi0gICAgICAgIGF1dG8gYWRkUHJv
cGVydHkgPSBbJl0gKFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSwgSlNWYWx1ZSB2YWx1ZSkgewor
ICAgICAgICBhdXRvIGFkZFByb3BlcnR5ID0gWyZdIChWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1l
LCBKU1ZhbHVlIHZhbHVlKSB7CiAgICAgICAgICAgICBKU0NNZW1vcnlGb290cHJpbnQ6OmFkZFBy
b3BlcnR5KHZtLCBuYW1lLCB2YWx1ZSk7CiAgICAgICAgIH07CiAKICAgICAgICAgTWVtb3J5Rm9v
dHByaW50IGZvb3RwcmludCA9IE1lbW9yeUZvb3RwcmludDo6bm93KCk7CiAKLSAgICAgICAgYWRk
UHJvcGVydHkodm0sICJjdXJyZW50IiwganNOdW1iZXIoZm9vdHByaW50LmN1cnJlbnQpKTsKLSAg
ICAgICAgYWRkUHJvcGVydHkodm0sICJwZWFrIiwganNOdW1iZXIoZm9vdHByaW50LnBlYWspKTsK
KyAgICAgICAgYWRkUHJvcGVydHkodm0sICJjdXJyZW50Il9zLCBqc051bWJlcihmb290cHJpbnQu
Y3VycmVudCkpOworICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInBlYWsiX3MsIGpzTnVtYmVyKGZv
b3RwcmludC5wZWFrKSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9JTkZPOwogCiBwcml2YXRlOgot
ICAgIHZvaWQgYWRkUHJvcGVydHkoVk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBKU1ZhbHVlIHZh
bHVlKQorICAgIHZvaWQgYWRkUHJvcGVydHkoVk0mIHZtLCBBU0NJSUxpdGVyYWwgbmFtZSwgSlNW
YWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIG5hbWUpOwogICAgICAgICBwdXREaXJlY3Qodm0sIGlkZW50
aWZpZXIsIHZhbHVlKTsKQEAgLTE1MzgsNyArMTUzOCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvblJ1biwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSoKICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KHJlYWxtLCBpIC0gMSwgY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudChpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIH0KLSAgICByZWFsbS0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYXJndW1lbnRzIiksIGFycmF5KTsKKyAgICByZWFs
bS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYXJndW1lbnRzIl9z
KSwgYXJyYXkpOwogCiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247CiAgICAgU3Rv
cFdhdGNoIHN0b3BXYXRjaDsKQEAgLTE1NzIsNyArMTU3Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvblJ1blN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGCiAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChyZWFsbSwgaSAtIDEsIGNhbGxG
cmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9Ci0gICAgcmVhbG0tPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFyZ3VtZW50cyIpLCBhcnJheSk7CisgICAg
cmVhbG0tPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFyZ3VtZW50
cyJfcyksIGFycmF5KTsKIAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwogICAg
IGV2YWx1YXRlKHJlYWxtLCBqc2NTb3VyY2Uoc291cmNlLCBjYWxsRnJhbWUtPmNhbGxlclNvdXJj
ZU9yaWdpbih2bSkpLCBKU1ZhbHVlKCksIGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgKaW5kZXggOGFjOWE4NDU4YjYwLi42NjczYmFmOTNmMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTQxMCw3ICs0MTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIEFTU0VSVChtX2Rpdm90RW5kLm9mZnNldCA+PSBtX2Rpdm90Lm9mZnNl
dCk7CiAgICAgICAgIH0KICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRU
aHJvd1JlZmVyZW5jZUVycm9yKEJ5dGVjb2RlR2VuZXJhdG9yJiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBSZWdpc3RlcklEKiBkc3QgPSBudWxscHRyKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dFRocm93UmVmZXJlbmNlRXJyb3IoQnl0ZWNvZGVHZW5lcmF0b3ImLCBBU0NJSUxpdGVyYWwgbWVz
c2FnZSwgUmVnaXN0ZXJJRCogZHN0ID0gbnVsbHB0cik7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBKU1RleHRQb3NpdGlvbiBtX2Rpdm90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDU3M2ExN2IwZGMwZC4uOWNiMDcwMDE0NzE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCkBAIC04NSwyMCArODUsMjAgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpTQ19CVUlMVElO
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5jb25jYXRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlQ29uY2F0Q29kZUdlbmVyYXRv
ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwog
ICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5maWxsUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbGxD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0u
cHJvcGVydHlOYW1lcy0+am9pbiwgYXJyYXlQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9J
TlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwb3AiLCBhcnJheVByb3RvRnVu
Y1BvcCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDAsIEFycmF5UG9wSW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oInBvcCJfcywgYXJyYXlQcm90b0Z1bmNQb3AsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheVBvcElu
dHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnB1c2hQdWJsaWNOYW1lKCks
IGFycmF5UHJvdG9GdW5jUHVzaCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDEsIEFycmF5UHVzaEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldmVyc2UiLCBhcnJheVByb3RvRnVuY1JldmVy
c2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAw
KTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmV2ZXJzZSJf
cywgYXJyYXlQcm90b0Z1bmNSZXZlcnNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2hpZnRQdWJsaWNO
YW1lKCksIGFycmF5UHJvdG9GdW5jU2hpZnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zaGlmdFByaXZh
dGVOYW1lKCksIGFycmF5UHJvdG9GdW5jU2hpZnQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5LCAwKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIGFycmF5UHJvdG9GdW5jU2xpY2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyLCBBcnJh
eVNsaWNlSW50cmluc2ljKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc29ydFB1YmxpY05hbWUoKSwg
YXJyYXlQcm90b3R5cGVTb3J0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJzcGxpY2UiLCBhcnJheVByb3RvRnVuY1NwbGljZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ1bnNoaWZ0IiwgYXJyYXlQcm90b0Z1
bmNVblNoaWZ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNw
bGljZSJfcywgYXJyYXlQcm90b0Z1bmNTcGxpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigidW5zaGlmdCJfcywgYXJyYXlQcm90b0Z1bmNVblNoaWZ0LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmV2ZXJ5UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUV2ZXJ5Q29k
ZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mb3JFYWNoUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvdHlwZUZvckVhY2hDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNvbWVQdWJsaWNO
YW1lKCksIGFycmF5UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJ
TlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBhcnJheVByb3RvRnVu
Y0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxLCBBcnJheUluZGV4T2ZJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIsIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4
T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImluZGV4T2YiX3MsIGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEFycmF5SW5kZXhPZkludHJpbnNpYyk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRleE9m
Il9zLCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbHRl
clB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaWx0ZXJDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgaWYgKE9w
dGlvbnM6OnVzZUFycmF5R3JvdXBCeU1ldGhvZCgpKSB7CiAgICAgICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5ncm91cEJ5UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUdyb3VwQnlDb2RlR2VuZXJhdG9y
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCmluZGV4
IGI5YWFiZDRjMTQ4ZC4uZTdhN2U5ODUzNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcApAQCAtODksMzMgKzg5LDMzIEBAIHZvaWQgQ29u
c29sZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIC8vIEZvciBsZWdhY3kgcmVhc29ucywgY29uc29sZSBwcm9wZXJ0aWVzIGFy
ZSBlbnVtZXJhYmxlLCB3cml0YWJsZSwgZGVsZXRlYWJsZSwKICAgICAvLyBhbmQgYWxsIGhhdmUg
YSBsZW5ndGggb2YgMC4gVGhpcyBtYXkgY2hhbmdlIGlmIENvbnNvbGUgaXMgc3RhbmRhcmRpemVk
LgogCi0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImRlYnVnIiwg
Y29uc29sZVByb3RvRnVuY0RlYnVnLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiZXJyb3IiLCBjb25zb2xlUHJvdG9GdW5jRXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJsb2ciLCBjb25zb2xlUHJvdG9GdW5jTG9nLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5mbyIsIGNvbnNvbGVQcm90b0Z1bmNJbmZv
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2FybiIsIGNvbnNvbGVQ
cm90b0Z1bmNXYXJuLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGVi
dWciX3MsIGNvbnNvbGVQcm90b0Z1bmNEZWJ1Zywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImVycm9yIl9zLCBjb25zb2xlUHJvdG9GdW5jRXJyb3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsb2ciX3MsIGNvbnNvbGVQcm90b0Z1bmNMb2cs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmZvIl9zLCBjb25zb2xl
UHJvdG9GdW5jSW5mbywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpO
b25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndh
cm4iX3MsIGNvbnNvbGVQcm90b0Z1bmNXYXJuLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKIAogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmNsZWFyLCBjb25zb2xlUHJvdG9GdW5jQ2xl
YXIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkaXIiLCBjb25zb2xl
UHJvdG9GdW5jRGlyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGly
eG1sIiwgY29uc29sZVByb3RvRnVuY0RpclhNTCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInRhYmxlIiwgY29uc29sZVByb3RvRnVuY1RhYmxlLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidHJhY2UiLCBjb25zb2xlUHJvdG9GdW5jVHJhY2Us
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJhc3NlcnQiLCBjb25zb2xl
UHJvdG9GdW5jQXNzZXJ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
ZGlyIl9zLCBjb25zb2xlUHJvdG9GdW5jRGlyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiZGlyeG1sIl9zLCBjb25zb2xlUHJvdG9GdW5jRGlyWE1MLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidGFibGUiX3MsIGNvbnNvbGVQcm90b0Z1bmNU
YWJsZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRyYWNlIl9zLCBj
b25zb2xlUHJvdG9GdW5jVHJhY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJhc3NlcnQiX3MsIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmNvdW50LCBjb25zb2xlUHJv
dG9GdW5jQ291bnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3Vu
dFJlc2V0IiwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJwcm9maWxlIiwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm9maWxlRW5kIiwgY29uc29s
ZVByb3RvRnVuY1Byb2ZpbGVFbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJ0aW1lIiwgY29uc29sZVByb3RvRnVuY1RpbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJ0aW1lTG9nIiwgY29uc29sZVByb3RvRnVuY1RpbWVMb2csIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lRW5kIiwgY29uc29sZVByb3Rv
RnVuY1RpbWVFbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1l
U3RhbXAiLCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigidGFrZUhlYXBTbmFwc2hvdCIsIGNvbnNvbGVQcm90b0Z1bmNUYWtl
SGVhcFNuYXBzaG90LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ3Jv
dXAiLCBjb25zb2xlUHJvdG9GdW5jR3JvdXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJncm91cENvbGxhcHNlZCIsIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNl
ZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdyb3VwRW5kIiwgY29u
c29sZVByb3RvRnVuY0dyb3VwRW5kLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigicmVjb3JkIiwgY29uc29sZVByb3RvRnVuY1JlY29yZCwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oInJlY29yZEVuZCIsIGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRF
bmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzY3JlZW5zaG90Iiwg
Y29uc29sZVByb3RvRnVuY1NjcmVlbnNob3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJjb3VudFJlc2V0Il9zLCBjb25zb2xlUHJvdG9GdW5jQ291bnRSZXNldCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInByb2ZpbGUiX3MsIGNvbnNvbGVQ
cm90b0Z1bmNQcm9maWxlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
cHJvZmlsZUVuZCJfcywgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lIl9zLCBjb25zb2xlUHJvdG9GdW5jVGltZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVMb2ciX3MsIGNvbnNv
bGVQcm90b0Z1bmNUaW1lTG9nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigidGltZUVuZCJfcywgY29uc29sZVByb3RvRnVuY1RpbWVFbmQsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lU3RhbXAiX3MsIGNvbnNvbGVQcm90b0Z1bmNUaW1l
U3RhbXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDAp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0YWtlSGVhcFNu
YXBzaG90Il9zLCBjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdyb3VwIl9zLCBjb25zb2xlUHJvdG9GdW5jR3Jv
dXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwor
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cENvbGxhcHNl
ZCJfcywgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiZ3JvdXBFbmQiX3MsIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVu
ZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Cisg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlY29yZCJfcywgY29u
c29sZVByb3RvRnVuY1JlY29yZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInJlY29yZEVuZCJfcywgY29uc29sZVByb3RvRnVuY1JlY29yZEVuZCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNjcmVlbnNob3QiX3MsIGNvbnNvbGVQcm90b0Z1
bmNTY3JlZW5zaG90LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpLCAwKTsKIAogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAppbmRleCBk
ODVmYTA2MjBiNGEuLjIyZjEzNzgyYmY0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5jcHAKQEAgLTI3LDE3ICsyNyw2IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1SZWY8QXRvbVN0cmluZ0ltcGw+IElkZW50aWZpZXI6OmFkZChWTSYgdm0sIGNvbnN0IGNo
YXIqIGMpCi17Ci0gICAgQVNTRVJUKGMpOwotICAgIEFTU0VSVChjWzBdKTsKLSAgICBpZiAoIWNb
MV0pCi0gICAgICAgIHJldHVybiB2bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5n
UmVwKGNbMF0pOwotCi0gICAgcmV0dXJuICpBdG9tU3RyaW5nSW1wbDo6YWRkKGMpOwotfQotCi0K
IFJlZjxBdG9tU3RyaW5nSW1wbD4gSWRlbnRpZmllcjo6YWRkTGl0ZXJhbChWTSYgdm0sIGNvbnN0
IGNoYXIqIGxpdGVyYWwsIHNpemVfdCBsZW5ndGgpCiB7CiAgICAgaWYgKGxlbmd0aCA9PSAxKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCmluZGV4IDhkNDgwYmJm
MzJjNy4uYmU1MjY1MWIzMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5oCkBAIC0xMTcsMTIgKzExNyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSWRlbnRp
ZmllciBmcm9tU3RyaW5nKFZNJiwgUmVmPEF0b21TdHJpbmdJbXBsPiYmKTsKICAgICBzdGF0aWMg
SWRlbnRpZmllciBmcm9tU3RyaW5nKFZNJiwgY29uc3QgQXRvbVN0cmluZyYpOwogICAgIHN0YXRp
YyBJZGVudGlmaWVyIGZyb21TdHJpbmcoVk0mIHZtLCBTeW1ib2xJbXBsKik7Ci0gICAgc3RhdGlj
IElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYsIGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMgSWRl
bnRpZmllciBmcm9tU3RyaW5nKFZNJiB2bSwgY29uc3QgVmVjdG9yPExDaGFyPiYgY2hhcmFjdGVy
cykgeyByZXR1cm4gZnJvbVN0cmluZyh2bSwgY2hhcmFjdGVycy5kYXRhKCksIGNoYXJhY3RlcnMu
c2l6ZSgpKTsgfQotCi0gICAgLy8gRklYTUU6IFBvcnQgY2FsbCBzaXRlcyB0byBmcm9tU3RyaW5n
KEFTQ0lJTGl0ZXJhbCkgYW5kIHJlbW92ZSB0aGlzLgotICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNo
YXJhY3RlcnNDb3VudD4KLSAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tU3RyaW5nKFZNJiwgY29u
c3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlcnNDb3VudF0pOworICAgIHN0YXRpYyBJZGVu
dGlmaWVyIGZyb21DU3RyaW5nKFZNJiwgY29uc3QgY2hhciopOwogCiAgICAgc3RhdGljIElkZW50
aWZpZXIgZnJvbVVpZChWTSYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBJ
ZGVudGlmaWVyIGZyb21VaWQoY29uc3QgUHJpdmF0ZU5hbWUmKTsKQEAgLTE2OCwxMCArMTY0LDYg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zdHJpbmc7CiAKLSAgICAvLyBPbmx5
IHRvIGJlIHVzZWQgd2l0aCBzdHJpbmcgbGl0ZXJhbHMuCi0gICAgdGVtcGxhdGU8dW5zaWduZWQg
Y2hhcmFjdGVyc0NvdW50PgotICAgIElkZW50aWZpZXIoVk0mIHZtLCBjb25zdCBjaGFyICgmY2hh
cmFjdGVycylbY2hhcmFjdGVyc0NvdW50XSkgOiBtX3N0cmluZyhhZGQodm0sIGNoYXJhY3RlcnMp
KSB7IEFTU0VSVChtX3N0cmluZy5pbXBsKCktPmlzQXRvbSgpKTsgfQotCiAgICAgSWRlbnRpZmll
cihWTSYgdm0sIGNvbnN0IExDaGFyKiBzLCBpbnQgbGVuZ3RoKSA6IG1fc3RyaW5nKGFkZCh2bSwg
cywgbGVuZ3RoKSkgeyBBU1NFUlQobV9zdHJpbmcuaW1wbCgpLT5pc0F0b20oKSk7IH0KICAgICBJ
ZGVudGlmaWVyKFZNJiB2bSwgY29uc3QgVUNoYXIqIHMsIGludCBsZW5ndGgpIDogbV9zdHJpbmco
YWRkKHZtLCBzLCBsZW5ndGgpKSB7IEFTU0VSVChtX3N0cmluZy5pbXBsKCktPmlzQXRvbSgpKTsg
fQogICAgIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllcihWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBsaXRl
cmFsKSA6IG1fc3RyaW5nKGFkZExpdGVyYWwodm0sIGxpdGVyYWwuY2hhcmFjdGVycygpLCBsaXRl
cmFsLmxlbmd0aCgpKSkgeyBBU1NFUlQobV9zdHJpbmcuaW1wbCgpLT5pc0F0b20oKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXJJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVySW5saW5lcy5oCmlu
ZGV4IDc1Y2JkNjAyZTViOC4uYjE0M2JjYzMwYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmgKQEAgLTgwLDEyICs4MCw2IEBAIGlu
bGluZSBJZGVudGlmaWVyIElkZW50aWZpZXI6OmZyb21VaWQoU3ltYm9sSW1wbCYgc3ltYm9sKQog
ICAgIHJldHVybiBzeW1ib2w7CiB9CiAKLXRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3Vu
dD4KLWlubGluZSBJZGVudGlmaWVyIElkZW50aWZpZXI6OmZyb21TdHJpbmcoVk0mIHZtLCBjb25z
dCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyc0NvdW50XSkKLXsKLSAgICByZXR1cm4gSWRl
bnRpZmllcigmdm0sIGNoYXJhY3RlcnMpOwotfQotCiBBTFdBWVNfSU5MSU5FIElkZW50aWZpZXIg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBzKQogewogICAgIHJl
dHVybiBJZGVudGlmaWVyKHZtLCBzKTsKQEAgLTEyNiw3ICsxMjAsNyBAQCBpbmxpbmUgSWRlbnRp
ZmllciBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKFZNJiB2bSwgU3ltYm9sSW1wbCogc3ltYm9sSW1w
bCkKICAgICByZXR1cm4gSWRlbnRpZmllcih2bSwgc3ltYm9sSW1wbCk7CiB9CiAKLWlubGluZSBJ
ZGVudGlmaWVyIElkZW50aWZpZXI6OmZyb21TdHJpbmcoVk0mIHZtLCBjb25zdCBjaGFyKiBzKQor
aW5saW5lIElkZW50aWZpZXIgSWRlbnRpZmllcjo6ZnJvbUNTdHJpbmcoVk0mIHZtLCBjb25zdCBj
aGFyKiBzKQogewogICAgIHJldHVybiBJZGVudGlmaWVyKHZtLCBBdG9tU3RyaW5nKHMpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IGVjMTgxNTY5ODczOC4uMTVlMjBkMTY2YmNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBJbnRs
RGF0ZVRpbWVGb3JtYXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKICNpZiBIQVZFKElDVV9VX0RBVEVfSU5URVJWQUxfRk9S
TUFUX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiZm9ybWF0UmFuZ2VUb1BhcnRzIiwgaW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9QYXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5nZVRvUGFydHMiX3MsIGludGxEYXRlVGltZUZvcm1h
dFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFydHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGdsb2JhbE9iamVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKCZpbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXgg
MDUxZmZlOGFiMzQ4Li4xODM2ZGM1ZDY4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC04
NywxMCArODcsMTAgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBKU0NfVE9fU1RSSU5H
X1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKICAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0
KTsKICNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRURVIpCi0gICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdlIiwgaW50bE51bWJlckZv
cm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5nZSJfcywgaW50bE51bWJlckZvcm1hdFByb3RvdHlw
ZUZ1bmNGb3JtYXRSYW5nZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDIpOwogI2VuZGlmCiAjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0VfRk9S
TUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZm9ybWF0UmFuZ2VUb1BhcnRzIiwgaW50bE51bWJlckZvcm1hdFBy
b3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFydHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZm9ybWF0UmFuZ2VUb1BhcnRzIl9zLCBpbnRsTnVtYmVyRm9ybWF0
UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9QYXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggNWUxNzY5ZTNmNTlhLi4x
NzQ3MjNhNTJlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgVU5VU0VEX1BBUkFN
KCZjcmVhdGVMaXN0Rm9ybWF0Q29uc3RydWN0b3IpOwogI2VuZGlmCiAgICAgaWYgKE9wdGlvbnM6
OnVzZUludGxFbnVtZXJhdGlvbigpKQotICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigic3VwcG9ydGVkVmFsdWVzT2YiLCBpbnRsT2JqZWN0RnVuY1N1cHBvcnRl
ZFZhbHVlc09mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CisgICAgICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJzdXBwb3J0ZWRWYWx1ZXNPZiJfcywgaW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwog
fQogCiBTdHJ1Y3R1cmUqIEludGxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDVjMTExNjQxY2U0Yi4uYWVhY2Iy
ZmUwY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBA
IC0yNjY1LDcgKzI2NjUsNyBAQCB2b2lkIEpTT2JqZWN0OjpyZWlmeUFsbFN0YXRpY1Byb3BlcnRp
ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogKmhhc2hUYWJsZSkgewogICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKLSAg
ICAgICAgICAgIGF1dG8ga2V5ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgdmFsdWUubV9r
ZXkpOworICAgICAgICAgICAgYXV0byBrZXkgPSBJZGVudGlmaWVyOjpmcm9tQ1N0cmluZyh2bSwg
dmFsdWUubV9rZXkpOwogICAgICAgICAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gZ2V0RGly
ZWN0T2Zmc2V0KHZtLCBrZXksIGF0dHJpYnV0ZXMpOwogICAgICAgICAgICAgaWYgKCFpc1ZhbGlk
T2Zmc2V0KG9mZnNldCkpCiAgICAgICAgICAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2bSwg
aGFzaFRhYmxlLT5jbGFzc0ZvclRoaXMsIGtleSwgdmFsdWUsICp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDJiZjAyNzRkNzZjNi4uNmZhZDdhMTM4
NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE2Njgs
MTUgKzE2NjgsOSBAQCBpbmxpbmUgc2l6ZV90IG1heE9mZnNldFJlbGF0aXZlVG9CYXNlKFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCkKIAogc3RhdGljX2Fzc2VydCghKHNpemVvZihKU09iamVjdCkgJSBz
aXplb2YoV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPikpLCAiSlNPYmplY3QgaW5saW5lIHN0b3Jh
Z2UgaGFzIGNvcnJlY3QgYWxpZ25tZW50Iik7CiAKLXRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3Rl
cnNDb3VudD4KLUFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihWTSYgdm0s
IGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJzQ291bnRdKQorQUxXQVlTX0lOTElO
RSBJZGVudGlmaWVyIG1ha2VJZGVudGlmaWVyKFZNJiB2bSwgQVNDSUlMaXRlcmFsIGxpdGVyYWwp
CiB7Ci0gICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIGNoYXJhY3RlcnMpOwot
fQotCi1BTFdBWVNfSU5MSU5FIElkZW50aWZpZXIgbWFrZUlkZW50aWZpZXIoVk0mIHZtLCBjb25z
dCBjaGFyKiBuYW1lKQotewotICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBu
YW1lKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbGl0ZXJhbCk7CiB9
CiAKIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihWTSYsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0SW5saW5lcy5oCmluZGV4IDgzNDk0MjJkOGI0YS4uYjE2NWVhZTVkMTc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtNzM3LDcg
KzczNyw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09iamVjdDo6Z2V0Tm9uUmVpZmllZFN0YXRp
Y1Byb3BlcnR5TmFtZXMoVk0mIHZtLCBQcm9wZXJ0eU5hCiAKICAgICAgICAgZm9yIChhdXRvIGl0
ZXIgPSB0YWJsZS0+YmVnaW4oKTsgaXRlciAhPSB0YWJsZS0+ZW5kKCk7ICsraXRlcikgewogICAg
ICAgICAgICAgaWYgKG1vZGUgPT0gRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSB8fCAh
KGl0ZXItPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpCi0gICAg
ICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
aXRlci5rZXkoKSkpOworICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZp
ZXI6OmZyb21DU3RyaW5nKHZtLCBpdGVyLmtleSgpKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IDNmOWVjODQwMGU5ZS4uMDExNWMwYzY5YTE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlLmNwcApAQCAtNDQyLDM1ICs0NDIsMzUgQEAgdm9pZCBKU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKIAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT50b1N0cmluZywgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvVG9TdHJpbmdGdW5jdGlv
bigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
CiAKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImJ1ZmZlciIsIHR5
cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIEpTQ19OQVRJVkVfR0VU
VEVSX1dJVEhPVVRfVFJBTlNJVElPTigiYnVmZmVyIl9zLCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0
dGVyRnVuY0J1ZmZlciwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19HRVRURVJfV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVMZW5ndGgsIHR5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBUeXBlZEFycmF5Qnl0ZUxlbmd0aEludHJpbnNp
Yyk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0J5dGVPZmZzZXQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSwgVHlwZWRBcnJheUJ5dGVPZmZzZXRJbnRyaW5zaWMpOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3B5V2l0aGluIiwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKCJldmVyeSIsIHR5cGVkQXJyYXlQcm90b3R5cGVFdmVyeUNvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
LSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbHRlciIsIHR5
cGVkQXJyYXlQcm90b3R5cGVGaWx0ZXJDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzb3J0IiwgdHlwZWRBcnJheVByb3RvdHlwZVNvcnRDb2Rl
R2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvcHlX
aXRoaW4iX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOworICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXZlcnkiX3MsIHR5cGVkQXJyYXlQcm90
b3R5cGVFdmVyeUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImZpbHRlciJfcywgdHlwZWRBcnJheVByb3RvdHlwZUZpbHRlckNvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
KyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvcnQiX3MsIHR5
cGVkQXJyYXlQcm90b3R5cGVTb3J0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lD
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCB0eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBU
eXBlZEFycmF5RW50cmllc0ludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRl
cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmNsdWRlcyJf
cywgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZp
bGxQdWJsaWNOYW1lKCksIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmluZCIsIHR5cGVkQXJyYXlQcm90b3R5
cGVGaW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiZmluZCJfcywgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgaWYg
KE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkKICAgICAgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmZpbmRMYXN0UHVibGljTmFtZSgpLCB0eXBlZEFycmF5UHJvdG90eXBlRmluZExhc3RDb2Rl
R2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmaW5k
SW5kZXgiLCB0eXBlZEFycmF5UHJvdG90eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmluZEluZGV4Il9zLCB0eXBlZEFy
cmF5UHJvdG90eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGlmIChPcHRpb25zOjp1c2VBcnJh
eUZpbmRMYXN0TWV0aG9kKCkpCiAgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdEluZGV4
UHVibGljTmFtZSgpLCB0eXBlZEFycmF5UHJvdG90eXBlRmluZExhc3RJbmRleENvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
ICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+Zm9yRWFjaCwgdHlwZWRBcnJheVByb3RvdHlwZUZvckVhY2hDb2RlR2VuZXJhdG9yLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiaW5kZXhPZiJfcywgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+am9pbiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9JTlRS
SU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmtleXNQdWJsaWNOYW1lKCksIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jS2V5cywg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIFR5
cGVkQXJyYXlLZXlzSW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigibGFzdEluZGV4T2YiLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRl
eE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRl
eE9mIl9zLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElW
RV9JTlRSSU5TSUNfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSB8IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSwgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYyk7Ci0gICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJtYXAiLCB0eXBlZEFycmF5UHJvdG90eXBlTWFw
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
cmVkdWNlIiwgdHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJ
TFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVjZVJpZ2h0IiwgdHlwZWRBcnJh
eVByb3RvdHlwZVJlZHVjZVJpZ2h0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJyZXZlcnNlIiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZl
cnNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJtYXAiX3Ms
IHR5cGVkQXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZWR1Y2UiX3MsIHR5cGVkQXJyYXlQcm90b3R5cGVSZWR1
Y2VDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJyZWR1Y2VSaWdodCJfcywgdHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZVJpZ2h0Q29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZXZlcnNlIl9z
LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zZXQsIHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jU2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKLSAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvbWUiLCB0eXBlZEFy
cmF5UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oInNvbWUiX3MsIHR5cGVkQXJyYXlQcm90b3R5cGVTb21lQ29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5zdWJhcnJheSwgdHlwZWRBcnJheVByb3RvdHlwZVN1YmFycmF5Q29kZUdlbmVyYXRv
ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwog
ICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT50b0xvY2FsZVN0cmluZywgdHlwZWRBcnJheVByb3RvdHlwZVRvTG9jYWxlU3RyaW5nQ29k
ZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29u
c3RydWN0b3IuY3BwCmluZGV4IDg4YzE3NzRmODA4MC4uZDU2ZmNiMjQ0OTJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcApAQCAt
NjgsOCArNjgsOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFrZVJldm9jYWJsZVByb3h5
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7CiAKICAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0KTsKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgbWFrZUlkZW50aWZp
ZXIodm0sICJwcm94eSIpLCBwcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpOb25lKSk7Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIG1ha2VJZGVudGlmaWVy
KHZtLCAicmV2b2tlIiksIHJldm9rZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpOb25lKSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIG1ha2VJZGVudGlmaWVy
KHZtLCAicHJveHkiX3MpLCBwcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpOb25lKSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIG1ha2VJZGVudGlmaWVy
KHZtLCAicmV2b2tlIl9zKSwgcmV2b2tlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6Ok5vbmUpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KQEAgLTc3LDcgKzc3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VSZXZvY2Fi
bGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKIHZvaWQgUHJveHlD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAyLCAiUHJveHkiX3MsIFBy
b3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJhbnNpdGlvbik7Ci0gICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldm9jYWJsZSIsIG1ha2VSZXZv
Y2FibGVQcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJy
ZXZvY2FibGUiX3MsIG1ha2VSZXZvY2FibGVQcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0UHJveHlPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5jcHAKaW5kZXggMWI5Y2Y3MDZkZmQ3Li5jM2JhODUyMzdlZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKQEAgLTIxMSw3
ICsyMTEsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwZXJmb3JtSW50ZXJuYWxNZXRob2RHZXRPd25Q
cm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogCiAgICAgSlNPYmplY3QqIGhhbmRs
ZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxE
YXRhOwotICAgIEpTVmFsdWUgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTWV0aG9kID0gaGFuZGxl
ci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAi
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiksICInZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJyBw
cm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAg
IEpTVmFsdWUgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0
aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yIl9zKSwgIidnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InIHByb3BlcnR5
IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgIGlmIChnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JNZXRob2QuaXNVbmRlZmluZWQoKSkKICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBwZXJmb3JtRGVmYXVsdEdldE93blByb3BlcnR5KCkpOwpAQCAtNTEyLDcgKzUxMiw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlDYWxsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyCiAKICAgICBKU09iamVjdCogaGFuZGxlciA9IGpzQ2Fz
dDxKU09iamVjdCo+KGhhbmRsZXJWYWx1ZSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAg
SlNWYWx1ZSBhcHBseU1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNh
bGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImFwcGx5IiksICInYXBwbHknIHByb3BlcnR5IG9m
IGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CisgICAgSlNWYWx1ZSBh
cHBseU1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBt
YWtlSWRlbnRpZmllcih2bSwgImFwcGx5Il9zKSwgIidhcHBseScgcHJvcGVydHkgb2YgYSBQcm94
eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gcHJv
eHktPnRhcmdldCgpOwogICAgIGlmIChhcHBseU1ldGhvZC5pc1VuZGVmaW5lZCgpKSB7CkBAIC01
NTksNyArNTU5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eUNvbnN0
cnVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKIAogICAgIEpTT2JqZWN0KiBo
YW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBj
YWxsRGF0YTsKLSAgICBKU1ZhbHVlIGNvbnN0cnVjdE1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhv
ZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImNvbnN0cnVjdCIp
LCAiJ2NvbnN0cnVjdCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNh
bGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGNvbnN0cnVjdE1ldGhvZCA9IGhhbmRsZXItPmdldE1l
dGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImNvbnN0cnVj
dCJfcyksICInY29uc3RydWN0JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQg
YmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSBwcm94eS0+dGFyZ2V0KCk7CiAgICAg
aWYgKGNvbnN0cnVjdE1ldGhvZC5pc1VuZGVmaW5lZCgpKSB7CkBAIC02MTYsNyArNjE2LDcgQEAg
Ym9vbCBQcm94eU9iamVjdDo6cGVyZm9ybURlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGUKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0
PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBK
U1ZhbHVlIGRlbGV0ZVByb3BlcnR5TWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9i
amVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZGVsZXRlUHJvcGVydHkiKSwgIidk
ZWxldGVQcm9wZXJ0eScgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNh
bGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGRlbGV0ZVByb3BlcnR5TWV0aG9kID0gaGFuZGxlci0+
Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZGVs
ZXRlUHJvcGVydHkiX3MpLCAiJ2RlbGV0ZVByb3BlcnR5JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3Mg
aGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGZhbHNlKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CiAg
ICAgaWYgKGRlbGV0ZVByb3BlcnR5TWV0aG9kLmlzVW5kZWZpbmVkKCkpCkBAIC02OTcsNyArNjk3
LDcgQEAgYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybVByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKICAgICBKU09iamVjdCogaGFuZGxlciA9IGpzQ2FzdDxK
U09iamVjdCo+KGhhbmRsZXJWYWx1ZSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgSlNW
YWx1ZSBwcmV2ZW50RXh0ZW5zaW9uc01ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxP
YmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgInByZXZlbnRFeHRlbnNpb25zIiks
ICIncHJldmVudEV4dGVuc2lvbnMnIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3Vs
ZCBiZSBjYWxsYWJsZSJfcyk7CisgICAgSlNWYWx1ZSBwcmV2ZW50RXh0ZW5zaW9uc01ldGhvZCA9
IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmll
cih2bSwgInByZXZlbnRFeHRlbnNpb25zIl9zKSwgIidwcmV2ZW50RXh0ZW5zaW9ucycgcHJvcGVy
dHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHRo
aXMtPnRhcmdldCgpOwogICAgIGlmIChwcmV2ZW50RXh0ZW5zaW9uc01ldGhvZC5pc1VuZGVmaW5l
ZCgpKQpAQCAtNzQ4LDcgKzc0OCw3IEBAIGJvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1Jc0V4dGVu
c2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogICAgIEpTT2JqZWN0KiBoYW5k
bGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICBKU1ZhbHVlIGlzRXh0ZW5zaWJsZU1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhv
ZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImlzRXh0ZW5zaWJs
ZSIpLCAiJ2lzRXh0ZW5zaWJsZScgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxk
IGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGlzRXh0ZW5zaWJsZU1ldGhvZCA9IGhhbmRs
ZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwg
ImlzRXh0ZW5zaWJsZSJfcyksICInaXNFeHRlbnNpYmxlJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3Mg
aGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGZhbHNlKTsKIAogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlzLT50YXJnZXQoKTsK
QEAgLTkwOSw3ICs5MDksNyBAQCB2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVy
dHlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZQogCiAgICAgSlNPYmpl
Y3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwogICAgIENhbGxE
YXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgb3duS2V5c01ldGhvZCA9IGhhbmRsZXItPmdldE1l
dGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgIm93bktleXMi
KSwgIidvd25LZXlzJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2Fs
bGFibGUiX3MpOworICAgIEpTVmFsdWUgb3duS2V5c01ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhv
ZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgIm93bktleXMiX3Mp
LCAiJ293bktleXMnIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxs
YWJsZSJfcyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBK
U09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CiAgICAgaWYgKG93bktleXNNZXRob2Qu
aXNVbmRlZmluZWQoKSkgewpAQCAtMTA0MCw3ICsxMDQwLDcgQEAgYm9vbCBQcm94eU9iamVjdDo6
cGVyZm9ybVNldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3QKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxl
clZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIHNldFByb3RvdHlw
ZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1h
a2VJZGVudGlmaWVyKHZtLCAic2V0UHJvdG90eXBlT2YiKSwgIidzZXRQcm90b3R5cGVPZicgcHJv
cGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBK
U1ZhbHVlIHNldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9i
amVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAic2V0UHJvdG90eXBlT2YiX3MpLCAi
J3NldFByb3RvdHlwZU9mJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUg
Y2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKIAog
ICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlzLT50YXJnZXQoKTsKQEAgLTExMDQsNyArMTEwNCw3
IEBAIEpTVmFsdWUgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRQcm90b3R5cGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2Jq
ZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVl
IGdldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwg
Y2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZ2V0UHJvdG90eXBlT2YiKSwgIidnZXRQcm90
b3R5cGVPZicgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxl
Il9zKTsKKyAgICBKU1ZhbHVlIGdldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0
aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZ2V0UHJvdG90
eXBlT2YiX3MpLCAiJ2dldFByb3RvdHlwZU9mJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxl
ciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0
NTBmOGZhNmMxNTEuLmQxMDVhMGFkZTMxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMjgsMjcgKzEyOCwyNyBAQCB2b2lk
IFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogCiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nLCBzdHJpbmdQcm90b0Z1bmNU
b1N0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDAsIFN0cmluZ1Byb3RvdHlwZVZhbHVlT2ZJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJVkVf
SU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT52
YWx1ZU9mLCBzdHJpbmdQcm90b0Z1bmNUb1N0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIFN0cmluZ1Byb3RvdHlwZVZhbHVlT2ZJbnRy
aW5zaWMpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiY2hhckF0Iiwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQ2hhckF0SW50cmluc2ljKTsKLSAg
ICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNoYXJD
b2RlQXQiLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7Ci0g
ICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb2Rl
UG9pbnRBdCIsIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgU3RyaW5nUHJvdG90eXBlQ29kZVBv
aW50QXRJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJpbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVuY0xh
c3RJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJjaGFyQXQiX3MsIHN0cmluZ1Byb3RvRnVuY0NoYXJBdCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIENoYXJBdEludHJpbnNpYyk7
CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJj
aGFyQ29kZUF0Il9zLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQ2hhckNvZGVBdEludHJpbnNp
Yyk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJjb2RlUG9pbnRBdCJfcywgc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBTdHJpbmdQcm90b3R5
cGVDb2RlUG9pbnRBdEludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImluZGV4T2YiX3MsIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibGFzdEluZGV4T2YiX3MsIHN0cmlu
Z1Byb3RvRnVuY0xhc3RJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGxh
Y2VVc2luZ1JlZ0V4cFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1Jl
Z0V4cCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDIsIFN0cmluZ1Byb3RvdHlwZVJlcGxhY2VSZWdFeHBJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3Rv
RnVuY1JlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGxhY2VB
bGxVc2luZ1N0cmluZ1NlYXJjaFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VB
bGxVc2luZ1N0cmluZ1NlYXJjaCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDIpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigic2xpY2UiLCBzdHJpbmdQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIsIFN0cmluZ1Byb3Rv
dHlwZVNsaWNlSW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigic3Vic3RyIiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0cmluZyIsIHN0cmluZ1Byb3RvRnVuY1N1
YnN0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDIpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigidG9Mb3dlckNhc2UiLCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIFN0cmluZ1Byb3Rv
dHlwZVRvTG93ZXJDYXNlSW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigidG9VcHBlckNhc2UiLCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsb2NhbGVDb21wYXJl
Iiwgc3RyaW5nUHJvdG9GdW5jTG9jYWxlQ29tcGFyZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvY2FsZUxvd2VyQ2FzZSIsIHN0cmluZ1Byb3RvRnVuY1Rv
TG9jYWxlTG93ZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInRvTG9jYWxlVXBwZXJDYXNlIiwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVVcHBlckNhc2Us
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidHJpbSIsIHN0cmlu
Z1Byb3RvRnVuY1RyaW0sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tigic3RhcnRzV2l0aCIsIHN0cmluZ1Byb3RvRnVuY1N0YXJ0c1dpdGgsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZW5kc1dpdGgiLCBzdHJpbmdQcm90b0Z1bmNF
bmRzV2l0aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmNs
dWRlcyIsIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oIm5vcm1hbGl6ZSIsIHN0cmluZ1Byb3RvRnVuY05vcm1hbGl6ZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwor
ICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic2xp
Y2UiX3MsIHN0cmluZ1Byb3RvRnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlU2xpY2VJbnRyaW5zaWMp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHIiX3Ms
IHN0cmluZ1Byb3RvRnVuY1N1YnN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJzdWJzdHJpbmciX3MsIHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZywgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOworICAgIEpT
Q19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9Mb3dlckNh
c2UiX3MsIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgU3RyaW5nUHJvdG90eXBlVG9Mb3dlckNh
c2VJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJ0b1VwcGVyQ2FzZSJfcywgc3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibG9jYWxlQ29tcGFyZSJfcywgc3RyaW5n
UHJvdG9GdW5jTG9jYWxlQ29tcGFyZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJ0b0xvY2FsZUxvd2VyQ2FzZSJfcywgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVM
b3dlckNhc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9M
b2NhbGVVcHBlckNhc2UiX3MsIHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRyaW0iX3MsIHN0cmluZ1By
b3RvRnVuY1RyaW0sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
c3RhcnRzV2l0aCJfcywgc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJlbmRzV2l0aCJfcywgc3RyaW5nUHJvdG9GdW5j
RW5kc1dpdGgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5j
bHVkZXMiX3MsIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oIm5vcm1hbGl6ZSJfcywgc3RyaW5nUHJvdG9GdW5jTm9ybWFs
aXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgp
LCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CiAKICAgICBp
ZiAoT3B0aW9uczo6dXNlQXRNZXRob2QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmNwcAppbmRleCA1Y2I1MDQwOTNjYmEuLjUwYjJkZmZiYzFmNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogCi0gICAgICAgIGF1dG8gYWRkUHJvcGVydHkg
PSBbJl0gKFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSwgSlNWYWx1ZSB2YWx1ZSkgeworICAgICAg
ICBhdXRvIGFkZFByb3BlcnR5ID0gWyZdIChWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1lLCBKU1Zh
bHVlIHZhbHVlKSB7CiAgICAgICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogICAgICAgICAgICAgSlNEb2xsYXJWTUNhbGxGcmFtZTo6YWRkUHJvcGVydHkodm0sIG5hbWUs
IHZhbHVlKTsKICAgICAgICAgfTsKQEAgLTE3MywyOSArMTczLDI5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGlmIChmcmFtZUluZGV4KysgIT0gcmVxdWVzdGVkRnJhbWVJbmRleCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKIAotICAgICAgICAgICAgYWRk
UHJvcGVydHkodm0sICJuYW1lIiwganNTdHJpbmcodm0sIHZpc2l0b3ItPmZ1bmN0aW9uTmFtZSgp
KSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgIm5hbWUiX3MsIGpzU3RyaW5nKHZtLCB2
aXNpdG9yLT5mdW5jdGlvbk5hbWUoKSkpOwogCiAgICAgICAgICAgICBpZiAodmlzaXRvci0+Y2Fs
bGVlKCkuaXNDZWxsKCkpCi0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJjYWxsZWUi
LCB2aXNpdG9yLT5jYWxsZWUoKS5hc0NlbGwoKSk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVy
dHkodm0sICJjYWxsZWUiX3MsIHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2VsbCgpKTsKIAogICAgICAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKICAgICAg
ICAgICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwg
ImNvZGVCbG9jayIsIGNvZGVCbG9jayk7Ci0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0s
ICJ1bmxpbmtlZENvZGVCbG9jayIsIGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKSk7Ci0g
ICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJleGVjdXRhYmxlIiwgY29kZUJsb2NrLT5v
d25lckV4ZWN1dGFibGUoKSk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJjb2Rl
QmxvY2siX3MsIGNvZGVCbG9jayk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJ1
bmxpbmtlZENvZGVCbG9jayJfcywgY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpKTsKKyAg
ICAgICAgICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgImV4ZWN1dGFibGUiX3MsIGNvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaXNWYWxpZCA9
IHRydWU7CiAKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7CiAgICAgICAg
IH0pOwogCi0gICAgICAgIGFkZFByb3BlcnR5KHZtLCAidmFsaWQiLCBqc0Jvb2xlYW4oaXNWYWxp
ZCkpOworICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInZhbGlkIl9zLCBqc0Jvb2xlYW4oaXNWYWxp
ZCkpOwogICAgIH0KIAogICAgIERFQ0xBUkVfSU5GTzsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFk
ZFByb3BlcnR5KFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSwgSlNWYWx1ZSB2YWx1ZSkKKyAgICB2
b2lkIGFkZFByb3BlcnR5KFZNJiB2bSwgQVNDSUlMaXRlcmFsIG5hbWUsIEpTVmFsdWUgdmFsdWUp
CiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAg
ICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBuYW1l
KTsKQEAgLTExNzAsNyArMTE3MCw3IEBAIHZvaWQgRE9NSklUR2V0dGVyTm9FZmZlY3RzOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIGNv
bnN0IERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSAmRE9NSklUR2V0dGVyTm9FZmZlY3Rz
RE9NSklUOwogICAgIGF1dG8qIGN1c3RvbUdldHRlclNldHRlciA9IERPTUF0dHJpYnV0ZUdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBkb21KSVQtPmdldHRlcigpLCBudWxscHRyLCBET01BdHRyaWJ1
dGVBbm5vdGF0aW9uIHsgRE9NSklUTm9kZTo6aW5mbygpLCBkb21KSVQgfSk7Ci0gICAgcHV0RGly
ZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0b21H
ZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOworICAgIHB1dERpcmVjdEN1c3Rv
bUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIl9z
KSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwogfQogCiBKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoZG9tSklUR2V0dGVyTm9FZmZlY3RDdXN0b21HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCkBA
IC0zODU4LDE4ICszODU4LDE4IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmdsb2JhbE9i
amVjdCh2bSk7CiAKLSAgICBhdXRvIGFkZEZ1bmN0aW9uID0gWyZdIChWTSYgdm0sIGNvbnN0IGNo
YXIqIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpIHsK
KyAgICBhdXRvIGFkZEZ1bmN0aW9uID0gWyZdIChWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1lLCBO
YXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKSB7CiAgICAgICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIEpTRG9sbGFyVk06OmFkZEZ1
bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG5hbWUsIGZ1bmN0aW9uLCBhcmd1bWVudHMpOwogICAg
IH07Ci0gICAgYXV0byBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24gPSBbJl0gKFZNJiB2bSwgY29u
c3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50
cykgeworICAgIGF1dG8gYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uID0gWyZdIChWTSYgdm0sIEFT
Q0lJTGl0ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1l
bnRzKSB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAg
IEpTRG9sbGFyVk06OmFkZENvbnN0cnVjdGlibGVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBu
YW1lLCBmdW5jdGlvbiwgYXJndW1lbnRzKTsKICAgICB9OwogCi0gICAgYWRkRnVuY3Rpb24odm0s
ICJhYm9ydCIsIGZ1bmN0aW9uQ3Jhc2gsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jhc2gi
LCBmdW5jdGlvbkNyYXNoLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImJyZWFrcG9pbnQiLCBm
dW5jdGlvbkJyZWFrcG9pbnQsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYWJvcnQiX3MsIGZ1
bmN0aW9uQ3Jhc2gsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jhc2giX3MsIGZ1bmN0aW9u
Q3Jhc2gsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYnJlYWtwb2ludCJfcywgZnVuY3Rpb25C
cmVha3BvaW50LCAwKTsKIAogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJkZmdUcnVlIl9zKSwgMCwgZnVuY3Rp
b25ERkdUcnVlLCBERkdUcnVlSW50cmluc2ljLCBqc0RvbGxhclZNUHJvcGVydHlBdHRyaWJ1dGVz
KTsKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiZnRsVHJ1ZSJfcyksIDAsIGZ1bmN0aW9uRlRMVHJ1ZSwgRlRM
VHJ1ZUludHJpbnNpYywganNEb2xsYXJWTVByb3BlcnR5QXR0cmlidXRlcyk7CkBAIC0zODc4LDE2
MCArMzg3OCwxNjAgQEAgdm9pZCBKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAg
ICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImNwdVJkdHNjIl9zKSwgMCwgZnVuY3Rpb25DcHVSZHRzYywgQ1BVUmR0
c2NJbnRyaW5zaWMsIGpzRG9sbGFyVk1Qcm9wZXJ0eUF0dHJpYnV0ZXMpOwogICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJjcHVDcHVpZCJfcyksIDAsIGZ1bmN0aW9uQ3B1Q3B1aWQsIENQVUNwdWlkSW50cmluc2lj
LCBqc0RvbGxhclZNUHJvcGVydHlBdHRyaWJ1dGVzKTsKICAgICBwdXREaXJlY3ROYXRpdmVGdW5j
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3B1UGF1
c2UiX3MpLCAwLCBmdW5jdGlvbkNwdVBhdXNlLCBDUFVQYXVzZUludHJpbnNpYywganNEb2xsYXJW
TVByb3BlcnR5QXR0cmlidXRlcyk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcHVDbGZsdXNoIiwg
ZnVuY3Rpb25DcHVDbGZsdXNoLCAyKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAibGxpbnRUcnVl
IiwgZnVuY3Rpb25MTGludFRydWUsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiYmFzZWxpbmVK
SVRUcnVlIiwgZnVuY3Rpb25CYXNlbGluZUpJVFRydWUsIDApOwotCi0gICAgYWRkRnVuY3Rpb24o
dm0sICJub0lubGluZSIsIGZ1bmN0aW9uTm9JbmxpbmUsIDEpOwotCi0gICAgYWRkRnVuY3Rpb24o
dm0sICJnYyIsIGZ1bmN0aW9uR0MsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2NTd2VlcEFz
eW5jaHJvbm91c2x5IiwgZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3VzbHksIDApOwotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZWRlbkdDIiwgZnVuY3Rpb25FZGVuR0MsIDApOwotICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZHVtcFN1YnNwYWNlSGFzaGVzIiwgZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMs
IDApOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJjYWxsRnJhbWUiLCBmdW5jdGlvbkNhbGxGcmFt
ZSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjb2RlQmxvY2tGb3IiLCBmdW5jdGlvbkNvZGVC
bG9ja0ZvciwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjb2RlQmxvY2tGb3JGcmFtZSIsIGZ1
bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcFNv
dXJjZUZvciIsIGZ1bmN0aW9uRHVtcFNvdXJjZUZvciwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0s
ICJkdW1wQnl0ZWNvZGVGb3IiLCBmdW5jdGlvbkR1bXBCeXRlY29kZUZvciwgMSk7Ci0KLSAgICBh
ZGRGdW5jdGlvbih2bSwgImRhdGFMb2ciLCBmdW5jdGlvbkRhdGFMb2csIDEpOwotICAgIGFkZEZ1
bmN0aW9uKHZtLCAicHJpbnQiLCBmdW5jdGlvblByaW50LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2
bSwgImR1bXBDYWxsRnJhbWUiLCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUsIDApOwotICAgIGFkZEZ1
bmN0aW9uKHZtLCAiZHVtcFN0YWNrIiwgZnVuY3Rpb25EdW1wU3RhY2ssIDApOwotICAgIGFkZEZ1
bmN0aW9uKHZtLCAiZHVtcFJlZ2lzdGVycyIsIGZ1bmN0aW9uRHVtcFJlZ2lzdGVycywgMSk7Ci0K
LSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBDZWxsIiwgZnVuY3Rpb25EdW1wQ2VsbCwgMSk7Ci0K
LSAgICBhZGRGdW5jdGlvbih2bSwgImluZGV4aW5nTW9kZSIsIGZ1bmN0aW9uSW5kZXhpbmdNb2Rl
LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImlubGluZUNhcGFjaXR5IiwgZnVuY3Rpb25Jbmxp
bmVDYXBhY2l0eSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjbGVhckxpbmtCdWZmZXJTdGF0
cyIsIGZ1bmN0aW9uQ2xlYXJMaW5rQnVmZmVyU3RhdHMsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZt
LCAibGlua0J1ZmZlclN0YXRzIiwgZnVuY3Rpb25MaW5rQnVmZmVyU3RhdHMsIDApOwotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAidmFsdWUiLCBmdW5jdGlvblZhbHVlLCAxKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImdldHBpZCIsIGZ1bmN0aW9uR2V0UElELCAwKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZt
LCAiaGF2ZUFCYWRUaW1lIiwgZnVuY3Rpb25IYXZlQUJhZFRpbWUsIDEpOwotICAgIGFkZEZ1bmN0
aW9uKHZtLCAiaXNIYXZpbmdBQmFkVGltZSIsIGZ1bmN0aW9uSXNIYXZpbmdBQmFkVGltZSwgMSk7
Ci0KLSAgICBhZGRGdW5jdGlvbih2bSwgImNhbGxXaXRoU3RhY2tTaXplIiwgZnVuY3Rpb25DYWxs
V2l0aFN0YWNrU2l6ZSwgMik7Ci0KLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUdsb2JhbE9i
amVjdCIsIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZVByb3h5IiwgZnVuY3Rpb25DcmVhdGVQcm94eSwgMSk7Ci0gICAgYWRkRnVuY3Rp
b24odm0sICJjcmVhdGVSdW50aW1lQXJyYXkiLCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJheSwg
MCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVOdWxsUm9wZVN0cmluZyIsIGZ1bmN0aW9u
Q3JlYXRlTnVsbFJvcGVTdHJpbmcsIDApOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVJ
bXB1cmVHZXR0ZXIiLCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlciwgMSk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJjcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZUN1c3Rv
bUdldHRlck9iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVROb2Rl
T2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5j
dGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklU
R2V0dGVyT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRl
ck5vRWZmZWN0c09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2Jq
ZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhP
YmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDApOwotICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QiLCBmdW5jdGlvbkNy
ZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja0pTQ2Fz
dE9iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJCYXNl
SlNPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCwgMCk7Ci0g
ICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVCdWlsdGluIiwgZnVuY3Rpb25DcmVhdGVCdWlsdGlu
LCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNwdUNsZmx1c2giX3MsIGZ1bmN0aW9uQ3B1Q2xm
bHVzaCwgMik7CisKKyAgICBhZGRGdW5jdGlvbih2bSwgImxsaW50VHJ1ZSJfcywgZnVuY3Rpb25M
TGludFRydWUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYmFzZWxpbmVKSVRUcnVlIl9zLCBm
dW5jdGlvbkJhc2VsaW5lSklUVHJ1ZSwgMCk7CisKKyAgICBhZGRGdW5jdGlvbih2bSwgIm5vSW5s
aW5lIl9zLCBmdW5jdGlvbk5vSW5saW5lLCAxKTsKKworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2Mi
X3MsIGZ1bmN0aW9uR0MsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2NTd2VlcEFzeW5jaHJv
bm91c2x5Il9zLCBmdW5jdGlvbkdDU3dlZXBBc3luY2hyb25vdXNseSwgMCk7CisgICAgYWRkRnVu
Y3Rpb24odm0sICJlZGVuR0MiX3MsIGZ1bmN0aW9uRWRlbkdDLCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImR1bXBTdWJzcGFjZUhhc2hlcyJfcywgZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMs
IDApOworCisgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsRnJhbWUiX3MsIGZ1bmN0aW9uQ2FsbEZy
YW1lLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNvZGVCbG9ja0ZvciJfcywgZnVuY3Rpb25D
b2RlQmxvY2tGb3IsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY29kZUJsb2NrRm9yRnJhbWUi
X3MsIGZ1bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZHVtcFNvdXJjZUZvciJfcywgZnVuY3Rpb25EdW1wU291cmNlRm9yLCAxKTsKKyAgICBhZGRGdW5j
dGlvbih2bSwgImR1bXBCeXRlY29kZUZvciJfcywgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IsIDEp
OworCisgICAgYWRkRnVuY3Rpb24odm0sICJkYXRhTG9nIl9zLCBmdW5jdGlvbkRhdGFMb2csIDEp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJpbnQiX3MsIGZ1bmN0aW9uUHJpbnQsIDEpOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZHVtcENhbGxGcmFtZSJfcywgZnVuY3Rpb25EdW1wQ2FsbEZyYW1l
LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBTdGFjayJfcywgZnVuY3Rpb25EdW1wU3Rh
Y2ssIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcFJlZ2lzdGVycyJfcywgZnVuY3Rpb25E
dW1wUmVnaXN0ZXJzLCAxKTsKKworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcENlbGwiX3MsIGZ1
bmN0aW9uRHVtcENlbGwsIDEpOworCisgICAgYWRkRnVuY3Rpb24odm0sICJpbmRleGluZ01vZGUi
X3MsIGZ1bmN0aW9uSW5kZXhpbmdNb2RlLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlubGlu
ZUNhcGFjaXR5Il9zLCBmdW5jdGlvbklubGluZUNhcGFjaXR5LCAxKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImNsZWFyTGlua0J1ZmZlclN0YXRzIl9zLCBmdW5jdGlvbkNsZWFyTGlua0J1ZmZlclN0
YXRzLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImxpbmtCdWZmZXJTdGF0cyJfcywgZnVuY3Rp
b25MaW5rQnVmZmVyU3RhdHMsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAidmFsdWUiX3MsIGZ1
bmN0aW9uVmFsdWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0cGlkIl9zLCBmdW5jdGlv
bkdldFBJRCwgMCk7CisKKyAgICBhZGRGdW5jdGlvbih2bSwgImhhdmVBQmFkVGltZSJfcywgZnVu
Y3Rpb25IYXZlQUJhZFRpbWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNIYXZpbmdBQmFk
VGltZSJfcywgZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lLCAxKTsKKworICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY2FsbFdpdGhTdGFja1NpemUiX3MsIGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUsIDIp
OworCisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVHbG9iYWxPYmplY3QiX3MsIGZ1bmN0aW9u
Q3JlYXRlR2xvYmFsT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVByb3h5
Il9zLCBmdW5jdGlvbkNyZWF0ZVByb3h5LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZVJ1bnRpbWVBcnJheSJfcywgZnVuY3Rpb25DcmVhdGVSdW50aW1lQXJyYXksIDApOworICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlTnVsbFJvcGVTdHJpbmciX3MsIGZ1bmN0aW9uQ3JlYXRlTnVs
bFJvcGVTdHJpbmcsIDApOworCisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVJbXB1cmVHZXR0
ZXIiX3MsIGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0
ZXJPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUTm9kZU9iamVj
dCJfcywgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVET01KSVRH
ZXR0ZXJPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVy
Tm9FZmZlY3RzT2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck5vRWZmZWN0c09i
amVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4
T2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDApOwor
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QiX3MsIGZ1bmN0
aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QiX3MsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hl
Y2tKU0Nhc3RPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0
dGVyQmFzZUpTT2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVj
dCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVCdWlsdGluIl9zLCBmdW5jdGlvbkNy
ZWF0ZUJ1aWx0aW4sIDIpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIiLCBmdW5jdGlvbkNyZWF0ZVdhc21TdHJl
YW1pbmdQYXJzZXIsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlV2FzbVN0cmVhbWlu
Z0NvbXBpbGVyRm9yQ29tcGlsZSIsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Rm9yQ29tcGlsZSwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFtaW5n
Q29tcGlsZXJGb3JJbnN0YW50aWF0ZSIsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ0NvbXBp
bGVyRm9ySW5zdGFudGlhdGUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlV2FzbVN0
cmVhbWluZ1BhcnNlciJfcywgZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyLCAwKTsK
KyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVdhc21TdHJlYW1pbmdDb21waWxlckZvckNvbXBp
bGUiX3MsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ0NvbXBpbGVyRm9yQ29tcGlsZSwgMCk7
CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JJbnN0
YW50aWF0ZSJfcywgZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JJbnN0YW50
aWF0ZSwgMCk7CiAjZW5kaWYKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVN0YXRpY0N1c3Rv
bUFjY2Vzc29yIiwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvciwgMCk7Ci0gICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVTdGF0aWNDdXN0b21WYWx1ZSIsIGZ1bmN0aW9uQ3JlYXRl
U3RhdGljQ3VzdG9tVmFsdWUsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlT2JqZWN0
RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzIiwgZnVuY3Rpb25DcmVh
dGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMsIDApOwot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lIiwgZnVuY3Rp
b25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Z2V0UHJpdmF0ZVByb3BlcnR5IiwgZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHksIDIpOwotICAg
IGFkZEZ1bmN0aW9uKHZtLCAic2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUiLCBmdW5jdGlvblNldElt
cHVyZUdldHRlckRlbGVnYXRlLCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVN0YXRp
Y0N1c3RvbUFjY2Vzc29yIl9zLCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbUFjY2Vzc29yLCAw
KTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlIl9zLCBmdW5j
dGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNy
ZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cyJfcywg
ZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RT
dGF0dXMsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRW1wdHlGdW5jdGlvbldpdGhO
YW1lIl9zLCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSwgMSk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJnZXRQcml2YXRlUHJvcGVydHkiX3MsIGZ1bmN0aW9uR2V0UHJpdmF0ZVBy
b3BlcnR5LCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVnYXRl
Il9zLCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlLCAyKTsKIAotICAgIGFkZENvbnN0
cnVjdGlibGVGdW5jdGlvbih2bSwgIlJvb3QiLCBmdW5jdGlvbkNyZWF0ZVJvb3QsIDApOwotICAg
IGFkZENvbnN0cnVjdGlibGVGdW5jdGlvbih2bSwgIkVsZW1lbnQiLCBmdW5jdGlvbkNyZWF0ZUVs
ZW1lbnQsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0RWxlbWVudCIsIGZ1bmN0aW9uR2V0
RWxlbWVudCwgMSk7CisgICAgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKHZtLCAiUm9vdCJfcywg
ZnVuY3Rpb25DcmVhdGVSb290LCAwKTsKKyAgICBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24odm0s
ICJFbGVtZW50Il9zLCBmdW5jdGlvbkNyZWF0ZUVsZW1lbnQsIDEpOworICAgIGFkZEZ1bmN0aW9u
KHZtLCAiZ2V0RWxlbWVudCJfcywgZnVuY3Rpb25HZXRFbGVtZW50LCAxKTsKIAotICAgIGFkZENv
bnN0cnVjdGlibGVGdW5jdGlvbih2bSwgIlNpbXBsZU9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlU2lt
cGxlT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImdldEhpZGRlblZhbHVlIiwgZnVu
Y3Rpb25HZXRIaWRkZW5WYWx1ZSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJzZXRIaWRkZW5W
YWx1ZSIsIGZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUsIDIpOworICAgIGFkZENvbnN0cnVjdGlibGVG
dW5jdGlvbih2bSwgIlNpbXBsZU9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3Qs
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0SGlkZGVuVmFsdWUiX3MsIGZ1bmN0aW9uR2V0
SGlkZGVuVmFsdWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0SGlkZGVuVmFsdWUiX3Ms
IGZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUsIDIpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJzaGFk
b3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayIsIGZ1bmN0aW9uU2hhZG93Q2hpY2tlbkZ1bmN0aW9u
c09uU3RhY2ssIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0R2xvYmFsQ29uc3RSZWRlY2xh
cmF0aW9uU2hvdWxkTm90VGhyb3ciLCBmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlv
blNob3VsZE5vdFRocm93LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInNoYWRvd0NoaWNrZW5G
dW5jdGlvbnNPblN0YWNrIl9zLCBmdW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNr
LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNo
b3VsZE5vdFRocm93Il9zLCBmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3Vs
ZE5vdFRocm93LCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmluZFR5cGVGb3JFeHByZXNz
aW9uIiwgZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24sIDIpOwotICAgIGFkZEZ1bmN0aW9u
KHZtLCAicmV0dXJuVHlwZUZvciIsIGZ1bmN0aW9uUmV0dXJuVHlwZUZvciwgMSk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJmaW5kVHlwZUZvckV4cHJlc3Npb24iX3MsIGZ1bmN0aW9uRmluZFR5cGVG
b3JFeHByZXNzaW9uLCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInJldHVyblR5cGVGb3IiX3Ms
IGZ1bmN0aW9uUmV0dXJuVHlwZUZvciwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImZsYXR0
ZW5EaWN0aW9uYXJ5T2JqZWN0IiwgZnVuY3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCwgMSk7
CisgICAgYWRkRnVuY3Rpb24odm0sICJmbGF0dGVuRGljdGlvbmFyeU9iamVjdCJfcywgZnVuY3Rp
b25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1
bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzIiwgZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4ZWN1
dGlvblJhbmdlcyAsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkIiwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQsIDIpOwotICAgIGFkZEZ1bmN0aW9u
KHZtLCAiYmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50IiwgZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0
aW9uQ291bnQsIDIpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEJhc2ljQmxvY2tFeGVjdXRp
b25SYW5nZXMiX3MsIGZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMgLCAwKTsK
KyAgICBhZGRGdW5jdGlvbih2bSwgImhhc0Jhc2ljQmxvY2tFeGVjdXRlZCJfcywgZnVuY3Rpb25I
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQsIDIpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYmFzaWNCbG9j
a0V4ZWN1dGlvbkNvdW50Il9zLCBmdW5jdGlvbkJhc2ljQmxvY2tFeGVjdXRpb25Db3VudCwgMik7
CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImVuYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlIiwgZnVu
Y3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0s
ICJkaXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUiLCBmdW5jdGlvbkRpc2FibGVEZWJ1Z2dlck1v
ZGVXaGVuSWRsZSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJlbmFibGVEZWJ1Z2dlck1vZGVX
aGVuSWRsZSJfcywgZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgMCk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJkaXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUiX3MsIGZ1bmN0aW9u
RGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlLCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZGVsZXRlQWxsQ29kZVdoZW5JZGxlIiwgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hlbklkbGUsIDAp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGVsZXRlQWxsQ29kZVdoZW5JZGxlIl9zLCBmdW5jdGlv
bkRlbGV0ZUFsbENvZGVXaGVuSWRsZSwgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImdsb2Jh
bE9iamVjdENvdW50IiwgZnVuY3Rpb25HbG9iYWxPYmplY3RDb3VudCwgMCk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJnbG9iYWxPYmplY3RGb3JPYmplY3QiLCBmdW5jdGlvbkdsb2JhbE9iamVjdEZv
ck9iamVjdCwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJnbG9iYWxPYmplY3RDb3VudCJfcywg
ZnVuY3Rpb25HbG9iYWxPYmplY3RDb3VudCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJnbG9i
YWxPYmplY3RGb3JPYmplY3QiX3MsIGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9yT2JqZWN0LCAxKTsK
IAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0R2V0dGVyU2V0dGVyIiwgZnVuY3Rpb25HZXRHZXR0
ZXJTZXR0ZXIsIDIpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAibG9hZEdldHRlckZyb21HZXR0ZXJT
ZXR0ZXIiLCBmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVyLCAxKTsKLSAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIiLCBmdW5jdGlvbkNyZWF0
ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0R2V0
dGVyU2V0dGVyIl9zLCBmdW5jdGlvbkdldEdldHRlclNldHRlciwgMik7CisgICAgYWRkRnVuY3Rp
b24odm0sICJsb2FkR2V0dGVyRnJvbUdldHRlclNldHRlciJfcywgZnVuY3Rpb25Mb2FkR2V0dGVy
RnJvbUdldHRlclNldHRlciwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVDdXN0b21U
ZXN0R2V0dGVyU2V0dGVyIl9zLCBmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIs
IDEpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJkZWx0YUJldHdlZW5CdXR0ZXJmbGllcyIsIGZ1
bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMsIDIpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMiX3MsIGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxp
ZXMsIDIpOwogICAgIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3VycmVudENQVVRpbWUiLCBmdW5j
dGlvbkN1cnJlbnRDUFVUaW1lLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInRvdGFsR0NUaW1l
IiwgZnVuY3Rpb25Ub3RhbEdDVGltZSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjdXJyZW50
Q1BVVGltZSJfcywgZnVuY3Rpb25DdXJyZW50Q1BVVGltZSwgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJ0b3RhbEdDVGltZSJfcywgZnVuY3Rpb25Ub3RhbEdDVGltZSwgMCk7CiAKLSAgICBhZGRG
dW5jdGlvbih2bSwgInBhcnNlQ291bnQiLCBmdW5jdGlvblBhcnNlQ291bnQsIDApOworICAgIGFk
ZEZ1bmN0aW9uKHZtLCAicGFyc2VDb3VudCJfcywgZnVuY3Rpb25QYXJzZUNvdW50LCAwKTsKIAot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNXYXNtU3VwcG9ydGVkIiwgZnVuY3Rpb25Jc1dhc21TdXBw
b3J0ZWQsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJs
ZSIsIGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgMSk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJpc1dhc21TdXBwb3J0ZWQiX3MsIGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkLCAwKTsK
KyAgICBhZGRGdW5jdGlvbih2bSwgIm1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUiX3MsIGZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0IiwgZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0
aW9uTGlzdCwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJnZXRDb25jdXJyZW50bHkiLCBmdW5j
dGlvbkdldENvbmN1cnJlbnRseSwgMik7CisgICAgYWRkRnVuY3Rpb24odm0sICJnZXRTdHJ1Y3R1
cmVUcmFuc2l0aW9uTGlzdCJfcywgZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCwg
MSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJnZXRDb25jdXJyZW50bHkiX3MsIGZ1bmN0aW9uR2V0
Q29uY3VycmVudGx5LCAyKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzT3duTGVuZ3RoUHJv
cGVydHkiLCBmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5LCAxKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgInJlamVjdFByb21pc2VBc0hhbmRsZWQiLCBmdW5jdGlvblJlamVjdFByb21pc2VBc0hh
bmRsZWQsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzT3duTGVuZ3RoUHJvcGVydHkiX3Ms
IGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHksIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
cmVqZWN0UHJvbWlzZUFzSGFuZGxlZCJfcywgZnVuY3Rpb25SZWplY3RQcm9taXNlQXNIYW5kbGVk
LCAxKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyIs
IGZ1bmN0aW9uU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcywgMSk7Ci0gICAgYWRkRnVuY3Rpb24o
dm0sICJpY3VWZXJzaW9uIiwgZnVuY3Rpb25JQ1VWZXJzaW9uLCAwKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImljdUhlYWRlclZlcnNpb24iLCBmdW5jdGlvbklDVUhlYWRlclZlcnNpb24sIDApOwor
ICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyJfcywgZnVuY3Rp
b25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlj
dVZlcnNpb24iX3MsIGZ1bmN0aW9uSUNVVmVyc2lvbiwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0s
ICJpY3VIZWFkZXJWZXJzaW9uIl9zLCBmdW5jdGlvbklDVUhlYWRlclZlcnNpb24sIDApOwogCi0g
ICAgYWRkRnVuY3Rpb24odm0sICJhc3NlcnRFbmFibGVkIiwgZnVuY3Rpb25Bc3NlcnRFbmFibGVk
LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInNlY3VyaXR5QXNzZXJ0RW5hYmxlZCIsIGZ1bmN0
aW9uU2VjdXJpdHlBc3NlcnRFbmFibGVkLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImFzYW5F
bmFibGVkIiwgZnVuY3Rpb25Bc2FuRW5hYmxlZCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJh
c3NlcnRFbmFibGVkIl9zLCBmdW5jdGlvbkFzc2VydEVuYWJsZWQsIDApOworICAgIGFkZEZ1bmN0
aW9uKHZtLCAic2VjdXJpdHlBc3NlcnRFbmFibGVkIl9zLCBmdW5jdGlvblNlY3VyaXR5QXNzZXJ0
RW5hYmxlZCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJhc2FuRW5hYmxlZCJfcywgZnVuY3Rp
b25Bc2FuRW5hYmxlZCwgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImlzTWVtb3J5TGltaXRl
ZCIsIGZ1bmN0aW9uSXNNZW1vcnlMaW1pdGVkLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInVz
ZUpJVCIsIGZ1bmN0aW9uVXNlSklULCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImlzR2lnYWNh
Z2VFbmFibGVkIiwgZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCwgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJpc01lbW9yeUxpbWl0ZWQiX3MsIGZ1bmN0aW9uSXNNZW1vcnlMaW1pdGVkLCAwKTsK
KyAgICBhZGRGdW5jdGlvbih2bSwgInVzZUpJVCJfcywgZnVuY3Rpb25Vc2VKSVQsIDApOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiaXNHaWdhY2FnZUVuYWJsZWQiX3MsIGZ1bmN0aW9uSXNHaWdhY2Fn
ZUVuYWJsZWQsIDApOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJ0b0NhY2hlYWJsZURpY3Rpb25h
cnkiLCBmdW5jdGlvblRvQ2FjaGVhYmxlRGljdGlvbmFyeSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24o
dm0sICJ0b1VuY2FjaGVhYmxlRGljdGlvbmFyeSIsIGZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rp
b25hcnksIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAidG9DYWNoZWFibGVEaWN0aW9uYXJ5Il9z
LCBmdW5jdGlvblRvQ2FjaGVhYmxlRGljdGlvbmFyeSwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0s
ICJ0b1VuY2FjaGVhYmxlRGljdGlvbmFyeSJfcywgZnVuY3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlv
bmFyeSwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImlzUHJpdmF0ZVN5bWJvbCIsIGZ1bmN0
aW9uSXNQcml2YXRlU3ltYm9sLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBBbmRSZXNl
dFBhc0RlYnVnU3BlY3RydW0iLCBmdW5jdGlvbkR1bXBBbmRSZXNldFBhc0RlYnVnU3BlY3RydW0s
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNQcml2YXRlU3ltYm9sIl9zLCBmdW5jdGlvbklz
UHJpdmF0ZVN5bWJvbCwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wQW5kUmVzZXRQYXNE
ZWJ1Z1NwZWN0cnVtIl9zLCBmdW5jdGlvbkR1bXBBbmRSZXNldFBhc0RlYnVnU3BlY3RydW0sIDAp
OwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJtb25vdG9uaWNUaW1lTm93IiwgZnVuY3Rpb25Nb25v
dG9uaWNUaW1lTm93LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgIndhbGxUaW1lTm93IiwgZnVu
Y3Rpb25XYWxsVGltZU5vdywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJhcHByb3hpbWF0ZVRp
bWVOb3ciLCBmdW5jdGlvbkFwcHJveGltYXRlVGltZU5vdywgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJtb25vdG9uaWNUaW1lTm93Il9zLCBmdW5jdGlvbk1vbm90b25pY1RpbWVOb3csIDApOwor
ICAgIGFkZEZ1bmN0aW9uKHZtLCAid2FsbFRpbWVOb3ciX3MsIGZ1bmN0aW9uV2FsbFRpbWVOb3cs
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXBwcm94aW1hdGVUaW1lTm93Il9zLCBmdW5jdGlv
bkFwcHJveGltYXRlVGltZU5vdywgMCk7CiAKICNpZiBFTkFCTEUoSklUKQotICAgIGFkZEZ1bmN0
aW9uKHZtLCAiaml0U2l6ZVN0YXRpc3RpY3MiLCBmdW5jdGlvbkpJVFNpemVTdGF0aXN0aWNzLCAw
KTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBKSVRTaXplU3RhdGlzdGljcyIsIGZ1bmN0aW9u
RHVtcEpJVFNpemVTdGF0aXN0aWNzLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInJlc2V0SklU
U2l6ZVN0YXRpc3RpY3MiLCBmdW5jdGlvblJlc2V0SklUU2l6ZVN0YXRpc3RpY3MsIDApOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiaml0U2l6ZVN0YXRpc3RpY3MiX3MsIGZ1bmN0aW9uSklUU2l6ZVN0
YXRpc3RpY3MsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEpJVFNpemVTdGF0aXN0aWNz
Il9zLCBmdW5jdGlvbkR1bXBKSVRTaXplU3RhdGlzdGljcywgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJyZXNldEpJVFNpemVTdGF0aXN0aWNzIl9zLCBmdW5jdGlvblJlc2V0SklUU2l6ZVN0YXRp
c3RpY3MsIDApOwogI2VuZGlmCiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImVuc3VyZUFycmF5U3Rv
cmFnZSIsIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2
bSwgImVuc3VyZUFycmF5U3RvcmFnZSJfcywgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEp
OwogCiAgICAgbV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0
dXNTdHJ1Y3R1cmVJRC5zZXQodm0sIHRoaXMsIE9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhv
dXRDb3JyZWN0U2xvdFN0YXR1czo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGpz
TnVsbCgpKSk7CiB9CiAKLXZvaWQgSlNEb2xsYXJWTTo6YWRkRnVuY3Rpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKQordm9pZCBKU0RvbGxhclZNOjphZGRGdW5j
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFTQ0lJTGl0ZXJhbCBu
YW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgSWRlbnRpZmllciBpZGVudGlm
aWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSk7CiAgICAgcHV0RGlyZWN0KHZt
LCBpZGVudGlmaWVyLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgYXJndW1l
bnRzLCBpZGVudGlmaWVyLnN0cmluZygpLCBmdW5jdGlvbiksIGpzRG9sbGFyVk1Qcm9wZXJ0eUF0
dHJpYnV0ZXMpOwogfQogCi12b2lkIEpTRG9sbGFyVk06OmFkZENvbnN0cnVjdGlibGVGdW5jdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUs
IE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpCit2b2lkIEpTRG9s
bGFyVk06OmFkZENvbnN0cnVjdGlibGVGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEFTQ0lJTGl0ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwg
dW5zaWduZWQgYXJndW1lbnRzKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAppbmRleCAw
M2ZlMGE5NjAzZTQuLjEwZDc4NzZhYTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
SlNEb2xsYXJWTS5oCkBAIC03MSw4ICs3MSw4IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYpOwotICAgIHZvaWQgYWRkRnVuY3Rpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCosIGNvbnN0IGNoYXIqIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1
bWVudHMpOwotICAgIHZvaWQgYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlvbiwgdW5zaWduZWQgYXJndW1l
bnRzKTsKKyAgICB2b2lkIGFkZEZ1bmN0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBBU0NJSUxp
dGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cyk7CisgICAgdm9p
ZCBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIEFTQ0lJTGl0
ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKTsKIAogICAgIERF
Q0xBUkVfVklTSVRfQ0hJTERSRU47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseS5jcHAKaW5kZXggYzU0MWI1OTQ2NjY4Li40ZDg0MGU5YjdmYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwCkBA
IC0xMTEsOSArMTExLDkgQEAgdm9pZCBKU1dlYkFzc2VtYmx5OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQVNTRVJUKGluaGVyaXRzKHZt
LCBpbmZvKCkpKTsKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsK
ICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5jb21waWxl
U3RyZWFtaW5nKQotICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImNvbXBpbGVTdHJlYW1pbmciLCB3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oMCkpOworICAgICAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvbXBpbGVTdHJlYW1pbmciX3MsIHdlYkFzc2Vt
Ymx5Q29tcGlsZVN0cmVhbWluZ0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigw
KSk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+aW5z
dGFudGlhdGVTdHJlYW1pbmcpCi0gICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiaW5zdGFudGlhdGVTdHJlYW1pbmciLCB3ZWJBc3NlbWJseUluc3RhbnRpYXRl
U3RyZWFtaW5nQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApKTsKKyAgICAg
ICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbnN0YW50aWF0ZVN0
cmVhbWluZyJfcywgd2ViQXNzZW1ibHlJbnN0YW50aWF0ZVN0cmVhbWluZ0NvZGVHZW5lcmF0b3Is
IHN0YXRpY19jYXN0PHVuc2lnbmVkPigwKSk7CiB9CiAKIEpTV2ViQXNzZW1ibHk6OkpTV2ViQXNz
ZW1ibHkoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9M
ZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCmluZGV4IGEzNWYyYTlhZjI5NC4uYWY5ODA5NzI4
MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xl
Z2FjeS9MZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHAK
QEAgLTEzMyw3ICsxMzMsNyBAQCBib29sIENETVNlc3Npb25DbGVhcktleTo6dXBkYXRlKFVpbnQ4
QXJyYXkqIHJhd0tleXNEYXRhLCBSZWZQdHI8VWludDhBcnJheT4mIG5leAogCiAgICAgICAgICAg
ICBhdXRvIGtleU9iamVjdCA9IGFzT2JqZWN0KGtleVZhbHVlKTsKIAotICAgICAgICAgICAgYXV0
byBnZXRTdHJpbmdQcm9wZXJ0eSA9IFsmc2NvcGUsICZsZXhpY2FsR2xvYmFsT2JqZWN0LCAma2V5
T2JqZWN0LCAmdm1dKGNvbnN0IGNoYXIqIG5hbWUpIC0+IFN0cmluZyB7CisgICAgICAgICAgICBh
dXRvIGdldFN0cmluZ1Byb3BlcnR5ID0gWyZzY29wZSwgJmxleGljYWxHbG9iYWxPYmplY3QsICZr
ZXlPYmplY3QsICZ2bV0oQVNDSUlMaXRlcmFsIG5hbWUpIC0+IFN0cmluZyB7CiAgICAgICAgICAg
ICAgICAgYXV0byB2YWx1ZSA9IGtleU9iamVjdC0+Z2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBuYW1lKSk7CiAgICAgICAgICAgICAgICAgaWYgKHNj
b3BlLmV4Y2VwdGlvbigpIHx8ICF2YWx1ZS5pc1N0cmluZygpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTQ1LDI1ICsxNDUsMjUgQEAgYm9vbCBDRE1TZXNzaW9uQ2xlYXJL
ZXk6OnVwZGF0ZShVaW50OEFycmF5KiByYXdLZXlzRGF0YSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBu
ZXgKICAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgICAgICAgICAgfTsKIAotICAg
ICAgICAgICAgYXV0byBhbGdvcml0aG0gPSBnZXRTdHJpbmdQcm9wZXJ0eSgiYWxnIik7CisgICAg
ICAgICAgICBhdXRvIGFsZ29yaXRobSA9IGdldFN0cmluZ1Byb3BlcnR5KCJhbGciX3MpOwogICAg
ICAgICAgICAgaWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhbGdvcml0aG0sICJh
MTI4a3ciKSkgewogICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25DbGVhcktl
eTo6dXBkYXRlKCVwKSAtIGZhaWxlZDogYWxnb3JpdGhtIHVuc3VwcG9ydGVkIiwgdGhpcyk7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1
dG8ga2V5VHlwZSA9IGdldFN0cmluZ1Byb3BlcnR5KCJrdHkiKTsKKyAgICAgICAgICAgIGF1dG8g
a2V5VHlwZSA9IGdldFN0cmluZ1Byb3BlcnR5KCJrdHkiX3MpOwogICAgICAgICAgICAgaWYgKCFl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShrZXlUeXBlLCAib2N0IikpIHsKICAgICAgICAg
ICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZSglcCkgLSBmYWls
ZWQ6IGtleVR5cGUgdW5zdXBwb3J0ZWQiLCB0aGlzKTsKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBrZXlJZCA9IGdldFN0cmluZ1By
b3BlcnR5KCJraWQiKTsKKyAgICAgICAgICAgIGF1dG8ga2V5SWQgPSBnZXRTdHJpbmdQcm9wZXJ0
eSgia2lkIl9zKTsKICAgICAgICAgICAgIGlmIChrZXlJZC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZSglcCkgLSBmYWls
ZWQ6IGtleUlkIG1pc3Npbmcgb3IgZW1wdHkiLCB0aGlzKTsKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byByYXdLZXlEYXRhID0gZ2V0
U3RyaW5nUHJvcGVydHkoImsiKTsKKyAgICAgICAgICAgIGF1dG8gcmF3S2V5RGF0YSA9IGdldFN0
cmluZ1Byb3BlcnR5KCJrIl9zKTsKICAgICAgICAgICAgIGlmIChyYXdLZXlEYXRhLmlzRW1wdHko
KSkgIHsKICAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uQ2xlYXJLZXk6OnVw
ZGF0ZSglcCkgLSBmYWlsZWQ6IGtleSBtaXNzaW5nIG9yIGVtcHR5IiwgdGhpcyk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVz
dGJpbmRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0YmluZGluZ3MuY3BwCmlu
ZGV4IDBiZjc0ZTEyODU0NC4uMmI0Nzk5NWJjZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvdGVzdGJpbmRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVz
dGJpbmRpbmdzLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICoqYXJndikKICAgICAgICAgCiAgICAgICAgIE15T2JqZWN0ICpteU9iamVjdCA9IChNeU9iamVj
dCAqKU5QTl9DcmVhdGVPYmplY3QgKG15RnVuY3Rpb25QdHJzKTsKICAgICAgICAgCi0gICAgICAg
IGdsb2JhbC5wdXQobGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRp
bWVPYmplY3QoSW5zdGFuY2U6OkNMYW5ndWFnZSwgKHZvaWQgKilteU9iamVjdCkpOworICAgICAg
ICBnbG9iYWwucHV0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
bGV4aWNhbEdsb2JhbE9iamVjdCwgIm15SW50ZXJmYWNlIl9zKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1
bnRpbWVPYmplY3QoSW5zdGFuY2U6OkNMYW5ndWFnZSwgKHZvaWQgKilteU9iamVjdCkpOwogICAg
ICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKmNvZGUgPSByZWFkSmF2YVNjcmlwdEZyb21GaWxlKGFyZ3ZbaV0pOwpA
QCAtMzk2LDcgKzM5Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gY3N0cmluZy5kYXRhKCk7CiAgICAgICAg
ICAgICAgICAgICAgIGludCBsaW5lbm8gPSAtMTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGV4
VmFsLnR5cGUoKSA9PSBPYmplY3RUeXBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZSBsaW5lVmFsID0gT2JqZWN0OjpkeW5hbWljQ2FzdChleFZhbCkuZ2V0KGxleGljYWxHbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgImxpbmUi
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSBsaW5lVmFsID0gT2JqZWN0OjpkeW5h
bWljQ2FzdChleFZhbCkuZ2V0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgImxpbmUiX3MpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChsaW5lVmFsLnR5cGUoKSA9PSBOdW1iZXJUeXBlKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmVubyA9IGludChsaW5lVmFsLnRvTnVtYmVyKGxleGljYWxHbG9iYWxP
YmplY3QpKTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0Ymlu
ZGluZ3MubW0KaW5kZXggMWQ2MWMzYzQ1ZjNmLi5jNjJjNGY5YzhkZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0YmluZGluZ3MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3Rlc3RiaW5kaW5ncy5tbQpAQCAtMjM4LDcgKzIzOCw3IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyICoqYXJndikKIAogICAgICAgICAgICAgYXV0byBteUludGVyZmFjZSA9IGFkb3B0
TlMoW1tNeUZpcnN0SW50ZXJmYWNlIGFsbG9jXSBpbml0XSk7CiAKLSAgICAgICAgICAgIGdsb2Jh
bC5wdXQobGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmpl
Y3QoSW5zdGFuY2U6Ok9iamVjdGl2ZUNMYW5ndWFnZSwgKHZvaWQgKilteUludGVyZmFjZS5nZXQo
KSkpOworICAgICAgICAgICAgZ2xvYmFsLnB1dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3QsICJteUludGVyZmFjZSJfcyksIElu
c3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KEluc3RhbmNlOjpPYmplY3RpdmVDTGFuZ3VhZ2Us
ICh2b2lkICopbXlJbnRlcmZhY2UuZ2V0KCkpKTsKIAogICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDE7IGkgPCBhcmdjOyBpKyspIHsKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjb2RlID0g
cmVhZEphdmFTY3JpcHRGcm9tRmlsZShhcmd2W2ldKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
ICptc2cgPSBleFZhbC50b1N0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0KS5hc2NpaSgpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVubyA9IC0xOwogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGV4VmFsLnR5cGUoKSA9PSBPYmplY3RUeXBlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWUgbGluZVZhbCA9IE9iamVjdDo6ZHluYW1pY0Nhc3QoZXhWYWwpLmdl
dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9i
YWxPYmplY3QsICJsaW5lIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlIGxp
bmVWYWwgPSBPYmplY3Q6OmR5bmFtaWNDYXN0KGV4VmFsKS5nZXQobGV4aWNhbEdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAibGluZSJfcykp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lVmFsLnR5cGUoKSA9PSBOdW1i
ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lbm8gPSBpbnQobGlu
ZVZhbC50b051bWJlcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IDlkNmY0MzAz
NjU5OC4uNTJhOGEyY2E0YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNw
cApAQCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+PiBub3JtYWxpemVDcnlwdG9BbAogCiAgICAgaWYgKHN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8U3RyaW5nPihhbGdvcml0aG1JZGVudGlmaWVyKSkgewogICAg
ICAgICBhdXRvIG5ld1BhcmFtcyA9IFN0cm9uZzxKU09iamVjdD4odm0sIGNvbnN0cnVjdEVtcHR5
T2JqZWN0KCZzdGF0ZSkpOwotICAgICAgICBuZXdQYXJhbXMtPnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiKSwganNTdHJpbmcodm0sIHN0ZDo6Z2V0PFN0cmlu
Zz4oYWxnb3JpdGhtSWRlbnRpZmllcikpKTsKKyAgICAgICAgbmV3UGFyYW1zLT5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSwganNTdHJpbmcodm0sIHN0
ZDo6Z2V0PFN0cmluZz4oYWxnb3JpdGhtSWRlbnRpZmllcikpKTsKICAgICAgICAgCiAgICAgICAg
IHJldHVybiBub3JtYWxpemVDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKHN0YXRlLCBuZXdQYXJh
bXMsIG9wZXJhdGlvbik7CiAgICAgfQpAQCAtMjQxLDExICsyNDEsMTEgQEAgc3RhdGljIEV4Y2Vw
dGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPj4gbm9ybWFs
aXplQ3J5cHRvQWwKICAgICAgICAgc3dpdGNoICgqaWRlbnRpZmllcikgewogICAgICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6IHsKICAgICAgICAgICAgIC8vIFJlbW92
ZSB0aGlzIGhhY2sgb25jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY5MzMzIGlzIGZpeGVkLgotICAgICAgICAgICAgSlNWYWx1ZSBuYW1lVmFsdWUgPSB2YWx1ZS5n
ZXQoKS0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiKSk7Ci0g
ICAgICAgICAgICBKU1ZhbHVlIHB1YmxpY1ZhbHVlID0gdmFsdWUuZ2V0KCktPmdldCgmc3RhdGUs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwdWJsaWMiKSk7CisgICAgICAgICAgICBKU1Zh
bHVlIG5hbWVWYWx1ZSA9IHZhbHVlLmdldCgpLT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAibmFtZSJfcykpOworICAgICAgICAgICAgSlNWYWx1ZSBwdWJsaWNWYWx1ZSA9
IHZhbHVlLmdldCgpLT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicHVi
bGljIl9zKSk7CiAgICAgICAgICAgICBKU09iamVjdCogbmV3VmFsdWUgPSBjb25zdHJ1Y3RFbXB0
eU9iamVjdCgmc3RhdGUpOwotICAgICAgICAgICAgbmV3VmFsdWUtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiKSwgbmFtZVZhbHVlKTsKLSAgICAgICAgICAg
IG5ld1ZhbHVlLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwdWJs
aWNLZXkiKSwgcHVibGljVmFsdWUpOworICAgICAgICAgICAgbmV3VmFsdWUtPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpLCBuYW1lVmFsdWUpOworICAg
ICAgICAgICAgbmV3VmFsdWUtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInB1YmxpY0tleSJfcyksIHB1YmxpY1ZhbHVlKTsKIAogICAgICAgICAgICAgYXV0byBwYXJh
bXMgPSBjb252ZXJ0RGljdGlvbmFyeTxDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1z
PihzdGF0ZSwgbmV3VmFsdWUpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGZmYmJkYjhlZTcxZS4uNGI2ZDBlNWI0NDQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTc2NDMsNyAr
NzY0Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGFnZVNjYWxlRmFjdG9ySlNQ
cm9wZXJ0eSgpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRDb250
cm9sbGVySlNQcm9wZXJ0eSgicGFnZVNjYWxlRmFjdG9yIiwgSlNDOjpqc051bWJlcihwYWdlLT5w
YWdlU2NhbGVGYWN0b3IoKSkpOworICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJwYWdlU2Nh
bGVGYWN0b3IiX3MsIEpTQzo6anNOdW1iZXIocGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkpKTsKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVVc2VzTFRSVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbkpTUHJvcGVydHkoKQpAQCAtNzY1MywxMCArNzY1MywxMCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZVVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uSlNQ
cm9wZXJ0eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgdXNlc0xUUlVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb25Qcm9wZXJ0eSA9IHBhZ2UtPnVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24oKSA9PSBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFI7Ci0gICAgc2V0Q29u
dHJvbGxlckpTUHJvcGVydHkoInVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIiwg
SlNDOjpqc0Jvb2xlYW4odXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25Qcm9wZXJ0
eSkpOworICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJ1c2VzTFRSVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbiJfcywgSlNDOjpqc0Jvb2xlYW4odXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb25Qcm9wZXJ0eSkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENv
bnRyb2xsZXJKU1Byb3BlcnR5KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
IHByb3BlcnR5VmFsdWUpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXJKU1By
b3BlcnR5KEFTQ0lJTGl0ZXJhbCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSBwcm9wZXJ0eVZh
bHVlKQogewogICAgIHNldHVwQW5kQ2FsbEpTKFt0aGlzLCBwcm9wZXJ0eU5hbWUsIHByb3BlcnR5
VmFsdWVdKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFNjcmlwdENvbnRyb2xsZXImLCBET01XcmFwcGVyV29y
bGQmKSB7CiAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CkBAIC03ODY0LDEy
ICs3ODY0LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpnZXRDdXJyZW50TWVkaWFDb250
cm9sc1N0YXR1cygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFDb250cm9sc01h
eGltdW1SaWdodENvbnRhaW5lckJ1dHRvbkNvdW50T3ZlcnJpZGUoc2l6ZV90IGNvdW50KQogewot
ICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJtYXhpbXVtUmlnaHRDb250YWluZXJCdXR0b25D
b3VudE92ZXJyaWRlIiwgSlNDOjpqc051bWJlcihjb3VudCkpOworICAgIHNldENvbnRyb2xsZXJK
U1Byb3BlcnR5KCJtYXhpbXVtUmlnaHRDb250YWluZXJCdXR0b25Db3VudE92ZXJyaWRlIl9zLCBK
U0M6OmpzTnVtYmVyKGNvdW50KSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFDb250cm9sc0hpZGVQbGF5YmFja1JhdGVzKGJvb2wgaGlkZVBsYXliYWNrUmF0ZXMpCiB7Ci0g
ICAgc2V0Q29udHJvbGxlckpTUHJvcGVydHkoImhpZGVQbGF5YmFja1JhdGVzIiwgSlNDOjpqc0Jv
b2xlYW4oaGlkZVBsYXliYWNrUmF0ZXMpKTsKKyAgICBzZXRDb250cm9sbGVySlNQcm9wZXJ0eSgi
aGlkZVBsYXliYWNrUmF0ZXMiX3MsIEpTQzo6anNCb29sZWFuKGhpZGVQbGF5YmFja1JhdGVzKSk7
CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBIVE1MTWVkaWFFbGVtZW50OjpmaWxlU2l6ZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDA3Y2NkYjYyNGZi
Ny4uNDViYmQ5YjkxZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtOTYzLDcgKzk2Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZVBhZ2VTY2FsZUZh
Y3RvckpTUHJvcGVydHkoKTsKICAgICB2b2lkIHVwZGF0ZVVzZXNMVFJVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uSlNQcm9wZXJ0eSgpOwotICAgIHZvaWQgc2V0Q29udHJvbGxlckpTUHJvcGVy
dHkoY29uc3QgY2hhciosIEpTQzo6SlNWYWx1ZSk7CisgICAgdm9pZCBzZXRDb250cm9sbGVySlNQ
cm9wZXJ0eShBU0NJSUxpdGVyYWwsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICB2b2lkIGFkZEJlaGF2
aW9yUmVzdHJpY3Rpb25zT25FbmRJZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgaGFuZGxlU2Vla1Rv
UGxheWJhY2tQb3NpdGlvbihkb3VibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCBkMzZhNzEwODgwYzcuLjM3MmZjZDQ1
NWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9z
dDo6YWRkU2VsZlRvR2xvYmFsT2JqZWN0SW5Xb3JsZChET01XcmFwcGVyV29ybGQmIHdvcmxkKQog
ICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayh2bSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotICAg
IGdsb2JhbE9iamVjdC5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgIkluc3BlY3RvckZyb250ZW5kSG9zdCIpLCB0b0pTPElETEludGVyZmFjZTxJbnNwZWN0b3JG
cm9udGVuZEhvc3Q+PihnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnRoaXMpKTsKKyAgICBn
bG9iYWxPYmplY3QucHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJJbnNwZWN0b3JGcm9udGVuZEhvc3QiX3MpLCB0b0pTPElETEludGVyZmFjZTxJbnNwZWN0b3JG
cm9udGVuZEhvc3Q+PihnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnRoaXMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICByZXBvcnRFeGNlcHRpb24o
Jmdsb2JhbE9iamVjdCwgc2NvcGUuZXhjZXB0aW9uKCkpOwogfQpAQCAtNTM4LDcgKzUzOCw3IEBA
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50
LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtCiAgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsKICAg
ICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlw
dCgpLmdsb2JhbE9iamVjdChkZWJ1Z2dlcldvcmxkKCkpOwogICAgIGF1dG8mIHZtID0gZ2xvYmFs
T2JqZWN0LnZtKCk7Ci0gICAgYXV0byB2YWx1ZSA9IGdsb2JhbE9iamVjdC5nZXQoJmdsb2JhbE9i
amVjdCwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSW5zcGVjdG9yRnJvbnRlbmRB
UEkiKSk7CisgICAgYXV0byB2YWx1ZSA9IGdsb2JhbE9iamVjdC5nZXQoJmdsb2JhbE9iamVjdCwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSW5zcGVjdG9yRnJvbnRlbmRBUEkiX3Mp
KTsKICAgICBBU1NFUlQodmFsdWUpOwogICAgIEFTU0VSVCh2YWx1ZS5pc09iamVjdCgpKTsKICAg
ICBhdXRvKiBmcm9udGVuZEFQSU9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggNDFm
MzNiMTI1MWViLi43MGMzNDEyMDFjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC02Niw4ICs2Niw4IEBAIEpTVmFsdWUg
V2ViSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEpTR2xvYmFsT2JqZWN0KiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQogc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RJbnRlcm5hbFByb3BlcnR5KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbmFtZSwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsK
LSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5h
bWUiKSwganNTdHJpbmcodm0sIG5hbWUpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInZhbHVlIiksIHZhbHVlKTsKKyAgICBvYmplY3QtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpLCBqc1N0cmlu
Zyh2bSwgbmFtZSkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAidmFsdWUiX3MpLCB2YWx1ZSk7CiAgICAgcmV0dXJuIG9iamVjdDsKIH0KIApA
QCAtNzUsNTIgKzc1LDUyIEBAIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0SW50ZXJuYWxQcm9w
ZXJ0eShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBjb25zdCBTCiBzdGF0aWMgSlNPYmpl
Y3QqIG9iamVjdEZvclBheW1lbnRPcHRpb25zKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMs
IGNvbnN0IFBheW1lbnRPcHRpb25zJiBwYXltZW50T3B0aW9ucykKIHsKICAgICBhdXRvKiBvYmpl
Y3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RQYXllck5hbWUiKSwganNCb29s
ZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RQYXllck5hbWUpKTsKLSAgICBvYmplY3QtPnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RQYXllckVtYWlsIiks
IGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJFbWFpbCkpOwotICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVxdWVzdFBheWVy
UGhvbmUiKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RQYXllclBob25lKSk7Ci0g
ICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJyZXF1
ZXN0U2hpcHBpbmciKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RTaGlwcGluZykp
OwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
c2hpcHBpbmdUeXBlIiksIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcocGF5bWVudE9wdGlvbnMuc2hpcHBpbmdUeXBlKSkpOworICAgIG9iamVjdC0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVxdWVzdFBheWVyTmFtZSJf
cyksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJOYW1lKSk7CisgICAgb2Jq
ZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJyZXF1ZXN0UGF5
ZXJFbWFpbCJfcyksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJFbWFpbCkp
OworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
cmVxdWVzdFBheWVyUGhvbmUiX3MpLCBqc0Jvb2xlYW4ocGF5bWVudE9wdGlvbnMucmVxdWVzdFBh
eWVyUGhvbmUpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgInJlcXVlc3RTaGlwcGluZyJfcyksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5y
ZXF1ZXN0U2hpcHBpbmcpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgInNoaXBwaW5nVHlwZSJfcyksIGpzTm9udHJpdmlhbFN0cmluZyh2bSwg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocGF5bWVudE9wdGlvbnMuc2hpcHBpbmdUeXBlKSkp
OwogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIHN0YXRpYyBKU09iamVjdCogb2JqZWN0Rm9yUGF5
bWVudEN1cnJlbmN5QW1vdW50KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIGNvbnN0IFBh
eW1lbnRDdXJyZW5jeUFtb3VudCYgcGF5bWVudEN1cnJlbmN5QW1vdW50KQogewogICAgIGF1dG8q
IG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3kiKSwganNTdHJpbmco
dm0sIHBheW1lbnRDdXJyZW5jeUFtb3VudC5jdXJyZW5jeSkpOwotICAgIG9iamVjdC0+cHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwganNTdHJpbmcodm0s
IHBheW1lbnRDdXJyZW5jeUFtb3VudC52YWx1ZSkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3kiX3MpLCBqc1N0cmluZyh2bSwg
cGF5bWVudEN1cnJlbmN5QW1vdW50LmN1cnJlbmN5KSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSJfcyksIGpzU3RyaW5nKHZtLCBw
YXltZW50Q3VycmVuY3lBbW91bnQudmFsdWUpKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCiBz
dGF0aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnRJdGVtKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGV4ZWMsIGNvbnN0IFBheW1lbnRJdGVtJiBwYXltZW50SXRlbSkKIHsKICAgICBhdXRvKiBv
YmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICBvYmplY3QtPnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxhYmVsIiksIGpzU3RyaW5nKHZtLCBw
YXltZW50SXRlbS5sYWJlbCkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAiYW1vdW50IiksIG9iamVjdEZvclBheW1lbnRDdXJyZW5jeUFtb3Vu
dCh2bSwgZXhlYywgcGF5bWVudEl0ZW0uYW1vdW50KSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwZW5kaW5nIiksIGpzQm9vbGVhbihwYXlt
ZW50SXRlbS5wZW5kaW5nKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJsYWJlbCJfcyksIGpzU3RyaW5nKHZtLCBwYXltZW50SXRlbS5sYWJl
bCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiYW1vdW50Il9zKSwgb2JqZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KHZtLCBleGVjLCBw
YXltZW50SXRlbS5hbW91bnQpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInBlbmRpbmciX3MpLCBqc0Jvb2xlYW4ocGF5bWVudEl0ZW0ucGVu
ZGluZykpOwogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIHN0YXRpYyBKU09iamVjdCogb2JqZWN0
Rm9yUGF5bWVudFNoaXBwaW5nT3B0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIGNv
bnN0IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgcGF5bWVudFNoaXBwaW5nT3B0aW9uKQogewogICAg
IGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQiKSwganNTdHJpbmco
dm0sIHBheW1lbnRTaGlwcGluZ09wdGlvbi5pZCkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibGFiZWwiKSwganNTdHJpbmcodm0sIHBheW1l
bnRTaGlwcGluZ09wdGlvbi5sYWJlbCkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYW1vdW50IiksIG9iamVjdEZvclBheW1lbnRDdXJyZW5j
eUFtb3VudCh2bSwgZXhlYywgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmFtb3VudCkpOwotICAgIG9i
amVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2VsZWN0ZWQi
KSwganNCb29sZWFuKHBheW1lbnRTaGlwcGluZ09wdGlvbi5zZWxlY3RlZCkpOworICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQiX3MpLCBqc1N0
cmluZyh2bSwgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmlkKSk7CisgICAgb2JqZWN0LT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsYWJlbCJfcyksIGpzU3RyaW5nKHZt
LCBwYXltZW50U2hpcHBpbmdPcHRpb24ubGFiZWwpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFtb3VudCJfcyksIG9iamVjdEZvclBheW1l
bnRDdXJyZW5jeUFtb3VudCh2bSwgZXhlYywgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmFtb3VudCkp
OworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
c2VsZWN0ZWQiX3MpLCBqc0Jvb2xlYW4ocGF5bWVudFNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKSk7
CiAgICAgcmV0dXJuIG9iamVjdDsKIH0KIAogc3RhdGljIEpTT2JqZWN0KiBvYmplY3RGb3JQYXlt
ZW50RGV0YWlsc01vZGlmaWVyKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIGNvbnN0IFBh
eW1lbnREZXRhaWxzTW9kaWZpZXImIG1vZGlmaWVyKQogewogICAgIGF1dG8qIG9iamVjdCA9IGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3VwcG9ydGVkTWV0aG9kcyIpLCBqc1N0cmluZyh2bSwg
bW9kaWZpZXIuc3VwcG9ydGVkTWV0aG9kcykpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3VwcG9ydGVkTWV0aG9kcyJfcyksIGpzU3RyaW5n
KHZtLCBtb2RpZmllci5zdXBwb3J0ZWRNZXRob2RzKSk7CiAgICAgaWYgKG1vZGlmaWVyLnRvdGFs
KQotICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInRvdGFsIiksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCAqbW9kaWZpZXIudG90
YWwpKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJ0b3RhbCJfcyksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCAqbW9kaWZp
ZXIudG90YWwpKTsKICAgICBpZiAoIW1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5SXRlbXMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGF1dG8qIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMgPSBjb25zdHJ1
Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbW9kaWZpZXIuYWRkaXRpb25hbERpc3BsYXlJdGVtcy5zaXplKCk7ICsraSkKICAgICAg
ICAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIG9i
amVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBtb2RpZmllci5hZGRpdGlvbmFsRGlzcGxheUl0
ZW1zW2ldKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiYWRkaXRpb25hbERpc3BsYXlJdGVtcyIpLCBhZGRpdGlvbmFsRGlzcGxheUl0
ZW1zKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJhZGRpdGlvbmFsRGlzcGxheUl0ZW1zIl9zKSwgYWRkaXRpb25hbERpc3BsYXlJdGVt
cyk7CiAgICAgfQogICAgIHJldHVybiBvYmplY3Q7CiB9CkBAIC0xMjgsMjUgKzEyOCwyNSBAQCBz
dGF0aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnREZXRhaWxzTW9kaWZpZXIoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZXhlYywgYwogc3RhdGljIEpTT2JqZWN0KiBvYmplY3RGb3JQYXltZW50
RGV0YWlscyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBjb25zdCBQYXltZW50RGV0YWls
c0luaXQmIHBheW1lbnREZXRhaWxzKQogewogICAgIGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVt
cHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAiaWQiKSwganNTdHJpbmcodm0sIHBheW1lbnREZXRhaWxzLmlkKSk7Ci0g
ICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0b3Rh
bCIpLCBvYmplY3RGb3JQYXltZW50SXRlbSh2bSwgZXhlYywgcGF5bWVudERldGFpbHMudG90YWwp
KTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
ImlkIl9zKSwganNTdHJpbmcodm0sIHBheW1lbnREZXRhaWxzLmlkKSk7CisgICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0b3RhbCJfcyksIG9iamVj
dEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy50b3RhbCkpOwogICAgIGlm
IChwYXltZW50RGV0YWlscy5kaXNwbGF5SXRlbXMpIHsKICAgICAgICAgYXV0byogZGlzcGxheUl0
ZW1zID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHBheW1lbnREZXRhaWxzLmRpc3BsYXlJdGVtcy0+c2l6ZSgpOyAr
K2kpCiAgICAgICAgICAgICBkaXNwbGF5SXRlbXMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIG9i
amVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy5kaXNwbGF5SXRlbXMt
PmF0KGkpKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiZGlzcGxheUl0ZW1zIiksIGRpc3BsYXlJdGVtcyk7CisgICAgICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZGlzcGxheUl0ZW1z
Il9zKSwgZGlzcGxheUl0ZW1zKTsKICAgICB9CiAgICAgaWYgKHBheW1lbnREZXRhaWxzLnNoaXBw
aW5nT3B0aW9ucykgewogICAgICAgICBhdXRvKiBzaGlwcGluZ09wdGlvbnMgPSBjb25zdHJ1Y3RF
bXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgcGF5bWVudERldGFpbHMuc2hpcHBpbmdPcHRpb25zLT5zaXplKCk7ICsraSkKICAgICAgICAg
ICAgIHNoaXBwaW5nT3B0aW9ucy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2JqZWN0Rm9yUGF5
bWVudFNoaXBwaW5nT3B0aW9uKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy5zaGlwcGluZ09wdGlv
bnMtPmF0KGkpKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAic2hpcHBpbmdPcHRpb25zIiksIHNoaXBwaW5nT3B0aW9ucyk7CisgICAg
ICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hp
cHBpbmdPcHRpb25zIl9zKSwgc2hpcHBpbmdPcHRpb25zKTsKICAgICB9CiAgICAgaWYgKHBheW1l
bnREZXRhaWxzLm1vZGlmaWVycykgewogICAgICAgICBhdXRvKiBtb2RpZmllcnMgPSBjb25zdHJ1
Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgcGF5bWVudERldGFpbHMubW9kaWZpZXJzLT5zaXplKCk7ICsraSkKICAgICAgICAgICAg
IG1vZGlmaWVycy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2JqZWN0Rm9yUGF5bWVudERldGFp
bHNNb2RpZmllcih2bSwgZXhlYywgcGF5bWVudERldGFpbHMubW9kaWZpZXJzLT5hdChpKSkpOwot
ICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
Im1vZGlmaWVycyIpLCBtb2RpZmllcnMpOworICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1vZGlmaWVycyJfcyksIG1vZGlmaWVycyk7CiAg
ICAgfQogICAgIHJldHVybiBvYmplY3Q7CiB9CkBAIC0xOTIsMTAgKzE5MiwxMCBAQCBzdGF0aWMg
SlNPYmplY3QqIG9iamVjdEZvckV2ZW50VGFyZ2V0TGlzdGVuZXJzKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGV4ZWMsIEV2ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg
ICBhdXRvKiBwcm9wZXJ0aWVzRm9yTGlzdGVuZXIgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVj
KTsKLSAgICAgICAgICAgIHByb3BlcnRpZXNGb3JMaXN0ZW5lci0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY2FsbGJhY2siKSwganNGdW5jdGlvbik7Ci0gICAgICAg
ICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgImNhcHR1cmUiKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPnVzZUNhcHR1
cmUoKSkpOwotICAgICAgICAgICAgcHJvcGVydGllc0Zvckxpc3RlbmVyLT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwYXNzaXZlIiksIGpzQm9vbGVhbihldmVudExp
c3RlbmVyLT5pc1Bhc3NpdmUoKSkpOwotICAgICAgICAgICAgcHJvcGVydGllc0Zvckxpc3RlbmVy
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJvbmNlIiksIGpzQm9v
bGVhbihldmVudExpc3RlbmVyLT5pc09uY2UoKSkpOworICAgICAgICAgICAgcHJvcGVydGllc0Zv
ckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjYWxs
YmFjayJfcyksIGpzRnVuY3Rpb24pOworICAgICAgICAgICAgcHJvcGVydGllc0Zvckxpc3RlbmVy
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjYXB0dXJlIl9zKSwg
anNCb29sZWFuKGV2ZW50TGlzdGVuZXItPnVzZUNhcHR1cmUoKSkpOworICAgICAgICAgICAgcHJv
cGVydGllc0Zvckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJwYXNzaXZlIl9zKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPmlzUGFzc2l2ZSgpKSk7
CisgICAgICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgIm9uY2UiX3MpLCBqc0Jvb2xlYW4oZXZlbnRMaXN0ZW5lci0+
aXNPbmNlKCkpKTsKICAgICAgICAgICAgIGxpc3RlbmVyc0ZvckV2ZW50LT5wdXREaXJlY3RJbmRl
eChleGVjLCBsaXN0ZW5lcnNGb3JFdmVudEluZGV4KyssIHByb3BlcnRpZXNGb3JMaXN0ZW5lcik7
CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCBmNWQwMDI5ZDFkMGUuLjkzMjNlMjA2
ZDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTUwMiwxMyArNTAyLDEzIEBAIHZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OmNvbnNvbGVTdGFydFJlY29yZGluZ0NhbnZhcyhDYW52YXNSZW5kZXJp
bmdDb250ZXh0JiBjCiAgICAgUmVjb3JkaW5nT3B0aW9ucyByZWNvcmRpbmdPcHRpb25zOwogICAg
IGlmIChvcHRpb25zKSB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gZXhlYy52bSgpOwotICAgICAg
ICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvblNpbmdsZUZyYW1lID0gb3B0aW9ucy0+Z2V0KCZleGVj
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaW5nbGVGcmFtZSIpKSkKKyAgICAg
ICAgaWYgKEpTQzo6SlNWYWx1ZSBvcHRpb25TaW5nbGVGcmFtZSA9IG9wdGlvbnMtPmdldCgmZXhl
YywgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2luZ2xlRnJhbWUiX3MpKSkKICAg
ICAgICAgICAgIHJlY29yZGluZ09wdGlvbnMuZnJhbWVDb3VudCA9IG9wdGlvblNpbmdsZUZyYW1l
LnRvQm9vbGVhbigmZXhlYykgPyAxIDogMDsKLSAgICAgICAgaWYgKEpTQzo6SlNWYWx1ZSBvcHRp
b25GcmFtZUNvdW50ID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJmcmFtZUNvdW50IikpKQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlv
bkZyYW1lQ291bnQgPSBvcHRpb25zLT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImZyYW1lQ291bnQiX3MpKSkKICAgICAgICAgICAgIHJlY29yZGluZ09wdGlvbnMu
ZnJhbWVDb3VudCA9IG9wdGlvbkZyYW1lQ291bnQudG9OdW1iZXIoJmV4ZWMpOwotICAgICAgICBp
ZiAoSlNDOjpKU1ZhbHVlIG9wdGlvbk1lbW9yeUxpbWl0ID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBK
U0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtZW1vcnlMaW1pdCIpKSkKKyAgICAgICAg
aWYgKEpTQzo6SlNWYWx1ZSBvcHRpb25NZW1vcnlMaW1pdCA9IG9wdGlvbnMtPmdldCgmZXhlYywg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWVtb3J5TGltaXQiX3MpKSkKICAgICAg
ICAgICAgIHJlY29yZGluZ09wdGlvbnMubWVtb3J5TGltaXQgPSBvcHRpb25NZW1vcnlMaW1pdC50
b051bWJlcigmZXhlYyk7Ci0gICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uTmFtZSA9IG9w
dGlvbnMtPmdldCgmZXhlYywgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSIp
KSkKKyAgICAgICAgaWYgKEpTQzo6SlNWYWx1ZSBvcHRpb25OYW1lID0gb3B0aW9ucy0+Z2V0KCZl
eGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSkpCiAgICAgICAg
ICAgICByZWNvcmRpbmdPcHRpb25zLm5hbWUgPSBvcHRpb25OYW1lLnRvV1RGU3RyaW5nKCZleGVj
KTsKICAgICB9CiAgICAgc3RhcnRSZWNvcmRpbmcoKmluc3BlY3RvckNhbnZhcywgUHJvdG9jb2w6
OlJlY29yZGluZzo6SW5pdGlhdG9yOjpDb25zb2xlLCBXVEZNb3ZlKHJlY29yZGluZ09wdGlvbnMp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKaW5kZXggZjA0NjY4ODBlODhiLi5kMzg5ZWMwN2FlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
CkBAIC0xOTk2LDcgKzE5OTYsNyBAQCBSZWY8UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4g
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcgogICAgICAgICAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgICAgICAg
ICAgICAgIC8vIElmIHRoZSBoYW5kbGVyIGlzIG5vdCBhY3R1YWxseSBhIGZ1bmN0aW9uLCBzZWUg
aWYgaXQgaW1wbGVtZW50cyB0aGUgRXZlbnRMaXN0ZW5lciBpbnRlcmZhY2UgYW5kIHVzZSB0aGF0
LgotICAgICAgICAgICAgICAgIGF1dG8gaGFuZGxlRXZlbnRWYWx1ZSA9IGhhbmRsZXJPYmplY3Qt
PmdldChnbG9iYWxPYmplY3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImhhbmRs
ZUV2ZW50IikpOworICAgICAgICAgICAgICAgIGF1dG8gaGFuZGxlRXZlbnRWYWx1ZSA9IGhhbmRs
ZXJPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgImhhbmRsZUV2ZW50Il9zKSk7CiAKICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2Nv
cGUuZXhjZXB0aW9uKCkpKQogICAgICAgICAgICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlv
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VBdWRpdEFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9Q
YWdlQXVkaXRBZ2VudC5jcHAKaW5kZXggMTc0ZDUxMTkzNGI5Li42NmM2NzM1NDA2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRp
dEFnZW50LmNwcApAQCAtODgsMTMgKzg4LDEzIEBAIHZvaWQgUGFnZUF1ZGl0QWdlbnQ6OnBvcHVs
YXRlQXVkaXRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjCiAg
ICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCiAgICAgICAgIGlmIChKU0M6OkpT
VmFsdWUganNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QgPSB0b0pTTmV3bHlDcmVh
dGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgSW5zcGVjdG9yQXVkaXRBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpjcmVhdGUoKnRoaXMpKSkKLSAgICAgICAgICAgIGF1ZGl0T2JqZWN0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkFjY2Vzc2li
aWxpdHkiKSwganNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QpOworICAgICAgICAg
ICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAiQWNjZXNzaWJpbGl0eSJfcyksIGpzSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KTsKIAogICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIGpzSW5zcGVjdG9yQXVkaXRET01PYmpl
Y3QgPSB0b0pTTmV3bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwg
SW5zcGVjdG9yQXVkaXRET01PYmplY3Q6OmNyZWF0ZSgqdGhpcykpKQotICAgICAgICAgICAgYXVk
aXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
RE9NIiksIGpzSW5zcGVjdG9yQXVkaXRET01PYmplY3QpOworICAgICAgICAgICAgYXVkaXRPYmpl
Y3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiRE9NIl9z
KSwganNJbnNwZWN0b3JBdWRpdERPTU9iamVjdCk7CiAKICAgICAgICAgaWYgKEpTQzo6SlNWYWx1
ZSBqc0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0ID0gdG9KU05ld2x5Q3JlYXRlZChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2Jq
ZWN0OjpjcmVhdGUoKnRoaXMpKSkKLSAgICAgICAgICAgIGF1ZGl0T2JqZWN0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIlJlc291cmNlcyIpLCBqc0luc3Bl
Y3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0KTsKKyAgICAgICAgICAgIGF1ZGl0T2JqZWN0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIlJlc291cmNlcyJfcyks
IGpzSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDM4YjU5NWJiNTJmYi4uYTkwOTBmN2VhMWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00OTcsOCArNDk3LDYgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxQcmludENvbnRleHQ+JiBwcmludENvbnRleHRGb3JUZXN0aW5n
KCkKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotY29uc3QgY2hhciogSW50ZXJuYWxzOjppbnRl
cm5hbHNJZCA9ICJpbnRlcm5hbHMiOwotCiBSZWY8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW50ZXJu
YWxzKGRvY3VtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA5MzQ0YzZk
MGY3ZDkuLjE3N2Q5MDdhMjg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00
MjUsNyArNDI1LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8Ym9vbD4gaXNQYWdlQm94
VmlzaWJsZShpbnQgcGFnZU51bWJlcik7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJu
YWxzSWQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgaW50ZXJuYWxzSWQgPSAi
aW50ZXJuYWxzIl9zOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdDsK
ICAgICB1bnNpZ25lZCB3b3JrZXJUaHJlYWRDb3VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGI4ZDg1
MDI2NTBjMi4uNzIzNTkxMGZiZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6SlNH
bG9iYWxPYmplY3QmIGdsCiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gaW5wdXRQcm9wZXJ0aWVz
OwogCi0gICAgICAgIEpTVmFsdWUgaW5wdXRQcm9wZXJ0aWVzSXRlcmFibGVWYWx1ZSA9IHBhaW50
Q29uc3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiaW5wdXRQcm9wZXJ0aWVzIikpOworICAgICAgICBKU1ZhbHVlIGlucHV0UHJvcGVydGllc0l0
ZXJhYmxlVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgImlucHV0UHJvcGVydGllcyJfcykpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9y
IH0pOwogCiAgICAgICAgIGlmICghaW5wdXRQcm9wZXJ0aWVzSXRlcmFibGVWYWx1ZS5pc1VuZGVm
aW5lZCgpKQpAQCAtMTAzLDcgKzEwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhaW50V29ya2xl
dEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsCiAKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gaW5wdXRBcmd1bWVudHM7CiAKLSAgICAgICAgSlNWYWx1ZSBp
bnB1dEFyZ3VtZW50c0l0ZXJhYmxlVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlucHV0QXJndW1lbnRzIikpOwor
ICAgICAgICBKU1ZhbHVlIGlucHV0QXJndW1lbnRzSXRlcmFibGVWYWx1ZSA9IHBhaW50Q29uc3Ry
dWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaW5w
dXRBcmd1bWVudHMiX3MpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhj
ZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAogICAgICAgICBpZiAoIWlucHV0
QXJndW1lbnRzSXRlcmFibGVWYWx1ZS5pc1VuZGVmaW5lZCgpKQpAQCAtMTEyLDcgKzExMiw3IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsCiAKICAgICAgICAgLy8gRklYTUU6IFBhcnNlIHN5bnRh
eCBmb3IgaW5wdXRBcmd1bWVudHMgaGVyZSAoc3RlcHMgMTEgYW5kIDEyKS4KIAotICAgICAgICBK
U1ZhbHVlIGNvbnRleHRPcHRpb25zVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNvbnRleHRPcHRpb25zIikpOwor
ICAgICAgICBKU1ZhbHVlIGNvbnRleHRPcHRpb25zVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5n
ZXQoJmdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNvbnRleHRPcHRp
b25zIl9zKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2VwdGlvbiB7
IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShjb250ZXh0
T3B0aW9uc1ZhbHVlKTsKIApAQCAtMTI3LDcgKzEyNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBh
aW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGdsCiAgICAgICAgIGlmICghcHJvdG90eXBlVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgc2Vjb25kIGFyZ3VtZW50IG11c3Qg
aGF2ZSBhIHByb3RvdHlwZSB0aGF0IGlzIGFuIG9iamVjdCJfcyB9OwogCi0gICAgICAgIEpTVmFs
dWUgcGFpbnRWYWx1ZSA9IHByb3RvdHlwZVZhbHVlLmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAicGFpbnQiKSk7CisgICAgICAgIEpTVmFsdWUgcGFpbnRWYWx1
ZSA9IHByb3RvdHlwZVZhbHVlLmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAicGFpbnQiX3MpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
RXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAogICAgICAgICBpZiAocGFp
bnRWYWx1ZS5pc1VuZGVmaW5lZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCBlZTE2NDVlZjRlMGMuLjY3NDM5NDRhM2U2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGlu
Z0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGlu
Z0FQSS5jcHAKQEAgLTE2NTMsNyArMTY1Myw3IEBAIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBqc1Jl
c3VsdEZyb21SZXBseURlY29kZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAg
ICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLCAq
anNSZXBseUFyZ3VtZW50cyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihjYXRjaFNjb3BlLCBu
dWxscHRyKTsKIAotICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImJ1ZmZlciIpLCBqc0FycmF5QnVmZmVyKTsKKyAgICBqc1Jlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJidWZmZXIiX3Mp
LCBqc0FycmF5QnVmZmVyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIG51
bGxwdHIpOwogCiAgICAgcmV0dXJuIGpzUmVzdWx0OwpAQCAtMTk4MywxNyArMTk4MywxNyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGNyZWF0ZUpTQXJyYXlGb3JBcmd1bWVudERlc2NyaXB0aW9ucyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbAogICAgICAgICBhcmd1bWVudHNBcnJheS0+cHV0RGlyZWN0
SW5kZXgoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudEluZGV4LCBqc0Rlc2NyaXB0aW9ucyk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgpKTsKIAotICAg
ICAgICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJuYW1lIiksIEpTQzo6anNTdHJpbmcodm0sIFN0cmluZyhkZXNjcmlwdGlvbi5u
YW1lKSkpOworICAgICAgICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSwgSlNDOjpqc1N0cmluZyh2bSwgU3RyaW5n
KGRlc2NyaXB0aW9uLm5hbWUpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IEpTQzo6anNURFpWYWx1ZSgpKTsKIAotICAgICAgICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0eXBlIiksIEpTQzo6anNTdHJp
bmcodm0sIFN0cmluZyhkZXNjcmlwdGlvbi50eXBlKSkpOworICAgICAgICBqc0Rlc2NyaXB0aW9u
cy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0eXBlIl9z
KSwgSlNDOjpqc1N0cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9uLnR5cGUpKSk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgpKTsKIAotICAgICAg
ICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJvcHRpb25hbCIpLCBKU0M6OmpzQm9vbGVhbihkZXNjcmlwdGlvbi5pc09wdGlvbmFs
KSk7CisgICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgIm9wdGlvbmFsIl9zKSwgSlNDOjpqc0Jvb2xlYW4oZGVzY3JpcHRp
b24uaXNPcHRpb25hbCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6
OmpzVERaVmFsdWUoKSk7CiAKICAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmVudW1OYW1lKSB7Ci0g
ICAgICAgICAgICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJlbnVtIiksIEpTQzo6anNTdHJpbmcodm0sIFN0cmluZyhkZXNjcmlw
dGlvbi5lbnVtTmFtZSkpKTsKKyAgICAgICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVudW0iX3MpLCBKU0M6OmpzU3Ry
aW5nKHZtLCBTdHJpbmcoZGVzY3JpcHRpb24uZW51bU5hbWUpKSk7CiAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OmpzVERaVmFsdWUoKSk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMDE2LDkgKzIwMTYsOSBAQCBKU1ZhbHVlUmVmIEpTSVBDOjptZXNzYWdlcyhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbgogICAgIEpT
Qzo6SlNPYmplY3QqIG1lc3NhZ2VzT2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7CiAKLSAgICBh
dXRvIG5hbWVJZGVudCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiKTsK
LSAgICBhdXRvIHJlcGx5QXJndW1lbnRzSWRlbnQgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJyZXBseUFyZ3VtZW50cyIpOwotICAgIGF1dG8gaXNTeW5jSWRlbnQgPSBKU0M6Oklk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJpc1N5bmMiKTsKKyAgICBhdXRvIG5hbWVJZGVudCA9
IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpOworICAgIGF1dG8gcmVw
bHlBcmd1bWVudHNJZGVudCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcGx5
QXJndW1lbnRzIl9zKTsKKyAgICBhdXRvIGlzU3luY0lkZW50ID0gSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAiaXNTeW5jIl9zKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElQQzo6TWVzc2FnZU5hbWU6Okxhc3QpOyArK2kpIHsKICAg
ICAgICAgYXV0byBuYW1lID0gc3RhdGljX2Nhc3Q8SVBDOjpNZXNzYWdlTmFtZT4oaSk7CiAKQEAg
LTIwNDMsNyArMjA0Myw3IEBAIEpTVmFsdWVSZWYgSlNJUEM6Om1lc3NhZ2VzKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluCiAgICAgICAgIGRpY3Rp
b25hcnktPnB1dERpcmVjdCh2bSwgaXNTeW5jSWRlbnQsIEpTQzo6anNCb29sZWFuKG1lc3NhZ2VJ
c1N5bmMobmFtZSkpKTsgICAgICAgICAgICAKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOwogCi0gICAgICAgIG1lc3NhZ2Vz
T2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgZGVz
Y3JpcHRpb24obmFtZSkpLCBkaWN0aW9uYXJ5KTsKKyAgICAgICAgbWVzc2FnZXNPYmplY3QtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tQ1N0cmluZyh2bSwgZGVzY3JpcHRpb24o
bmFtZSkpLCBkaWN0aW9uYXJ5KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOwogICAgIH0KIApAQCAtMjEzOCwyNCArMjEz
OCwyNCBAQCBKU0M6OkpTT2JqZWN0KiBKU01lc3NhZ2VMaXN0ZW5lcjo6anNEZXNjcmlwdGlvbkZy
b21EZWNvZGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqCiAgICAgYXV0byoganNSZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAg
anNSZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bmFtZSIpLCBKU0M6OkpTVmFsdWUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlY29kZXIubWVzc2Fn
ZU5hbWUoKSkpKTsKKyAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSwgSlNDOjpKU1ZhbHVlKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgbnVsbHB0cik7CiAKLSAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJkZXNjcmlwdGlvbiIpLCBKU0M6OmpzU3RyaW5nKHZtLCBJ
UEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSkpKTsKKyAgICBqc1Jlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJkZXNjcmlwdGlv
biJfcyksIEpTQzo6anNTdHJpbmcodm0sIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0g
ICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiZGVzdGluYXRpb25JRCIpLCBKU0M6OkpTVmFsdWUoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
KTsKKyAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICJkZXN0aW5hdGlvbklEIl9zKSwgSlNDOjpKU1ZhbHVlKGRlY29kZXIuZGVzdGluYXRp
b25JRCgpKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAg
ICBpZiAoZGVjb2Rlci5pc1N5bmNNZXNzYWdlKCkpIHsKICAgICAgICAgSVBDOjpDb25uZWN0aW9u
OjpTeW5jUmVxdWVzdElEIHN5bmNSZXF1ZXN0SUQ7CiAgICAgICAgIGlmIChkZWNvZGVyLmRlY29k
ZShzeW5jUmVxdWVzdElEKSkgewotICAgICAgICAgICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3luY1JlcXVlc3RJRCIpLCBKU0M6OkpT
VmFsdWUoc3luY1JlcXVlc3RJRC50b1VJbnQ2NCgpKSk7CisgICAgICAgICAgICBqc1Jlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzeW5jUmVxdWVz
dElEIl9zKSwgSlNDOjpKU1ZhbHVlKHN5bmNSZXF1ZXN0SUQudG9VSW50NjQoKSkpOwogICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKG1lc3NhZ2VSZXBseUFyZ3VtZW50RGVzY3JpcHRpb25zKGRlY29kZXIubWVz
c2FnZU5hbWUoKSkpIHsKICAgICAgICAgaWYgKHVpbnQ2NF90IGxpc3RlbmVySUQgPSAwOyBkZWNv
ZGVyLmRlY29kZShsaXN0ZW5lcklEKSkgewotICAgICAgICAgICAganNSZXN1bHQtPnB1dERpcmVj
dCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibGlzdGVuZXJJRCIpLCBKU0M6
OkpTVmFsdWUobGlzdGVuZXJJRCkpOworICAgICAgICAgICAganNSZXN1bHQtPnB1dERpcmVjdCh2
bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibGlzdGVuZXJJRCJfcyksIEpTQzo6
SlNWYWx1ZShsaXN0ZW5lcklEKSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjMsNyArMjE2Myw3IEBAIEpT
Qzo6SlNPYmplY3QqIEpTTWVzc2FnZUxpc3RlbmVyOjpqc0Rlc2NyaXB0aW9uRnJvbURlY29kZXIo
SlNDOjpKU0dsb2JhbE9iamVjdCoKICAgICBhdXRvIGFycmF5QnVmZmVyID0gSlNDOjpBcnJheUJ1
ZmZlcjo6Y3JlYXRlKGRlY29kZXIuYnVmZmVyKCksIGRlY29kZXIubGVuZ3RoKCkpOwogICAgIGlm
IChhdXRvKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3RydWN0dXJlKGFy
cmF5QnVmZmVyLT5zaGFyaW5nTW9kZSgpKSkgewogICAgICAgICBpZiAoYXV0byoganNBcnJheUJ1
ZmZlciA9IEpTQzo6SlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUo
YXJyYXlCdWZmZXIpKSkgewotICAgICAgICAgICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYnVmZmVyIiksIGpzQXJyYXlCdWZmZXIpOwor
ICAgICAgICAgICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiYnVmZmVyIl9zKSwganNBcnJheUJ1ZmZlcik7CiAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIx
ODYsNyArMjE4Niw3IEBAIHZvaWQgaW5qZWN0KFdlYlBhZ2UmIHdlYlBhZ2UsIFdlYkZyYW1lJiB3
ZWJGcmFtZSwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJiB3b3JsCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogICAgIGF1dG8gd3JhcHBlZCA9IEpTSVBDOjpjcmVh
dGUod2ViUGFnZSwgd2ViRnJhbWUpOwogICAgIEpTT2JqZWN0UmVmIHdyYXBwZXJPYmplY3QgPSBK
U09iamVjdE1ha2UodG9HbG9iYWxSZWYoZ2xvYmFsT2JqZWN0KSwgSlNJUEM6OndyYXBwZXJDbGFz
cygpLCB3cmFwcGVkLnB0cigpKTsKLSAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdCh2bSwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSVBDIiksIHRvSlMoZ2xvYmFsT2JqZWN0LCB3
cmFwcGVyT2JqZWN0KSk7CisgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIklQQyJfcyksIHRvSlMoZ2xvYmFsT2JqZWN0LCB3cmFw
cGVyT2JqZWN0KSk7CiAKICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456233</attachid>
            <date>2022-03-31 07:24:05 -0700</date>
            <delta_ts>2022-03-31 18:26:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238574-20220331072404.patch</filename>
            <type>text/plain</type>
            <size>171676</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MDE3MTc2YmU2MThhZGY2NWU5ZTE1MGIxYjhkNTdjYzEyZmU3MzFkLi4yNjM0ZDc1ZDYwZjFhZDFl
YTU4ODI2Zjg4NTQwN2FiOGZiMWUwZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MSBAQAorMjAyMi0wMy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkb3B0IElkZW50aWZpZXI6OmZyb21TdHJpbmcoQVNDSUlMaXRlcmFsKSBtb3Jl
IGJyb2FkbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzODU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkb3B0IElkZW50aWZpZXI6OmZyb21TdHJpbmcoQVNDSUlMaXRlcmFsKSBtb3JlIGJyb2FkbHks
IG5vdyB0aGF0IGl0IGlzIHZlcnkgZWZmaWNpZW50LgorCisgICAgICAgICogQVBJL0pTQmFzZS5j
cHA6CisgICAgICAgIChKU0dldE1lbW9yeVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgICogU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21p
c2UtQ29tYmluZWQuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3Vs
dDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90
eXBlLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1y
ZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAq
IFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxD
bGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQW5vdGhlckd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4t
U2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3Vs
dDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3Vh
cmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJh
dGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvd2tidWlsdGlucy9idWlsdGluc19tb2Rl
bC5weToKKyAgICAgICAgKEJ1aWx0aW5GdW5jdGlvbi5mcm9tU3RyaW5nKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdFRocm93UmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdFRocm93VHlwZUVycm9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKToKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGE6OmVt
aXRUaHJvd1JlZmVyZW5jZUVycm9yKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9K
U0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpK
U0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBqc2MuY3BwOgorICAgICAgICAoSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKToKKyAgICAgICAg
KEpTQ01lbW9yeUZvb3RwcmludDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDTWVtb3J5
Rm9vdHByaW50OjphZGRQcm9wZXJ0eSk6CisgICAgICAgIChKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkNvbnNvbGVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0lkZW50
aWZpZXIuY3BwOgorICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjphZGQpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSWRlbnRpZmllci5oOgorICAgICAgICAqIHJ1bnRpbWUvSWRlbnRpZmll
cklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllcjo6ZnJvbUNTdHJpbmcpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6SW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkludGxPYmplY3Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6OnJlaWZ5QWxsU3RhdGljUHJvcGVydGllcyk6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjptYWtlSWRlbnRpZmllcik6CisgICAgICAgICog
cnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE5v
blJlaWZpZWRTdGF0aWNQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRB
cnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9Qcm94eUNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvUHJveHlPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9y
bUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybURlbGV0
ZSk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0OjpwZXJmb3JtUHJldmVudEV4dGVuc2lvbnMp
OgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUlzRXh0ZW5zaWJsZSk6CisgICAg
ICAgIChKU0M6OlByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAg
ICAgIChKU0M6OlByb3h5T2JqZWN0OjpwZXJmb3JtU2V0UHJvdG90eXBlKToKKyAgICAgICAgKEpT
Qzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChK
U0M6OkpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJW
TTo6YWRkRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjphZGRDb25zdHJ1Y3Rp
YmxlRnVuY3Rpb24pOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uaDoKKyAgICAgICAgKiB3
YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5Ojpm
aW5pc2hDcmVhdGlvbik6CisKIDIwMjItMDMtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSB0aGUgY29uc3RydWN0aW9uIG9mIGEgSlNDOjpJZGVu
dGlmaWVyIGZyb20gYW4gQVNDSUlMaXRlcmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhiYjU1YzBkYzE4OWQw
MjI2Mzg4ZGY0YzQ2ODg2MGU4MTAyNDMwNi4uNzZjYWU2NWQ4NzI3NDk3Y2M2MGEyMmJhYjQwMDc5
YjAwODIzZWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIyLTAzLTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyhBU0NJSUxpdGVyYWwpIG1vcmUgYnJvYWRseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NTc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhBU0NJSUxpdGVyYWwpIG1vcmUgYnJvYWRseSwgbm93IHRoYXQgaXQgaXMgdmVyeSBlZmZpY2ll
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1T
ZXNzaW9uQ2xlYXJLZXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkNsZWFyS2V5
Ojp1cGRhdGUpOgorICAgICAgICAqIGJyaWRnZS90ZXN0YmluZGluZ3MuY3BwOgorICAgICAgICAo
bWFpbik6CisgICAgICAgICogYnJpZGdlL3Rlc3RiaW5kaW5ncy5tbToKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVBhZ2VTY2FsZUZhY3RvckpTUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlVXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25KU1By
b3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xs
ZXJKU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1l
ZGlhQ29udHJvbHNNYXhpbXVtUmlnaHRDb250YWluZXJCdXR0b25Db3VudE92ZXJyaWRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhQ29udHJvbHNIaWRlUGxh
eWJhY2tSYXRlcyk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmFkZFNlbGZUb0dsb2JhbE9iamVjdEluV29ybGQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUp
OgorICAgICAgICAqIGluc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpvYmplY3RGb3JQYXltZW50T3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpvYmplY3RGb3JQ
YXltZW50Q3VycmVuY3lBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6b2JqZWN0Rm9yUGF5bWVu
dEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6b2JqZWN0Rm9yUGF5bWVudFNoaXBwaW5nT3B0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Om9iamVjdEZvclBheW1lbnREZXRhaWxzTW9kaWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6b2JqZWN0Rm9yUGF5bWVudERldGFpbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6b2JqZWN0Rm9yRXZlbnRUYXJnZXRMaXN0ZW5lcnMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmNvbnNvbGVTdGFydFJlY29yZGluZ0NhbnZhcyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUF1ZGl0QWdlbnQ6OnBvcHVsYXRlQXVkaXRPYmplY3QpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHdvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KToKKwog
MjAyMi0wMy0zMSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBjb250YWluXSBDb250YWlubWVudCBkaXNhYmxlcyB0aGUgc3BlY2lhbCBoYW5kbGluZyBvZiB0
aGUgSFRNTCBib2R5IGVsZW1lbnQgZm9yIG92ZXJmbG93IHZpZXdwb3J0IHByb3BhZ2F0aW9uIFtw
YXJ0Ml0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNDliMDdiOTI1OTU0MDU0MDNjODdjNDZjM2E4ZDAyYTFlNTI2MWRk
Zi4uOTQ2OGZmODRmZGIxMTRiNzc4ZWI2YmJiOWQzODZjMzQ2ZTRhMDU3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAyMi0wMy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEFkb3B0IElkZW50aWZpZXI6OmZyb21TdHJpbmcoQVNDSUlMaXRlcmFsKSBt
b3JlIGJyb2FkbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzODU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkb3B0IElkZW50aWZpZXI6OmZyb21TdHJpbmcoQVNDSUlMaXRlcmFsKSBtb3JlIGJyb2Fk
bHksIG5vdyB0aGF0IGl0IGlzIHZlcnkgZWZmaWNpZW50LgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5n
QVBJOjpqc1Jlc3VsdEZyb21SZXBseURlY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0
aW5nQVBJOjpjcmVhdGVKU0FycmF5Rm9yQXJndW1lbnREZXNjcmlwdGlvbnMpOgorICAgICAgICAo
V2ViS2l0OjpJUENUZXN0aW5nQVBJOjpKU0lQQzo6bWVzc2FnZXMpOgorICAgICAgICAoV2ViS2l0
OjpJUENUZXN0aW5nQVBJOjpKU01lc3NhZ2VMaXN0ZW5lcjo6anNEZXNjcmlwdGlvbkZyb21EZWNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6aW5qZWN0KToKKwogMjAyMi0w
My0zMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBFWFBFUklNRU5UQUxfRkVBVFVSRVMgZmxhZyBvbiBDb2NvYSBwbGF0Zm9ybXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAppbmRleCA2NjIwMWYyZDExMmJmYjJiZTc4
NTEzNzMwMmQ5ODQ5ZDdhMjdmNTY1Li45M2VjNzA1YTBmMGI1NTAyNzVlYmY0NjhmN2NkZTdmN2Vj
ZWFlYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCkBAIC0yMDcsNyArMjA3
LDcgQEAgSlNPYmplY3RSZWYgSlNHZXRNZW1vcnlVc2FnZVN0YXRpc3RpY3MoSlNDb250ZXh0UmVm
IGN0eCkKICAgICBhdXRvIHR5cGVDb3VudHMgPSB2bS5oZWFwLm9iamVjdFR5cGVDb3VudHMoKTsK
ICAgICBKU09iamVjdCogb2JqZWN0VHlwZUNvdW50cyA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGds
b2JhbE9iamVjdCk7CiAgICAgZm9yIChhdXRvJiBpdCA6ICp0eXBlQ291bnRzKQotICAgICAgICBv
YmplY3RUeXBlQ291bnRzLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IGl0LmtleSksIGpzTnVtYmVyKGl0LnZhbHVlKSk7CisgICAgICAgIG9iamVjdFR5cGVDb3VudHMt
PnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbUNTdHJpbmcodm0sIGl0LmtleSksIGpzTnVt
YmVyKGl0LnZhbHVlKSk7CiAKICAgICBKU09iamVjdCogb2JqZWN0ID0gY29uc3RydWN0RW1wdHlP
YmplY3QoZ2xvYmFsT2JqZWN0KTsKICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImhlYXBTaXplIl9zKSwganNOdW1iZXIodm0uaGVhcC5zaXplKCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcy1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0Cmlu
ZGV4IGRmOTk4ZDNmNTAzMTdjZTNjOWNmNTliYjA4ZjQxZDYwZDk3MTAzMWMuLmRkNWIzZWNmNTFh
Y2QyNWM1NGUwOGVmNTdiZjUxNzRlZTBjMjg0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdApAQCAtNjAsOCArNjAsOCBAQCBleHRlcm4gY29u
c3QgSlNDOjpDb25zdHJ1Y3RvcktpbmQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29k
ZUNvbnN0cnVjdG9ySwogICAgIG1hY3JvKGZ1bGZpbGxQcm9taXNlLCBidWlsdGluUHJvbWlzZUZ1
bGZpbGxQcm9taXNlLCAyKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1h
Y3JvKSBcCi0gICAgbWFjcm8oYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUsIGZ1bGZp
bGxQcm9taXNlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYnVpbHRpblBy
b21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhidWlsdGluUHJvbWlz
ZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQcm9taXNlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4obnVsbHB0ciksIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCkgXAor
ICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBmdWxmaWxsUHJvbWlz
ZSwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNv
ZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCBy
ZWplY3RQcm9taXNlLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGluUHJvbWlzZVJlamVj
dFByb21pc2VDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5D
VElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZnVsZmlsbFByb21pc2UpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IGZkNGRkOTcy
YTFjNjIwNTk3YTVlNjliZDc0NTlkOWVlZDA1NGI1ZTYuLjU5MjYwMzAwZTdiZTViNGQ4OTdhZTFk
YmJhMWM0Y2MwZjc1ZWVjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlz
ZS1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNl
cGFyYXRlLmpzLXJlc3VsdApAQCAtNTcsOCArNTcsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25z
dHJ1Y3RvcktpbmQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUNvbnN0cnVjdG9y
SwogI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOX1BST01JU0VfRlVMRklMTFBST01JU0UgMQog
CiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NPREUobWFjcm8p
IFwKLSAgICBtYWNybyhidWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQcm9t
aXNlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYnVpbHRpblByb21pc2VS
ZWplY3RQcm9taXNlQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmls
bFByb21pc2VDb2RlLCBmdWxmaWxsUHJvbWlzZSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51
bGxwdHIpLCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoKSBcCisgICAg
bWFjcm8oYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZSwgcmVqZWN0UHJvbWlzZSwgQVND
SUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0
aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBmdWxmaWxs
UHJvbWlzZSwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJv
bWlzZUNvZGVMZW5ndGgpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0Vf
QlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZnVsZmlsbFByb21pc2Up
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpz
LXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3Vs
dAppbmRleCBiMmNhMjQzMDExZjJlMjNlMmNhMTA5NmY4ZDI5ZTI4YjFkMTJlMDFjLi4wNDk5ZGYw
ODk2YzViZTY0OGZkNWRjMTE0Y2UxNzZkYzUwYjQxMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0CkBAIC03MCwxMCArNzAsMTAgQEAg
ZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0b3JLaW5kIHNfYnVpbHRpblByb3RvdHlwZVRlc3RD
b2RlQ29uc3RydWN0b3JLaW5kOwogICAgIG1hY3JvKHRlc3QsIGJ1aWx0aW5Qcm90b3R5cGVUZXN0
LCAxKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCi0gICAg
bWFjcm8oYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihudWxscHRyKSwgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoKSBcCi0g
ICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlLCBmb3JFYWNoLCBzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlTGVu
Z3RoKSBcCi0gICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZU1hdGNoQ29kZSwgbWF0Y2gsICJbU3lt
Ym9sLm1hdGNoXSIsIHNfYnVpbHRpblByb3RvdHlwZU1hdGNoQ29kZUxlbmd0aCkgXAotICAgIG1h
Y3JvKGJ1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZSwgdGVzdCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG51bGxwdHIpLCBzX2J1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZUxlbmd0aCkgXAorICAgIG1h
Y3JvKGJ1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUsIGV2ZXJ5LCBBU0NJSUxpdGVyYWw6Om51bGwo
KSwgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRp
blByb3RvdHlwZUZvckVhY2hDb2RlLCBmb3JFYWNoLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19i
dWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJv
dG90eXBlTWF0Y2hDb2RlLCBtYXRjaCwgIltTeW1ib2wubWF0Y2hdIl9zLCBzX2J1aWx0aW5Qcm90
b3R5cGVNYXRjaENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJvdG90eXBlVGVzdENv
ZGUsIHRlc3QsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Qcm90b3R5cGVUZXN0Q29k
ZUxlbmd0aCkgXAogCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRSht
YWNybykgXAogICAgIG1hY3JvKGV2ZXJ5KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnBy
b3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggZGVhOTU3OWZjNTU2ZGM3ZWFjZjM0ZGM1
YmM0NTk5ODhmNjFjMjE1ZC4uYWY1MDFjMGYxZTQ2ZGVhNDk3OGYzZDY3ODUzYmI1MmE3OTQ3OWJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMt
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJl
c3VsdApAQCAtNjksMTAgKzY5LDEwIEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdG9yS2lu
ZCBzX2J1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZUNvbnN0cnVjdG9yS2luZDsKICNkZWZpbmUgSlND
X0JVSUxUSU5fQlVJTFRJTl9QUk9UT1RZUEVfVEVTVCAxCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hf
QlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCi0gICAgbWFjcm8oYnVpbHRp
blByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxs
cHRyKSwgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoKSBcCi0gICAgbWFjcm8oYnVp
bHRpblByb3RvdHlwZUZvckVhY2hDb2RlLCBmb3JFYWNoLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4obnVsbHB0ciksIHNfYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlTGVuZ3RoKSBcCi0gICAg
bWFjcm8oYnVpbHRpblByb3RvdHlwZU1hdGNoQ29kZSwgbWF0Y2gsICJbU3ltYm9sLm1hdGNoXSIs
IHNfYnVpbHRpblByb3RvdHlwZU1hdGNoQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Q
cm90b3R5cGVUZXN0Q29kZSwgdGVzdCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIp
LCBzX2J1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGJ1aWx0aW5Q
cm90b3R5cGVFdmVyeUNvZGUsIGV2ZXJ5LCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGlu
UHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZUZv
ckVhY2hDb2RlLCBmb3JFYWNoLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19idWlsdGluUHJvdG90
eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJvdG90eXBlTWF0Y2hD
b2RlLCBtYXRjaCwgIltTeW1ib2wubWF0Y2hdIl9zLCBzX2J1aWx0aW5Qcm90b3R5cGVNYXRjaENv
ZGVMZW5ndGgpIFwKKyAgICBtYWNybyhidWlsdGluUHJvdG90eXBlVGVzdENvZGUsIHRlc3QsIEFT
Q0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Qcm90b3R5cGVUZXN0Q29kZUxlbmd0aCkgXAog
CiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPVE9UWVBFX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShtYWNybykgXAogICAgIG1hY3JvKGV2ZXJ5KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29y
ZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJlc3VsdAppbmRleCBkMGJiZDBhOTM5MmQ0ODFj
NWQ3N2IwOTkwMDQxMjJjN2VmOGNhNGY5Li42ZWQ1NWY0NWM0OWY2NDg5NDA1ZWU3YTdhNTQwZGQ2
ZWFlZTQ4MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29t
YmluZWQuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21i
aW5lZC5qcy1yZXN1bHQKQEAgLTU5LDggKzU5LDggQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3Ry
dWN0b3JLaW5kIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RvcktpbmQ7CiAg
ICAgbWFjcm8oZnJvbSwgYnVpbHRpbkNvbnN0cnVjdG9yRnJvbSwgMSkgXAogCiAjZGVmaW5lIEpT
Q19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGJ1aWx0aW5Db25zdHJ1
Y3RvckZyb21Db2RlLCBmcm9tLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNf
YnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhidWlsdGluQ29u
c3RydWN0b3JPZkNvZGUsIG9mLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNf
YnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpbkNvbnN0
cnVjdG9yRnJvbUNvZGUsIGZyb20sIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Db25z
dHJ1Y3RvckZyb21Db2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpbkNvbnN0cnVjdG9yT2ZD
b2RlLCBvZiwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
TGVuZ3RoKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1h
Y3JvKSBcCiAgICAgbWFjcm8oZnJvbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25z
dHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggOTQxYzQ5YTRiNGIxNmY2NTQ3NGY1OWYw
ZmNlN2YxZjVkMGRiYzkzOS4uNzVmNmQzZjNmNGI3YzM2ZDU2MWQ3MjUyMzViZjQ2YzBjNDBmODY4
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpz
LXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMt
cmVzdWx0CkBAIC01Niw4ICs1Niw4IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdG9yS2lu
ZCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0b3JLaW5kOwogI2RlZmluZSBK
U0NfQlVJTFRJTl9CVUlMVElOQ09OU1RSVUNUT1JfRlJPTSAxCiAKICNkZWZpbmUgSlNDX0ZPUkVB
Q0hfQlVJTFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGJ1
aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZSwgb2YsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxs
cHRyKSwgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhidWls
dGluQ29uc3RydWN0b3JGcm9tQ29kZSwgZnJvbSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51
bGxwdHIpLCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoKSBcCisgICAgbWFjcm8o
YnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlLCBvZiwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfYnVp
bHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYnVpbHRpbkNvbnN0cnVj
dG9yRnJvbUNvZGUsIGZyb20sIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2J1aWx0aW5Db25zdHJ1
Y3RvckZyb21Db2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTkNPTlNU
UlVDVE9SX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3JvKGZyb20pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5q
cy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFtZXMtQ29tYmluZWQuanMt
cmVzdWx0CmluZGV4IGQwZWRhODQ3NjcwNzNiMDhhM2E0MDYwYzlmZmQ3MmQ4MzZlZDAwZjguLjY0
ZGQxODg4MWNlM2ZkNTIzZmE4OTFlMzQ0ODhhOTFmM2U5ZjZiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUludGVybmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdApAQCAtNjAs
OCArNjAsOCBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RvcktpbmQgc19pbnRlcm5hbENs
YXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQwogICAgIG1hY3JvKGlzUmVhZGFibGVT
dHJlYW1Mb2NrZWQsIGludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWQs
IDEpIFwKIAogI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBt
YWNybyhpbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBz
X2ludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoKSBc
Ci0gICAgbWFjcm8oaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENv
ZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxs
cHRyKSwgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxl
bmd0aCkgXAorICAgIG1hY3JvKGludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwg
c19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkg
XAorICAgIG1hY3JvKGludGVybmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRD
b2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc19pbnRl
cm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkgXAogCiAj
ZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1h
Y3JvKGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQW5vdGhlckd1
YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Bbm90aGVyR3Vh
cmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggYTI4YjA3OTE5ZTYz
ZTg5ODA3YzllNjZiNTk0NThkZGQ1NjdkNGE4Yi4uYTk3ODhkMDIyZmM4MTk1YjBkYzMwZjBhZjcz
OGM5ZjVhM2Q0NDUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Bbm90aGVyR3VhcmRlZEludGVybmFsQnVp
bHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Bbm90aGVyR3VhcmRlZEludGVybmFs
QnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTU1LDcgKzU1LDcgQEAgZXh0ZXJuIGNvbnN0
IEpTQzo6Q29uc3RydWN0b3JLaW5kIHNfYW5vdGhlckd1YXJkZWRJbnRlcm5hbEJ1aWx0aW5MZXRz
RmV0Y2hDb2RlQ28KICNkZWZpbmUgV0VCQ09SRV9CVUlMVElOX0FOT1RIRVJHVUFSREVESU5URVJO
QUxCVUlMVElOX0xFVFNGRVRDSCAxCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JFQUNIX0FOT1RIRVJH
VUFSREVESU5URVJOQUxCVUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGFu
b3RoZXJHdWFyZGVkSW50ZXJuYWxCdWlsdGluTGV0c0ZldGNoQ29kZSwgbGV0c0ZldGNoLCBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksIHNfYW5vdGhlckd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW5MZXRzRmV0Y2hDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oYW5vdGhlckd1YXJkZWRJbnRl
cm5hbEJ1aWx0aW5MZXRzRmV0Y2hDb2RlLCBsZXRzRmV0Y2gsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgp
LCBzX2Fub3RoZXJHdWFyZGVkSW50ZXJuYWxCdWlsdGluTGV0c0ZldGNoQ29kZUxlbmd0aCkgXAog
CiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9BTk9USEVSR1VBUkRFRElOVEVSTkFMQlVJTFRJTl9C
VUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhsZXRzRmV0Y2gpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1
bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0Cmlu
ZGV4IGIzNWYzNzVmZDIyMGY1NWI5ODQ4NzNmYmE4MGFmOGI1MDFiZDZjYjAuLjRmNWIxMjMwNjY4
N2JkY2RiNTIwNjBmODE3MjVkZWRkYTM3Yjg3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5
Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlD
b25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtNTYsNyArNTYsNyBAQCBleHRl
cm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RvcktpbmQgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJk
SXNSZWFkYWJsZVN0cmVhbUxvYwogI2RlZmluZSBXRUJDT1JFX0JVSUxUSU5fQVJCSVRSQVJZQ09O
RElUSU9OQUxHVUFSRF9JU1JFQURBQkxFU1RSRUFNTE9DS0VEIDEKIAogI2RlZmluZSBXRUJDT1JF
X0ZPUkVBQ0hfQVJCSVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlMVElOX0NPREUobWFjcm8pIFwK
LSAgICBtYWNybyhhcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihu
dWxscHRyKSwgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyhhcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIEFTQ0lJTGl0ZXJh
bDo6bnVsbCgpLCBzX2FyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRJc1JlYWRhYmxlU3RyZWFtTG9j
a2VkQ29kZUxlbmd0aCkgXAogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9BUkJJVFJBUllDT05E
SVRJT05BTEdVQVJEX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3JvKGlz
UmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4t
U2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQKaW5kZXggMmYxZjQ0NDA3ZTAxNTE2ODJjNTBjOTNjYTZkYTA5MGRmM2I2OWQwOC4uMzU2MTA0
YjQ0YmQ2YWUxNGFlNjRlMGVlNzI1NGI0ZjAyOTY3MWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFy
ZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1T
ZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTU2LDcgKzU2LDcgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29u
c3RydWN0b3JLaW5kIHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUNv
bnMKICNkZWZpbmUgV0VCQ09SRV9CVUlMVElOX0dVQVJERURCVUlMVElOX0lTUkVBREFCTEVTVFJF
QU1MT0NLRUQgMQogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9HVUFSREVEQlVJTFRJTl9CVUlM
VElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJl
YW1Mb2NrZWRDb2RlLCBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkLCBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4obnVsbHB0ciksIHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29k
ZUxlbmd0aCkgXAorICAgIG1hY3JvKGd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGUsIGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX2d1
YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGgpIFwKIAogI2RlZmlu
ZSBXRUJDT1JFX0ZPUkVBQ0hfR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1h
Y3JvKSBcCiAgICAgbWFjcm8oaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2Vi
Q29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3Vh
cmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggNTU5YjcxMTVhZjIw
ZDE1ZmM2NmJhNWM4MmZiMzZhNDA3Zjc4MGYwOC4uNDM2OWRiYWRhYWNhM2E2NGUxOWVkNTQ1Yjlk
Zjg0MzUxODMyOWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNl
cGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJh
dGUuanMtcmVzdWx0CkBAIC01Niw3ICs1Niw3IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVj
dG9yS2luZCBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkCiAj
ZGVmaW5lIFdFQkNPUkVfQlVJTFRJTl9HVUFSREVESU5URVJOQUxCVUlMVElOX0lTUkVBREFCTEVT
VFJFQU1MT0NLRUQgMQogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9HVUFSREVESU5URVJOQUxC
VUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCwg
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX2d1YXJkZWRJbnRlcm5hbEJ1aWx0
aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkgXAorICAgIG1hY3JvKGd1YXJkZWRJ
bnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVh
bUxvY2tlZCwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklz
UmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JF
QUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBc
CiAgICAgbWFjcm8oaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1V
bmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRp
bi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggYzdiODFkOWQ0NTBjMTMwMTI1MzNhN2QzN2Q5NmUw
ODEyNDQ4NGMwYi4uZmRmOGQyNmMwOWQzYzE5MWU1YzQ3MmU3OWM4ZmM2NmM3ODZkOWVlYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJD
b3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CkBAIC01NCw3ICs1NCw3IEBA
IGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdG9yS2luZCBzX3VuZ3VhcmRlZEJ1aWx0aW5Jc1Jl
YWRhYmxlU3RyZWFtTG9ja2VkQ29kZUNvCiAjZGVmaW5lIFdFQkNPUkVfQlVJTFRJTl9VTkdVQVJE
RURCVUlMVElOX0lTUkVBREFCTEVTVFJFQU1MT0NLRUQgMQogCiAjZGVmaW5lIFdFQkNPUkVfRk9S
RUFDSF9VTkdVQVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKHVu
Z3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVh
bUxvY2tlZCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX3VuZ3VhcmRlZEJ1
aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCkgXAorICAgIG1hY3JvKHVuZ3Vh
cmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSwgaXNSZWFkYWJsZVN0cmVhbUxv
Y2tlZCwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlTGVuZ3RoKSBcCiAKICNkZWZpbmUgV0VCQ09SRV9GT1JFQUNIX1VOR1VB
UkRFREJVSUxUSU5fQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oaXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNpbmdUZXN0LVNl
cGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQK
aW5kZXggZDJiMDQwZDlmM2FkZWJmODRhMTk5MjU5YjljYWY5NjYzMjgzNGU2ZC4uOTMxZDk5YWVm
N2M4NDcwYmEzNzA4MDVlM2NiYzg0ZGRmMDJlNzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNp
bmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJh
dGUuanMtcmVzdWx0CkBAIC02OCw5ICs2OCw5IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVj
dG9yS2luZCBzX3htbENhc2luZ1Rlc3RVcmxDYXNpbmdUZXN0Q29kZUNvbnN0cnVjdG9yS2luCiAj
ZGVmaW5lIFdFQkNPUkVfQlVJTFRJTl9YTUxDQVNJTkdURVNUX1VSTENBU0lOR1RFU1QgMQogCiAj
ZGVmaW5lIFdFQkNPUkVfRk9SRUFDSF9YTUxDQVNJTkdURVNUX0JVSUxUSU5fQ09ERShtYWNybykg
XAotICAgIG1hY3JvKHhtbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZSwgeG1sQ2FzaW5nVGVz
dCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX3htbENhc2luZ1Rlc3RYTUxD
YXNpbmdUZXN0Q29kZUxlbmd0aCkgXAotICAgIG1hY3JvKHhtbENhc2luZ1Rlc3RDc3NDYXNpbmdU
ZXN0Q29kZSwgY3NzQ2FzaW5nVGVzdCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIp
LCBzX3htbENhc2luZ1Rlc3RDc3NDYXNpbmdUZXN0Q29kZUxlbmd0aCkgXAotICAgIG1hY3JvKHht
bENhc2luZ1Rlc3RVcmxDYXNpbmdUZXN0Q29kZSwgdXJsQ2FzaW5nVGVzdCwgc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KG51bGxwdHIpLCBzX3htbENhc2luZ1Rlc3RVcmxDYXNpbmdUZXN0Q29kZUxl
bmd0aCkgXAorICAgIG1hY3JvKHhtbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZSwgeG1sQ2Fz
aW5nVGVzdCwgQVNDSUlMaXRlcmFsOjpudWxsKCksIHNfeG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rl
c3RDb2RlTGVuZ3RoKSBcCisgICAgbWFjcm8oeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2Rl
LCBjc3NDYXNpbmdUZXN0LCBBU0NJSUxpdGVyYWw6Om51bGwoKSwgc194bWxDYXNpbmdUZXN0Q3Nz
Q2FzaW5nVGVzdENvZGVMZW5ndGgpIFwKKyAgICBtYWNybyh4bWxDYXNpbmdUZXN0VXJsQ2FzaW5n
VGVzdENvZGUsIHVybENhc2luZ1Rlc3QsIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpLCBzX3htbENhc2lu
Z1Rlc3RVcmxDYXNpbmdUZXN0Q29kZUxlbmd0aCkgXAogCiAjZGVmaW5lIFdFQkNPUkVfRk9SRUFD
SF9YTUxDQVNJTkdURVNUX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAogICAgIG1hY3Jv
KGNzc0Nhc2luZ1Rlc3QpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3drYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy93a2J1aWx0aW5zL2J1aWx0aW5zX21vZGVsLnB5CmluZGV4IDQyNjMwZjVmMWM2NWJi
MWFjODIwZDY4ZTU2YTFiNmFkMGVhNjhmZWMuLmU0NTY5YTFkMjk0OWFkZjM0OTkzOTg5ZmFlNDU2
NzNmODY1MzdiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3dr
YnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvd2tidWlsdGlucy9idWlsdGluc19tb2RlbC5weQpAQCAtMTUwLDEwICsxNTAsMTMgQEAg
Y2xhc3MgQnVpbHRpbkZ1bmN0aW9uOgogICAgICAgICAgICAgcGFyYW1ldGVycyA9IFtdCiAKICAg
ICAgICAgaWYgaXNfZ2V0dGVyIGFuZCBub3Qgb3ZlcnJpZGRlbl9uYW1lOgotICAgICAgICAgICAg
b3ZlcnJpZGRlbl9uYW1lID0gIlwiZ2V0ICVzXCIiICUgKGZ1bmN0aW9uX25hbWUpCisgICAgICAg
ICAgICBvdmVycmlkZGVuX25hbWUgPSAiXCJnZXQgJXNcIl9zIiAlIChmdW5jdGlvbl9uYW1lKQog
CiAgICAgICAgIGlmIG5vdCBvdmVycmlkZGVuX25hbWU6Ci0gICAgICAgICAgICBvdmVycmlkZGVu
X25hbWUgPSAic3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpIgorICAgICAgICAgICAg
b3ZlcnJpZGRlbl9uYW1lID0gIkFTQ0lJTGl0ZXJhbDo6bnVsbCgpIgorCisgICAgICAgIGlmIG92
ZXJyaWRkZW5fbmFtZVstMV0gPT0gIlwiIjoKKyAgICAgICAgICAgIG92ZXJyaWRkZW5fbmFtZSAr
PSAiX3MiCiAKICAgICAgICAgcmV0dXJuIEJ1aWx0aW5GdW5jdGlvbihmdW5jdGlvbl9uYW1lLCBm
dW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2FzeW5jLCBpc19jb25zdHJ1Y3RvciwgaXNf
Z2xvYmFsX3ByaXZhdGUsIGlzX25ha2VkX2NvbnN0cnVjdG9yLCBpbnRyaW5zaWMsIG92ZXJyaWRk
ZW5fbmFtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCAzYTAzNzBkNTZlNTNjMzMwNGVmZDhmNDA4
MmNiNzQyMzdlNzVjM2QwLi41YTZiZmJlMDZhYzk0NTI4ODRiZTI2MzA2Zjc5N2Q5Zjc5ZDhlMzIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtNDAyOSwxMiArNDAyOSwxMiBAQCB2b2lkIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0VGhyb3dTdGF0aWNFcnJvcihFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVy
cm9yVHlwZSwgYwogICAgIE9wVGhyb3dTdGF0aWNFcnJvcjo6ZW1pdCh0aGlzLCBhZGRDb25zdGFu
dFZhbHVlKGFkZFN0cmluZ0NvbnN0YW50KG1lc3NhZ2UpKSwgZXJyb3JUeXBlKTsKIH0KIAotdm9p
ZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRocm93UmVmZXJlbmNlRXJy
b3IoQVNDSUlMaXRlcmFsIG1lc3NhZ2UpCiB7CiAgICAgZW1pdFRocm93U3RhdGljRXJyb3IoRXJy
b3JUeXBlV2l0aEV4dGVuc2lvbjo6UmVmZXJlbmNlRXJyb3IsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcobV92bSwgbWVzc2FnZSkpOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0VGhy
b3dUeXBlRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdFRocm93VHlwZUVycm9yKEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQogewogICAgIGVtaXRU
aHJvd1N0YXRpY0Vycm9yKEVycm9yVHlwZVdpdGhFeHRlbnNpb246OlR5cGVFcnJvciwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhtX3ZtLCBtZXNzYWdlKSk7CiB9CkBAIC00NzM1LDcgKzQ3MzUsNyBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlc3RQYXJhbWV0ZXIoUmVnaXN0
ZXJJRCogcmVzdWx0LCB1bnNpZ25lZCBudQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQq
IHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFJlcXVpcmVPYmplY3RDb2VyY2libGUoUmVnaXN0ZXJJRCogdmFsdWUsIEFTQ0lJTGl0ZXJhbCBl
cnJvcikKIHsKICAgICBSZWY8TGFiZWw+IHRhcmdldCA9IG5ld0xhYmVsKCk7CiAgICAgT3BKbnVu
ZGVmaW5lZE9yTnVsbDo6ZW1pdCh0aGlzLCB2YWx1ZSwgdGFyZ2V0LT5iaW5kKHRoaXMpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAppbmRleCA0MDIwNGM1MmExOTg5ZjVlYTZmYzI4NWRlYmMxNmQ4ODQzZWVjNjI5Li5j
ZmYyZDczNjMzOGQzOWZjZjlhMDg3MGY1NDA4ODI2MWRjYWE4YTkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBA
IC05MDEsNyArOTAxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRJc1VuZGVmaW5lZE9yTnVsbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc0VtcHR5KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogc3JjKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzRGVyaXZlZEFycmF5KFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0SXNDZWxsV2l0aFR5cGUoZHN0
LCBzcmMsIERlcml2ZWRBcnJheVR5cGUpOyB9Ci0gICAgICAgIHZvaWQgZW1pdFJlcXVpcmVPYmpl
Y3RDb2VyY2libGUoUmVnaXN0ZXJJRCogdmFsdWUsIGNvbnN0IFN0cmluZyYgZXJyb3IpOworICAg
ICAgICB2b2lkIGVtaXRSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBB
U0NJSUxpdGVyYWwgZXJyb3IpOwogCiAgICAgICAgIHZvaWQgZW1pdEl0ZXJhdG9yT3BlbihSZWdp
c3RlcklEKiBpdGVyYXRvciwgUmVnaXN0ZXJJRCogbmV4dE9ySW5kZXgsIFJlZ2lzdGVySUQqIHN5
bWJvbEl0ZXJhdG9yLCBDYWxsQXJndW1lbnRzJiBpdGVyYWJsZSwgY29uc3QgVGhyb3dhYmxlRXhw
cmVzc2lvbkRhdGEqKTsKICAgICAgICAgdm9pZCBlbWl0SXRlcmF0b3JOZXh0KFJlZ2lzdGVySUQq
IGRvbmUsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBpdGVyYWJsZSwgUmVnaXN0ZXJJ
RCogbmV4dE9ySW5kZXgsIENhbGxBcmd1bWVudHMmIGl0ZXJhdG9yLCBjb25zdCBUaHJvd2FibGVF
eHByZXNzaW9uRGF0YSopOwpAQCAtOTU1LDggKzk1NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHZvaWQgZW1pdFRocm93U3RhdGljRXJyb3IoRXJyb3JUeXBlV2l0aEV4dGVuc2lvbiwg
UmVnaXN0ZXJJRCopOwogICAgICAgICB2b2lkIGVtaXRUaHJvd1N0YXRpY0Vycm9yKEVycm9yVHlw
ZVdpdGhFeHRlbnNpb24sIGNvbnN0IElkZW50aWZpZXImIG1lc3NhZ2UpOwotICAgICAgICB2b2lk
IGVtaXRUaHJvd1JlZmVyZW5jZUVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgICAg
IHZvaWQgZW1pdFRocm93VHlwZUVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgICAg
IHZvaWQgZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoQVNDSUlMaXRlcmFsIG1lc3NhZ2UpOworICAg
ICAgICB2b2lkIGVtaXRUaHJvd1R5cGVFcnJvcihBU0NJSUxpdGVyYWwgbWVzc2FnZSk7CiAgICAg
ICAgIHZvaWQgZW1pdFRocm93VHlwZUVycm9yKGNvbnN0IElkZW50aWZpZXImIG1lc3NhZ2UpOwog
ICAgICAgICB2b2lkIGVtaXRUaHJvd1JhbmdlRXJyb3IoY29uc3QgSWRlbnRpZmllciYgbWVzc2Fn
ZSk7CiAgICAgICAgIHZvaWQgZW1pdFRocm93T3V0T2ZNZW1vcnlFcnJvcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4
IDdhYzc1ODY2NWQ5ZmMyYWM5MDg2ZTk3ZWQxY2M0NGUwNjZkYmUzZDUuLmJmNjVhNDE0ZmNkODEw
ZWNkNzNlYzQyNzg3M2JlMTJjNzEyZDEzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9p
ZCBFeHByZXNzaW9uTm9kZTo6ZW1pdEJ5dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IFRocm93YWJsZUV4cHJlc3Npb25EYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVJlZ2lzdGVySUQqIFRocm93YWJsZUV4cHJlc3Npb25EYXRhOjplbWl0VGhyb3dSZWZlcmVu
Y2VFcnJvcihCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFJlZ2lzdGVySUQqIGRzdCkKK1JlZ2lzdGVySUQqIFRocm93YWJsZUV4cHJlc3Npb25EYXRh
OjplbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBB
U0NJSUxpdGVyYWwgbWVzc2FnZSwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAg
ICBnZW5lcmF0b3IuZW1pdFRocm93UmVmZXJlbmNlRXJyb3IobWVzc2FnZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGUuY3BwCmluZGV4IDk4YjUyZWMyZTg0ODVjZjdhYjFkMGEyMWE0ZDZh
NzY2ZDVlZTllOTUuLjgwZDM1NzgyNzYzMzk3NWRmYTMzODlkYzk3MTJkNWI4OGY5MTNiYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCkBAIC01OSwyNCArNTksMjQgQEAgdm9p
ZCBKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3VidHlwZSIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25TdWJ0eXBlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImZ1bmN0aW9uRGV0YWlscyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25GdW5jdGlvbkRldGFpbHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcywgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbnRlcm5hbENvbnN0cnVjdG9yTmFtZSIsIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xs
ZWN0aW9uIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENv
bGxlY3Rpb24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXNQ
cm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIiwganNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5
cGVFcnJvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm94
eVRhcmdldFZhbHVlIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5
VGFyZ2V0VmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
d2Vha01hcFNpemUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01h
cFNpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01h
cEVudHJpZXMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVu
dHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1Nl
dFNpemUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldFNpemUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1NldEVudHJp
ZXMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXRlcmF0b3JFbnRy
aWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkl0ZXJhdG9yRW50cmll
cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEp
OwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJxdWVyeUluc3Rh
bmNlcyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNl
cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEp
OwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJxdWVyeUhvbGRl
cnMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlIb2xkZXJzLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1
YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0KLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oImV2YWx1YXRlIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1
dGVFdmFsdWF0ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04o
InNhdmVkUmVzdWx0QWxpYXMiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZVNhdmVkUmVzdWx0QWxpYXMsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oInN1YnR5cGUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25TdWJ0eXBlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZ1
bmN0aW9uRGV0YWlscyJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1
bmN0aW9uRGV0YWlscywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJnZXRJbnRlcm5hbFByb3BlcnRpZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiaW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUiX3MsIGpzSW5qZWN0ZWRT
Y3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xsZWN0aW9u
Il9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVj
dGlvbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc1Byb21p
c2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IiX3MsIGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBl
RXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJveHlU
YXJnZXRWYWx1ZSJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5
VGFyZ2V0VmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
d2Vha01hcFNpemUiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFr
TWFwU2l6ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ3ZWFr
TWFwRW50cmllcyJfcywganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtN
YXBFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndl
YWtTZXRTaXplIl9zLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1Nl
dFNpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha1Nl
dEVudHJpZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0
RW50cmllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpdGVy
YXRvckVudHJpZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVy
YXRvckVudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
cXVlcnlJbnN0YW5jZXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25R
dWVyeUluc3RhbmNlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJxdWVyeUhvbGRlcnMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25R
dWVyeUhvbGRlcnMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24iX3MsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworCisgICAgSlNDX05BVElWRV9H
RVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJldmFsdWF0ZSJfcywganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFsdWF0ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9X
SVRIT1VUX1RSQU5TSVRJT04oInNhdmVkUmVzdWx0QWxpYXMiX3MsIGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0KIAogSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZh
bHVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggMTcwODhkODU5MzZk
NTY3ZjllMDcxYzI2N2U1N2NjNmE2NGNiMWU4Ni4uODMxMjg2MzE3NzE1N2IzYzJhMmQwNzlhMzMz
NGNjY2QxOTkyNzkxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcApAQCAt
NTUsMTggKzU1LDE4IEBAIHZvaWQgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiAgICAgCi0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJzY29wZURlc2NyaXB0aW9ucyIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3Rv
dHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlvbnMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKLQotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJ
VEhPVVRfVFJBTlNJVElPTigiY2FsbGVyIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRl
Q2FsbGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
QWNjZXNzb3IpOwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigic291
cmNlSUQiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRCwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICBK
U0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04oImxpbmUiLCBqc0phdmFTY3JpcHRD
YWxsRnJhbWVBdHRyaWJ1dGVMaW5lLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRf
VFJBTlNJVElPTigiY29sdW1uIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1u
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpOwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiZnVuY3Rpb25O
YW1lIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAg
IEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigic2NvcGVDaGFpbiIsIGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4sIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgSlNDX05BVElWRV9H
RVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aGlzT2JqZWN0IiwganNKYXZhU2NyaXB0Q2FsbEZy
YW1lQXR0cmlidXRlVGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VU
X1RSQU5TSVRJT04oInR5cGUiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OwotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiaXNUYWlsRGVsZXRl
ZCIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
Il9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
InNjb3BlRGVzY3JpcHRpb25zIl9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMCk7CisKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oImNhbGxlciJfcywganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVy
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpOworICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigic291cmNlSUQi
X3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlELCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19O
QVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigibGluZSJfcywganNKYXZhU2NyaXB0Q2Fs
bEZyYW1lQXR0cmlidXRlTGluZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oImNvbHVtbiJfcywganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1u
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpOworICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiZnVuY3Rpb25O
YW1lIl9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVGdW5jdGlvbk5hbWUsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Cisg
ICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJzY29wZUNoYWluIl9zLCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgIEpTQ19OQVRJ
VkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigidGhpc09iamVjdCJfcywganNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICBKU0NfTkFUSVZFX0dFVFRFUl9X
SVRIT1VUX1RSQU5TSVRJT04oInR5cGUiX3MsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVR5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJpc1Rh
aWxEZWxldGVkIl9zLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxldGVkLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogfQog
CiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
RnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
MTkyNTEwN2M4ODhhNWRkYmY3YzA0NDFjZTI2YjNlZGQ0OGI5MWU3OC4uODk3ZjA5NWY2MzM1OGE2
YjcxNDY1ODk0ZjM4MjQ5OGRmNmVjYTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTUyNyw0
OSArNTI3LDQ5IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
ICAgICAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiAKLSAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJkZWJ1ZyIsIGZ1bmN0aW9uRGVidWcsIDEpOwotICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImRlc2NyaWJlIiwgZnVuY3Rpb25EZXNjcmliZSwgMSk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZGVzY3JpYmVBcnJheSIsIGZ1bmN0aW9uRGVzY3JpYmVBcnJheSwg
MSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJpbnQiLCBmdW5jdGlvblByaW50U3RkT3V0
LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmludEVyciIsIGZ1bmN0aW9uUHJpbnRT
dGRFcnIsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByZXR0eVByaW50IiwgZnVuY3Rp
b25QcmV0dHlQcmludCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicXVpdCIsIGZ1bmN0
aW9uUXVpdCwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2MiLCBmdW5jdGlvbkdDQW5k
U3dlZXAsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZ1bGxHQyIsIGZ1bmN0aW9uRnVs
bEdDLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJlZGVuR0MiLCBmdW5jdGlvbkVkZW5H
QywgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2NIZWFwU2l6ZSIsIGZ1bmN0aW9uSGVh
cFNpemUsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm1lbW9yeVVzYWdlU3RhdGlzdGlj
cyIsIGZ1bmN0aW9uTWVtb3J5VXNhZ2VTdGF0aXN0aWNzLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJNZW1vcnlGb290cHJpbnQiLCBmdW5jdGlvbkNyZWF0ZU1lbW9yeUZvb3RwcmludCwg
MCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRNZW1vcnlQZWFrIiwgZnVuY3Rpb25S
ZXNldE1lbW9yeVBlYWssIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImFkZHJlc3NPZiIs
IGZ1bmN0aW9uQWRkcmVzc09mLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJ2ZXJzaW9u
IiwgZnVuY3Rpb25WZXJzaW9uLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJydW4iLCBm
dW5jdGlvblJ1biwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicnVuU3RyaW5nIiwgZnVu
Y3Rpb25SdW5TdHJpbmcsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImxvYWQiLCBmdW5j
dGlvbkxvYWQsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImxvYWRTdHJpbmciLCBmdW5j
dGlvbkxvYWRTdHJpbmcsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJlYWRGaWxlIiwg
ZnVuY3Rpb25SZWFkRmlsZSwgMik7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVhZCIsIGZ1
bmN0aW9uUmVhZEZpbGUsIDIpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrU3ludGF4
IiwgZnVuY3Rpb25DaGVja1N5bnRheCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2xl
ZXBTZWNvbmRzIiwgZnVuY3Rpb25TbGVlcFNlY29uZHMsIDEpOwotICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImpzY1N0YWNrIiwgZnVuY3Rpb25KU0NTdGFjaywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAib3BlbkZpbGUiLCBmdW5jdGlvbk9wZW5GaWxlLCAxKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJyZWFkbGluZSIsIGZ1bmN0aW9uUmVhZGxpbmUsIDApOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgInByZWNpc2VUaW1lIiwgZnVuY3Rpb25QcmVjaXNlVGltZSwgMCk7Ci0gICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAibmV2ZXJJbmxpbmVGdW5jdGlvbiIsIGZ1bmN0aW9uTmV2ZXJJ
bmxpbmVGdW5jdGlvbiwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9JbmxpbmUiLCBm
dW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24sIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
Im5vREZHIiwgZnVuY3Rpb25Ob0RGRywgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9G
VEwiLCBmdW5jdGlvbk5vRlRMLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJub09TUkV4
aXRGdXp6aW5nIiwgZnVuY3Rpb25Ob09TUkV4aXRGdXp6aW5nLCAxKTsKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJudW1iZXJPZkRGR0NvbXBpbGVzIiwgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBp
bGVzLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsZXJJc0JCUU9yT01HQ29tcGls
ZWQiLCBmdW5jdGlvbkNhbGxlcklzQkJRT3JPTUdDb21waWxlZCwgMCk7Ci0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAianNjT3B0aW9ucyIsIGZ1bmN0aW9uSlNDT3B0aW9ucywgMCk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAib3B0aW1pemVOZXh0SW52b2NhdGlvbiIsIGZ1bmN0aW9uT3B0aW1p
emVOZXh0SW52b2NhdGlvbiwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50IiwgZnVuY3Rpb25SZW9wdGltaXphdGlvblJldHJ5Q291bnQsIDEpOwot
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgInRyYW5zZmVyQXJyYXlCdWZmZXIiLCBmdW5jdGlvblRy
YW5zZmVyQXJyYXlCdWZmZXIsIDEpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZhaWxOZXh0
TmV3Q29kZUJsb2NrIiwgZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9jaywgMSk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZGVidWciX3MsIGZ1bmN0aW9uRGVidWcsIDEpOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImRlc2NyaWJlIl9zLCBmdW5jdGlvbkRlc2NyaWJlLCAxKTsKKyAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJkZXNjcmliZUFycmF5Il9zLCBmdW5jdGlvbkRlc2NyaWJlQXJy
YXksIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByaW50Il9zLCBmdW5jdGlvblByaW50
U3RkT3V0LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmludEVyciJfcywgZnVuY3Rp
b25QcmludFN0ZEVyciwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJldHR5UHJpbnQi
X3MsIGZ1bmN0aW9uUHJldHR5UHJpbnQsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInF1
aXQiX3MsIGZ1bmN0aW9uUXVpdCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2MiX3Ms
IGZ1bmN0aW9uR0NBbmRTd2VlcCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZnVsbEdD
Il9zLCBmdW5jdGlvbkZ1bGxHQywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZWRlbkdD
Il9zLCBmdW5jdGlvbkVkZW5HQywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2NIZWFw
U2l6ZSJfcywgZnVuY3Rpb25IZWFwU2l6ZSwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
bWVtb3J5VXNhZ2VTdGF0aXN0aWNzIl9zLCBmdW5jdGlvbk1lbW9yeVVzYWdlU3RhdGlzdGljcywg
MCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiTWVtb3J5Rm9vdHByaW50Il9zLCBmdW5jdGlv
bkNyZWF0ZU1lbW9yeUZvb3RwcmludCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVz
ZXRNZW1vcnlQZWFrIl9zLCBmdW5jdGlvblJlc2V0TWVtb3J5UGVhaywgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiYWRkcmVzc09mIl9zLCBmdW5jdGlvbkFkZHJlc3NPZiwgMSk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAidmVyc2lvbiJfcywgZnVuY3Rpb25WZXJzaW9uLCAxKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJydW4iX3MsIGZ1bmN0aW9uUnVuLCAxKTsKKyAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJydW5TdHJpbmciX3MsIGZ1bmN0aW9uUnVuU3RyaW5nLCAxKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJsb2FkIl9zLCBmdW5jdGlvbkxvYWQsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImxvYWRTdHJpbmciX3MsIGZ1bmN0aW9uTG9hZFN0cmluZywgMSk7
CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVhZEZpbGUiX3MsIGZ1bmN0aW9uUmVhZEZpbGUs
IDIpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJlYWQiX3MsIGZ1bmN0aW9uUmVhZEZpbGUs
IDIpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrU3ludGF4Il9zLCBmdW5jdGlvbkNo
ZWNrU3ludGF4LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzbGVlcFNlY29uZHMiX3Ms
IGZ1bmN0aW9uU2xlZXBTZWNvbmRzLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJqc2NT
dGFjayJfcywgZnVuY3Rpb25KU0NTdGFjaywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
b3BlbkZpbGUiX3MsIGZ1bmN0aW9uT3BlbkZpbGUsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgInJlYWRsaW5lIl9zLCBmdW5jdGlvblJlYWRsaW5lLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJwcmVjaXNlVGltZSJfcywgZnVuY3Rpb25QcmVjaXNlVGltZSwgMCk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAibmV2ZXJJbmxpbmVGdW5jdGlvbiJfcywgZnVuY3Rpb25OZXZlcklu
bGluZUZ1bmN0aW9uLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJub0lubGluZSJfcywg
ZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0s
ICJub0RGRyJfcywgZnVuY3Rpb25Ob0RGRywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
bm9GVEwiX3MsIGZ1bmN0aW9uTm9GVEwsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm5v
T1NSRXhpdEZ1enppbmciX3MsIGZ1bmN0aW9uTm9PU1JFeGl0RnV6emluZywgMSk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAibnVtYmVyT2ZERkdDb21waWxlcyJfcywgZnVuY3Rpb25OdW1iZXJP
ZkRGR0NvbXBpbGVzLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsZXJJc0JCUU9y
T01HQ29tcGlsZWQiX3MsIGZ1bmN0aW9uQ2FsbGVySXNCQlFPck9NR0NvbXBpbGVkLCAwKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJqc2NPcHRpb25zIl9zLCBmdW5jdGlvbkpTQ09wdGlvbnMs
IDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm9wdGltaXplTmV4dEludm9jYXRpb24iX3Ms
IGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbiwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAicmVvcHRpbWl6YXRpb25SZXRyeUNvdW50Il9zLCBmdW5jdGlvblJlb3B0aW1pemF0aW9u
UmV0cnlDb3VudCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidHJhbnNmZXJBcnJheUJ1
ZmZlciJfcywgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyLCAxKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJmYWlsTmV4dE5ld0NvZGVCbG9jayJfcywgZnVuY3Rpb25GYWlsTmV4dE5ld0Nv
ZGVCbG9jaywgMSk7CiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQotICAgICAgICBhZGRGdW5j
dGlvbih2bSwgInNldFNhbXBsaW5nRmxhZ3MiLCBmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MsIDEp
OwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNsZWFyU2FtcGxpbmdGbGFncyIsIGZ1bmN0aW9u
Q2xlYXJTYW1wbGluZ0ZsYWdzLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRTYW1w
bGluZ0ZsYWdzIl9zLCBmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MsIDEpOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImNsZWFyU2FtcGxpbmdGbGFncyJfcywgZnVuY3Rpb25DbGVhclNhbXBsaW5n
RmxhZ3MsIDEpOwogI2VuZGlmCiAKICAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0s
IHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJPU1JFeGl0Il9zKSwgMCwgZnVuY3Rp
b25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250RW51bSk7CkBAIC01NzksNTUgKzU3
OSw1NSBAQCBwcml2YXRlOgogICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhp
cywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlzUHVyZU5hTiJfcyksIDAsIGZ1bmN0aW9u
SXNQdXJlTmFOLCBDaGVja0ludDMySW50cmluc2ljLCBEb250RW51bSk7CiAgICAgICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
ZmlhdEludDUyIl9zKSwgMCwgZnVuY3Rpb25JZGVudGl0eSwgRmlhdEludDUySW50cmluc2ljLCBE
b250RW51bSk7CiAgICAgICAgIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImVmZmVjdGZ1bDQy
IiwgZnVuY3Rpb25FZmZlY3RmdWw0MiwgMCk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFr
ZU1hc3F1ZXJhZGVyIiwgZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIsIDApOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImhhc0N1c3RvbVByb3BlcnRpZXMiLCBmdW5jdGlvbkhhc0N1c3RvbVByb3Bl
cnRpZXMsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImVmZmVjdGZ1bDQyIl9zLCBmdW5j
dGlvbkVmZmVjdGZ1bDQyLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlTWFzcXVl
cmFkZXIiX3MsIGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJoYXNDdXN0b21Qcm9wZXJ0aWVzIl9zLCBmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRp
ZXMsIDApOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFsT2JqZWN0Iiwg
ZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZUhlYXBCaWdJbnQiLCBmdW5jdGlvbkNyZWF0ZUhlYXBCaWdJbnQsIDEpOworICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUdsb2JhbE9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVH
bG9iYWxPYmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUhlYXBCaWdJ
bnQiX3MsIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCwgMSk7CiAjaWYgVVNFKEJJR0lOVDMyKQot
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJpZ0ludDMyIiwgZnVuY3Rpb25DcmVhdGVC
aWdJbnQzMiwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQmlnSW50MzIiX3Ms
IGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIsIDEpOwogI2VuZGlmCi0gICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAidXNlQmlnSW50MzIiLCBmdW5jdGlvblVzZUJpZ0ludDMyLCAwKTsKLSAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJpc0JpZ0ludDMyIiwgZnVuY3Rpb25Jc0JpZ0ludDMyLCAxKTsKLSAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJpc0hlYXBCaWdJbnQiLCBmdW5jdGlvbklzSGVhcEJpZ0ludCwg
MSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidXNlQmlnSW50MzIiX3MsIGZ1bmN0aW9uVXNl
QmlnSW50MzIsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImlzQmlnSW50MzIiX3MsIGZ1
bmN0aW9uSXNCaWdJbnQzMiwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNIZWFwQmln
SW50Il9zLCBmdW5jdGlvbklzSGVhcEJpZ0ludCwgMSk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJkdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMiLCBmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZh
cmlhYmxlcyAsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBUeXBlc0ZvckFsbFZh
cmlhYmxlcyJfcywgZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMgLCAwKTsKIAotICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImRyYWluTWljcm90YXNrcyIsIGZ1bmN0aW9uRHJhaW5NaWNy
b3Rhc2tzLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRUaW1lb3V0IiwgZnVuY3Rp
b25TZXRUaW1lb3V0LCAyKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkcmFpbk1pY3JvdGFz
a3MiX3MsIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJzZXRUaW1lb3V0Il9zLCBmdW5jdGlvblNldFRpbWVvdXQsIDIpOwogCi0gICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAicmVsZWFzZVdlYWtSZWZzIiwgZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMs
IDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNv
dW50IiwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCwgMCk7Ci0gICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQiLCBmdW5jdGlv
bkZpbmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50LCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJyZWxlYXNlV2Vha1JlZnMiX3MsIGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzLCAwKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJmaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCJfcywg
ZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCwgMCk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiZmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQiX3MsIGZ1bmN0aW9uRmlu
YWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQsIDApOwogICAgICAgICAKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJnZXRSYW5kb21TZWVkIiwgZnVuY3Rpb25HZXRSYW5kb21TZWVkLCAwKTsKLSAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRSYW5kb21TZWVkIiwgZnVuY3Rpb25TZXRSYW5kb21T
ZWVkLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc1JvcGUiLCBmdW5jdGlvbklzUm9w
ZSwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2FsbGVyU291cmNlT3JpZ2luIiwgZnVu
Y3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4sIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImdl
dFJhbmRvbVNlZWQiX3MsIGZ1bmN0aW9uR2V0UmFuZG9tU2VlZCwgMCk7CisgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAic2V0UmFuZG9tU2VlZCJfcywgZnVuY3Rpb25TZXRSYW5kb21TZWVkLCAxKTsK
KyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJpc1JvcGUiX3MsIGZ1bmN0aW9uSXNSb3BlLCAxKTsK
KyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjYWxsZXJTb3VyY2VPcmlnaW4iX3MsIGZ1bmN0aW9u
Q2FsbGVyU291cmNlT3JpZ2luLCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImlzMzJC
aXRQbGF0Zm9ybSIsIGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtLCAwKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJpczMyQml0UGxhdGZvcm0iX3MsIGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtLCAw
KTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrTW9kdWxlU3ludGF4IiwgZnVuY3Rp
b25DaGVja01vZHVsZVN5bnRheCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tT
Y3JpcHRTeW50YXgiLCBmdW5jdGlvbkNoZWNrU2NyaXB0U3ludGF4LCAxKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJjaGVja01vZHVsZVN5bnRheCJfcywgZnVuY3Rpb25DaGVja01vZHVsZVN5
bnRheCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTY3JpcHRTeW50YXgiX3Ms
IGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgsIDEpOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAicGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIiLCBmdW5jdGlvblBsYXRmb3JtU3Vw
cG9ydHNTYW1wbGluZ1Byb2ZpbGVyLCAwKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnZW5l
cmF0ZUhlYXBTbmFwc2hvdCIsIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QsIDApOwotICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImdlbmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmci
LCBmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmcsIDApOwotICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgInJlc2V0U3VwZXJTYW1wbGVyU3RhdGUiLCBmdW5jdGlvblJlc2V0
U3VwZXJTYW1wbGVyU3RhdGUsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImVuc3VyZUFy
cmF5U3RvcmFnZSIsIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCAwKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciJfcywgZnVuY3Rp
b25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwgMCk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZ2VuZXJhdGVIZWFwU25hcHNob3QiX3MsIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25h
cHNob3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImdlbmVyYXRlSGVhcFNuYXBzaG90
Rm9yR0NEZWJ1Z2dpbmciX3MsIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVn
Z2luZywgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRTdXBlclNhbXBsZXJTdGF0
ZSJfcywgZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0YXRlLCAwKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJlbnN1cmVBcnJheVN0b3JhZ2UiX3MsIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9y
YWdlLCAwKTsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAic3RhcnRTYW1wbGluZ1Byb2ZpbGVyIiwgZnVuY3Rpb25TdGFydFNhbXBsaW5nUHJv
ZmlsZXIsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNhbXBsaW5nUHJvZmlsZXJTdGFj
a1RyYWNlcyIsIGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0YWNrVHJhY2VzLCAwKTsKKyAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJzdGFydFNhbXBsaW5nUHJvZmlsZXIiX3MsIGZ1bmN0aW9uU3Rh
cnRTYW1wbGluZ1Byb2ZpbGVyLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzYW1wbGlu
Z1Byb2ZpbGVyU3RhY2tUcmFjZXMiX3MsIGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0YWNrVHJh
Y2VzLCAwKTsKICNlbmRpZgogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibWF4QXJndW1lbnRz
IiwgZnVuY3Rpb25NYXhBcmd1bWVudHMsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm1h
eEFyZ3VtZW50cyJfcywgZnVuY3Rpb25NYXhBcmd1bWVudHMsIDApOwogCi0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiYXN5bmNUZXN0U3RhcnQiLCBmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0LCAxKTsK
LSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJhc3luY1Rlc3RQYXNzZWQiLCBmdW5jdGlvbkFzeW5j
VGVzdFBhc3NlZCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXN5bmNUZXN0U3RhcnQi
X3MsIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImFzeW5jVGVzdFBhc3NlZCJfcywgZnVuY3Rpb25Bc3luY1Rlc3RQYXNzZWQsIDEpOwogCiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICBhZGRGdW5jdGlvbih2bSwgIldlYkFzc2VtYmx5
TWVtb3J5TW9kZSIsIGZ1bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlLCAxKTsKKyAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJXZWJBc3NlbWJseU1lbW9yeU1vZGUiX3MsIGZ1bmN0aW9uV2ViQXNz
ZW1ibHlNZW1vcnlNb2RlLCAxKTsKICNlbmRpZgogCiAgICAgICAgIGlmICghYXJndW1lbnRzLmlz
RW1wdHkoKSkgewpAQCAtNjQ1LDEzICs2NDUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgcHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiJCJfcyksIGRvbGxhciwgRG9udEVu
dW0pOwogICAgICAgICBwdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICIk
MjYyIl9zKSwgZG9sbGFyLCBEb250RW51bSk7CiAgICAgICAgIAotICAgICAgICBhZGRGdW5jdGlv
bih2bSwgZG9sbGFyLCAiY3JlYXRlUmVhbG0iLCBmdW5jdGlvbkRvbGxhckNyZWF0ZVJlYWxtLCAw
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKLSAgICAg
ICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImRldGFjaEFycmF5QnVmZmVyIiwgZnVuY3Rpb25U
cmFuc2ZlckFycmF5QnVmZmVyLCAxLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImV2YWxTY3Jp
cHQiLCBmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQsIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFy
LCAiZ2MiLCBmdW5jdGlvbkRvbGxhckdDLCAwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6Ok5vbmUpKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImNs
ZWFyS2VwdE9iamVjdHMiLCBmdW5jdGlvbkRvbGxhckNsZWFyS2VwdE9iamVjdHMsIDAsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgICAgICBhZGRG
dW5jdGlvbih2bSwgZG9sbGFyLCAiZ2xvYmFsT2JqZWN0Rm9yIiwgZnVuY3Rpb25Eb2xsYXJHbG9i
YWxPYmplY3RGb3IsIDEsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSkpOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiaXNSZW1vdGVGdW5jdGlv
biIsIGZ1bmN0aW9uRG9sbGFySXNSZW1vdGVGdW5jdGlvbiwgMSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBk
b2xsYXIsICJjcmVhdGVSZWFsbSJfcywgZnVuY3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSwgMCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJkZXRhY2hBcnJheUJ1ZmZlciJfcywgZnVuY3Rpb25UcmFu
c2ZlckFycmF5QnVmZmVyLCAxLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6Ok5vbmUpKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGRvbGxhciwgImV2YWxTY3JpcHQi
X3MsIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCwgMSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIs
ICJnYyJfcywgZnVuY3Rpb25Eb2xsYXJHQywgMCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJj
bGVhcktlcHRPYmplY3RzIl9zLCBmdW5jdGlvbkRvbGxhckNsZWFyS2VwdE9iamVjdHMsIDAsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOworICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgZG9sbGFyLCAiZ2xvYmFsT2JqZWN0Rm9yIl9zLCBmdW5jdGlvbkRvbGxh
ckdsb2JhbE9iamVjdEZvciwgMSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpOb25lKSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBkb2xsYXIsICJpc1JlbW90ZUZ1
bmN0aW9uIl9zLCBmdW5jdGlvbkRvbGxhcklzUmVtb3RlRnVuY3Rpb24sIDEsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwogICAgICAgICAKICAgICAgICAg
ZG9sbGFyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJnbG9iYWwi
X3MpLCBnbG9iYWxUaGlzKCkpOwogICAgICAgICBkb2xsYXItPnB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSXNIVE1MRERBIl9zKSwKQEAgLTY2
NCwyOSArNjY0LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICAvLyBUaGUgdGVzdDI2
MiBJTlRFUlBSRVRJTkcubWQgZG9jdW1lbnQgc2F5cyB0aGF0IHNvbWUgb2YgdGhlc2UgZnVuY3Rp
b25zIGFyZSBqdXN0IGluIHRoZSBtYWluCiAgICAgICAgIC8vIHRocmVhZCBhbmQgc29tZSBhcmUg
aW4gdGhlIG90aGVyIHRocmVhZHMuIFdlIGp1c3QgcHV0IHRoZW0gaW4gYWxsIHRocmVhZHMuCi0g
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgInN0YXJ0IiwgZnVuY3Rpb25Eb2xsYXJBZ2Vu
dFN0YXJ0LCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVjZWl2ZUJyb2Fk
Y2FzdCIsIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0LCAxKTsKLSAgICAgICAg
YWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVwb3J0IiwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlcG9y
dCwgMSk7Ci0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgInNsZWVwIiwgZnVuY3Rpb25E
b2xsYXJBZ2VudFNsZWVwLCAxKTsKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAiYnJv
YWRjYXN0IiwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdCwgMSk7Ci0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCBhZ2VudCwgImdldFJlcG9ydCIsIGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBv
cnQsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdlbnQsICJsZWF2aW5nIiwgZnVuY3Rp
b25Eb2xsYXJBZ2VudExlYXZpbmcsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgYWdlbnQs
ICJtb25vdG9uaWNOb3ciLCBmdW5jdGlvbkRvbGxhckFnZW50TW9ub3RvbmljTm93LCAwKTsKKyAg
ICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAic3RhcnQiX3MsIGZ1bmN0aW9uRG9sbGFyQWdl
bnRTdGFydCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgInJlY2VpdmVCcm9h
ZGNhc3QiX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0LCAxKTsKKyAgICAg
ICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAicmVwb3J0Il9zLCBmdW5jdGlvbkRvbGxhckFnZW50
UmVwb3J0LCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sIGFnZW50LCAic2xlZXAiX3MsIGZ1
bmN0aW9uRG9sbGFyQWdlbnRTbGVlcCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2Vu
dCwgImJyb2FkY2FzdCJfcywgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdCwgMSk7CisgICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImdldFJlcG9ydCJfcywgZnVuY3Rpb25Eb2xsYXJB
Z2VudEdldFJlcG9ydCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCBhZ2VudCwgImxlYXZp
bmciX3MsIGZ1bmN0aW9uRG9sbGFyQWdlbnRMZWF2aW5nLCAwKTsKKyAgICAgICAgYWRkRnVuY3Rp
b24odm0sIGFnZW50LCAibW9ub3RvbmljTm93Il9zLCBmdW5jdGlvbkRvbGxhckFnZW50TW9ub3Rv
bmljTm93LCAwKTsKIAotICAgICAgICBhZGRGdW5jdGlvbih2bSwgIndhaXRGb3JSZXBvcnQiLCBm
dW5jdGlvbldhaXRGb3JSZXBvcnQsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIndhaXRG
b3JSZXBvcnQiX3MsIGZ1bmN0aW9uV2FpdEZvclJlcG9ydCwgMCk7CiAKLSAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJoZWFwQ2FwYWNpdHkiLCBmdW5jdGlvbkhlYXBDYXBhY2l0eSwgMCk7Ci0gICAg
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmxhc2hIZWFwQWNjZXNzIiwgZnVuY3Rpb25GbGFzaEhlYXBB
Y2Nlc3MsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImhlYXBDYXBhY2l0eSJfcywgZnVu
Y3Rpb25IZWFwQ2FwYWNpdHksIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZsYXNoSGVh
cEFjY2VzcyJfcywgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MsIDApOwogCi0gICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiZGlzYWJsZVJpY2hTb3VyY2VJbmZvIiwgZnVuY3Rpb25EaXNhYmxlUmljaFNv
dXJjZUluZm8sIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm1hbGxvY0luQUxvb3AiLCBm
dW5jdGlvbk1hbGxvY0luQUxvb3AsIDApOwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgInRvdGFs
Q29tcGlsZVRpbWUiLCBmdW5jdGlvblRvdGFsQ29tcGlsZVRpbWUsIDApOworICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImRpc2FibGVSaWNoU291cmNlSW5mbyJfcywgZnVuY3Rpb25EaXNhYmxlUmlj
aFNvdXJjZUluZm8sIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgIm1hbGxvY0luQUxvb3Ai
X3MsIGZ1bmN0aW9uTWFsbG9jSW5BTG9vcCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
dG90YWxDb21waWxlVGltZSJfcywgZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1lLCAwKTsKIAotICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgInNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrIiwgZnVu
Y3Rpb25TZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjaywgMSk7CisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAic2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2siX3MsIGZ1bmN0aW9uU2V0VW5o
YW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2ssIDEpOwogCi0gICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
YXNEb3VibGVOdW1iZXIiLCBmdW5jdGlvbkFzRG91YmxlTnVtYmVyLCAxKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJhc0RvdWJsZU51bWJlciJfcywgZnVuY3Rpb25Bc0RvdWJsZU51bWJlciwg
MSk7CiAKLSAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkcm9wQWxsTG9ja3MiLCBmdW5jdGlvbkRy
b3BBbGxMb2NrcywgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHJvcEFsbExvY2tzIl9z
LCBmdW5jdGlvbkRyb3BBbGxMb2NrcywgMSk7CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OmV4cG9z
ZUN1c3RvbVNldHRlcnNPbkdsb2JhbE9iamVjdEZvclRlc3RpbmcoKSkgewogICAgICAgICAgICAg
ewpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGJvb2wgdGVzdEN1c3RvbVNldHRlckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIGJvb2wgdGVzdEN1
c3RvbVNldHRlckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEdsb2Jh
bE9iamVjdCogdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBU0NJSUxp
dGVyYWwgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2Jh
bE9iamVjdC0+dm0oKTsKIApAQCAtNzE1LDEzICs3MTUsMTMgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICB2b2lkIGFkZEZ1bmN0aW9uKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCwg
Y29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3Vt
ZW50cywgdW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKQorICAgIHZvaWQgYWRkRnVuY3Rpb24oVk0mIHZtLCBKU09i
amVjdCogb2JqZWN0LCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24s
IHVuc2lnbmVkIGFyZ3VtZW50cywgdW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKQogICAgIHsKICAgICAgICAgSWRl
bnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSk7CiAg
ICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBpZGVudGlmaWVyLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIGFyZ3VtZW50cywgaWRlbnRpZmllci5zdHJpbmcoKSwgZnVuY3Rpb24pLCBh
dHRyaWJ1dGVzKTsKICAgICB9CiAKLSAgICB2b2lkIGFkZEZ1bmN0aW9uKFZNJiB2bSwgY29uc3Qg
Y2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cywg
dW5zaWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKQorICAgIHZvaWQgYWRkRnVuY3Rpb24oVk0mIHZtLCBBU0NJSUxpdGVy
YWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cywgdW5z
aWduZWQgYXR0cmlidXRlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKQogICAgIHsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sIHRoaXMsIG5hbWUs
IGZ1bmN0aW9uLCBhcmd1bWVudHMsIGF0dHJpYnV0ZXMpOwogICAgIH0KQEAgLTc3Nyw3ICs3Nzcs
NyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIodGVzdEN1c3RvbUFjY2Vzc29yU2V0dGVyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNDZWxs
LT50eXBlKCkgPT0gUHVyZUZvcndhcmRpbmdQcm94eVR5cGUpOwogICAgIEdsb2JhbE9iamVjdCog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2JqZWN0Kj4odm0sIGpzQ2FzdDxKU1By
b3h5Kj4odGhpc0NlbGwpLT50YXJnZXQoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQodGhpc09iamVj
dCk7Ci0gICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6dGVzdEN1c3RvbVNldHRlckltcGwobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVlLCAiX3Rlc3RDdXN0b21BY2Nl
c3NvclNldHRlciIpOworICAgIHJldHVybiBHbG9iYWxPYmplY3Q6OnRlc3RDdXN0b21TZXR0ZXJJ
bXBsKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwgIl90ZXN0
Q3VzdG9tQWNjZXNzb3JTZXR0ZXIiX3MpOwogfQogCiBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
dGVzdEN1c3RvbVZhbHVlU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQpAQCAtNzg3LDcgKzc4Nyw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUih0ZXN0Q3VzdG9tVmFsdWVTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iCiAgICAgSlNDZWxsKiB0aGlzQ2VsbCA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpLmFz
Q2VsbCgpOwogICAgIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xv
YmFsT2JqZWN0Kj4odm0sIHRoaXNDZWxsKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0
KTsKLSAgICByZXR1cm4gR2xvYmFsT2JqZWN0Ojp0ZXN0Q3VzdG9tU2V0dGVySW1wbChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFsdWUsICJfdGVzdEN1c3RvbVZhbHVl
U2V0dGVyIik7CisgICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6dGVzdEN1c3RvbVNldHRlckltcGwo
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVlLCAiX3Rlc3RDdXN0
b21WYWx1ZVNldHRlciJfcyk7CiB9CiAKIHN0YXRpYyBVQ2hhciBwYXRoU2VwYXJhdG9yKCkKQEAg
LTE0NTcsMjAgKzE0NTcsMjAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogCi0gICAgICAgIGF1dG8gYWRkUHJvcGVydHkgPSBbJl0gKFZNJiB2bSwg
Y29uc3QgY2hhciogbmFtZSwgSlNWYWx1ZSB2YWx1ZSkgeworICAgICAgICBhdXRvIGFkZFByb3Bl
cnR5ID0gWyZdIChWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBuYW1lLCBKU1ZhbHVlIHZhbHVlKSB7CiAg
ICAgICAgICAgICBKU0NNZW1vcnlGb290cHJpbnQ6OmFkZFByb3BlcnR5KHZtLCBuYW1lLCB2YWx1
ZSk7CiAgICAgICAgIH07CiAKICAgICAgICAgTWVtb3J5Rm9vdHByaW50IGZvb3RwcmludCA9IE1l
bW9yeUZvb3RwcmludDo6bm93KCk7CiAKLSAgICAgICAgYWRkUHJvcGVydHkodm0sICJjdXJyZW50
IiwganNOdW1iZXIoZm9vdHByaW50LmN1cnJlbnQpKTsKLSAgICAgICAgYWRkUHJvcGVydHkodm0s
ICJwZWFrIiwganNOdW1iZXIoZm9vdHByaW50LnBlYWspKTsKKyAgICAgICAgYWRkUHJvcGVydHko
dm0sICJjdXJyZW50Il9zLCBqc051bWJlcihmb290cHJpbnQuY3VycmVudCkpOworICAgICAgICBh
ZGRQcm9wZXJ0eSh2bSwgInBlYWsiX3MsIGpzTnVtYmVyKGZvb3RwcmludC5wZWFrKSk7CiAgICAg
fQogCiAgICAgREVDTEFSRV9JTkZPOwogCiBwcml2YXRlOgotICAgIHZvaWQgYWRkUHJvcGVydHko
Vk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBKU1ZhbHVlIHZhbHVlKQorICAgIHZvaWQgYWRkUHJv
cGVydHkoVk0mIHZtLCBBU0NJSUxpdGVyYWwgbmFtZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IG5hbWUpOwogICAgICAgICBwdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIHZhbHVlKTsKQEAgLTE1
MzgsNyArMTUzOCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1biwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSoKICAgICAgICAgYXJyYXktPnB1
dERpcmVjdEluZGV4KHJlYWxtLCBpIC0gMSwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChp
KSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIH0KLSAgICByZWFsbS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAiYXJndW1lbnRzIiksIGFycmF5KTsKKyAgICByZWFsbS0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYXJndW1lbnRzIl9zKSwgYXJyYXkpOwogCiAgICAgTmFr
ZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247CiAgICAgU3RvcFdhdGNoIHN0b3BXYXRjaDsKQEAg
LTE1NzIsNyArMTU3Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1blN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgICAgIGFycmF5
LT5wdXREaXJlY3RJbmRleChyZWFsbSwgaSAtIDEsIGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoaSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICB9Ci0gICAgcmVhbG0tPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImFyZ3VtZW50cyIpLCBhcnJheSk7CisgICAgcmVhbG0tPnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFyZ3VtZW50cyJfcyksIGFycmF5KTsKIAogICAg
IE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwogICAgIGV2YWx1YXRlKHJlYWxtLCBqc2NT
b3VyY2Uoc291cmNlLCBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSkpLCBKU1ZhbHVl
KCksIGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggOGFj
OWE4NDU4YjYwNTY2OTkyZjg3MjI5NDQyYjA0ZTZiM2ZiMDE2Mi4uNjY3M2JhZjkzZjJjNjNlMWI4
Y2I0ZWI3NWMyYjgxYmEzYWMxYzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aApAQCAtNDEwLDcgKzQxMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQVNTRVJU
KG1fZGl2b3RFbmQub2Zmc2V0ID49IG1fZGl2b3Qub2Zmc2V0KTsKICAgICAgICAgfQogICAgIHBy
b3RlY3RlZDoKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRocm93UmVmZXJlbmNlRXJyb3IoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZ2lzdGVySUQqIGRzdCA9
IG51bGxwdHIpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihC
eXRlY29kZUdlbmVyYXRvciYsIEFTQ0lJTGl0ZXJhbCBtZXNzYWdlLCBSZWdpc3RlcklEKiBkc3Qg
PSBudWxscHRyKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2
b3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHAKaW5kZXggNTczYTE3YjBkYzBkOTBkMzQxOWEwMzY1MTYwYTQyYzQxNTAzZjNkYS4uOWNiMDcw
MDE0NzE5YmJhNGJkYjk0YmNiYTllNWVhYjliZmNjMGQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtODUsMjAgKzg1LDIwIEBA
IHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29uY2F0UHVibGljTmFtZSgp
LCBhcnJheVByb3RvdHlwZUNvbmNhdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmls
bFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaWxsQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmpvaW4sIGFy
cmF5UHJvdG9GdW5jSm9pbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDEpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigicG9wIiwgYXJyYXlQcm90b0Z1bmNQb3AsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheVBvcEludHJpbnNpYyk7
CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJw
b3AiX3MsIGFycmF5UHJvdG9GdW5jUG9wLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgQXJyYXlQb3BJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJ
VkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5wdXNoUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY1B1c2gsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBBcnJh
eVB1c2hJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJyZXZlcnNlIiwgYXJyYXlQcm90b0Z1bmNSZXZlcnNlLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldmVyc2UiX3MsIGFycmF5UHJvdG9GdW5jUmV2ZXJz
ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAp
OwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNoaWZ0UHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY1No
aWZ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2hpZnRQcml2YXRlTmFtZSgpLCBhcnJheVByb3RvRnVu
Y1NoaWZ0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSwgMCk7CiAgICAgSlNDX05B
VElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPnNsaWNlLCBhcnJheVByb3RvRnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgQXJyYXlTbGljZUludHJpbnNpYyk7CiAgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnNvcnRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlU29ydENvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3BsaWNl
IiwgYXJyYXlQcm90b0Z1bmNTcGxpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigidW5zaGlmdCIsIGFycmF5UHJvdG9GdW5jVW5TaGlmdCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzcGxpY2UiX3MsIGFycmF5UHJvdG9GdW5j
U3BsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInVuc2hp
ZnQiX3MsIGFycmF5UHJvdG9GdW5jVW5TaGlmdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5ldmVyeVB1
YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVFdmVyeUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJ
Tl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZm9yRWFjaFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGb3JFYWNoQ29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zb21lUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZVNv
bWVDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7Ci0gICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJpbmRleE9mIiwgYXJyYXlQcm90b0Z1bmNJbmRleE9mLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQXJyYXlJbmRleE9mSW50
cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibGFz
dEluZGV4T2YiLCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9JTlRS
SU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmRleE9mIl9zLCBhcnJheVByb3Rv
RnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxLCBBcnJheUluZGV4T2ZJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiJfcywgYXJyYXlQcm90b0Z1bmNMYXN0
SW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maWx0ZXJQdWJsaWNOYW1lKCksIGFycmF5UHJv
dG90eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUdyb3VwQnlN
ZXRob2QoKSkgewogICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZ3JvdXBCeVB1YmxpY05hbWUoKSwg
YXJyYXlQcm90b3R5cGVHcm91cEJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcAppbmRleCBiOWFhYmQ0YzE0OGQyNGQzMjRmNjYy
MjhiYTFjODRlYmYzMTllNzRkLi5lN2E3ZTk4NTM1NDY2MDdiM2E4MmY1MjkxMWRiZDNmOGJjOWMy
YmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0
LmNwcApAQCAtODksMzMgKzg5LDMzIEBAIHZvaWQgQ29uc29sZU9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIC8vIEZvciBsZWdh
Y3kgcmVhc29ucywgY29uc29sZSBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhYmxlLCB3cml0YWJsZSwg
ZGVsZXRlYWJsZSwKICAgICAvLyBhbmQgYWxsIGhhdmUgYSBsZW5ndGggb2YgMC4gVGhpcyBtYXkg
Y2hhbmdlIGlmIENvbnNvbGUgaXMgc3RhbmRhcmRpemVkLgogCi0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImRlYnVnIiwgY29uc29sZVByb3RvRnVuY0RlYnVnLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXJyb3IiLCBjb25zb2xlUHJv
dG9GdW5jRXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsb2ci
LCBjb25zb2xlUHJvdG9GdW5jTG9nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiaW5mbyIsIGNvbnNvbGVQcm90b0Z1bmNJbmZvLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigid2FybiIsIGNvbnNvbGVQcm90b0Z1bmNXYXJuLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGVidWciX3MsIGNvbnNvbGVQcm90b0Z1bmNE
ZWJ1Zywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImVycm9yIl9zLCBj
b25zb2xlUHJvdG9GdW5jRXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJsb2ciX3MsIGNvbnNvbGVQcm90b0Z1bmNMb2csIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJpbmZvIl9zLCBjb25zb2xlUHJvdG9GdW5jSW5mbywgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndhcm4iX3MsIGNvbnNvbGVQcm90b0Z1bmNX
YXJuLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsK
IAogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmNsZWFyLCBjb25zb2xlUHJvdG9GdW5jQ2xlYXIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJkaXIiLCBjb25zb2xlUHJvdG9GdW5jRGlyLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGlyeG1sIiwgY29uc29sZVByb3RvRnVuY0Rp
clhNTCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRhYmxlIiwgY29u
c29sZVByb3RvRnVuY1RhYmxlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigidHJhY2UiLCBjb25zb2xlUHJvdG9GdW5jVHJhY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJhc3NlcnQiLCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGlyIl9zLCBjb25zb2xlUHJvdG9GdW5j
RGlyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsK
KyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZGlyeG1sIl9zLCBj
b25zb2xlUHJvdG9GdW5jRGlyWE1MLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigidGFibGUiX3MsIGNvbnNvbGVQcm90b0Z1bmNUYWJsZSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oInRyYWNlIl9zLCBjb25zb2xlUHJvdG9GdW5jVHJhY2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJhc3NlcnQiX3MsIGNvbnNvbGVQ
cm90b0Z1bmNBc3NlcnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSksIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmNvdW50LCBjb25zb2xlUHJvdG9GdW5jQ291bnQsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3VudFJlc2V0IiwgY29uc29sZVByb3RvRnVu
Y0NvdW50UmVzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm9m
aWxlIiwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKCJwcm9maWxlRW5kIiwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lIiwgY29uc29sZVByb3Rv
RnVuY1RpbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSks
IDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lTG9n
IiwgY29uc29sZVByb3RvRnVuY1RpbWVMb2csIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJ0aW1lRW5kIiwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lU3RhbXAiLCBjb25zb2xlUHJvdG9GdW5j
VGltZVN0YW1wLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUp
LCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidGFrZUhl
YXBTbmFwc2hvdCIsIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90LCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ3JvdXAiLCBjb25zb2xlUHJvdG9GdW5jR3Jv
dXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cENvbGxhcHNl
ZCIsIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImdyb3VwRW5kIiwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmVjb3JkIiwgY29uc29sZVBy
b3RvRnVuY1JlY29yZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpO
b25lKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJl
Y29yZEVuZCIsIGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRFbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJzY3JlZW5zaG90IiwgY29uc29sZVByb3RvRnVuY1NjcmVlbnNo
b3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOwor
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3VudFJlc2V0Il9z
LCBjb25zb2xlUHJvdG9GdW5jQ291bnRSZXNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInByb2ZpbGUiX3MsIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJvZmlsZUVuZCJfcywgY29uc29sZVBy
b3RvRnVuY1Byb2ZpbGVFbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJ0aW1lIl9zLCBjb25zb2xlUHJvdG9GdW5jVGltZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oInRpbWVMb2ciX3MsIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidGltZUVuZCJfcywgY29uc29sZVBy
b3RvRnVuY1RpbWVFbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0
aW1lU3RhbXAiX3MsIGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0YWtlSGVhcFNuYXBzaG90Il9zLCBjb25zb2xlUHJvdG9G
dW5jVGFrZUhlYXBTbmFwc2hvdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImdyb3VwIl9zLCBjb25zb2xlUHJvdG9GdW5jR3JvdXAsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cENvbGxhcHNlZCJfcywgY29uc29sZVByb3RvRnVuY0dy
b3VwQ29sbGFwc2VkLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5v
bmUpLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ3Jv
dXBFbmQiX3MsIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInJlY29yZCJfcywgY29uc29sZVByb3RvRnVuY1JlY29yZCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgMCk7CisgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlY29yZEVuZCJfcywgY29uc29s
ZVByb3RvRnVuY1JlY29yZEVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpOb25lKSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInNjcmVlbnNob3QiX3MsIGNvbnNvbGVQcm90b0Z1bmNTY3JlZW5zaG90LCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCAwKTsKIAogICAgIEpTQ19UT19T
VFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAppbmRleCBkODVmYTA2MjBiNGFkMmMwMzQ3ZmQ3YjUx
YzA0ZTdjYTYxNTg1MWFhLi4yMmYxMzc4MmJmNDM3MTFhNzQyNjdlOTU5MzM1YjNmZWIyMTUzZGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcApAQCAt
MjcsMTcgKzI3LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVJlZjxBdG9tU3RyaW5nSW1wbD4g
SWRlbnRpZmllcjo6YWRkKFZNJiB2bSwgY29uc3QgY2hhciogYykKLXsKLSAgICBBU1NFUlQoYyk7
Ci0gICAgQVNTRVJUKGNbMF0pOwotICAgIGlmICghY1sxXSkKLSAgICAgICAgcmV0dXJuIHZtLnNt
YWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoY1swXSk7Ci0KLSAgICByZXR1cm4g
KkF0b21TdHJpbmdJbXBsOjphZGQoYyk7Ci19Ci0KLQogUmVmPEF0b21TdHJpbmdJbXBsPiBJZGVu
dGlmaWVyOjphZGRMaXRlcmFsKFZNJiB2bSwgY29uc3QgY2hhciogbGl0ZXJhbCwgc2l6ZV90IGxl
bmd0aCkKIHsKICAgICBpZiAobGVuZ3RoID09IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JZGVudGlmaWVyLmgKaW5kZXggOGQ0ODBiYmYzMmM3Y2U2OTI4OTdmNDFmMjI3YTc2Yjgz
Nzc3ZGY4OS4uYmU1MjY1MWIzMzNkMDJiZDFkMzQzZWQ5ZGEwMDVmNzQzMzIxMTZlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaApAQCAtMTE3LDEyICsxMTcs
OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYsIFJlZjxB
dG9tU3RyaW5nSW1wbD4mJik7CiAgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYs
IGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tU3RyaW5nKFZN
JiB2bSwgU3ltYm9sSW1wbCopOwotICAgIHN0YXRpYyBJZGVudGlmaWVyIGZyb21TdHJpbmcoVk0m
LCBjb25zdCBjaGFyKik7CiAgICAgc3RhdGljIElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYgdm0s
IGNvbnN0IFZlY3RvcjxMQ2hhcj4mIGNoYXJhY3RlcnMpIHsgcmV0dXJuIGZyb21TdHJpbmcodm0s
IGNoYXJhY3RlcnMuZGF0YSgpLCBjaGFyYWN0ZXJzLnNpemUoKSk7IH0KLQotICAgIC8vIEZJWE1F
OiBQb3J0IGNhbGwgc2l0ZXMgdG8gZnJvbVN0cmluZyhBU0NJSUxpdGVyYWwpIGFuZCByZW1vdmUg
dGhpcy4KLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJzQ291bnQ+Ci0gICAgc3RhdGlj
IElkZW50aWZpZXIgZnJvbVN0cmluZyhWTSYsIGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFy
YWN0ZXJzQ291bnRdKTsKKyAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tQ1N0cmluZyhWTSYsIGNv
bnN0IGNoYXIqKTsKIAogICAgIHN0YXRpYyBJZGVudGlmaWVyIGZyb21VaWQoVk0mLCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkKTsKICAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tVWlkKGNvbnN0IFBy
aXZhdGVOYW1lJik7CkBAIC0xNjgsMTAgKzE2NCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fc3RyaW5nOwogCi0gICAgLy8gT25seSB0byBiZSB1c2VkIHdpdGggc3RyaW5nIGxp
dGVyYWxzLgotICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KLSAgICBJZGVu
dGlmaWVyKFZNJiB2bSwgY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlcnNDb3VudF0p
IDogbV9zdHJpbmcoYWRkKHZtLCBjaGFyYWN0ZXJzKSkgeyBBU1NFUlQobV9zdHJpbmcuaW1wbCgp
LT5pc0F0b20oKSk7IH0KLQogICAgIElkZW50aWZpZXIoVk0mIHZtLCBjb25zdCBMQ2hhciogcywg
aW50IGxlbmd0aCkgOiBtX3N0cmluZyhhZGQodm0sIHMsIGxlbmd0aCkpIHsgQVNTRVJUKG1fc3Ry
aW5nLmltcGwoKS0+aXNBdG9tKCkpOyB9CiAgICAgSWRlbnRpZmllcihWTSYgdm0sIGNvbnN0IFVD
aGFyKiBzLCBpbnQgbGVuZ3RoKSA6IG1fc3RyaW5nKGFkZCh2bSwgcywgbGVuZ3RoKSkgeyBBU1NF
UlQobV9zdHJpbmcuaW1wbCgpLT5pc0F0b20oKSk7IH0KICAgICBBTFdBWVNfSU5MSU5FIElkZW50
aWZpZXIoVk0mIHZtLCBBU0NJSUxpdGVyYWwgbGl0ZXJhbCkgOiBtX3N0cmluZyhhZGRMaXRlcmFs
KHZtLCBsaXRlcmFsLmNoYXJhY3RlcnMoKSwgbGl0ZXJhbC5sZW5ndGgoKSkpIHsgQVNTRVJUKG1f
c3RyaW5nLmltcGwoKS0+aXNBdG9tKCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JZGVudGlmaWVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAppbmRleCA3NWNiZDYwMmU1Yjg4N2FlNDlhNDk2
NzJhMzI3MDQ5NzIwZjg2NGRmLi5iMTQzYmNjMzBhZThmOWQ5NWFjYWZkZmUyYWYzZDk0YzdhNDI2
NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXJJ
bmxpbmVzLmgKQEAgLTgwLDEyICs4MCw2IEBAIGlubGluZSBJZGVudGlmaWVyIElkZW50aWZpZXI6
OmZyb21VaWQoU3ltYm9sSW1wbCYgc3ltYm9sKQogICAgIHJldHVybiBzeW1ib2w7CiB9CiAKLXRl
bXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KLWlubGluZSBJZGVudGlmaWVyIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoVk0mIHZtLCBjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFj
dGVyc0NvdW50XSkKLXsKLSAgICByZXR1cm4gSWRlbnRpZmllcigmdm0sIGNoYXJhY3RlcnMpOwot
fQotCiBBTFdBWVNfSU5MSU5FIElkZW50aWZpZXIgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhWTSYg
dm0sIEFTQ0lJTGl0ZXJhbCBzKQogewogICAgIHJldHVybiBJZGVudGlmaWVyKHZtLCBzKTsKQEAg
LTEyNiw3ICsxMjAsNyBAQCBpbmxpbmUgSWRlbnRpZmllciBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KFZNJiB2bSwgU3ltYm9sSW1wbCogc3ltYm9sSW1wbCkKICAgICByZXR1cm4gSWRlbnRpZmllcih2
bSwgc3ltYm9sSW1wbCk7CiB9CiAKLWlubGluZSBJZGVudGlmaWVyIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoVk0mIHZtLCBjb25zdCBjaGFyKiBzKQoraW5saW5lIElkZW50aWZpZXIgSWRlbnRpZmll
cjo6ZnJvbUNTdHJpbmcoVk0mIHZtLCBjb25zdCBjaGFyKiBzKQogewogICAgIHJldHVybiBJZGVu
dGlmaWVyKHZtLCBBdG9tU3RyaW5nKHMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmlu
ZGV4IGVjMTgxNTY5ODczODcxZmExZjMwYjlkYTg1MzM3ZDA2MzVlYmM4ZDUuLjE1ZTIwZDE2NmJj
YTc3ZDE0MWFlZTU3MGI0ODIzYTJiYzI0ZGI2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNw
cApAQCAtODMsNyArODMsNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogI2lm
IEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JNQVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5nZVRv
UGFydHMiLCBpbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdl
VG9QYXJ0cyJfcywgaW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9Q
YXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDIpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURf
UEFSQU0oJmludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFydHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAwNTFmZmU4YWIzNDgyNzYxN2JmNTU4MDhlMzg4
ZmY0YTZhODliNDFjLi4xODM2ZGM1ZDY4ZTE1YTY2NjNiODI1NjAyNDI0YjM1ZjRkMzdkYTlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtODcsMTAgKzg3LDEwIEBAIHZvaWQgSW50bE51bWJl
ckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqCiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiAg
ICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7CiAjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFO
R0VfRk9STUFUVEVSKQotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJmb3JtYXRSYW5nZSIsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2Us
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsK
KyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZm9ybWF0UmFuZ2Ui
X3MsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICNlbmRpZgogI2lm
IEhBVkUoSUNVX1VfTlVNQkVSX1JBTkdFX0ZPUk1BVFRFUl9GT1JNQVRfUkFOR0VfVE9fUEFSVFMp
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdl
VG9QYXJ0cyIsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZvcm1hdFJhbmdl
VG9QYXJ0cyJfcywgaW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFy
dHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAy
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwCmluZGV4IDVlMTc2OWUzZjU5YWY5MDU4ZGZhZTkyZTU3OTYwZWViZDhmZTBhMWQuLjE3
NDcyM2E1MmVhNTI2MjlmNzJmNTY0YjMxYWQ4ZmIxNjM3ZGFhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9p
ZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgVU5VU0VEX1BBUkFNKCZjcmVhdGVMaXN0Rm9ybWF0Q29uc3RydWN0b3Ip
OwogI2VuZGlmCiAgICAgaWYgKE9wdGlvbnM6OnVzZUludGxFbnVtZXJhdGlvbigpKQotICAgICAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3VwcG9ydGVkVmFsdWVz
T2YiLCBpbnRsT2JqZWN0RnVuY1N1cHBvcnRlZFZhbHVlc09mLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdXBwb3J0ZWRWYWx1ZXNPZiJfcywgaW50bE9i
amVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1Y3R1cmUqIEludGxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CmluZGV4IDVjMTExNjQxY2U0YmU0YThjZjBiODA0NTlmZTUyNzEzZjYxZGNkY2UuLmFlYWNiMmZl
MGNhMGU1NjkwOTk2MGU4YjhkY2VkNmIyZDJkOGQ5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI2NjUsNyArMjY2NSw3IEBAIHZvaWQgSlNPYmpl
Y3Q6OnJlaWZ5QWxsU3RhdGljUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogCiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiAqaGFzaFRhYmxlKSB7CiAgICAgICAgICAg
ICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgYXV0byBrZXkgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCB2YWx1ZS5tX2tleSk7CisgICAgICAgICAgICBhdXRvIGtleSA9IElk
ZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCB2YWx1ZS5tX2tleSk7CiAgICAgICAgICAgICBQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQgPSBnZXREaXJlY3RPZmZzZXQodm0sIGtleSwgYXR0cmlidXRlcyk7
CiAgICAgICAgICAgICBpZiAoIWlzVmFsaWRPZmZzZXQob2Zmc2V0KSkKICAgICAgICAgICAgICAg
ICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBoYXNoVGFibGUtPmNsYXNzRm9yVGhpcywga2V5LCB2
YWx1ZSwgKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggMmJmMDI3NGQ3NmM2YmRlODUyNjQxODc1MDM0M2Y5ODBiZDFhYTQwMS4uNmZhZDdhMTM4NWQy
YzUwMmU3YmIzYmRhMGU1ZWY5M2VjOWNmODI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0xNjY4LDE1ICsxNjY4LDkgQEAgaW5saW5lIHNpemVfdCBtYXhP
ZmZzZXRSZWxhdGl2ZVRvQmFzZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiAKIHN0YXRpY19hc3Nl
cnQoIShzaXplb2YoSlNPYmplY3QpICUgc2l6ZW9mKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4p
KSwgIkpTT2JqZWN0IGlubGluZSBzdG9yYWdlIGhhcyBjb3JyZWN0IGFsaWdubWVudCIpOwogCi10
ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJzQ291bnQ+Ci1BTFdBWVNfSU5MSU5FIElkZW50aWZp
ZXIgbWFrZUlkZW50aWZpZXIoVk0mIHZtLCBjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFj
dGVyc0NvdW50XSkKK0FMV0FZU19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihWTSYg
dm0sIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsKQogewotICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCBjaGFyYWN0ZXJzKTsKLX0KLQotQUxXQVlTX0lOTElORSBJZGVudGlmaWVyIG1h
a2VJZGVudGlmaWVyKFZNJiB2bSwgY29uc3QgY2hhciogbmFtZSkKLXsKLSAgICByZXR1cm4gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSk7CisgICAgcmV0dXJuIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIGxpdGVyYWwpOwogfQogCiBBTFdBWVNfSU5MSU5FIElkZW50aWZpZXIgbWFr
ZUlkZW50aWZpZXIoVk0mLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRleCA4MzQ5NDIyZDhiNGE0
MjQ3YTdlMTEyMWU0NjdiZTc5YWE5NDE5ZGExLi5iMTY1ZWFlNWQxNzQ0NzY4OGFhYjZkNjVhMjJk
ZDNkZTJiOTM1MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdElubGluZXMuaApAQCAtNzM3LDcgKzczNyw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09i
amVjdDo6Z2V0Tm9uUmVpZmllZFN0YXRpY1Byb3BlcnR5TmFtZXMoVk0mIHZtLCBQcm9wZXJ0eU5h
CiAKICAgICAgICAgZm9yIChhdXRvIGl0ZXIgPSB0YWJsZS0+YmVnaW4oKTsgaXRlciAhPSB0YWJs
ZS0+ZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgaWYgKG1vZGUgPT0gRG9udEVudW1Qcm9w
ZXJ0aWVzTW9kZTo6SW5jbHVkZSB8fCAhKGl0ZXItPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpCi0gICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgaXRlci5rZXkoKSkpOworICAgICAgICAgICAgICAgIHBy
b3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCBpdGVyLmtleSgpKSk7
CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IDNmOWVjODQw
MGU5ZWNmOWVhYTA1OTMyN2Q1MjA2NTg3OWQ2NmFlOWIuLjAxMTVjMGM2OWExODMzMTFiZDRiNDc1
MGMzZDE0YjJmNWM3NjY5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC00NDIsMzUgKzQ0
MiwzNSBAQCB2b2lkIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogCiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nLCBnbG9iYWxPYmplY3QtPmFy
cmF5UHJvdG9Ub1N0cmluZ0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRf
VFJBTlNJVElPTigiYnVmZmVyIiwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIs
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSk7CisgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJidWZmZXIiX3Ms
IHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIEpTQ19OQVRJVkVf
SU5UUklOU0lDX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Ynl0
ZUxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHksIFR5cGVk
QXJyYXlCeXRlTGVuZ3RoSW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19HRVRU
RVJfV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVPZmZzZXQsIHR5cGVk
QXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBUeXBlZEFycmF5Qnl0ZU9mZnNl
dEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImNvcHlXaXRoaW4iLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKLSAgICBKU0Nf
QlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2ZXJ5IiwgdHlwZWRBcnJheVBy
b3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiZmlsdGVyIiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbHRlckNvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
LSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvcnQiLCB0eXBl
ZEFycmF5UHJvdG90eXBlU29ydENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiY29weVdpdGhpbiJfcywgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmND
b3B5V2l0aGluLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMik7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJl
dmVyeSJfcywgdHlwZWRBcnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmlsdGVyIl9zLCB0eXBlZEFycmF5UHJv
dG90eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigic29ydCJfcywgdHlwZWRBcnJheVByb3RvdHlwZVNvcnRDb2RlR2VuZXJhdG9y
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAg
ICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCksIHR5cGVkQXJy
YXlQcm90b1ZpZXdGdW5jRW50cmllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDAsIFR5cGVkQXJyYXlFbnRyaWVzSW50cmluc2ljKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5jbHVkZXMiLCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImluY2x1ZGVzIl9zLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlsbFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVZpZXdQcm90
b0Z1bmNGaWxsLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJm
aW5kIiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmaW5kIl9zLCB0eXBlZEFycmF5UHJvdG90eXBl
RmluZENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKTsKICAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlGaW5kTGFzdE1ldGhvZCgp
KQogICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZExhc3RQdWJsaWNOYW1lKCksIHR5cGVkQXJy
YXlQcm90b3R5cGVGaW5kTGFzdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImZpbmRJbmRleCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kSW5k
ZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJmaW5kSW5kZXgiX3MsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJhdG9y
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAg
ICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkKICAgICAgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmZpbmRMYXN0SW5kZXhQdWJsaWNOYW1lKCksIHR5cGVkQXJyYXlQcm90b3R5cGVG
aW5kTGFzdEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5mb3JFYWNoLCB0eXBlZEFycmF5UHJvdG90eXBl
Rm9yRWFjaENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiaW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmRleE9mIl9zLCB0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5qb2luLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pv
aW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
KTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwgdHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNLZXlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMCwgVHlwZWRBcnJheUtleXNJbnRyaW5zaWMpOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIsIHR5cGVkQXJy
YXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigibGFzdEluZGV4T2YiX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFz
dEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19HRVRURVJfV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1
bmNMZW5ndGgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBUeXBlZEFycmF5TGVuZ3RoSW50cmlu
c2ljKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIm1hcCIs
IHR5cGVkQXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZWR1Y2UiLCB0eXBlZEFycmF5UHJvdG90eXBlUmVkdWNl
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
cmVkdWNlUmlnaHQiLCB0eXBlZEFycmF5UHJvdG90eXBlUmVkdWNlUmlnaHRDb2RlR2VuZXJhdG9y
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldmVyc2UiLCB0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oIm1hcCJfcywgdHlwZWRBcnJheVByb3RvdHlwZU1hcENvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
KyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVjZSJfcywg
dHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVjZVJpZ2h0Il9zLCB0eXBlZEFycmF5UHJvdG90
eXBlUmVkdWNlUmlnaHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInJldmVyc2UiX3MsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwog
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPnNldCwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDIpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigic29tZSIsIHR5cGVkQXJyYXlQcm90b3R5cGVTb21lQ29kZUdlbmVyYXRvciwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpT
Q19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic29tZSJfcywgdHlwZWRBcnJh
eVByb3RvdHlwZVNvbWVDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnN1YmFycmF5LCB0eXBlZEFycmF5UHJvdG90
eXBlU3ViYXJyYXlDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nLCB0eXBlZEFycmF5UHJv
dG90eXBlVG9Mb2NhbGVTdHJpbmdDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODhjMTc3NGY4MDgwOWMx
Nzg1OGI1ZGMwYzRkMjU0ZjkwMzY2NjdmMy4uZDU2ZmNiMjQ0OTJjN2RhZTljNzVkNTQ0NDMxNzNj
NDc3ODVhYmNlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5jcHAKQEAgLTY4LDggKzY4LDggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1ha2VSZXZvY2FibGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGwKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCiAgICAgSlNPYmplY3QqIHJlc3Vs
dCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIG1ha2VJZGVudGlmaWVyKHZtLCAicHJveHkiKSwgcHJveHksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOwotICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInJldm9rZSIpLCByZXZva2UsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOworICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInByb3h5Il9zKSwgcHJveHksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSkpOworICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInJldm9rZSJfcyksIHJldm9rZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSk7CiAKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CkBAIC03Nyw3ICs3Nyw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihtYWtlUmV2b2NhYmxlUHJveHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsCiB2b2lkIFByb3h5Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSwgMiwgIlByb3h5Il9zLCBQcm9wZXJ0eUFkZGl0aW9uTW9kZTo6V2l0aG91dFN0cnVjdHVy
ZVRyYW5zaXRpb24pOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJyZXZvY2FibGUiLCBtYWtlUmV2b2NhYmxlUHJveHksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigicmV2b2NhYmxlIl9zLCBtYWtlUmV2b2NhYmxlUHJveHksIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKIH0K
IAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFByb3h5T2JqZWN0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IDFiOWNmNzA2ZGZk
N2ZlNjdjNDU5NGM3ZDdkM2RlMGM5ZTJiMWU2OTYuLmMzYmE4NTIzN2VmNTRmYTcxZGJmYzU4OTk4
YWQ0MTkwN2E4YzNjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwZXJmb3Jt
SW50ZXJuYWxNZXRob2RHZXRPd25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQog
CiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUp
OwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEs
IG1ha2VJZGVudGlmaWVyKHZtLCAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiksICInZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQg
YmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTWV0
aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVu
dGlmaWVyKHZtLCAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl9zKSwgIidnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3InIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxs
YWJsZSJfcyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgIGlm
IChnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNZXRob2QuaXNVbmRlZmluZWQoKSkKICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwZXJmb3JtRGVmYXVsdEdldE93blByb3BlcnR5KCkp
OwpAQCAtNTEyLDcgKzUxMiw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJv
eHlDYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyCiAKICAgICBKU09i
amVjdCogaGFuZGxlciA9IGpzQ2FzdDxKU09iamVjdCo+KGhhbmRsZXJWYWx1ZSk7CiAgICAgQ2Fs
bERhdGEgY2FsbERhdGE7Ci0gICAgSlNWYWx1ZSBhcHBseU1ldGhvZCA9IGhhbmRsZXItPmdldE1l
dGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImFwcGx5Iiks
ICInYXBwbHknIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJs
ZSJfcyk7CisgICAgSlNWYWx1ZSBhcHBseU1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9i
YWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgImFwcGx5Il9zKSwgIidhcHBs
eScgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBK
U09iamVjdCogdGFyZ2V0ID0gcHJveHktPnRhcmdldCgpOwogICAgIGlmIChhcHBseU1ldGhvZC5p
c1VuZGVmaW5lZCgpKSB7CkBAIC01NTksNyArNTU5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHBlcmZvcm1Qcm94eUNvbnN0cnVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEMKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZh
bHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIGNvbnN0cnVjdE1ldGhv
ZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRp
Zmllcih2bSwgImNvbnN0cnVjdCIpLCAiJ2NvbnN0cnVjdCcgcHJvcGVydHkgb2YgYSBQcm94eSdz
IGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGNvbnN0cnVjdE1l
dGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRl
bnRpZmllcih2bSwgImNvbnN0cnVjdCJfcyksICInY29uc3RydWN0JyBwcm9wZXJ0eSBvZiBhIFBy
b3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSBw
cm94eS0+dGFyZ2V0KCk7CiAgICAgaWYgKGNvbnN0cnVjdE1ldGhvZC5pc1VuZGVmaW5lZCgpKSB7
CkBAIC02MTYsNyArNjE2LDcgQEAgYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybURlbGV0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGUKIAogICAgIEpTT2Jq
ZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIGRlbGV0ZVByb3BlcnR5TWV0aG9kID0gaGFuZGxl
ci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAi
ZGVsZXRlUHJvcGVydHkiKSwgIidkZWxldGVQcm9wZXJ0eScgcHJvcGVydHkgb2YgYSBQcm94eSdz
IGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGRlbGV0ZVByb3Bl
cnR5TWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1h
a2VJZGVudGlmaWVyKHZtLCAiZGVsZXRlUHJvcGVydHkiX3MpLCAiJ2RlbGV0ZVByb3BlcnR5JyBw
cm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICBKU09iamVjdCogdGFyZ2V0
ID0gdGhpcy0+dGFyZ2V0KCk7CiAgICAgaWYgKGRlbGV0ZVByb3BlcnR5TWV0aG9kLmlzVW5kZWZp
bmVkKCkpCkBAIC02OTcsNyArNjk3LDcgQEAgYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybVByZXZl
bnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKICAgICBKU09iamVj
dCogaGFuZGxlciA9IGpzQ2FzdDxKU09iamVjdCo+KGhhbmRsZXJWYWx1ZSk7CiAgICAgQ2FsbERh
dGEgY2FsbERhdGE7Ci0gICAgSlNWYWx1ZSBwcmV2ZW50RXh0ZW5zaW9uc01ldGhvZCA9IGhhbmRs
ZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwg
InByZXZlbnRFeHRlbnNpb25zIiksICIncHJldmVudEV4dGVuc2lvbnMnIHByb3BlcnR5IG9mIGEg
UHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CisgICAgSlNWYWx1ZSBwcmV2
ZW50RXh0ZW5zaW9uc01ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNh
bGxEYXRhLCBtYWtlSWRlbnRpZmllcih2bSwgInByZXZlbnRFeHRlbnNpb25zIl9zKSwgIidwcmV2
ZW50RXh0ZW5zaW9ucycgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNh
bGxhYmxlIl9zKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAg
SlNPYmplY3QqIHRhcmdldCA9IHRoaXMtPnRhcmdldCgpOwogICAgIGlmIChwcmV2ZW50RXh0ZW5z
aW9uc01ldGhvZC5pc1VuZGVmaW5lZCgpKQpAQCAtNzQ4LDcgKzc0OCw3IEBAIGJvb2wgUHJveHlP
YmplY3Q6OnBlcmZvcm1Jc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVl
KTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU1ZhbHVlIGlzRXh0ZW5zaWJsZU1ldGhv
ZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRp
Zmllcih2bSwgImlzRXh0ZW5zaWJsZSIpLCAiJ2lzRXh0ZW5zaWJsZScgcHJvcGVydHkgb2YgYSBQ
cm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGlzRXh0
ZW5zaWJsZU1ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRh
LCBtYWtlSWRlbnRpZmllcih2bSwgImlzRXh0ZW5zaWJsZSJfcyksICInaXNFeHRlbnNpYmxlJyBw
cm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKIAogICAgIEpTT2JqZWN0KiB0YXJn
ZXQgPSB0aGlzLT50YXJnZXQoKTsKQEAgLTkwOSw3ICs5MDksNyBAQCB2b2lkIFByb3h5T2JqZWN0
OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZQogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5k
bGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpTVmFsdWUgb3duS2V5c01l
dGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRl
bnRpZmllcih2bSwgIm93bktleXMiKSwgIidvd25LZXlzJyBwcm9wZXJ0eSBvZiBhIFByb3h5J3Mg
aGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOworICAgIEpTVmFsdWUgb3duS2V5c01ldGhv
ZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBtYWtlSWRlbnRp
Zmllcih2bSwgIm93bktleXMiX3MpLCAiJ293bktleXMnIHByb3BlcnR5IG9mIGEgUHJveHkncyBo
YW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CiAg
ICAgaWYgKG93bktleXNNZXRob2QuaXNVbmRlZmluZWQoKSkgewpAQCAtMTA0MCw3ICsxMDQwLDcg
QEAgYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybVNldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3QKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganND
YXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAg
ICBKU1ZhbHVlIHNldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2Jh
bE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAic2V0UHJvdG90eXBlT2YiKSwg
IidzZXRQcm90b3R5cGVPZicgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJl
IGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIHNldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxl
ci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAi
c2V0UHJvdG90eXBlT2YiX3MpLCAiJ3NldFByb3RvdHlwZU9mJyBwcm9wZXJ0eSBvZiBhIFByb3h5
J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGZhbHNlKTsKIAogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlzLT50YXJnZXQo
KTsKQEAgLTExMDQsNyArMTEwNCw3IEBAIEpTVmFsdWUgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRQ
cm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogICAgIEpTT2JqZWN0KiBo
YW5kbGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBj
YWxsRGF0YTsKLSAgICBKU1ZhbHVlIGdldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+Z2V0
TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVudGlmaWVyKHZtLCAiZ2V0UHJv
dG90eXBlT2YiKSwgIidnZXRQcm90b3R5cGVPZicgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRs
ZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKKyAgICBKU1ZhbHVlIGdldFByb3RvdHlwZU9mTWV0
aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIG1ha2VJZGVu
dGlmaWVyKHZtLCAiZ2V0UHJvdG90eXBlT2YiX3MpLCAiJ2dldFByb3RvdHlwZU9mJyBwcm9wZXJ0
eSBvZiBhIFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhp
cy0+dGFyZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCA0NTBmOGZhNmMxNTFmYWI4NzNhNjg2OGM0ZDNmMjZjZTY0Mzc3
NWRkLi5kMTA1YTBhZGUzMTEyZmJiNmI3ZGI2MWViYjIxYjg1MTY0YTdmM2VhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEy
OCwyNyArMTI4LDI3IEBAIHZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKICAgICBKU0NfTkFUSVZFX0lOVFJJ
TlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+dG9TdHJp
bmcsIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgU3RyaW5nUHJvdG90eXBlVmFsdWVPZkludHJpbnNp
Yyk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlT2YsIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgU3RyaW5n
UHJvdG90eXBlVmFsdWVPZkludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjaGFyQXQiLCBzdHJpbmdQcm90b0Z1bmNDaGFyQXQs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBD
aGFyQXRJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiY2hhckNvZGVBdCIsIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBDaGFy
Q29kZUF0SW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImNvZGVQb2ludEF0Iiwgc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBT
dHJpbmdQcm90b3R5cGVDb2RlUG9pbnRBdEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNJbmRleE9m
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRleE9m
Iiwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNoYXJBdCJfcywgc3RyaW5nUHJvdG9GdW5jQ2hh
ckF0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSwgQ2hhckF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImNoYXJDb2RlQXQiX3MsIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2Rl
QXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
LCBDaGFyQ29kZUF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oImNvZGVQb2ludEF0Il9zLCBzdHJpbmdQcm90b0Z1bmNDb2Rl
UG9pbnRBdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDEsIFN0cmluZ1Byb3RvdHlwZUNvZGVQb2ludEF0SW50cmluc2ljKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiJfcywgc3RyaW5nUHJvdG9G
dW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJs
YXN0SW5kZXhPZiJfcywgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZF
X0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJv
dG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cEludHJp
bnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0
ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkucmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUoKSwgc3Ry
aW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX05BVElWRV9J
TlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzbGljZSIsIHN0cmluZ1Byb3Rv
RnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlU2xpY2VJbnRyaW5zaWMpOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHIiLCBzdHJpbmdQcm90b0Z1bmNTdWJz
dHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAy
KTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyaW5n
Iiwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7Ci0gICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvd2VyQ2FzZSIsIHN0cmluZ1Byb3RvRnVuY1Rv
TG93ZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMCwgU3RyaW5nUHJvdG90eXBlVG9Mb3dlckNhc2VJbnRyaW5zaWMpOwotICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b1VwcGVyQ2FzZSIsIHN0cmluZ1By
b3RvRnVuY1RvVXBwZXJDYXNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oImxvY2FsZUNvbXBhcmUiLCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvTG9jYWxlTG93ZXJDYXNl
Iiwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9Mb2NhbGVVcHBlckNhc2UiLCBzdHJpbmdQcm90b0Z1
bmNUb0xvY2FsZVVwcGVyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJ0cmltIiwgc3RyaW5nUHJvdG9GdW5jVHJpbSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdGFydHNXaXRoIiwgc3RyaW5nUHJvdG9GdW5jU3RhcnRz
V2l0aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJlbmRzV2l0
aCIsIHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgc3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9ybWFsaXplIiwgc3RyaW5n
UHJvdG9GdW5jTm9ybWFsaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMCk7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJzbGljZSJfcywgc3RyaW5nUHJvdG9GdW5jU2xpY2UsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyLCBTdHJpbmdQcm90
b3R5cGVTbGljZUludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oInN1YnN0ciJfcywgc3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0cmluZyJfcywgc3RyaW5nUHJvdG9G
dW5jU3Vic3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMik7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJ0b0xvd2VyQ2FzZSJfcywgc3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBTdHJp
bmdQcm90b3R5cGVUb0xvd2VyQ2FzZUludHJpbnNpYyk7CisgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oInRvVXBwZXJDYXNlIl9zLCBzdHJpbmdQcm90b0Z1bmNUb1Vw
cGVyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsb2Nh
bGVDb21wYXJlIl9zLCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvTG9jYWxlTG93ZXJDYXNlIl9zLCBzdHJp
bmdQcm90b0Z1bmNUb0xvY2FsZUxvd2VyQ2FzZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJ0b0xvY2FsZVVwcGVyQ2FzZSJfcywgc3RyaW5nUHJvdG9GdW5jVG9M
b2NhbGVVcHBlckNhc2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigidHJpbSJfcywgc3RyaW5nUHJvdG9GdW5jVHJpbSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJzdGFydHNXaXRoIl9zLCBzdHJpbmdQcm90b0Z1bmNTdGFydHNX
aXRoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImVuZHNXaXRo
Il9zLCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJpbmNsdWRlcyJfcywgc3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigibm9ybWFsaXplIl9zLCBz
dHJpbmdQcm90b0Z1bmNOb3JtYWxpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY2hh
ckNvZGVBdFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBDaGFyQ29kZUF0
SW50cmluc2ljKTsKIAogICAgIGlmIChPcHRpb25zOjp1c2VBdE1ldGhvZCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDVjYjUwNDA5M2NiYTJiMjMx
MjNkN2E0MWExMmExMmYzMDRlOWE3Y2UuLjUwYjJkZmZiYzFmNzFiNThmYjc3NmZhNDg3MTZjN2Vm
NWYyNmFmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
QEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CiAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKIAotICAgICAg
ICBhdXRvIGFkZFByb3BlcnR5ID0gWyZdIChWTSYgdm0sIGNvbnN0IGNoYXIqIG5hbWUsIEpTVmFs
dWUgdmFsdWUpIHsKKyAgICAgICAgYXV0byBhZGRQcm9wZXJ0eSA9IFsmXSAoVk0mIHZtLCBBU0NJ
SUxpdGVyYWwgbmFtZSwgSlNWYWx1ZSB2YWx1ZSkgewogICAgICAgICAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgICAgIEpTRG9sbGFyVk1DYWxsRnJhbWU6OmFk
ZFByb3BlcnR5KHZtLCBuYW1lLCB2YWx1ZSk7CiAgICAgICAgIH07CkBAIC0xNzMsMjkgKzE3Mywy
OSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoZnJhbWVJbmRleCsrICE9IHJlcXVlc3RlZEZy
YW1lSW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7
CiAKLSAgICAgICAgICAgIGFkZFByb3BlcnR5KHZtLCAibmFtZSIsIGpzU3RyaW5nKHZtLCB2aXNp
dG9yLT5mdW5jdGlvbk5hbWUoKSkpOworICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJuYW1l
Il9zLCBqc1N0cmluZyh2bSwgdmlzaXRvci0+ZnVuY3Rpb25OYW1lKCkpKTsKIAogICAgICAgICAg
ICAgaWYgKHZpc2l0b3ItPmNhbGxlZSgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHZtLCAiY2FsbGVlIiwgdmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCkpOworICAgICAg
ICAgICAgICAgIGFkZFByb3BlcnR5KHZtLCAiY2FsbGVlIl9zLCB2aXNpdG9yLT5jYWxsZWUoKS5h
c0NlbGwoKSk7CiAKICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdmlzaXRvci0+
Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAg
ICAgYWRkUHJvcGVydHkodm0sICJjb2RlQmxvY2siLCBjb2RlQmxvY2spOwotICAgICAgICAgICAg
ICAgIGFkZFByb3BlcnR5KHZtLCAidW5saW5rZWRDb2RlQmxvY2siLCBjb2RlQmxvY2stPnVubGlu
a2VkQ29kZUJsb2NrKCkpOwotICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5KHZtLCAiZXhlY3V0
YWJsZSIsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpOworICAgICAgICAgICAgICAgIGFk
ZFByb3BlcnR5KHZtLCAiY29kZUJsb2NrIl9zLCBjb2RlQmxvY2spOworICAgICAgICAgICAgICAg
IGFkZFByb3BlcnR5KHZtLCAidW5saW5rZWRDb2RlQmxvY2siX3MsIGNvZGVCbG9jay0+dW5saW5r
ZWRDb2RlQmxvY2soKSk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHkodm0sICJleGVjdXRh
YmxlIl9zLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGlzVmFsaWQgPSB0cnVlOwogCiAgICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNp
dG9yOjpEb25lOwogICAgICAgICB9KTsKIAotICAgICAgICBhZGRQcm9wZXJ0eSh2bSwgInZhbGlk
IiwganNCb29sZWFuKGlzVmFsaWQpKTsKKyAgICAgICAgYWRkUHJvcGVydHkodm0sICJ2YWxpZCJf
cywganNCb29sZWFuKGlzVmFsaWQpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0lORk87CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCBhZGRQcm9wZXJ0eShWTSYgdm0sIGNvbnN0IGNoYXIqIG5hbWUsIEpT
VmFsdWUgdmFsdWUpCisgICAgdm9pZCBhZGRQcm9wZXJ0eShWTSYgdm0sIEFTQ0lJTGl0ZXJhbCBu
YW1lLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgbmFtZSk7CkBAIC0xMTcwLDcgKzExNzAsNyBAQCB2b2lkIERPTUpJVEdl
dHRlck5vRWZmZWN0czo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklUID0gJkRP
TUpJVEdldHRlck5vRWZmZWN0c0RPTUpJVDsKICAgICBhdXRvKiBjdXN0b21HZXR0ZXJTZXR0ZXIg
PSBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwg
bnVsbHB0ciwgRE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IERPTUpJVE5vZGU6OmluZm8oKSwgZG9t
SklUIH0pOwotICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIiksIGN1c3RvbUdldHRlclNldHRlciwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKTsK
KyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgImN1c3RvbUdldHRlciJfcyksIGN1c3RvbUdldHRlclNldHRlciwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKTsKIH0KIAog
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGRvbUpJVEdldHRlck5vRWZmZWN0Q3VzdG9tR2V0dGVy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQpAQCAtMzg1OCwxOCArMzg1OCwxOCBAQCB2b2lkIEpTRG9sbGFyVk06
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSB0aGlzLT5nbG9iYWxPYmplY3Qodm0pOwogCi0gICAgYXV0byBhZGRGdW5jdGlvbiA9IFsm
XSAoVk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5z
aWduZWQgYXJndW1lbnRzKSB7CisgICAgYXV0byBhZGRGdW5jdGlvbiA9IFsmXSAoVk0mIHZtLCBB
U0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3Vt
ZW50cykgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAg
ICBKU0RvbGxhclZNOjphZGRGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBuYW1lLCBmdW5jdGlv
biwgYXJndW1lbnRzKTsKICAgICB9OwotICAgIGF1dG8gYWRkQ29uc3RydWN0aWJsZUZ1bmN0aW9u
ID0gWyZdIChWTSYgdm0sIGNvbnN0IGNoYXIqIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9u
LCB1bnNpZ25lZCBhcmd1bWVudHMpIHsKKyAgICBhdXRvIGFkZENvbnN0cnVjdGlibGVGdW5jdGlv
biA9IFsmXSAoVk0mIHZtLCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b24sIHVuc2lnbmVkIGFyZ3VtZW50cykgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgICAgICBKU0RvbGxhclZNOjphZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdCwgbmFtZSwgZnVuY3Rpb24sIGFyZ3VtZW50cyk7CiAgICAgfTsKIAot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiYWJvcnQiLCBmdW5jdGlvbkNyYXNoLCAwKTsKLSAgICBhZGRG
dW5jdGlvbih2bSwgImNyYXNoIiwgZnVuY3Rpb25DcmFzaCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24o
dm0sICJicmVha3BvaW50IiwgZnVuY3Rpb25CcmVha3BvaW50LCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImFib3J0Il9zLCBmdW5jdGlvbkNyYXNoLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImNyYXNoIl9zLCBmdW5jdGlvbkNyYXNoLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImJyZWFr
cG9pbnQiX3MsIGZ1bmN0aW9uQnJlYWtwb2ludCwgMCk7CiAKICAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZGZn
VHJ1ZSJfcyksIDAsIGZ1bmN0aW9uREZHVHJ1ZSwgREZHVHJ1ZUludHJpbnNpYywganNEb2xsYXJW
TVByb3BlcnR5QXR0cmlidXRlcyk7CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ0bFRydWUiX3MpLCAwLCBm
dW5jdGlvbkZUTFRydWUsIEZUTFRydWVJbnRyaW5zaWMsIGpzRG9sbGFyVk1Qcm9wZXJ0eUF0dHJp
YnV0ZXMpOwpAQCAtMzg3OCwxNjAgKzM4NzgsMTYwIEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtKQogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjcHVSZHRzYyJfcyksIDAsIGZ1bmN0
aW9uQ3B1UmR0c2MsIENQVVJkdHNjSW50cmluc2ljLCBqc0RvbGxhclZNUHJvcGVydHlBdHRyaWJ1
dGVzKTsKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3B1Q3B1aWQiX3MpLCAwLCBmdW5jdGlvbkNwdUNwdWlk
LCBDUFVDcHVpZEludHJpbnNpYywganNEb2xsYXJWTVByb3BlcnR5QXR0cmlidXRlcyk7CiAgICAg
cHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgImNwdVBhdXNlIl9zKSwgMCwgZnVuY3Rpb25DcHVQYXVzZSwgQ1BVUGF1c2VJ
bnRyaW5zaWMsIGpzRG9sbGFyVk1Qcm9wZXJ0eUF0dHJpYnV0ZXMpOwotICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY3B1Q2xmbHVzaCIsIGZ1bmN0aW9uQ3B1Q2xmbHVzaCwgMik7Ci0KLSAgICBhZGRGdW5j
dGlvbih2bSwgImxsaW50VHJ1ZSIsIGZ1bmN0aW9uTExpbnRUcnVlLCAwKTsKLSAgICBhZGRGdW5j
dGlvbih2bSwgImJhc2VsaW5lSklUVHJ1ZSIsIGZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlLCAwKTsK
LQotICAgIGFkZEZ1bmN0aW9uKHZtLCAibm9JbmxpbmUiLCBmdW5jdGlvbk5vSW5saW5lLCAxKTsK
LQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2MiLCBmdW5jdGlvbkdDLCAwKTsKLSAgICBhZGRGdW5j
dGlvbih2bSwgImdjU3dlZXBBc3luY2hyb25vdXNseSIsIGZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJv
bm91c2x5LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImVkZW5HQyIsIGZ1bmN0aW9uRWRlbkdD
LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBTdWJzcGFjZUhhc2hlcyIsIGZ1bmN0aW9u
RHVtcFN1YnNwYWNlSGFzaGVzLCAwKTsKLQotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2FsbEZyYW1l
IiwgZnVuY3Rpb25DYWxsRnJhbWUsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY29kZUJsb2Nr
Rm9yIiwgZnVuY3Rpb25Db2RlQmxvY2tGb3IsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY29k
ZUJsb2NrRm9yRnJhbWUiLCBmdW5jdGlvbkNvZGVCbG9ja0ZvckZyYW1lLCAxKTsKLSAgICBhZGRG
dW5jdGlvbih2bSwgImR1bXBTb3VyY2VGb3IiLCBmdW5jdGlvbkR1bXBTb3VyY2VGb3IsIDEpOwot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiZHVtcEJ5dGVjb2RlRm9yIiwgZnVuY3Rpb25EdW1wQnl0ZWNv
ZGVGb3IsIDEpOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJkYXRhTG9nIiwgZnVuY3Rpb25EYXRh
TG9nLCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInByaW50IiwgZnVuY3Rpb25QcmludCwgMSk7
Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wQ2FsbEZyYW1lIiwgZnVuY3Rpb25EdW1wQ2FsbEZy
YW1lLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBTdGFjayIsIGZ1bmN0aW9uRHVtcFN0
YWNrLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBSZWdpc3RlcnMiLCBmdW5jdGlvbkR1
bXBSZWdpc3RlcnMsIDEpOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wQ2VsbCIsIGZ1bmN0
aW9uRHVtcENlbGwsIDEpOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJpbmRleGluZ01vZGUiLCBm
dW5jdGlvbkluZGV4aW5nTW9kZSwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJpbmxpbmVDYXBh
Y2l0eSIsIGZ1bmN0aW9uSW5saW5lQ2FwYWNpdHksIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y2xlYXJMaW5rQnVmZmVyU3RhdHMiLCBmdW5jdGlvbkNsZWFyTGlua0J1ZmZlclN0YXRzLCAwKTsK
LSAgICBhZGRGdW5jdGlvbih2bSwgImxpbmtCdWZmZXJTdGF0cyIsIGZ1bmN0aW9uTGlua0J1ZmZl
clN0YXRzLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInZhbHVlIiwgZnVuY3Rpb25WYWx1ZSwg
MSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJnZXRwaWQiLCBmdW5jdGlvbkdldFBJRCwgMCk7Ci0K
LSAgICBhZGRGdW5jdGlvbih2bSwgImhhdmVBQmFkVGltZSIsIGZ1bmN0aW9uSGF2ZUFCYWRUaW1l
LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImlzSGF2aW5nQUJhZFRpbWUiLCBmdW5jdGlvbklz
SGF2aW5nQUJhZFRpbWUsIDEpOwotCi0gICAgYWRkRnVuY3Rpb24odm0sICJjYWxsV2l0aFN0YWNr
U2l6ZSIsIGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUsIDIpOwotCi0gICAgYWRkRnVuY3Rpb24o
dm0sICJjcmVhdGVHbG9iYWxPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwgMCk7
Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVQcm94eSIsIGZ1bmN0aW9uQ3JlYXRlUHJveHks
IDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlUnVudGltZUFycmF5IiwgZnVuY3Rpb25D
cmVhdGVSdW50aW1lQXJyYXksIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlTnVsbFJv
cGVTdHJpbmciLCBmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nLCAwKTsKLQotICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3JlYXRlSW1wdXJlR2V0dGVyIiwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0
ZXIsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0Iiwg
ZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlRE9NSklUTm9kZU9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVj
dCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJPYmplY3QiLCBm
dW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0s
ICJjcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck5vRWZmZWN0c09iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVE
T01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21w
bGV4T2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEZ1bmN0aW9u
T2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCwgMCk7Ci0gICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCIsIGZ1bmN0aW9uQ3Jl
YXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJC
YXNlSlNPYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1
bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcHVDbGZsdXNo
Il9zLCBmdW5jdGlvbkNwdUNsZmx1c2gsIDIpOworCisgICAgYWRkRnVuY3Rpb24odm0sICJsbGlu
dFRydWUiX3MsIGZ1bmN0aW9uTExpbnRUcnVlLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImJh
c2VsaW5lSklUVHJ1ZSJfcywgZnVuY3Rpb25CYXNlbGluZUpJVFRydWUsIDApOworCisgICAgYWRk
RnVuY3Rpb24odm0sICJub0lubGluZSJfcywgZnVuY3Rpb25Ob0lubGluZSwgMSk7CisKKyAgICBh
ZGRGdW5jdGlvbih2bSwgImdjIl9zLCBmdW5jdGlvbkdDLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2
bSwgImdjU3dlZXBBc3luY2hyb25vdXNseSJfcywgZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3Vz
bHksIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZWRlbkdDIl9zLCBmdW5jdGlvbkVkZW5HQywg
MCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU3Vic3BhY2VIYXNoZXMiX3MsIGZ1bmN0aW9u
RHVtcFN1YnNwYWNlSGFzaGVzLCAwKTsKKworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2FsbEZyYW1l
Il9zLCBmdW5jdGlvbkNhbGxGcmFtZSwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjb2RlQmxv
Y2tGb3IiX3MsIGZ1bmN0aW9uQ29kZUJsb2NrRm9yLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImNvZGVCbG9ja0ZvckZyYW1lIl9zLCBmdW5jdGlvbkNvZGVCbG9ja0ZvckZyYW1lLCAxKTsKKyAg
ICBhZGRGdW5jdGlvbih2bSwgImR1bXBTb3VyY2VGb3IiX3MsIGZ1bmN0aW9uRHVtcFNvdXJjZUZv
ciwgMSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wQnl0ZWNvZGVGb3IiX3MsIGZ1bmN0aW9u
RHVtcEJ5dGVjb2RlRm9yLCAxKTsKKworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGF0YUxvZyJfcywg
ZnVuY3Rpb25EYXRhTG9nLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInByaW50Il9zLCBmdW5j
dGlvblByaW50LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBDYWxsRnJhbWUiX3MsIGZ1
bmN0aW9uRHVtcENhbGxGcmFtZSwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJkdW1wU3RhY2si
X3MsIGZ1bmN0aW9uRHVtcFN0YWNrLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBSZWdp
c3RlcnMiX3MsIGZ1bmN0aW9uRHVtcFJlZ2lzdGVycywgMSk7CisKKyAgICBhZGRGdW5jdGlvbih2
bSwgImR1bXBDZWxsIl9zLCBmdW5jdGlvbkR1bXBDZWxsLCAxKTsKKworICAgIGFkZEZ1bmN0aW9u
KHZtLCAiaW5kZXhpbmdNb2RlIl9zLCBmdW5jdGlvbkluZGV4aW5nTW9kZSwgMSk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJpbmxpbmVDYXBhY2l0eSJfcywgZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSwg
MSk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjbGVhckxpbmtCdWZmZXJTdGF0cyJfcywgZnVuY3Rp
b25DbGVhckxpbmtCdWZmZXJTdGF0cywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJsaW5rQnVm
ZmVyU3RhdHMiX3MsIGZ1bmN0aW9uTGlua0J1ZmZlclN0YXRzLCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgInZhbHVlIl9zLCBmdW5jdGlvblZhbHVlLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImdldHBpZCJfcywgZnVuY3Rpb25HZXRQSUQsIDApOworCisgICAgYWRkRnVuY3Rpb24odm0sICJo
YXZlQUJhZFRpbWUiX3MsIGZ1bmN0aW9uSGF2ZUFCYWRUaW1lLCAxKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImlzSGF2aW5nQUJhZFRpbWUiX3MsIGZ1bmN0aW9uSXNIYXZpbmdBQmFkVGltZSwgMSk7
CisKKyAgICBhZGRGdW5jdGlvbih2bSwgImNhbGxXaXRoU3RhY2tTaXplIl9zLCBmdW5jdGlvbkNh
bGxXaXRoU3RhY2tTaXplLCAyKTsKKworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFs
T2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJjcmVhdGVQcm94eSJfcywgZnVuY3Rpb25DcmVhdGVQcm94eSwgMSk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVSdW50aW1lQXJyYXkiX3MsIGZ1bmN0aW9uQ3JlYXRlUnVudGlt
ZUFycmF5LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZU51bGxSb3BlU3RyaW5nIl9z
LCBmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nLCAwKTsKKworICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlSW1wdXJlR2V0dGVyIl9zLCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlciwgMSk7
CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QiX3MsIGZ1bmN0
aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNy
ZWF0ZURPTUpJVE5vZGVPYmplY3QiX3MsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdCwg
MCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJPYmplY3QiX3MsIGZ1
bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZURPTUpJVEdldHRlck5vRWZmZWN0c09iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVET01K
SVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
RE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJD
b21wbGV4T2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEZ1bmN0
aW9uT2JqZWN0Il9zLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAwKTsKKyAg
ICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0Il9zLCBmdW5j
dGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCJfcywgZnVuY3Rpb25DcmVhdGVET01K
SVRHZXR0ZXJCYXNlSlNPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVp
bHRpbiJfcywgZnVuY3Rpb25DcmVhdGVCdWlsdGluLCAyKTsKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCi0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyIiwgZnVu
Y3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZVdhc21TdHJlYW1pbmdDb21waWxlckZvckNvbXBpbGUiLCBmdW5jdGlvbkNyZWF0ZVdh
c21TdHJlYW1pbmdDb21waWxlckZvckNvbXBpbGUsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlV2FzbVN0cmVhbWluZ0NvbXBpbGVyRm9ySW5zdGFudGlhdGUiLCBmdW5jdGlvbkNyZWF0
ZVdhc21TdHJlYW1pbmdDb21waWxlckZvckluc3RhbnRpYXRlLCAwKTsKKyAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIiX3MsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0
cmVhbWluZ1BhcnNlciwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVXYXNtU3RyZWFt
aW5nQ29tcGlsZXJGb3JDb21waWxlIl9zLCBmdW5jdGlvbkNyZWF0ZVdhc21TdHJlYW1pbmdDb21w
aWxlckZvckNvbXBpbGUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlV2FzbVN0cmVh
bWluZ0NvbXBpbGVyRm9ySW5zdGFudGlhdGUiX3MsIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWlu
Z0NvbXBpbGVyRm9ySW5zdGFudGlhdGUsIDApOwogI2VuZGlmCi0gICAgYWRkRnVuY3Rpb24odm0s
ICJjcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvciIsIGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9t
QWNjZXNzb3IsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlU3RhdGljQ3VzdG9tVmFs
dWUiLCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlLCAwKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0
YXR1cyIsIGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJl
Y3RTbG90U3RhdHVzLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUVtcHR5RnVuY3Rp
b25XaXRoTmFtZSIsIGZ1bmN0aW9uQ3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lLCAxKTsKLSAg
ICBhZGRGdW5jdGlvbih2bSwgImdldFByaXZhdGVQcm9wZXJ0eSIsIGZ1bmN0aW9uR2V0UHJpdmF0
ZVByb3BlcnR5LCAyKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVn
YXRlIiwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CisgICAgYWRkRnVuY3Rp
b24odm0sICJjcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvciJfcywgZnVuY3Rpb25DcmVhdGVTdGF0
aWNDdXN0b21BY2Nlc3NvciwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVTdGF0aWND
dXN0b21WYWx1ZSJfcywgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21WYWx1ZSwgMCk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29y
cmVjdFNsb3RTdGF0dXMiX3MsIGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0
V2l0aG91dENvcnJlY3RTbG90U3RhdHVzLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSJfcywgZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0
aE5hbWUsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0UHJpdmF0ZVByb3BlcnR5Il9zLCBm
dW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSwgMik7CisgICAgYWRkRnVuY3Rpb24odm0sICJzZXRJ
bXB1cmVHZXR0ZXJEZWxlZ2F0ZSJfcywgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwg
Mik7CiAKLSAgICBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24odm0sICJSb290IiwgZnVuY3Rpb25D
cmVhdGVSb290LCAwKTsKLSAgICBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24odm0sICJFbGVtZW50
IiwgZnVuY3Rpb25DcmVhdGVFbGVtZW50LCAxKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImdldEVs
ZW1lbnQiLCBmdW5jdGlvbkdldEVsZW1lbnQsIDEpOworICAgIGFkZENvbnN0cnVjdGlibGVGdW5j
dGlvbih2bSwgIlJvb3QiX3MsIGZ1bmN0aW9uQ3JlYXRlUm9vdCwgMCk7CisgICAgYWRkQ29uc3Ry
dWN0aWJsZUZ1bmN0aW9uKHZtLCAiRWxlbWVudCJfcywgZnVuY3Rpb25DcmVhdGVFbGVtZW50LCAx
KTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdldEVsZW1lbnQiX3MsIGZ1bmN0aW9uR2V0RWxlbWVu
dCwgMSk7CiAKLSAgICBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24odm0sICJTaW1wbGVPYmplY3Qi
LCBmdW5jdGlvbkNyZWF0ZVNpbXBsZU9iamVjdCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJn
ZXRIaWRkZW5WYWx1ZSIsIGZ1bmN0aW9uR2V0SGlkZGVuVmFsdWUsIDEpOwotICAgIGFkZEZ1bmN0
aW9uKHZtLCAic2V0SGlkZGVuVmFsdWUiLCBmdW5jdGlvblNldEhpZGRlblZhbHVlLCAyKTsKKyAg
ICBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24odm0sICJTaW1wbGVPYmplY3QiX3MsIGZ1bmN0aW9u
Q3JlYXRlU2ltcGxlT2JqZWN0LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdldEhpZGRlblZh
bHVlIl9zLCBmdW5jdGlvbkdldEhpZGRlblZhbHVlLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwg
InNldEhpZGRlblZhbHVlIl9zLCBmdW5jdGlvblNldEhpZGRlblZhbHVlLCAyKTsKIAotICAgIGFk
ZEZ1bmN0aW9uKHZtLCAic2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2siLCBmdW5jdGlvblNo
YWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInNl
dEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93IiwgZnVuY3Rpb25TZXRHbG9i
YWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdywgMCk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJzaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayJfcywgZnVuY3Rpb25TaGFkb3dDaGlj
a2VuRnVuY3Rpb25zT25TdGFjaywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJzZXRHbG9iYWxD
b25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdyJfcywgZnVuY3Rpb25TZXRHbG9iYWxDb25z
dFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdywgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImZpbmRUeXBlRm9yRXhwcmVzc2lvbiIsIGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9uLCAy
KTsKLSAgICBhZGRGdW5jdGlvbih2bSwgInJldHVyblR5cGVGb3IiLCBmdW5jdGlvblJldHVyblR5
cGVGb3IsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmluZFR5cGVGb3JFeHByZXNzaW9uIl9z
LCBmdW5jdGlvbkZpbmRUeXBlRm9yRXhwcmVzc2lvbiwgMik7CisgICAgYWRkRnVuY3Rpb24odm0s
ICJyZXR1cm5UeXBlRm9yIl9zLCBmdW5jdGlvblJldHVyblR5cGVGb3IsIDEpOwogCi0gICAgYWRk
RnVuY3Rpb24odm0sICJmbGF0dGVuRGljdGlvbmFyeU9iamVjdCIsIGZ1bmN0aW9uRmxhdHRlbkRp
Y3Rpb25hcnlPYmplY3QsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZmxhdHRlbkRpY3Rpb25h
cnlPYmplY3QiX3MsIGZ1bmN0aW9uRmxhdHRlbkRpY3Rpb25hcnlPYmplY3QsIDEpOwogCi0gICAg
YWRkRnVuY3Rpb24odm0sICJkdW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcyIsIGZ1bmN0aW9u
RHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMgLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwg
Imhhc0Jhc2ljQmxvY2tFeGVjdXRlZCIsIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4ZWN1dGVkLCAy
KTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImJhc2ljQmxvY2tFeGVjdXRpb25Db3VudCIsIGZ1bmN0
aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50LCAyKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImR1
bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzIl9zLCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhl
Y3V0aW9uUmFuZ2VzICwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQiX3MsIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4ZWN1dGVkLCAyKTsKKyAgICBhZGRGdW5j
dGlvbih2bSwgImJhc2ljQmxvY2tFeGVjdXRpb25Db3VudCJfcywgZnVuY3Rpb25CYXNpY0Jsb2Nr
RXhlY3V0aW9uQ291bnQsIDIpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJlbmFibGVEZWJ1Z2dl
ck1vZGVXaGVuSWRsZSIsIGZ1bmN0aW9uRW5hYmxlRGVidWdnZXJNb2RlV2hlbklkbGUsIDApOwot
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlIiwgZnVuY3Rp
b25EaXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZW5hYmxlRGVidWdnZXJNb2RlV2hlbklkbGUiX3MsIGZ1bmN0aW9uRW5hYmxlRGVidWdnZXJNb2Rl
V2hlbklkbGUsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGlzYWJsZURlYnVnZ2VyTW9kZVdo
ZW5JZGxlIl9zLCBmdW5jdGlvbkRpc2FibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgMCk7CiAKLSAg
ICBhZGRGdW5jdGlvbih2bSwgImRlbGV0ZUFsbENvZGVXaGVuSWRsZSIsIGZ1bmN0aW9uRGVsZXRl
QWxsQ29kZVdoZW5JZGxlLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImRlbGV0ZUFsbENvZGVX
aGVuSWRsZSJfcywgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hlbklkbGUsIDApOwogCi0gICAgYWRk
RnVuY3Rpb24odm0sICJnbG9iYWxPYmplY3RDb3VudCIsIGZ1bmN0aW9uR2xvYmFsT2JqZWN0Q291
bnQsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2xvYmFsT2JqZWN0Rm9yT2JqZWN0IiwgZnVu
Y3Rpb25HbG9iYWxPYmplY3RGb3JPYmplY3QsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2xv
YmFsT2JqZWN0Q291bnQiX3MsIGZ1bmN0aW9uR2xvYmFsT2JqZWN0Q291bnQsIDApOworICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZ2xvYmFsT2JqZWN0Rm9yT2JqZWN0Il9zLCBmdW5jdGlvbkdsb2JhbE9i
amVjdEZvck9iamVjdCwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImdldEdldHRlclNldHRl
ciIsIGZ1bmN0aW9uR2V0R2V0dGVyU2V0dGVyLCAyKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImxv
YWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVyIiwgZnVuY3Rpb25Mb2FkR2V0dGVyRnJvbUdldHRlclNl
dHRlciwgMSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0
dGVyIiwgZnVuY3Rpb25DcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyLCAxKTsKKyAgICBhZGRG
dW5jdGlvbih2bSwgImdldEdldHRlclNldHRlciJfcywgZnVuY3Rpb25HZXRHZXR0ZXJTZXR0ZXIs
IDIpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAibG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIiX3Ms
IGZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIsIDEpOworICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlciJfcywgZnVuY3Rpb25DcmVhdGVDdXN0
b21UZXN0R2V0dGVyU2V0dGVyLCAxKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZGVsdGFCZXR3
ZWVuQnV0dGVyZmxpZXMiLCBmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzLCAyKTsKKyAg
ICBhZGRGdW5jdGlvbih2bSwgImRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzIl9zLCBmdW5jdGlvbkRl
bHRhQmV0d2VlbkJ1dHRlcmZsaWVzLCAyKTsKICAgICAKLSAgICBhZGRGdW5jdGlvbih2bSwgImN1
cnJlbnRDUFVUaW1lIiwgZnVuY3Rpb25DdXJyZW50Q1BVVGltZSwgMCk7Ci0gICAgYWRkRnVuY3Rp
b24odm0sICJ0b3RhbEdDVGltZSIsIGZ1bmN0aW9uVG90YWxHQ1RpbWUsIDApOworICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3VycmVudENQVVRpbWUiX3MsIGZ1bmN0aW9uQ3VycmVudENQVVRpbWUsIDAp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAidG90YWxHQ1RpbWUiX3MsIGZ1bmN0aW9uVG90YWxHQ1Rp
bWUsIDApOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJwYXJzZUNvdW50IiwgZnVuY3Rpb25QYXJz
ZUNvdW50LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInBhcnNlQ291bnQiX3MsIGZ1bmN0aW9u
UGFyc2VDb3VudCwgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImlzV2FzbVN1cHBvcnRlZCIs
IGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkLCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgIm1ha2Ux
NkJpdFN0cmluZ0lmUG9zc2libGUiLCBmdW5jdGlvbk1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUs
IDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNXYXNtU3VwcG9ydGVkIl9zLCBmdW5jdGlvbklz
V2FzbVN1cHBvcnRlZCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlMTZCaXRTdHJpbmdJ
ZlBvc3NpYmxlIl9zLCBmdW5jdGlvbk1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUsIDEpOwogCi0g
ICAgYWRkRnVuY3Rpb24odm0sICJnZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCIsIGZ1bmN0aW9u
R2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0
Q29uY3VycmVudGx5IiwgZnVuY3Rpb25HZXRDb25jdXJyZW50bHksIDIpOworICAgIGFkZEZ1bmN0
aW9uKHZtLCAiZ2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QiX3MsIGZ1bmN0aW9uR2V0U3RydWN0
dXJlVHJhbnNpdGlvbkxpc3QsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0Q29uY3VycmVu
dGx5Il9zLCBmdW5jdGlvbkdldENvbmN1cnJlbnRseSwgMik7CiAKLSAgICBhZGRGdW5jdGlvbih2
bSwgImhhc093bkxlbmd0aFByb3BlcnR5IiwgZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0eSwg
MSk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJyZWplY3RQcm9taXNlQXNIYW5kbGVkIiwgZnVuY3Rp
b25SZWplY3RQcm9taXNlQXNIYW5kbGVkLCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImhhc093
bkxlbmd0aFByb3BlcnR5Il9zLCBmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5LCAxKTsKKyAg
ICBhZGRGdW5jdGlvbih2bSwgInJlamVjdFByb21pc2VBc0hhbmRsZWQiX3MsIGZ1bmN0aW9uUmVq
ZWN0UHJvbWlzZUFzSGFuZGxlZCwgMSk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgInNldFVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMiLCBmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMsIDEp
OwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaWN1VmVyc2lvbiIsIGZ1bmN0aW9uSUNVVmVyc2lvbiwg
MCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJpY3VIZWFkZXJWZXJzaW9uIiwgZnVuY3Rpb25JQ1VI
ZWFkZXJWZXJzaW9uLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInNldFVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMiX3MsIGZ1bmN0aW9uU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcywgMSk7CisgICAg
YWRkRnVuY3Rpb24odm0sICJpY3VWZXJzaW9uIl9zLCBmdW5jdGlvbklDVVZlcnNpb24sIDApOwor
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiaWN1SGVhZGVyVmVyc2lvbiJfcywgZnVuY3Rpb25JQ1VIZWFk
ZXJWZXJzaW9uLCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXNzZXJ0RW5hYmxlZCIsIGZ1
bmN0aW9uQXNzZXJ0RW5hYmxlZCwgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJzZWN1cml0eUFz
c2VydEVuYWJsZWQiLCBmdW5jdGlvblNlY3VyaXR5QXNzZXJ0RW5hYmxlZCwgMCk7Ci0gICAgYWRk
RnVuY3Rpb24odm0sICJhc2FuRW5hYmxlZCIsIGZ1bmN0aW9uQXNhbkVuYWJsZWQsIDApOworICAg
IGFkZEZ1bmN0aW9uKHZtLCAiYXNzZXJ0RW5hYmxlZCJfcywgZnVuY3Rpb25Bc3NlcnRFbmFibGVk
LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInNlY3VyaXR5QXNzZXJ0RW5hYmxlZCJfcywgZnVu
Y3Rpb25TZWN1cml0eUFzc2VydEVuYWJsZWQsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXNh
bkVuYWJsZWQiX3MsIGZ1bmN0aW9uQXNhbkVuYWJsZWQsIDApOwogCi0gICAgYWRkRnVuY3Rpb24o
dm0sICJpc01lbW9yeUxpbWl0ZWQiLCBmdW5jdGlvbklzTWVtb3J5TGltaXRlZCwgMCk7Ci0gICAg
YWRkRnVuY3Rpb24odm0sICJ1c2VKSVQiLCBmdW5jdGlvblVzZUpJVCwgMCk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJpc0dpZ2FjYWdlRW5hYmxlZCIsIGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQs
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNNZW1vcnlMaW1pdGVkIl9zLCBmdW5jdGlvbklz
TWVtb3J5TGltaXRlZCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJ1c2VKSVQiX3MsIGZ1bmN0
aW9uVXNlSklULCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlzR2lnYWNhZ2VFbmFibGVkIl9z
LCBmdW5jdGlvbklzR2lnYWNhZ2VFbmFibGVkLCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
dG9DYWNoZWFibGVEaWN0aW9uYXJ5IiwgZnVuY3Rpb25Ub0NhY2hlYWJsZURpY3Rpb25hcnksIDEp
OwotICAgIGFkZEZ1bmN0aW9uKHZtLCAidG9VbmNhY2hlYWJsZURpY3Rpb25hcnkiLCBmdW5jdGlv
blRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgInRvQ2Fj
aGVhYmxlRGljdGlvbmFyeSJfcywgZnVuY3Rpb25Ub0NhY2hlYWJsZURpY3Rpb25hcnksIDEpOwor
ICAgIGFkZEZ1bmN0aW9uKHZtLCAidG9VbmNhY2hlYWJsZURpY3Rpb25hcnkiX3MsIGZ1bmN0aW9u
VG9VbmNhY2hlYWJsZURpY3Rpb25hcnksIDEpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJpc1By
aXZhdGVTeW1ib2wiLCBmdW5jdGlvbklzUHJpdmF0ZVN5bWJvbCwgMSk7Ci0gICAgYWRkRnVuY3Rp
b24odm0sICJkdW1wQW5kUmVzZXRQYXNEZWJ1Z1NwZWN0cnVtIiwgZnVuY3Rpb25EdW1wQW5kUmVz
ZXRQYXNEZWJ1Z1NwZWN0cnVtLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImlzUHJpdmF0ZVN5
bWJvbCJfcywgZnVuY3Rpb25Jc1ByaXZhdGVTeW1ib2wsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZt
LCAiZHVtcEFuZFJlc2V0UGFzRGVidWdTcGVjdHJ1bSJfcywgZnVuY3Rpb25EdW1wQW5kUmVzZXRQ
YXNEZWJ1Z1NwZWN0cnVtLCAwKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAibW9ub3RvbmljVGlt
ZU5vdyIsIGZ1bmN0aW9uTW9ub3RvbmljVGltZU5vdywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0s
ICJ3YWxsVGltZU5vdyIsIGZ1bmN0aW9uV2FsbFRpbWVOb3csIDApOwotICAgIGFkZEZ1bmN0aW9u
KHZtLCAiYXBwcm94aW1hdGVUaW1lTm93IiwgZnVuY3Rpb25BcHByb3hpbWF0ZVRpbWVOb3csIDAp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAibW9ub3RvbmljVGltZU5vdyJfcywgZnVuY3Rpb25Nb25v
dG9uaWNUaW1lTm93LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgIndhbGxUaW1lTm93Il9zLCBm
dW5jdGlvbldhbGxUaW1lTm93LCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImFwcHJveGltYXRl
VGltZU5vdyJfcywgZnVuY3Rpb25BcHByb3hpbWF0ZVRpbWVOb3csIDApOwogCiAjaWYgRU5BQkxF
KEpJVCkKLSAgICBhZGRGdW5jdGlvbih2bSwgImppdFNpemVTdGF0aXN0aWNzIiwgZnVuY3Rpb25K
SVRTaXplU3RhdGlzdGljcywgMCk7Ci0gICAgYWRkRnVuY3Rpb24odm0sICJkdW1wSklUU2l6ZVN0
YXRpc3RpY3MiLCBmdW5jdGlvbkR1bXBKSVRTaXplU3RhdGlzdGljcywgMCk7Ci0gICAgYWRkRnVu
Y3Rpb24odm0sICJyZXNldEpJVFNpemVTdGF0aXN0aWNzIiwgZnVuY3Rpb25SZXNldEpJVFNpemVT
dGF0aXN0aWNzLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImppdFNpemVTdGF0aXN0aWNzIl9z
LCBmdW5jdGlvbkpJVFNpemVTdGF0aXN0aWNzLCAwKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImR1
bXBKSVRTaXplU3RhdGlzdGljcyJfcywgZnVuY3Rpb25EdW1wSklUU2l6ZVN0YXRpc3RpY3MsIDAp
OworICAgIGFkZEZ1bmN0aW9uKHZtLCAicmVzZXRKSVRTaXplU3RhdGlzdGljcyJfcywgZnVuY3Rp
b25SZXNldEpJVFNpemVTdGF0aXN0aWNzLCAwKTsKICNlbmRpZgogCi0gICAgYWRkRnVuY3Rpb24o
dm0sICJlbnN1cmVBcnJheVN0b3JhZ2UiLCBmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgMSk7
CisgICAgYWRkRnVuY3Rpb24odm0sICJlbnN1cmVBcnJheVN0b3JhZ2UiX3MsIGZ1bmN0aW9uRW5z
dXJlQXJyYXlTdG9yYWdlLCAxKTsKIAogICAgIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0
aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBPYmplY3REb2lu
Z1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkpOwogfQogCi12b2lkIEpTRG9sbGFyVk06OmFkZEZ1
bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciog
bmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cykKK3ZvaWQg
SlNEb2xsYXJWTTo6YWRkRnVuY3Rpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVk
IGFyZ3VtZW50cykKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG5hbWUp
OwogICAgIHB1dERpcmVjdCh2bSwgaWRlbnRpZmllciwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIGFyZ3VtZW50cywgaWRlbnRpZmllci5zdHJpbmcoKSwgZnVuY3Rpb24pLCBq
c0RvbGxhclZNUHJvcGVydHlBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBKU0RvbGxhclZNOjphZGRD
b25zdHJ1Y3RpYmxlRnVuY3Rpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgdW5zaWduZWQgYXJn
dW1lbnRzKQordm9pZCBKU0RvbGxhclZNOjphZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cykKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmgKaW5kZXggMDNmZTBhOTYwM2U0MGUzZDI3MDcwNzA0ODA2ZWU4MDJlN2M1N2Mx
OC4uMTBkNzg3NmFhNTk3ZmQ4ODBmZjliZGQ5MTZiNzBiMTk4NTJhODY4MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oCkBAIC03MSw4ICs3MSw4IEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwotICAgIHZvaWQgYWRkRnVu
Y3Rpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IGNoYXIqIG5hbWUsIE5hdGl2ZUZ1bmN0
aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpOwotICAgIHZvaWQgYWRkQ29uc3RydWN0aWJsZUZ1bmN0
aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlv
biwgdW5zaWduZWQgYXJndW1lbnRzKTsKKyAgICB2b2lkIGFkZEZ1bmN0aW9uKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBBU0NJSUxpdGVyYWwgbmFtZSwgTmF0aXZlRnVuY3Rpb24sIHVuc2lnbmVkIGFy
Z3VtZW50cyk7CisgICAgdm9pZCBhZGRDb25zdHJ1Y3RpYmxlRnVuY3Rpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEFTQ0lJTGl0ZXJhbCBuYW1lLCBOYXRpdmVGdW5jdGlvbiwgdW5zaWduZWQgYXJn
dW1lbnRzKTsKIAogICAgIERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKaW5kZXggYzU0MWI1OTQ2NjY4
ZWRkMDhhYWI4ZDM1ZmMzODg1YjQ1ZmM1ZmY2Ny4uNGQ4NDBlOWI3ZmE2ZWU1MzE2ZTNjZTRmOWI3
ZjE0ZTg3NzM3MjViYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseS5jcHAKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIEpTV2ViQXNzZW1ibHk6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBB
U1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhP
VVRfVFJBTlNJVElPTigpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPmNvbXBpbGVTdHJlYW1pbmcpCi0gICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiY29tcGlsZVN0cmVhbWluZyIsIHdlYkFzc2VtYmx5Q29tcGls
ZVN0cmVhbWluZ0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigwKSk7CisgICAg
ICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29tcGlsZVN0cmVh
bWluZyJfcywgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nQ29kZUdlbmVyYXRvciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KDApKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSgpLT5pbnN0YW50aWF0ZVN0cmVhbWluZykKLSAgICAgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbnN0YW50aWF0ZVN0cmVhbWluZyIsIHdlYkFz
c2VtYmx5SW5zdGFudGlhdGVTdHJlYW1pbmdDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oMCkpOworICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImluc3RhbnRpYXRlU3RyZWFtaW5nIl9zLCB3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3RyZWFt
aW5nQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApKTsKIH0KIAogSlNXZWJB
c3NlbWJseTo6SlNXZWJBc3NlbWJseShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVn
YWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHAKaW5kZXggYTM1ZjJh
OWFmMjk0YjAzNDUzZmExNWUyYzRhNTFkYjgxNjQ3MTYyZi4uYWY5ODA5NzI4MDlkNmYwZjdhZDcw
MTU1MTQ5NDYyYmNlODNiM2ZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNz
aW9uQ2xlYXJLZXkuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgYm9vbCBDRE1TZXNzaW9uQ2xlYXJL
ZXk6OnVwZGF0ZShVaW50OEFycmF5KiByYXdLZXlzRGF0YSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBu
ZXgKIAogICAgICAgICAgICAgYXV0byBrZXlPYmplY3QgPSBhc09iamVjdChrZXlWYWx1ZSk7CiAK
LSAgICAgICAgICAgIGF1dG8gZ2V0U3RyaW5nUHJvcGVydHkgPSBbJnNjb3BlLCAmbGV4aWNhbEds
b2JhbE9iamVjdCwgJmtleU9iamVjdCwgJnZtXShjb25zdCBjaGFyKiBuYW1lKSAtPiBTdHJpbmcg
eworICAgICAgICAgICAgYXV0byBnZXRTdHJpbmdQcm9wZXJ0eSA9IFsmc2NvcGUsICZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAma2V5T2JqZWN0LCAmdm1dKEFTQ0lJTGl0ZXJhbCBuYW1lKSAtPiBTdHJp
bmcgewogICAgICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBrZXlPYmplY3QtPmdldCgmbGV4aWNh
bEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSkpOwogICAgICAg
ICAgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSB8fCAhdmFsdWUuaXNTdHJpbmcoKSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE0NSwyNSArMTQ1LDI1IEBAIGJvb2wg
Q0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoVWludDhBcnJheSogcmF3S2V5c0RhdGEsIFJlZlB0
cjxVaW50OEFycmF5PiYgbmV4CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICAg
ICAgICAgIH07CiAKLSAgICAgICAgICAgIGF1dG8gYWxnb3JpdGhtID0gZ2V0U3RyaW5nUHJvcGVy
dHkoImFsZyIpOworICAgICAgICAgICAgYXV0byBhbGdvcml0aG0gPSBnZXRTdHJpbmdQcm9wZXJ0
eSgiYWxnIl9zKTsKICAgICAgICAgICAgIGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoYWxnb3JpdGhtLCAiYTEyOGt3IikpIHsKICAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJD
RE1TZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZSglcCkgLSBmYWlsZWQ6IGFsZ29yaXRobSB1bnN1cHBv
cnRlZCIsIHRoaXMpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICBhdXRvIGtleVR5cGUgPSBnZXRTdHJpbmdQcm9wZXJ0eSgia3R5Iik7Cisg
ICAgICAgICAgICBhdXRvIGtleVR5cGUgPSBnZXRTdHJpbmdQcm9wZXJ0eSgia3R5Il9zKTsKICAg
ICAgICAgICAgIGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoa2V5VHlwZSwgIm9j
dCIpKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp1
cGRhdGUoJXApIC0gZmFpbGVkOiBrZXlUeXBlIHVuc3VwcG9ydGVkIiwgdGhpcyk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8ga2V5
SWQgPSBnZXRTdHJpbmdQcm9wZXJ0eSgia2lkIik7CisgICAgICAgICAgICBhdXRvIGtleUlkID0g
Z2V0U3RyaW5nUHJvcGVydHkoImtpZCJfcyk7CiAgICAgICAgICAgICBpZiAoa2V5SWQuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp1
cGRhdGUoJXApIC0gZmFpbGVkOiBrZXlJZCBtaXNzaW5nIG9yIGVtcHR5IiwgdGhpcyk7CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8g
cmF3S2V5RGF0YSA9IGdldFN0cmluZ1Byb3BlcnR5KCJrIik7CisgICAgICAgICAgICBhdXRvIHJh
d0tleURhdGEgPSBnZXRTdHJpbmdQcm9wZXJ0eSgiayJfcyk7CiAgICAgICAgICAgICBpZiAocmF3
S2V5RGF0YS5pc0VtcHR5KCkpICB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vz
c2lvbkNsZWFyS2V5Ojp1cGRhdGUoJXApIC0gZmFpbGVkOiBrZXkgbWlzc2luZyBvciBlbXB0eSIs
IHRoaXMpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVz
dGJpbmRpbmdzLmNwcAppbmRleCAwYmY3NGUxMjg1NDRjOWQ2ZjIzYWNjMmFjZWYxMzlkZDU3MGU1
ZTZhLi4yYjQ3OTk1YmNmODFmNTM2ODU1YmIyMDNhYTU5NzdhYzcwNzViZTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdGJpbmRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvdGVzdGJpbmRpbmdzLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgCiAgICAgICAgIE15T2JqZWN0ICpteU9i
amVjdCA9IChNeU9iamVjdCAqKU5QTl9DcmVhdGVPYmplY3QgKG15RnVuY3Rpb25QdHJzKTsKICAg
ICAgICAgCi0gICAgICAgIGdsb2JhbC5wdXQobGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0LCAibXlJbnRlcmZhY2UiKSwgSW5zdGFu
Y2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OkNMYW5ndWFnZSwgKHZvaWQgKilteU9i
amVjdCkpOworICAgICAgICBnbG9iYWwucHV0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgIm15SW50ZXJmYWNlIl9zKSwgSW5z
dGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OkNMYW5ndWFnZSwgKHZvaWQgKilt
eU9iamVjdCkpOwogICAgICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyBp
KyspIHsKICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvZGUgPSByZWFkSmF2YVNjcmlwdEZyb21G
aWxlKGFyZ3ZbaV0pOwpAQCAtMzk2LDcgKzM5Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICoqYXJndikKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gY3N0cmluZy5k
YXRhKCk7CiAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lbm8gPSAtMTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGV4VmFsLnR5cGUoKSA9PSBPYmplY3RUeXBlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZSBsaW5lVmFsID0gT2JqZWN0OjpkeW5hbWljQ2FzdChleFZhbCkuZ2V0
KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2Jh
bE9iamVjdCwgImxpbmUiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSBsaW5lVmFs
ID0gT2JqZWN0OjpkeW5hbWljQ2FzdChleFZhbCkuZ2V0KGxleGljYWxHbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgImxpbmUiX3MpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lVmFsLnR5cGUoKSA9PSBOdW1iZXJUeXBlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubyA9IGludChsaW5lVmFsLnRvTnVtYmVy
KGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS90ZXN0YmluZGluZ3MubW0KaW5kZXggMWQ2MWMzYzQ1ZjNmY2MyNjhhZjIxZDExYzk1
Y2E1NjE3Y2U4NGM0MC4uYzYyYzRmOWM4ZGYyZGRmZmM1OTYyNmY3N2Q3YWViZTQ1NWFkMWQ1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdGJpbmRpbmdzLm1tCkBAIC0yMzgsNyArMjM4LDcgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgICAgICAgICBhdXRvIG15SW50
ZXJmYWNlID0gYWRvcHROUyhbW015Rmlyc3RJbnRlcmZhY2UgYWxsb2NdIGluaXRdKTsKIAotICAg
ICAgICAgICAgZ2xvYmFsLnB1dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3QsICJteUludGVyZmFjZSIpLCBJbnN0YW5jZTo6Y3Jl
YXRlUnVudGltZU9iamVjdChJbnN0YW5jZTo6T2JqZWN0aXZlQ0xhbmd1YWdlLCAodm9pZCAqKW15
SW50ZXJmYWNlLmdldCgpKSk7CisgICAgICAgICAgICBnbG9iYWwucHV0KGxleGljYWxHbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCwgIm15SW50
ZXJmYWNlIl9zKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6Ok9iamVj
dGl2ZUNMYW5ndWFnZSwgKHZvaWQgKilteUludGVyZmFjZS5nZXQoKSkpOwogCiAgICAgICAgICAg
ICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykgewogICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKmNvZGUgPSByZWFkSmF2YVNjcmlwdEZyb21GaWxlKGFyZ3ZbaV0pOwpAQCAtMjUyLDcg
KzI1Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKm1zZyA9IGV4VmFsLnRvU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3Qp
LmFzY2lpKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZW5vID0gLTE7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZXhWYWwudHlwZSgpID09IE9iamVjdFR5cGUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSBsaW5lVmFsID0gT2JqZWN0OjpkeW5hbWlj
Q2FzdChleFZhbCkuZ2V0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcobGV4aWNhbEdsb2JhbE9iamVjdCwgImxpbmUiKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWUgbGluZVZhbCA9IE9iamVjdDo6ZHluYW1pY0Nhc3QoZXhWYWwpLmdldChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9iYWxPYmpl
Y3QsICJsaW5lIl9zKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVWYWwu
dHlwZSgpID09IE51bWJlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp
bmVubyA9IGludChsaW5lVmFsLnRvTnVtYmVyKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9T
dWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
aW5kZXggOWQ2ZjQzMDM2NTk4MmQ2ZTk1MGU5YzFhNmExZDZiMmMxYTdkMzk2ZS4uNTJhOGEyY2E0
YTM5NWViNzcxOGQ4Yzc1OWZjYjdjN2Y3M2Y1NWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPj4gbm9ybWFsaXplQ3J5cHRvQWwK
IAogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4oYWxnb3JpdGhtSWRlbnRp
ZmllcikpIHsKICAgICAgICAgYXV0byBuZXdQYXJhbXMgPSBTdHJvbmc8SlNPYmplY3Q+KHZtLCBj
b25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUpKTsKLSAgICAgICAgbmV3UGFyYW1zLT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIiksIGpzU3RyaW5nKHZtLCBz
dGQ6OmdldDxTdHJpbmc+KGFsZ29yaXRobUlkZW50aWZpZXIpKSk7CisgICAgICAgIG5ld1BhcmFt
cy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSJfcyksIGpz
U3RyaW5nKHZtLCBzdGQ6OmdldDxTdHJpbmc+KGFsZ29yaXRobUlkZW50aWZpZXIpKSk7CiAgICAg
ICAgIAogICAgICAgICByZXR1cm4gbm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyhz
dGF0ZSwgbmV3UGFyYW1zLCBvcGVyYXRpb24pOwogICAgIH0KQEAgLTI0MSwxMSArMjQxLDExIEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4+IG5vcm1hbGl6ZUNyeXB0b0FsCiAgICAgICAgIHN3aXRjaCAoKmlkZW50aWZpZXIpIHsK
ICAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOiB7CiAgICAgICAg
ICAgICAvLyBSZW1vdmUgdGhpcyBoYWNrIG9uY2UgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTMzMyBpcyBmaXhlZC4KLSAgICAgICAgICAgIEpTVmFsdWUgbmFtZVZh
bHVlID0gdmFsdWUuZ2V0KCktPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJuYW1lIikpOwotICAgICAgICAgICAgSlNWYWx1ZSBwdWJsaWNWYWx1ZSA9IHZhbHVlLmdldCgp
LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicHVibGljIikpOworICAg
ICAgICAgICAgSlNWYWx1ZSBuYW1lVmFsdWUgPSB2YWx1ZS5nZXQoKS0+Z2V0KCZzdGF0ZSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpKTsKKyAgICAgICAgICAgIEpTVmFsdWUg
cHVibGljVmFsdWUgPSB2YWx1ZS5nZXQoKS0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgInB1YmxpYyJfcykpOwogICAgICAgICAgICAgSlNPYmplY3QqIG5ld1ZhbHVlID0g
Y29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKLSAgICAgICAgICAgIG5ld1ZhbHVlLT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIiksIG5hbWVWYWx1ZSk7
Ci0gICAgICAgICAgICBuZXdWYWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAicHVibGljS2V5IiksIHB1YmxpY1ZhbHVlKTsKKyAgICAgICAgICAgIG5ld1ZhbHVl
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIl9zKSwgbmFt
ZVZhbHVlKTsKKyAgICAgICAgICAgIG5ld1ZhbHVlLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJwdWJsaWNLZXkiX3MpLCBwdWJsaWNWYWx1ZSk7CiAKICAgICAgICAg
ICAgIGF1dG8gcGFyYW1zID0gY29udmVydERpY3Rpb25hcnk8Q3J5cHRvQWxnb3JpdGhtRWNkaEtl
eURlcml2ZVBhcmFtcz4oc3RhdGUsIG5ld1ZhbHVlKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBmZmJiZGI4ZWU3MWUz
OWIwMzA0ZTUzMjFhMGExNTU3ZWUxNTQxY2Q3Li40YjZkMGU1YjQ0NDcxNDY5MWY4ZDk3MDU2MDY4
NDgzYzY4OTBmMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTc2NDMsNyArNzY0Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGFnZVNj
YWxlRmFjdG9ySlNQcm9wZXJ0eSgpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXRDb250cm9sbGVySlNQcm9wZXJ0eSgicGFnZVNjYWxlRmFjdG9yIiwgSlNDOjpqc051
bWJlcihwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSkpOworICAgIHNldENvbnRyb2xsZXJKU1Byb3Bl
cnR5KCJwYWdlU2NhbGVGYWN0b3IiX3MsIEpTQzo6anNOdW1iZXIocGFnZS0+cGFnZVNjYWxlRmFj
dG9yKCkpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVVc2VzTFRSVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbkpTUHJvcGVydHkoKQpAQCAtNzY1MywxMCArNzY1MywxMCBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uSlNQcm9wZXJ0eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgdXNlc0xU
UlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25Qcm9wZXJ0eSA9IHBhZ2UtPnVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24oKSA9PSBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFI7
Ci0gICAgc2V0Q29udHJvbGxlckpTUHJvcGVydHkoInVzZXNMVFJVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIiwgSlNDOjpqc0Jvb2xlYW4odXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25Qcm9wZXJ0eSkpOworICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJ1c2VzTFRSVXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbiJfcywgSlNDOjpqc0Jvb2xlYW4odXNlc0xUUlVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb25Qcm9wZXJ0eSkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldENvbnRyb2xsZXJKU1Byb3BlcnR5KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwg
SlNDOjpKU1ZhbHVlIHByb3BlcnR5VmFsdWUpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENv
bnRyb2xsZXJKU1Byb3BlcnR5KEFTQ0lJTGl0ZXJhbCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSBwcm9wZXJ0eVZhbHVlKQogewogICAgIHNldHVwQW5kQ2FsbEpTKFt0aGlzLCBwcm9wZXJ0eU5h
bWUsIHByb3BlcnR5VmFsdWVdKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFNjcmlwdENvbnRyb2xsZXImLCBE
T01XcmFwcGVyV29ybGQmKSB7CiAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7
CkBAIC03ODY0LDEyICs3ODY0LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpnZXRDdXJy
ZW50TWVkaWFDb250cm9sc1N0YXR1cygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFDb250cm9sc01heGltdW1SaWdodENvbnRhaW5lckJ1dHRvbkNvdW50T3ZlcnJpZGUoc2l6ZV90
IGNvdW50KQogewotICAgIHNldENvbnRyb2xsZXJKU1Byb3BlcnR5KCJtYXhpbXVtUmlnaHRDb250
YWluZXJCdXR0b25Db3VudE92ZXJyaWRlIiwgSlNDOjpqc051bWJlcihjb3VudCkpOworICAgIHNl
dENvbnRyb2xsZXJKU1Byb3BlcnR5KCJtYXhpbXVtUmlnaHRDb250YWluZXJCdXR0b25Db3VudE92
ZXJyaWRlIl9zLCBKU0M6OmpzTnVtYmVyKGNvdW50KSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0TWVkaWFDb250cm9sc0hpZGVQbGF5YmFja1JhdGVzKGJvb2wgaGlkZVBsYXliYWNr
UmF0ZXMpCiB7Ci0gICAgc2V0Q29udHJvbGxlckpTUHJvcGVydHkoImhpZGVQbGF5YmFja1JhdGVz
IiwgSlNDOjpqc0Jvb2xlYW4oaGlkZVBsYXliYWNrUmF0ZXMpKTsKKyAgICBzZXRDb250cm9sbGVy
SlNQcm9wZXJ0eSgiaGlkZVBsYXliYWNrUmF0ZXMiX3MsIEpTQzo6anNCb29sZWFuKGhpZGVQbGF5
YmFja1JhdGVzKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBIVE1MTWVkaWFFbGVtZW50Ojpm
aWxlU2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IDA3Y2NkYjYyNGZiNzRmODVhY2RmZGVmMzNiZDAyYjJjZmU5ZWQwNDIuLjQ1YmJkOWI5MWYzMmZi
NjMwOWIwNzQ3ZjRmYWQ5OWNhZmQ4OTc5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC05NjMsNyArOTYzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRl
UGFnZVNjYWxlRmFjdG9ySlNQcm9wZXJ0eSgpOwogICAgIHZvaWQgdXBkYXRlVXNlc0xUUlVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb25KU1Byb3BlcnR5KCk7Ci0gICAgdm9pZCBzZXRDb250cm9s
bGVySlNQcm9wZXJ0eShjb25zdCBjaGFyKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICB2b2lkIHNldENv
bnRyb2xsZXJKU1Byb3BlcnR5KEFTQ0lJTGl0ZXJhbCwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIHZv
aWQgYWRkQmVoYXZpb3JSZXN0cmljdGlvbnNPbkVuZElmTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBo
YW5kbGVTZWVrVG9QbGF5YmFja1Bvc2l0aW9uKGRvdWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDAyMDczY2RjMzZh
NTM3ZjE0MGI4YjdmYTI2OTUwMWZmNmIyYmViYWEuLjg1NTU2MWRmMDE2ZmEyZTk0NDMwYmY4NzVh
NjJiMGU5MWM4NjhmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OmFkZFNlbGZUb0dsb2JhbE9iamVjdEluV29ybGQoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOwogICAgIEpTQzo6SlNM
b2NrSG9sZGVyIGxvY2sodm0pOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKLSAgICBnbG9iYWxPYmplY3QucHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJJbnNwZWN0b3JGcm9udGVuZEhvc3QiKSwgdG9KUzxJRExJbnRlcmZhY2U8
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Pj4oZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICp0aGlz
KSk7CisgICAgZ2xvYmFsT2JqZWN0LnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiSW5zcGVjdG9yRnJvbnRlbmRIb3N0Il9zKSwgdG9KUzxJRExJbnRlcmZhY2U8
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Pj4oZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICp0aGlz
KSk7CiAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgcmVwb3J0
RXhjZXB0aW9uKCZnbG9iYWxPYmplY3QsIHNjb3BlLmV4Y2VwdGlvbigpKTsKIH0KQEAgLTU0Nyw3
ICs1NDcsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2
ZW50JiBldmVudCwgVmVjdG9yPENvbnRleHRNZW51SXRlbQogICAgIEFTU0VSVChtX2Zyb250ZW5k
UGFnZSk7CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZnJvbnRlbmRQYWdlLT5tYWluRnJh
bWUoKS5zY3JpcHQoKS5nbG9iYWxPYmplY3QoZGVidWdnZXJXb3JsZCgpKTsKICAgICBhdXRvJiB2
bSA9IGdsb2JhbE9iamVjdC52bSgpOwotICAgIGF1dG8gdmFsdWUgPSBnbG9iYWxPYmplY3QuZ2V0
KCZnbG9iYWxPYmplY3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkluc3BlY3Rv
ckZyb250ZW5kQVBJIikpOworICAgIGF1dG8gdmFsdWUgPSBnbG9iYWxPYmplY3QuZ2V0KCZnbG9i
YWxPYmplY3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkluc3BlY3RvckZyb250
ZW5kQVBJIl9zKSk7CiAgICAgQVNTRVJUKHZhbHVlKTsKICAgICBBU1NFUlQodmFsdWUuaXNPYmpl
Y3QoKSk7CiAgICAgYXV0byogZnJvbnRlbmRBUElPYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3Bw
CmluZGV4IDQxZjMzYjEyNTFlYmQ2YjA3NDIzMjI0NzY4ZWNhNWJkMjJjZTBhYjAuLjcwYzM0MTIw
MWM0Mjg3Mzc5YTEyODYzMzA4NmE5Yzg1M2QzYjgzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC02Niw4ICs2Niw4IEBA
IEpTVmFsdWUgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEpTR2xvYmFsT2JqZWN0KiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQogc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RJbnRlcm5hbFBy
b3BlcnR5KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbmFtZSwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVj
dChleGVjKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgIm5hbWUiKSwganNTdHJpbmcodm0sIG5hbWUpKTsKLSAgICBvYmplY3QtPnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInZhbHVlIiksIHZhbHVlKTsKKyAgICBv
YmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3Mp
LCBqc1N0cmluZyh2bSwgbmFtZSkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUiX3MpLCB2YWx1ZSk7CiAgICAgcmV0dXJuIG9iamVj
dDsKIH0KIApAQCAtNzUsNTIgKzc1LDUyIEBAIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0SW50
ZXJuYWxQcm9wZXJ0eShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBjb25zdCBTCiBzdGF0
aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnRPcHRpb25zKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGV4ZWMsIGNvbnN0IFBheW1lbnRPcHRpb25zJiBwYXltZW50T3B0aW9ucykKIHsKICAgICBh
dXRvKiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICBvYmplY3QtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RQYXllck5hbWUi
KSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RQYXllck5hbWUpKTsKLSAgICBvYmpl
Y3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RQYXll
ckVtYWlsIiksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJFbWFpbCkpOwot
ICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVx
dWVzdFBheWVyUGhvbmUiKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RQYXllclBo
b25lKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJyZXF1ZXN0U2hpcHBpbmciKSwganNCb29sZWFuKHBheW1lbnRPcHRpb25zLnJlcXVlc3RT
aGlwcGluZykpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAic2hpcHBpbmdUeXBlIiksIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcocGF5bWVudE9wdGlvbnMuc2hpcHBpbmdUeXBlKSkpOworICAgIG9i
amVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVxdWVzdFBh
eWVyTmFtZSJfcyksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5ZXJOYW1lKSk7
CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJy
ZXF1ZXN0UGF5ZXJFbWFpbCJfcyksIGpzQm9vbGVhbihwYXltZW50T3B0aW9ucy5yZXF1ZXN0UGF5
ZXJFbWFpbCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAicmVxdWVzdFBheWVyUGhvbmUiX3MpLCBqc0Jvb2xlYW4ocGF5bWVudE9wdGlvbnMu
cmVxdWVzdFBheWVyUGhvbmUpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInJlcXVlc3RTaGlwcGluZyJfcyksIGpzQm9vbGVhbihwYXltZW50
T3B0aW9ucy5yZXF1ZXN0U2hpcHBpbmcpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNoaXBwaW5nVHlwZSJfcyksIGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocGF5bWVudE9wdGlvbnMuc2hpcHBp
bmdUeXBlKSkpOwogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIHN0YXRpYyBKU09iamVjdCogb2Jq
ZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMs
IGNvbnN0IFBheW1lbnRDdXJyZW5jeUFtb3VudCYgcGF5bWVudEN1cnJlbmN5QW1vdW50KQogewog
ICAgIGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3kiKSwg
anNTdHJpbmcodm0sIHBheW1lbnRDdXJyZW5jeUFtb3VudC5jdXJyZW5jeSkpOwotICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwganNT
dHJpbmcodm0sIHBheW1lbnRDdXJyZW5jeUFtb3VudC52YWx1ZSkpOworICAgIG9iamVjdC0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3kiX3MpLCBqc1N0
cmluZyh2bSwgcGF5bWVudEN1cnJlbmN5QW1vdW50LmN1cnJlbmN5KSk7CisgICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSJfcyksIGpzU3Ry
aW5nKHZtLCBwYXltZW50Q3VycmVuY3lBbW91bnQudmFsdWUpKTsKICAgICByZXR1cm4gb2JqZWN0
OwogfQogCiBzdGF0aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnRJdGVtKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGV4ZWMsIGNvbnN0IFBheW1lbnRJdGVtJiBwYXltZW50SXRlbSkKIHsKICAg
ICBhdXRvKiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICBvYmplY3Qt
PnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxhYmVsIiksIGpzU3Ry
aW5nKHZtLCBwYXltZW50SXRlbS5sYWJlbCkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYW1vdW50IiksIG9iamVjdEZvclBheW1lbnRDdXJy
ZW5jeUFtb3VudCh2bSwgZXhlYywgcGF5bWVudEl0ZW0uYW1vdW50KSk7Ci0gICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwZW5kaW5nIiksIGpzQm9v
bGVhbihwYXltZW50SXRlbS5wZW5kaW5nKSk7CisgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsYWJlbCJfcyksIGpzU3RyaW5nKHZtLCBwYXltZW50
SXRlbS5sYWJlbCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiYW1vdW50Il9zKSwgb2JqZWN0Rm9yUGF5bWVudEN1cnJlbmN5QW1vdW50KHZt
LCBleGVjLCBwYXltZW50SXRlbS5hbW91bnQpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInBlbmRpbmciX3MpLCBqc0Jvb2xlYW4ocGF5bWVu
dEl0ZW0ucGVuZGluZykpOwogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIHN0YXRpYyBKU09iamVj
dCogb2JqZWN0Rm9yUGF5bWVudFNoaXBwaW5nT3B0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGV4ZWMsIGNvbnN0IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgcGF5bWVudFNoaXBwaW5nT3B0aW9u
KQogewogICAgIGF1dG8qIG9iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAg
IG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQiKSwg
anNTdHJpbmcodm0sIHBheW1lbnRTaGlwcGluZ09wdGlvbi5pZCkpOwotICAgIG9iamVjdC0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibGFiZWwiKSwganNTdHJpbmco
dm0sIHBheW1lbnRTaGlwcGluZ09wdGlvbi5sYWJlbCkpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiYW1vdW50IiksIG9iamVjdEZvclBheW1l
bnRDdXJyZW5jeUFtb3VudCh2bSwgZXhlYywgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmFtb3VudCkp
OwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
c2VsZWN0ZWQiKSwganNCb29sZWFuKHBheW1lbnRTaGlwcGluZ09wdGlvbi5zZWxlY3RlZCkpOwor
ICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQi
X3MpLCBqc1N0cmluZyh2bSwgcGF5bWVudFNoaXBwaW5nT3B0aW9uLmlkKSk7CisgICAgb2JqZWN0
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsYWJlbCJfcyksIGpz
U3RyaW5nKHZtLCBwYXltZW50U2hpcHBpbmdPcHRpb24ubGFiZWwpKTsKKyAgICBvYmplY3QtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFtb3VudCJfcyksIG9iamVj
dEZvclBheW1lbnRDdXJyZW5jeUFtb3VudCh2bSwgZXhlYywgcGF5bWVudFNoaXBwaW5nT3B0aW9u
LmFtb3VudCkpOworICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAic2VsZWN0ZWQiX3MpLCBqc0Jvb2xlYW4ocGF5bWVudFNoaXBwaW5nT3B0aW9uLnNl
bGVjdGVkKSk7CiAgICAgcmV0dXJuIG9iamVjdDsKIH0KIAogc3RhdGljIEpTT2JqZWN0KiBvYmpl
Y3RGb3JQYXltZW50RGV0YWlsc01vZGlmaWVyKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGV4ZWMs
IGNvbnN0IFBheW1lbnREZXRhaWxzTW9kaWZpZXImIG1vZGlmaWVyKQogewogICAgIGF1dG8qIG9i
amVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3VwcG9ydGVkTWV0aG9kcyIpLCBqc1N0
cmluZyh2bSwgbW9kaWZpZXIuc3VwcG9ydGVkTWV0aG9kcykpOworICAgIG9iamVjdC0+cHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3VwcG9ydGVkTWV0aG9kcyJfcyks
IGpzU3RyaW5nKHZtLCBtb2RpZmllci5zdXBwb3J0ZWRNZXRob2RzKSk7CiAgICAgaWYgKG1vZGlm
aWVyLnRvdGFsKQotICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgInRvdGFsIiksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCAqbW9k
aWZpZXIudG90YWwpKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJ0b3RhbCJfcyksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVj
LCAqbW9kaWZpZXIudG90YWwpKTsKICAgICBpZiAoIW1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5
SXRlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8qIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMg
PSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbW9kaWZpZXIuYWRkaXRpb25hbERpc3BsYXlJdGVtcy5zaXplKCk7ICsr
aSkKICAgICAgICAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIGksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBtb2RpZmllci5hZGRpdGlvbmFs
RGlzcGxheUl0ZW1zW2ldKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiYWRkaXRpb25hbERpc3BsYXlJdGVtcyIpLCBhZGRpdGlvbmFs
RGlzcGxheUl0ZW1zKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJhZGRpdGlvbmFsRGlzcGxheUl0ZW1zIl9zKSwgYWRkaXRpb25hbERp
c3BsYXlJdGVtcyk7CiAgICAgfQogICAgIHJldHVybiBvYmplY3Q7CiB9CkBAIC0xMjgsMjUgKzEy
OCwyNSBAQCBzdGF0aWMgSlNPYmplY3QqIG9iamVjdEZvclBheW1lbnREZXRhaWxzTW9kaWZpZXIo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZXhlYywgYwogc3RhdGljIEpTT2JqZWN0KiBvYmplY3RG
b3JQYXltZW50RGV0YWlscyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBjb25zdCBQYXlt
ZW50RGV0YWlsc0luaXQmIHBheW1lbnREZXRhaWxzKQogewogICAgIGF1dG8qIG9iamVjdCA9IGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWQiKSwganNTdHJpbmcodm0sIHBheW1lbnREZXRhaWxz
LmlkKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJ0b3RhbCIpLCBvYmplY3RGb3JQYXltZW50SXRlbSh2bSwgZXhlYywgcGF5bWVudERldGFp
bHMudG90YWwpKTsKKyAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImlkIl9zKSwganNTdHJpbmcodm0sIHBheW1lbnREZXRhaWxzLmlkKSk7CisgICAg
b2JqZWN0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0b3RhbCJf
cyksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy50b3RhbCkp
OwogICAgIGlmIChwYXltZW50RGV0YWlscy5kaXNwbGF5SXRlbXMpIHsKICAgICAgICAgYXV0byog
ZGlzcGxheUl0ZW1zID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyKTsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBheW1lbnREZXRhaWxzLmRpc3BsYXlJdGVtcy0+
c2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBkaXNwbGF5SXRlbXMtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIGksIG9iamVjdEZvclBheW1lbnRJdGVtKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy5kaXNw
bGF5SXRlbXMtPmF0KGkpKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiZGlzcGxheUl0ZW1zIiksIGRpc3BsYXlJdGVtcyk7CisgICAg
ICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZGlz
cGxheUl0ZW1zIl9zKSwgZGlzcGxheUl0ZW1zKTsKICAgICB9CiAgICAgaWYgKHBheW1lbnREZXRh
aWxzLnNoaXBwaW5nT3B0aW9ucykgewogICAgICAgICBhdXRvKiBzaGlwcGluZ09wdGlvbnMgPSBj
b25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGF5bWVudERldGFpbHMuc2hpcHBpbmdPcHRpb25zLT5zaXplKCk7ICsraSkK
ICAgICAgICAgICAgIHNoaXBwaW5nT3B0aW9ucy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2Jq
ZWN0Rm9yUGF5bWVudFNoaXBwaW5nT3B0aW9uKHZtLCBleGVjLCBwYXltZW50RGV0YWlscy5zaGlw
cGluZ09wdGlvbnMtPmF0KGkpKSk7Ci0gICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hpcHBpbmdPcHRpb25zIiksIHNoaXBwaW5nT3B0aW9u
cyk7CisgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAic2hpcHBpbmdPcHRpb25zIl9zKSwgc2hpcHBpbmdPcHRpb25zKTsKICAgICB9CiAgICAg
aWYgKHBheW1lbnREZXRhaWxzLm1vZGlmaWVycykgewogICAgICAgICBhdXRvKiBtb2RpZmllcnMg
PSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcGF5bWVudERldGFpbHMubW9kaWZpZXJzLT5zaXplKCk7ICsraSkKICAg
ICAgICAgICAgIG1vZGlmaWVycy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgb2JqZWN0Rm9yUGF5
bWVudERldGFpbHNNb2RpZmllcih2bSwgZXhlYywgcGF5bWVudERldGFpbHMubW9kaWZpZXJzLT5h
dChpKSkpOwotICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm1vZGlmaWVycyIpLCBtb2RpZmllcnMpOworICAgICAgICBvYmplY3QtPnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1vZGlmaWVycyJfcyksIG1vZGlm
aWVycyk7CiAgICAgfQogICAgIHJldHVybiBvYmplY3Q7CiB9CkBAIC0xOTIsMTAgKzE5MiwxMCBA
QCBzdGF0aWMgSlNPYmplY3QqIG9iamVjdEZvckV2ZW50VGFyZ2V0TGlzdGVuZXJzKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGV4ZWMsIEV2ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgICAgICBhdXRvKiBwcm9wZXJ0aWVzRm9yTGlzdGVuZXIgPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChleGVjKTsKLSAgICAgICAgICAgIHByb3BlcnRpZXNGb3JMaXN0ZW5lci0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY2FsbGJhY2siKSwganNGdW5jdGlvbik7
Ci0gICAgICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgImNhcHR1cmUiKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXIt
PnVzZUNhcHR1cmUoKSkpOwotICAgICAgICAgICAgcHJvcGVydGllc0Zvckxpc3RlbmVyLT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwYXNzaXZlIiksIGpzQm9vbGVh
bihldmVudExpc3RlbmVyLT5pc1Bhc3NpdmUoKSkpOwotICAgICAgICAgICAgcHJvcGVydGllc0Zv
ckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJvbmNl
IiksIGpzQm9vbGVhbihldmVudExpc3RlbmVyLT5pc09uY2UoKSkpOworICAgICAgICAgICAgcHJv
cGVydGllc0Zvckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJjYWxsYmFjayJfcyksIGpzRnVuY3Rpb24pOworICAgICAgICAgICAgcHJvcGVydGllc0Zv
ckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjYXB0
dXJlIl9zKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPnVzZUNhcHR1cmUoKSkpOworICAgICAg
ICAgICAgcHJvcGVydGllc0Zvckxpc3RlbmVyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJwYXNzaXZlIl9zKSwganNCb29sZWFuKGV2ZW50TGlzdGVuZXItPmlzUGFz
c2l2ZSgpKSk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzRm9yTGlzdGVuZXItPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm9uY2UiX3MpLCBqc0Jvb2xlYW4oZXZlbnRM
aXN0ZW5lci0+aXNPbmNlKCkpKTsKICAgICAgICAgICAgIGxpc3RlbmVyc0ZvckV2ZW50LT5wdXRE
aXJlY3RJbmRleChleGVjLCBsaXN0ZW5lcnNGb3JFdmVudEluZGV4KyssIHByb3BlcnRpZXNGb3JM
aXN0ZW5lcik7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCBmNWQwMDI5ZDFkMGU5
ZjI5NjA5M2MzOTA3ZjY2NTcyNjEyZDY3MTYxLi45MzIzZTIwNmQxODA3MzI3M2YxMGQ5YzU0MGVl
ZjEzYzkzYjIwMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtNTAyLDEzICs1MDIsMTMgQEAgdm9p
ZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y29uc29sZVN0YXJ0UmVjb3JkaW5nQ2FudmFzKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmIGMKICAgICBSZWNvcmRpbmdPcHRpb25zIHJlY29yZGluZ09wdGlv
bnM7CiAgICAgaWYgKG9wdGlvbnMpIHsKICAgICAgICAgSlNDOjpWTSYgdm0gPSBleGVjLnZtKCk7
Ci0gICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uU2luZ2xlRnJhbWUgPSBvcHRpb25zLT5n
ZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNpbmdsZUZyYW1lIikp
KQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvblNpbmdsZUZyYW1lID0gb3B0aW9ucy0+
Z2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaW5nbGVGcmFtZSJf
cykpKQogICAgICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucy5mcmFtZUNvdW50ID0gb3B0aW9uU2lu
Z2xlRnJhbWUudG9Cb29sZWFuKCZleGVjKSA/IDEgOiAwOwotICAgICAgICBpZiAoSlNDOjpKU1Zh
bHVlIG9wdGlvbkZyYW1lQ291bnQgPSBvcHRpb25zLT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImZyYW1lQ291bnQiKSkpCisgICAgICAgIGlmIChKU0M6OkpTVmFs
dWUgb3B0aW9uRnJhbWVDb3VudCA9IG9wdGlvbnMtPmdldCgmZXhlYywgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAiZnJhbWVDb3VudCJfcykpKQogICAgICAgICAgICAgcmVjb3JkaW5n
T3B0aW9ucy5mcmFtZUNvdW50ID0gb3B0aW9uRnJhbWVDb3VudC50b051bWJlcigmZXhlYyk7Ci0g
ICAgICAgIGlmIChKU0M6OkpTVmFsdWUgb3B0aW9uTWVtb3J5TGltaXQgPSBvcHRpb25zLT5nZXQo
JmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1lbW9yeUxpbWl0IikpKQor
ICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvbk1lbW9yeUxpbWl0ID0gb3B0aW9ucy0+Z2V0
KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtZW1vcnlMaW1pdCJfcykp
KQogICAgICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucy5tZW1vcnlMaW1pdCA9IG9wdGlvbk1lbW9y
eUxpbWl0LnRvTnVtYmVyKCZleGVjKTsKLSAgICAgICAgaWYgKEpTQzo6SlNWYWx1ZSBvcHRpb25O
YW1lID0gb3B0aW9ucy0+Z2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJuYW1lIikpKQorICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIG9wdGlvbk5hbWUgPSBvcHRpb25z
LT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpKSkK
ICAgICAgICAgICAgIHJlY29yZGluZ09wdGlvbnMubmFtZSA9IG9wdGlvbk5hbWUudG9XVEZTdHJp
bmcoJmV4ZWMpOwogICAgIH0KICAgICBzdGFydFJlY29yZGluZygqaW5zcGVjdG9yQ2FudmFzLCBQ
cm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWF0b3I6OkNvbnNvbGUsIFdURk1vdmUocmVjb3JkaW5n
T3B0aW9ucykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmMDQ2Njg4MGU4OGJiMDEzZTQxODE3NWEwN2EwNTgy
MWZmZGJlZjc4Li5kMzg5ZWMwN2FlODdiYzk1YjU2ODA5ZThkYjgyNTkwODhlMDUyYTA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFn
ZW50LmNwcApAQCAtMTk5Niw3ICsxOTk2LDcgQEAgUmVmPFByb3RvY29sOjpET006OkV2ZW50TGlz
dGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIKICAg
ICAgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAg
ICAgICAgICAgICAgICAvLyBJZiB0aGUgaGFuZGxlciBpcyBub3QgYWN0dWFsbHkgYSBmdW5jdGlv
biwgc2VlIGlmIGl0IGltcGxlbWVudHMgdGhlIEV2ZW50TGlzdGVuZXIgaW50ZXJmYWNlIGFuZCB1
c2UgdGhhdC4KLSAgICAgICAgICAgICAgICBhdXRvIGhhbmRsZUV2ZW50VmFsdWUgPSBoYW5kbGVy
T2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJoYW5kbGVFdmVudCIpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGhhbmRsZUV2ZW50VmFsdWUg
PSBoYW5kbGVyT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJoYW5kbGVFdmVudCJfcykpOwogCiAgICAgICAgICAgICAgICAgaWYgKFVOTElL
RUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgICAgICAgICAgICAgc2NvcGUuY2xlYXJF
eGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlQXVkaXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwCmluZGV4IDE3NGQ1MTE5MzRiOTk3YjFiYTBmOTVjYWJl
MWMzMzY5MDg3OGVmZmQuLjY2YzY3MzU0MDY4Y2YxNGEzZjE1ZmI2MDBlMGU5M2JmY2NiZjUzYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVk
aXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VBdWRpdEFnZW50LmNwcApAQCAtODgsMTMgKzg4LDEzIEBAIHZvaWQgUGFnZUF1ZGl0QWdlbnQ6
OnBvcHVsYXRlQXVkaXRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjCiAgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCiAgICAgICAgIGlmIChK
U0M6OkpTVmFsdWUganNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QgPSB0b0pTTmV3
bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgSW5zcGVjdG9yQXVk
aXRBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjcmVhdGUoKnRoaXMpKSkKLSAgICAgICAgICAgIGF1ZGl0
T2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkFj
Y2Vzc2liaWxpdHkiKSwganNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QpOworICAg
ICAgICAgICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiQWNjZXNzaWJpbGl0eSJfcyksIGpzSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmls
aXR5T2JqZWN0KTsKIAogICAgICAgICBpZiAoSlNDOjpKU1ZhbHVlIGpzSW5zcGVjdG9yQXVkaXRE
T01PYmplY3QgPSB0b0pTTmV3bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdCwgSW5zcGVjdG9yQXVkaXRET01PYmplY3Q6OmNyZWF0ZSgqdGhpcykpKQotICAgICAgICAg
ICAgYXVkaXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAiRE9NIiksIGpzSW5zcGVjdG9yQXVkaXRET01PYmplY3QpOworICAgICAgICAgICAgYXVk
aXRPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
RE9NIl9zKSwganNJbnNwZWN0b3JBdWRpdERPTU9iamVjdCk7CiAKICAgICAgICAgaWYgKEpTQzo6
SlNWYWx1ZSBqc0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0ID0gdG9KU05ld2x5Q3JlYXRl
ZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIEluc3BlY3RvckF1ZGl0UmVzb3Vy
Y2VzT2JqZWN0OjpjcmVhdGUoKnRoaXMpKSkKLSAgICAgICAgICAgIGF1ZGl0T2JqZWN0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIlJlc291cmNlcyIpLCBq
c0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0KTsKKyAgICAgICAgICAgIGF1ZGl0T2JqZWN0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIlJlc291cmNl
cyJfcyksIGpzSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDM4YjU5NWJiNTJmYjNiNGM4ZjE1OWMw
MTc2NDg5MmRhMTAzZTg0OTkuLmE5MDkwZjdlYTFhMzQ5ZjQ4ZDczZjNjMzc2NTRlZTNmNjRmZTMy
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5Nyw4ICs0OTcsNiBA
QCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFByaW50Q29udGV4dD4mIHByaW50Q29udGV4dEZvclRl
c3RpbmcoKQogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1jb25zdCBjaGFyKiBJbnRlcm5hbHM6
OmludGVybmFsc0lkID0gImludGVybmFscyI7Ci0KIFJlZjxJbnRlcm5hbHM+IEludGVybmFsczo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnRlcm5hbHMoZG9jdW1lbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDkz
NDRjNmQwZjdkOTUyZjAwNTMwNGUxMTg3NzExM2IzMjc4NGZlYzUuLjE3N2Q5MDdhMjg1Y2Q5NmQx
MWJlYjgwYjU2YTJlYjVlNTVhMDUyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtNDI1LDcgKzQyNSw3IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGlzUGFn
ZUJveFZpc2libGUoaW50IHBhZ2VOdW1iZXIpOwogCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGlu
dGVybmFsc0lkOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIGludGVybmFsc0lk
ID0gImludGVybmFscyJfczsKIAogICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29u
c3Q7CiAgICAgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBi
OGQ4NTAyNjUwYzI1ZDk1MDY2ZmJhMjQzODJlNzMzMTFmNWUxODJmLi43MjM1OTEwZmJkYWJkY2Mx
ODczZDdlODU3ZmEzYmM0ZjY2OWZiODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6
SlNHbG9iYWxPYmplY3QmIGdsCiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gaW5wdXRQcm9wZXJ0
aWVzOwogCi0gICAgICAgIEpTVmFsdWUgaW5wdXRQcm9wZXJ0aWVzSXRlcmFibGVWYWx1ZSA9IHBh
aW50Q29uc3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAiaW5wdXRQcm9wZXJ0aWVzIikpOworICAgICAgICBKU1ZhbHVlIGlucHV0UHJvcGVydGll
c0l0ZXJhYmxlVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlucHV0UHJvcGVydGllcyJfcykpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH0pOwogCiAgICAgICAgIGlmICghaW5wdXRQcm9wZXJ0aWVzSXRlcmFibGVWYWx1ZS5pc1Vu
ZGVmaW5lZCgpKQpAQCAtMTAzLDcgKzEwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhaW50V29y
a2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsCiAK
ICAgICAgICAgVmVjdG9yPFN0cmluZz4gaW5wdXRBcmd1bWVudHM7CiAKLSAgICAgICAgSlNWYWx1
ZSBpbnB1dEFyZ3VtZW50c0l0ZXJhYmxlVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlucHV0QXJndW1lbnRzIikp
OworICAgICAgICBKU1ZhbHVlIGlucHV0QXJndW1lbnRzSXRlcmFibGVWYWx1ZSA9IHBhaW50Q29u
c3RydWN0b3ItPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
aW5wdXRBcmd1bWVudHMiX3MpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
RXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAogICAgICAgICBpZiAoIWlu
cHV0QXJndW1lbnRzSXRlcmFibGVWYWx1ZS5pc1VuZGVmaW5lZCgpKQpAQCAtMTEyLDcgKzExMiw3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBh
aW50KEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsCiAKICAgICAgICAgLy8gRklYTUU6IFBhcnNlIHN5
bnRheCBmb3IgaW5wdXRBcmd1bWVudHMgaGVyZSAoc3RlcHMgMTEgYW5kIDEyKS4KIAotICAgICAg
ICBKU1ZhbHVlIGNvbnRleHRPcHRpb25zVmFsdWUgPSBwYWludENvbnN0cnVjdG9yLT5nZXQoJmds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNvbnRleHRPcHRpb25zIikp
OworICAgICAgICBKU1ZhbHVlIGNvbnRleHRPcHRpb25zVmFsdWUgPSBwYWludENvbnN0cnVjdG9y
LT5nZXQoJmdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImNvbnRleHRP
cHRpb25zIl9zKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4Y2VwdGlv
biB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0T3B0aW9uc1ZhbHVlKTsKIApAQCAtMTI3LDcgKzEyNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpyZWdpc3RlclBhaW50KEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGdsCiAgICAgICAgIGlmICghcHJvdG90eXBlVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgc2Vjb25kIGFyZ3VtZW50IG11
c3QgaGF2ZSBhIHByb3RvdHlwZSB0aGF0IGlzIGFuIG9iamVjdCJfcyB9OwogCi0gICAgICAgIEpT
VmFsdWUgcGFpbnRWYWx1ZSA9IHByb3RvdHlwZVZhbHVlLmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicGFpbnQiKSk7CisgICAgICAgIEpTVmFsdWUgcGFpbnRW
YWx1ZSA9IHByb3RvdHlwZVZhbHVlLmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAicGFpbnQiX3MpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAogICAgICAgICBpZiAo
cGFpbnRWYWx1ZS5pc1VuZGVmaW5lZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCBlZTE2NDVlZjRlMGM4NDQ3NTc0MDNk
MmNkZTUxYWQ0YjExMzAyY2NiLi42NzQzOTQ0YTNlNmE4ODgxZjA4NDFjMDdlZTE5YTI5MjU1N2Ix
NmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0
aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0
aW5nQVBJLmNwcApAQCAtMTY1Myw3ICsxNjUzLDcgQEAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGpz
UmVzdWx0RnJvbVJlcGx5RGVjb2RlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QK
ICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMs
ICpqc1JlcGx5QXJndW1lbnRzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUs
IG51bGxwdHIpOwogCi0gICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAiYnVmZmVyIiksIGpzQXJyYXlCdWZmZXIpOworICAgIGpzUmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImJ1ZmZlciJf
cyksIGpzQXJyYXlCdWZmZXIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwg
bnVsbHB0cik7CiAKICAgICByZXR1cm4ganNSZXN1bHQ7CkBAIC0xOTgzLDE3ICsxOTgzLDE3IEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgY3JlYXRlSlNBcnJheUZvckFyZ3VtZW50RGVzY3JpcHRpb25z
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsCiAgICAgICAgIGFyZ3VtZW50c0FycmF5LT5wdXREaXJl
Y3RJbmRleChnbG9iYWxPYmplY3QsIGFyZ3VtZW50SW5kZXgsIGpzRGVzY3JpcHRpb25zKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpqc1REWlZhbHVlKCkpOwogCi0g
ICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgIm5hbWUiKSwgSlNDOjpqc1N0cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9u
Lm5hbWUpKSk7CisgICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpLCBKU0M6OmpzU3RyaW5nKHZtLCBTdHJp
bmcoZGVzY3JpcHRpb24ubmFtZSkpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNDOjpqc1REWlZhbHVlKCkpOwogCi0gICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJl
Y3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInR5cGUiKSwgSlNDOjpqc1N0
cmluZyh2bSwgU3RyaW5nKGRlc2NyaXB0aW9uLnR5cGUpKSk7CisgICAgICAgIGpzRGVzY3JpcHRp
b25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInR5cGUi
X3MpLCBKU0M6OmpzU3RyaW5nKHZtLCBTdHJpbmcoZGVzY3JpcHRpb24udHlwZSkpKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpqc1REWlZhbHVlKCkpOwogCi0gICAg
ICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm9wdGlvbmFsIiksIEpTQzo6anNCb29sZWFuKGRlc2NyaXB0aW9uLmlzT3B0aW9u
YWwpKTsKKyAgICAgICAganNEZXNjcmlwdGlvbnMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAib3B0aW9uYWwiX3MpLCBKU0M6OmpzQm9vbGVhbihkZXNjcmlw
dGlvbi5pc09wdGlvbmFsKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpT
Qzo6anNURFpWYWx1ZSgpKTsKIAogICAgICAgICBpZiAoZGVzY3JpcHRpb24uZW51bU5hbWUpIHsK
LSAgICAgICAgICAgIGpzRGVzY3JpcHRpb25zLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImVudW0iKSwgSlNDOjpqc1N0cmluZyh2bSwgU3RyaW5nKGRlc2Ny
aXB0aW9uLmVudW1OYW1lKSkpOworICAgICAgICAgICAganNEZXNjcmlwdGlvbnMtPnB1dERpcmVj
dCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZW51bSJfcyksIEpTQzo6anNT
dHJpbmcodm0sIFN0cmluZyhkZXNjcmlwdGlvbi5lbnVtTmFtZSkpKTsKICAgICAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgpKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTIwMTYsOSArMjAxNiw5IEBAIEpTVmFsdWVSZWYgSlNJUEM6Om1lc3NhZ2VzKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluCiAgICAg
SlNDOjpKU09iamVjdCogbWVzc2FnZXNPYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKIAotICAg
IGF1dG8gbmFtZUlkZW50ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSIp
OwotICAgIGF1dG8gcmVwbHlBcmd1bWVudHNJZGVudCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgInJlcGx5QXJndW1lbnRzIik7Ci0gICAgYXV0byBpc1N5bmNJZGVudCA9IEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlzU3luYyIpOworICAgIGF1dG8gbmFtZUlkZW50
ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibmFtZSJfcyk7CisgICAgYXV0byBy
ZXBseUFyZ3VtZW50c0lkZW50ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicmVw
bHlBcmd1bWVudHMiX3MpOworICAgIGF1dG8gaXNTeW5jSWRlbnQgPSBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJpc1N5bmMiX3MpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSVBDOjpNZXNzYWdlTmFtZTo6TGFzdCk7ICsraSkgewog
ICAgICAgICBhdXRvIG5hbWUgPSBzdGF0aWNfY2FzdDxJUEM6Ok1lc3NhZ2VOYW1lPihpKTsKIApA
QCAtMjA0Myw3ICsyMDQzLDcgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4KICAgICAgICAgZGlj
dGlvbmFyeS0+cHV0RGlyZWN0KHZtLCBpc1N5bmNJZGVudCwgSlNDOjpqc0Jvb2xlYW4obWVzc2Fn
ZUlzU3luYyhuYW1lKSkpOyAgICAgICAgICAgIAogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7CiAKLSAgICAgICAgbWVzc2Fn
ZXNPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBk
ZXNjcmlwdGlvbihuYW1lKSksIGRpY3Rpb25hcnkpOworICAgICAgICBtZXNzYWdlc09iamVjdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21DU3RyaW5nKHZtLCBkZXNjcmlwdGlv
bihuYW1lKSksIGRpY3Rpb25hcnkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7CiAgICAgfQogCkBAIC0yMTM4LDI0ICsy
MTM4LDI0IEBAIEpTQzo6SlNPYmplY3QqIEpTTWVzc2FnZUxpc3RlbmVyOjpqc0Rlc2NyaXB0aW9u
RnJvbURlY29kZXIoSlNDOjpKU0dsb2JhbE9iamVjdCoKICAgICBhdXRvKiBqc1Jlc3VsdCA9IGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90
b3R5cGUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAg
ICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJuYW1lIiksIEpTQzo6SlNWYWx1ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVjb2Rlci5tZXNz
YWdlTmFtZSgpKSkpOworICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgIm5hbWUiX3MpLCBKU0M6OkpTVmFsdWUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGRlY29kZXIubWVzc2FnZU5hbWUoKSkpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKIAotICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImRlc2NyaXB0aW9uIiksIEpTQzo6anNTdHJpbmcodm0s
IElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSkpOworICAgIGpzUmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImRlc2NyaXB0
aW9uIl9zKSwgSlNDOjpqc1N0cmluZyh2bSwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAK
LSAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJkZXN0aW5hdGlvbklEIiksIEpTQzo6SlNWYWx1ZShkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSkpOworICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImRlc3RpbmF0aW9uSUQiX3MpLCBKU0M6OkpTVmFsdWUoZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAog
ICAgIGlmIChkZWNvZGVyLmlzU3luY01lc3NhZ2UoKSkgewogICAgICAgICBJUEM6OkNvbm5lY3Rp
b246OlN5bmNSZXF1ZXN0SUQgc3luY1JlcXVlc3RJRDsKICAgICAgICAgaWYgKGRlY29kZXIuZGVj
b2RlKHN5bmNSZXF1ZXN0SUQpKSB7Ci0gICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzeW5jUmVxdWVzdElEIiksIEpTQzo6
SlNWYWx1ZShzeW5jUmVxdWVzdElELnRvVUludDY0KCkpKTsKKyAgICAgICAgICAgIGpzUmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInN5bmNSZXF1
ZXN0SUQiX3MpLCBKU0M6OkpTVmFsdWUoc3luY1JlcXVlc3RJRC50b1VJbnQ2NCgpKSk7CiAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSBpZiAobWVzc2FnZVJlcGx5QXJndW1lbnREZXNjcmlwdGlvbnMoZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpKSkgewogICAgICAgICBpZiAodWludDY0X3QgbGlzdGVuZXJJRCA9IDA7IGRl
Y29kZXIuZGVjb2RlKGxpc3RlbmVySUQpKSB7Ci0gICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGly
ZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsaXN0ZW5lcklEIiksIEpT
Qzo6SlNWYWx1ZShsaXN0ZW5lcklEKSk7CisgICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsaXN0ZW5lcklEIl9zKSwgSlND
OjpKU1ZhbHVlKGxpc3RlbmVySUQpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE2Myw3ICsyMTYzLDcgQEAg
SlNDOjpKU09iamVjdCogSlNNZXNzYWdlTGlzdGVuZXI6OmpzRGVzY3JpcHRpb25Gcm9tRGVjb2Rl
cihKU0M6OkpTR2xvYmFsT2JqZWN0KgogICAgIGF1dG8gYXJyYXlCdWZmZXIgPSBKU0M6OkFycmF5
QnVmZmVyOjpjcmVhdGUoZGVjb2Rlci5idWZmZXIoKSwgZGVjb2Rlci5sZW5ndGgoKSk7CiAgICAg
aWYgKGF1dG8qIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUo
YXJyYXlCdWZmZXItPnNoYXJpbmdNb2RlKCkpKSB7CiAgICAgICAgIGlmIChhdXRvKiBqc0FycmF5
QnVmZmVyID0gSlNDOjpKU0FycmF5QnVmZmVyOjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgV1RGTW92
ZShhcnJheUJ1ZmZlcikpKSB7Ci0gICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBK
U0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJidWZmZXIiKSwganNBcnJheUJ1ZmZlcik7
CisgICAgICAgICAgICBqc1Jlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJidWZmZXIiX3MpLCBqc0FycmF5QnVmZmVyKTsKICAgICAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9CiAgICAgfQpAQCAt
MjE4Niw3ICsyMTg2LDcgQEAgdm9pZCBpbmplY3QoV2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUm
IHdlYkZyYW1lLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmIHdvcmwKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgYXV0byB3cmFwcGVkID0gSlNJUEM6OmNy
ZWF0ZSh3ZWJQYWdlLCB3ZWJGcmFtZSk7CiAgICAgSlNPYmplY3RSZWYgd3JhcHBlck9iamVjdCA9
IEpTT2JqZWN0TWFrZSh0b0dsb2JhbFJlZihnbG9iYWxPYmplY3QpLCBKU0lQQzo6d3JhcHBlckNs
YXNzKCksIHdyYXBwZWQucHRyKCkpOwotICAgIGdsb2JhbE9iamVjdC0+cHV0RGlyZWN0KHZtLCBK
U0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJJUEMiKSwgdG9KUyhnbG9iYWxPYmplY3Qs
IHdyYXBwZXJPYmplY3QpKTsKKyAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSVBDIl9zKSwgdG9KUyhnbG9iYWxPYmplY3QsIHdy
YXBwZXJPYmplY3QpKTsKIAogICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>