<?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>168420</bug_id>
          
          <creation_ts>2017-02-16 04:07:48 -0800</creation_ts>
          <short_desc>[JSC] Drop PassRefPtr in inspector/</short_desc>
          <delta_ts>2017-02-16 11:00:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1277599</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-16 04:07:48 -0800</bug_when>
    <thetext>[JSC] Drop PassRefPtr in inspector/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277602</commentid>
    <comment_count>1</comment_count>
      <attachid>301741</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-16 04:15:43 -0800</bug_when>
    <thetext>Created attachment 301741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277603</commentid>
    <comment_count>2</comment_count>
      <attachid>301742</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-16 04:16:29 -0800</bug_when>
    <thetext>Created attachment 301742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277664</commentid>
    <comment_count>3</comment_count>
      <attachid>301767</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-16 08:16:58 -0800</bug_when>
    <thetext>Created attachment 301767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277748</commentid>
    <comment_count>4</comment_count>
      <attachid>301767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 10:51:21 -0800</bug_when>
    <thetext>Comment on attachment 301767
Patch

Clearing flags on attachment: 301767

Committed r212448: &lt;http://trac.webkit.org/changeset/212448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277749</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 10:51:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277752</commentid>
    <comment_count>6</comment_count>
      <attachid>301767</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-02-16 11:00:35 -0800</bug_when>
    <thetext>Comment on attachment 301767
Patch

Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301741</attachid>
            <date>2017-02-16 04:15:43 -0800</date>
            <delta_ts>2017-02-16 04:16:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168420-20170216211305.patch</filename>
            <type>text/plain</type>
            <size>80353</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjRkZGZjMWQ1M2VkNGMyNzdiYWE5YTA4N2ViMGJmYzAzNTMwMTcwLi45MWJlYTQxN2VkNzcyY2M2
NzdlNDU5MGI0MGFiZWQwOTgxNzVlOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MCBAQAorMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5zcGVjdG9yLworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBQYXNzUmVm
UHRyIHVzZXMuCisgICAgICAgIEFuZCB1c2UgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRz
PiBhbmQgUmVmPFNjcmlwdENhbGxTdGFjaz4gYXMgbXVjaCBhcyBwb3NzaWJsZS4KKyAgICAgICAg
SXQgZHJvcHMgc29tZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrcy4KKworICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6Omhhc0JyZWFrcG9pbnQp
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKToKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0
YWNrVHJhY2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpBc3luY1N0YWNrVHJhY2U6OmNyZWF0
ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFja1RyYWNl
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6QXN5bmNTdGFja1RyYWNlOjpidWlsZEluc3BlY3Rvck9i
amVjdCk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6dHJ1bmNhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAgICAg
ICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdl
cik6CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRT
Y3JpcHRIb3N0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lRW5kKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ6Ondhcm5VbmltcGxlbWVudGVkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgIENvbnNvbGVDbGllbnQg
bm93IHRha2VzIFJlZjxTY3JpcHRBcmd1bWVudD4mJiBpbnN0ZWFkIG9mIFJlZlB0cjxTY3JpcHRB
cmd1bWVudD4mJi4KKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZSk6CisgICAgICAgIChJbnNwZWN0b3I6
OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkpTSmF2YVNjcmlwdENhbGxGcmFtZTo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1l
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6dG9KUyk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2
YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0phdmFTY3JpcHRDYWxs
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0
Q2FsbEZyYW1lKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNjcmlwdENhbGxGcmFtZTo6Y2Fs
bGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAg
ICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlw
dERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAoSW5zcGVj
dG9yOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVzZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb25PckNhdWdodFZhbHVlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyk6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkU2NoZWR1bGVBc3luY0NhbGwpOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGll
bnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q29u
c29sZUNsaWVudDo6aW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIChK
U0M6OkNvbnNvbGVDbGllbnQ6OmxvZ1dpdGhMZXZlbCk6CisgICAgICAgIChKU0M6OkNvbnNvbGVD
bGllbnQ6OmRpcik6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OmRpclhNTCk6CisgICAg
ICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OnRhYmxlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNs
aWVudDo6dHJhY2UpOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojphc3NlcnRpb24pOgor
ICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojpncm91cCk6CisgICAgICAgIChKU0M6OkNvbnNv
bGVDbGllbnQ6Omdyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6
Z3JvdXBFbmQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNvbnNvbGVMb2dXaXRo
TGV2ZWwpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyKToKKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0RpclhNTCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNUYWJsZSk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUcmFjZSk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNBc3NlcnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJv
dG9GdW5jQ291bnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKToK
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKToKKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKToKKwogMjAxNy0wMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHRoZSBidWlsZCBhZnRl
ciByMjEyNDI0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhjOTlmYWEyOWMzMGZlMzFlZjBmNjkxYTQ5NmNhMGVm
Y2MxM2E2YmEuLmUzN2ZkMTExMzdjZTgxZWUxYWRjZjJlZWY2MGFlYTQwYTIzYjcxMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5z
cGVjdG9yLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY4NDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYW5kIFJlZjxTY3JpcHRDYWxsU3Rh
Y2s+IGFzIG11Y2ggYXMgcG9zc2libGUuCisgICAgICAgIEl0IGRyb3BzIHNvbWUgdW5uZWNlc3Nh
cnkgbnVsbCBjaGVja3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbFdpdGgpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQ2FsbGVy
KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5n
RXhjZXB0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29s
ZUNvdW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnN0b3BDb25zb2xlVGltaW5nSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmJ1aWxkSW5pdGlhdG9yT2JqZWN0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCk6CisgICAgICAgICogaW5z
cGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3Nh
Z2VUaW1lckZpcmVkKToKKyAgICAgICAgV2UgZGlzcGF0Y2ggYXBwcm9wcmlhdGUgYWRkTWVzc2Fn
ZSBmdW5jdGlvbiBhY2NvcmRpbmcgdG8gd2hldGhlcgorICAgICAgICBgdGltZXIuc3RhY2tUcmFj
ZSgpYCBpcyBudWxscHRyLgorCisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNv
bGVDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFkZE1l
c3NhZ2UpOgorCiAyMDE3LTAyLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTIzMTEpOiBOVUxMLWRlcmVmZXJlbmNlIGluIEhUTUxN
ZWRpYUVsZW1lbnQ6OnByZXBhcmVUb1BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlci5jcHAKaW5kZXggZDQ3NzhlZjE3MmM3MzBjYTdjMGFmYjI3MTU0MGMzNjE4
YzI2ZWI2OC4uOGU3MGZiYzZkNWY1Mjc3ZTQyODU5ZTM1NDgyYTRlYzg2ZDNiYjg5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC01MDIsOSArNTAy
LDkgQEAgYm9vbCBEZWJ1Z2dlcjo6aGFzQnJlYWtwb2ludChTb3VyY2VJRCBzb3VyY2VJRCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbiwgQnIKICAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBw
YXVzZWRTdGF0ZSgqdGhpcyk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKKyAgICBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUg
PSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKTsKICAgICBKU09iamVjdCogc2NvcGVFeHRlbnNp
b25PYmplY3QgPSBudWxscHRyOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZGVidWdnZXJDYWxsRnJh
bWUtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGJyZWFrcG9pbnQtPmNvbmRpdGlvbiwgc2Nv
cGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBkZWJ1
Z2dlckNhbGxGcmFtZS5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihicmVha3BvaW50LT5jb25k
aXRpb24sIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRpb24pOwogCiAgICAgLy8gV2UgY2Fu
IGxvc2UgdGhlIGRlYnVnZ2VyIHdoaWxlIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIGlmICgh
bV9jdXJyZW50Q2FsbEZyYW1lKQpAQCAtOTExLDExICs5MTEsMTEgQEAgdm9pZCBEZWJ1Z2dlcjo6
ZGlkUmVhY2hCcmVha3BvaW50KENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHVwZGF0ZUNhbGxG
cmFtZShjYWxsRnJhbWUsIEF0dGVtcHRQYXVzZSk7CiB9CiAKLURlYnVnZ2VyQ2FsbEZyYW1lKiBE
ZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCkKK0RlYnVnZ2VyQ2FsbEZyYW1lJiBE
ZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCkKIHsKICAgICBpZiAoIW1fY3VycmVu
dERlYnVnZ2VyQ2FsbEZyYW1lKQogICAgICAgICBtX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSA9
IERlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICByZXR1
cm4gbV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUuZ2V0KCk7CisgICAgcmV0dXJuICptX2N1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZTsKIH0KIAogYm9vbCBEZWJ1Z2dlcjo6aXNCbGFja2xpc3RlZChT
b3VyY2VJRCBzb3VyY2VJRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyLmgKaW5kZXggZmE2ZDMxZWExYzAzM2NiMDA5YmU2MWY2MTliYmExYmNkN2I2OTc4ZS4u
M2Y1MWJiNDJkYmY4MGVlZjBhYjQ1MmI2OWRkYTI2YTNiZjQ3ZDA3OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgSlNf
RVhQT1JUX1BSSVZBVEUgRGVidWdnZXIgewogCiAgICAgVk0mIHZtKCkgeyByZXR1cm4gbV92bTsg
fQogCi0gICAgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSogY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7CisgICAgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7CiAgICAgYm9vbCBoYXNIYW5kbGVyRm9yRXhjZXB0aW9uQ2FsbGJhY2soKSBjb25zdAogICAg
IHsKICAgICAgICAgQVNTRVJUKG1fcmVhc29uRm9yUGF1c2UgPT0gUGF1c2VkRm9yRXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFj
a1RyYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFja1Ry
YWNlLmNwcAppbmRleCA4ODBhMzYyZDBlN2ZkYzU3MWZmMDM5OTQyNzg2MGIzOTYyNjBmYmFjLi40
MDAyOTY0YWNmMDQyNGQwNTU4YjAzMmY1YTQ1MDM2YmQ5NWE4OTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKLVJlZlB0cjxBc3luY1N0YWNr
VHJhY2U+IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaywgYm9vbCBzaW5nbGVTaG90LCBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBwYXJlbnQp
CitSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBBc3luY1N0YWNrVHJhY2U6OmNyZWF0ZShSZWY8U2Ny
aXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaywgYm9vbCBzaW5nbGVTaG90LCBSZWZQdHI8QXN5bmNT
dGFja1RyYWNlPiBwYXJlbnQpCiB7Ci0gICAgQVNTRVJUKGNhbGxTdGFjayAmJiBjYWxsU3RhY2st
PnNpemUoKSk7CisgICAgQVNTRVJUKGNhbGxTdGFjay0+c2l6ZSgpKTsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBc3luY1N0YWNrVHJhY2UoV1RGTW92ZShjYWxsU3RhY2spLCBzaW5nbGVTaG90
LCBXVEZNb3ZlKHBhcmVudCkpKTsKIH0KIAotQXN5bmNTdGFja1RyYWNlOjpBc3luY1N0YWNrVHJh
Y2UoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBib29sIHNpbmdsZVNob3QsIFJl
ZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBhcmVudCkKLSAgICA6IG1fY2FsbFN0YWNrKGNhbGxTdGFj
aykKK0FzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFja1RyYWNlKFJlZjxTY3JpcHRDYWxsU3RhY2s+
JiYgY2FsbFN0YWNrLCBib29sIHNpbmdsZVNob3QsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBh
cmVudCkKKyAgICA6IG1fY2FsbFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKICAgICAsIG1fcGFy
ZW50KHBhcmVudCkKICAgICAsIG1fc2luZ2xlU2hvdChzaW5nbGVTaG90KQogewpAQCAtMTA0LDgg
KzEwNCw4IEBAIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpTdGFja1RyYWNl
PiBBc3luY1N0YWNrVHJhY2U6OmJ1aWxkSW5zcGVjdG9yCiAKICAgICBhdXRvKiBzdGFja1RyYWNl
ID0gdGhpczsKICAgICB3aGlsZSAoc3RhY2tUcmFjZSkgewotICAgICAgICBhdXRvIGNhbGxTdGFj
ayA9IHN0YWNrVHJhY2UtPm1fY2FsbFN0YWNrOwotICAgICAgICBBU1NFUlQoY2FsbFN0YWNrICYm
IGNhbGxTdGFjay0+c2l6ZSgpKTsKKyAgICAgICAgYXV0byYgY2FsbFN0YWNrID0gc3RhY2tUcmFj
ZS0+bV9jYWxsU3RhY2s7CisgICAgICAgIEFTU0VSVChjYWxsU3RhY2stPnNpemUoKSk7CiAKICAg
ICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNvbnNvbGU6OlN0YWNrVHJhY2U+IHBy
b3RvY29sT2JqZWN0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6U3RhY2tUcmFjZTo6
Y3JlYXRlKCkKICAgICAgICAgICAgIC5zZXRDYWxsRnJhbWVzKGNhbGxTdGFjay0+YnVpbGRJbnNw
ZWN0b3JBcnJheSgpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgQXN5bmNTdGFja1RyYWNlOjp0
cnVuY2F0ZShzaXplX3QgbWF4RGVwdGgpCiAgICAgYXV0byogY3VycmVudE5vZGUgPSBsYXN0VW5s
b2NrZWRBbmNlc3RvcjsKICAgICB3aGlsZSAoY3VycmVudE5vZGUtPm1fcGFyZW50KSB7CiAgICAg
ICAgIGF1dG8mIHBhcmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+bV9wYXJlbnQ7Ci0gICAgICAgIGN1
cnJlbnROb2RlLT5tX3BhcmVudCA9IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKHBhcmVudE5vZGUt
Pm1fY2FsbFN0YWNrLCB0cnVlLCBwYXJlbnROb2RlLT5tX3BhcmVudCk7CisgICAgICAgIGN1cnJl
bnROb2RlLT5tX3BhcmVudCA9IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKHBhcmVudE5vZGUtPm1f
Y2FsbFN0YWNrLmNvcHlSZWYoKSwgdHJ1ZSwgcGFyZW50Tm9kZS0+bV9wYXJlbnQpOwogICAgICAg
ICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT5tX3BhcmVudC5nZXQoKTsKIAogICAgICAgICBp
ZiAocGFyZW50Tm9kZS5nZXQoKSA9PSBuZXdTdGFja1RyYWNlUm9vdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFja1RyYWNlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5oCmluZGV4IDI5MDk2NzJk
YWIzMjhlMzBhY2NmMzJhMzM1MGQ5NmVkODE2NmE1MzQuLmE2MThmZTdhZmYxZjZkNTEwYWE0NTBj
MzMwYjdhMTgwZTMwZmJhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQXN5bmNTdGFja1RyYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Bc3luY1N0YWNrVHJhY2UuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBBc3luY1N0YWNrVHJhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxBc3luY1N0YWNrVHJh
Y2U+IHsKICAgICAgICAgQ2FuY2VsZWQsCiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWZQdHI8QXN5
bmNTdGFja1RyYWNlPiBjcmVhdGUoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGJvb2wgc2luZ2xl
U2hvdCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50KTsKKyAgICBzdGF0aWMgUmVmUHRy
PEFzeW5jU3RhY2tUcmFjZT4gY3JlYXRlKFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYsIGJvb2wgc2lu
Z2xlU2hvdCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50KTsKIAogICAgIGJvb2wgaXNQ
ZW5kaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0OwpAQCAtNTYsMTIgKzU2
LDEyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEFzeW5jU3RhY2tUcmFjZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFzeW5jU3RhY2tUcmFjZT4gewogICAgIH5Bc3luY1N0YWNrVHJhY2UoKTsKIAog
cHJpdmF0ZToKLSAgICBBc3luY1N0YWNrVHJhY2UoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGJv
b2wsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+KTsKKyAgICBBc3luY1N0YWNrVHJhY2UoUmVmPFNj
cmlwdENhbGxTdGFjaz4mJiwgYm9vbCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4pOwogCiAgICAg
dm9pZCB0cnVuY2F0ZShzaXplX3QgbWF4RGVwdGgpOwogICAgIHZvaWQgcmVtb3ZlKCk7CiAKLSAg
ICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX2NhbGxTdGFjazsKKyAgICBSZWY8U2NyaXB0Q2Fs
bFN0YWNrPiBtX2NhbGxTdGFjazsKICAgICBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBtX3BhcmVu
dDsKICAgICB1bnNpZ25lZCBtX2NoaWxkQ291bnQgeyAwIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7
IFN0YXRlOjpQZW5kaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDEzMzg5M2ZiMGFhMzA5YzA1NWU3OTgzMzc3Mjhj
YTFmN2MwZjZmZDguLmVmMDlmY2MxZThiNmJlMWNjNjgyNjUxOTQzNGQ4YmQ5NzUwYzVhZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCkBAIC02NiwxNiArNjYsMTUgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICBhdXRv
Z2VuZXJhdGVNZXRhZGF0YShzdGF0ZSk7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCitDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0
Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikK
ICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9sZXZl
bChsZXZlbCkKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQorICAgICwgbV9jYWxsU3RhY2soV1RG
TW92ZShjYWxsU3RhY2spKQogICAgICwgbV91cmwoKQogICAgICwgbV9yZXF1ZXN0SWQoSWRlbnRp
ZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZpZXIpKQogewotICAgIG1fY2Fs
bFN0YWNrID0gY2FsbFN0YWNrOwotCiAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lKiBmcmFtZSA9
IG1fY2FsbFN0YWNrID8gbV9jYWxsU3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCkgOiBu
dWxscHRyOwogICAgIGlmIChmcmFtZSkgewogICAgICAgICBtX3VybCA9IGZyYW1lLT5zb3VyY2VV
UkwoKTsKQEAgLTg0LDEyICs4MywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgIH0K
IH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQorQ29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllcikKICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fdHlw
ZSh0eXBlKQogICAgICwgbV9sZXZlbChsZXZlbCkKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQot
ICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9hcmd1bWVudHMoV1RGTW92ZShh
cmd1bWVudHMpKQogICAgICwgbV91cmwoKQogICAgICwgbV9yZXF1ZXN0SWQoSWRlbnRpZmllcnNG
YWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZpZXIpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IDRmMDYwODFjN2Uw
NDUzNTEyOGRkNGJiMzQ1N2UzNmNiODY0YTRkYWUuLmE0ZDE4Yjg4MmJkZGMyMWY4ZjE5YmFjMmFk
YTUwNWQ3NjBkOWY0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmgKQEAgLTUwLDggKzUwLDggQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgQ29uc29sZU1lc3NhZ2UgewogcHVibGljOgogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVt
biwgSlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApOwotICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Ci0gICAgQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIEpTQzo6RXhl
Y1N0YXRlKiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyID0gMCk7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKICAgICB2b2lkIGFkZFRv
RnJvbnRlbmQoQ29uc29sZUZyb250ZW5kRGlzcGF0Y2hlciYsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciYsIGJvb2wgZ2VuZXJhdGVQcmV2aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCBiNzc2MWNj
N2E5N2EzNGIyYjg5YjFhZGIwYTI2YmQxMDRhOWRhMjRjLi4wOTc2MTViMTA2ZGRmMTRkM2QwMWE2
ZWVmMjQ5NmUyM2IwYWZhNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC00NSw5ICs0NSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1JbmplY3Rl
ZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0b3JFbnZpcm9ubWVu
dCYgZW52aXJvbm1lbnQsIFBhc3NSZWZQdHI8SW5qZWN0ZWRTY3JpcHRIb3N0PiBpbmplY3RlZFNj
cmlwdEhvc3QpCitJbmplY3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcihJ
bnNwZWN0b3JFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFJlZjxJbmplY3RlZFNjcmlwdEhvc3Q+
JiYgaW5qZWN0ZWRTY3JpcHRIb3N0KQogICAgIDogbV9lbnZpcm9ubWVudChlbnZpcm9ubWVudCkK
LSAgICAsIG1faW5qZWN0ZWRTY3JpcHRIb3N0KGluamVjdGVkU2NyaXB0SG9zdCkKKyAgICAsIG1f
aW5qZWN0ZWRTY3JpcHRIb3N0KFdURk1vdmUoaW5qZWN0ZWRTY3JpcHRIb3N0KSkKICAgICAsIG1f
bmV4dEluamVjdGVkU2NyaXB0SWQoMSkKIHsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKQogICAgIG1fc2NyaXB0
U3RhdGVUb0lkLmNsZWFyKCk7CiB9CiAKLUluamVjdGVkU2NyaXB0SG9zdCogSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjppbmplY3RlZFNjcmlwdEhvc3QoKQorSW5qZWN0ZWRTY3JpcHRIb3N0JiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0SG9zdCgpCiB7CiAgICAgcmV0dXJuIG1f
aW5qZWN0ZWRTY3JpcHRIb3N0LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKaW5kZXggZjFiNzgwODQ5
ZTA1ZTFiZDIyNmY1OGNkOTQ2YWQ5YmI0MGZlOTdkMi4uODQ3NWU0MmY3OGIxN2FmZTMxNTgyNzU1
YmNjODJlZjIwNzJjZTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCkBAIC00OSwxMyArNDksMTMgQEAgbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbmplY3RlZFNjcmlw
dE1hbmFnZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluamVjdGVkU2NyaXB0TWFuYWdl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEluamVjdGVkU2NyaXB0
TWFuYWdlcihJbnNwZWN0b3JFbnZpcm9ubWVudCYsIFBhc3NSZWZQdHI8SW5qZWN0ZWRTY3JpcHRI
b3N0Pik7CisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3RvckVudmlyb25tZW50Jiwg
UmVmPEluamVjdGVkU2NyaXB0SG9zdD4mJik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNjYXJkSW5qZWN0ZWRTY3JpcHRzKCk7CiAKLSAgICBJbmplY3RlZFNjcmlwdEhvc3Qq
IGluamVjdGVkU2NyaXB0SG9zdCgpOworICAgIEluamVjdGVkU2NyaXB0SG9zdCYgaW5qZWN0ZWRT
Y3JpcHRIb3N0KCk7CiAgICAgSW5zcGVjdG9yRW52aXJvbm1lbnQmIGluc3BlY3RvckVudmlyb25t
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnZpcm9ubWVudDsgfQogCiAgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHRGb3IoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTc2LDcgKzc2LDcgQEAg
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIHsKICAgICBKU0M6
OkpTT2JqZWN0KiBjcmVhdGVJbmplY3RlZFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgSlND
OjpFeGVjU3RhdGUqLCBpbnQgaWQpOwogCiAgICAgSW5zcGVjdG9yRW52aXJvbm1lbnQmIG1fZW52
aXJvbm1lbnQ7Ci0gICAgUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4gbV9pbmplY3RlZFNjcmlw
dEhvc3Q7CisgICAgUmVmPEluamVjdGVkU2NyaXB0SG9zdD4gbV9pbmplY3RlZFNjcmlwdEhvc3Q7
CiAgICAgaW50IG1fbmV4dEluamVjdGVkU2NyaXB0SWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUNsaWVudC5jcHAKaW5kZXggODc2M2QyN2Y4YjZmYzFhZmRjMTkxY2IyNzZmNjA1NjU2NzU0MjNh
ZC4uMWY5MDNiYWU3OGU5ZmNhM2Y0ODA2ZjUwYjcwMGNhMTM5NWY1M2NhNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdl
bnQqCiB7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0
aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3Zv
aWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAoSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKSkKICAgICAgICAgQ29uc29s
ZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6
Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cy5jb3B5UmVmKCkpOwpAQCAt
NzIsOSArNzIsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzcwogICAgIG1fY29uc29sZUFnZW50
LT5hZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1l
c3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIGV4ZWMpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6
OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCit2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnQoRXhlY1N0YXRlKiBl
eGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBtX2NvbnNvbGVB
Z2VudC0+Y291bnQoZXhlYywgYXJndW1lbnRzKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQo
ZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpA
QCAtMTU2LDExICsxNTYsMTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRp
bWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIAogdm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OnRpbWVFbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQogewotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+c3Rv
cFRpbWluZyh0aXRsZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+
c3RvcFRpbWluZyh0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAx
KSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoRXhl
Y1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikKK3ZvaWQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoRXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4m
JikKIHsKICAgICAvLyBGSVhNRTogSlNDb250ZXh0IGluc3BlY3Rpb24gbmVlZHMgYSB0aW1lbGlu
ZS4KICAgICB3YXJuVW5pbXBsZW1lbnRlZChBU0NJSUxpdGVyYWwoImNvbnNvbGUudGltZVN0YW1w
IikpOwpAQCAtMTY5LDcgKzE2OCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojp0aW1lU3RhbXAoRXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mCiB2b2lkIEpT
R2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6d2FyblVuaW1wbGVtZW50ZWQoY29uc3QgU3RyaW5n
JiBtZXRob2QpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtZXRob2QgKyAiIGlzIGN1cnJlbnRs
eSBpZ25vcmVkIGluIEphdmFTY3JpcHQgY29udGV4dCBpbnNwZWN0aW9uLiI7Ci0gICAgbV9jb25z
b2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgbV9jb25z
b2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKaW5kZXggNTI3ZmZkOTE0ZTIwOGE3NDE4ZTA1MzA4
YWRiZjVkNDEyYTM1YzI0OS4uZDliMjU5Y2I2YmE5MTZkYjc0N2ZmNjdiYWY5ZjUwMWM3ODZmOWZh
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCkBAIC00NSwxOCArNDUsMTggQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNs
aWVudCB7CiAgICAgc3RhdGljIHZvaWQgc2V0TG9nVG9TeXN0ZW1Db25zb2xlKGJvb2wpOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYp
IG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmls
ZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAg
IHZvaWQgdGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0
bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhl
Y1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0
aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHdhcm5VbmltcGxlbWVudGVkKGNvbnN0IFN0cmluZyYg
bWV0aG9kKTsKLSAgICB2b2lkIGludGVybmFsQWRkTWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpOworICAg
IHZvaWQgaW50ZXJuYWxBZGRNZXNzYWdlKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6
RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJik7CiAKICAgICB2b2lkIHN0YXJ0Q29u
c29sZVByb2ZpbGUoKTsKICAgICB2b2lkIHN0b3BDb25zb2xlUHJvZmlsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDFiZjgwMDhhZDc2Nzg5M2EyNTBi
OGQzY2Q1ZTUyMTM4ODk4OWNkNTIuLjMxMzczMGE1NzAyOTcxNTRhYjhhNTE5YmM3NzM2MmE1N2Zi
MjMxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE4
Nyw3ICsxODcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cGF1
c2UoKQogICAgIG1fZGVidWdnZXJBZ2VudC0+cGF1c2UoZHVtbXlFcnJvcik7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjphcHBlbmRBUElCYWNrdHJhY2UoU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlcjo6YXBwZW5kQVBJQmFja3RyYWNlKFNjcmlwdENhbGxTdGFjayYgY2FsbFN0YWNrKQog
ewogI2lmIE9TKERBUldJTikgfHwgKE9TKExJTlVYKSAmJiAhUExBVEZPUk0oR1RLKSkKICAgICBz
dGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2hvdyA9IDMxOwpAQCAtMjA4LDkgKzIwOCw5IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjphcHBlbmRBUElCYWNrdHJhY2Uo
U2NyaXB0Q2FsbFN0YWNrKiBjYWxsCiAgICAgICAgIGlmIChtYW5nbGVkTmFtZSkKICAgICAgICAg
ICAgIGN4YURlbWFuZ2xlZCA9IGFiaTo6X19jeGFfZGVtYW5nbGUobWFuZ2xlZE5hbWUsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBpZiAobWFuZ2xlZE5hbWUgfHwgY3hhRGVt
YW5nbGVkKQotICAgICAgICAgICAgY2FsbFN0YWNrLT5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGN4
YURlbWFuZ2xlZCA/IGN4YURlbWFuZ2xlZCA6IG1hbmdsZWROYW1lLCBBU0NJSUxpdGVyYWwoIltu
YXRpdmUgY29kZV0iKSwgbm9Tb3VyY2VJRCwgMCwgMCkpOworICAgICAgICAgICAgY2FsbFN0YWNr
LmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoY3hhRGVtYW5nbGVkID8gY3hhRGVtYW5nbGVkIDogbWFu
Z2xlZE5hbWUsIEFTQ0lJTGl0ZXJhbCgiW25hdGl2ZSBjb2RlXSIpLCBub1NvdXJjZUlELCAwLCAw
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNhbGxTdGFjay0+YXBwZW5kKFNjcmlwdENh
bGxGcmFtZShBU0NJSUxpdGVyYWwoIj8iKSwgQVNDSUlMaXRlcmFsKCJbbmF0aXZlIGNvZGVdIiks
IG5vU291cmNlSUQsIDAsIDApKTsKKyAgICAgICAgICAgIGNhbGxTdGFjay5hcHBlbmQoU2NyaXB0
Q2FsbEZyYW1lKEFTQ0lJTGl0ZXJhbCgiPyIpLCBBU0NJSUxpdGVyYWwoIltuYXRpdmUgY29kZV0i
KSwgbm9Tb3VyY2VJRCwgMCwgMCkpOwogICAgICAgICBmcmVlKGN4YURlbWFuZ2xlZCk7CiAgICAg
fQogI2Vsc2UKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXhjZQogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICBFcnJvckhhbmRsaW5n
U2NvcGUgZXJyb3JTY29wZSh2bSk7CiAKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlv
biwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICBSZWY8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhj
ZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXpl
VG9DYXB0dXJlKTsKICAgICBpZiAoaW5jbHVkZXNOYXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5n
RXhjZXB0aW9ucygpKQogICAgICAgICBhcHBlbmRBUElCYWNrdHJhY2UoY2FsbFN0YWNrLmdldCgp
KTsKIApAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXBvcnRBUElFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlCiAgICAgICAg
ICAgICBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBlcnJvck1lc3NhZ2UsIFN0
cmluZygpLCAwLCAwKTsKICAgICB9CiAKLSAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdlLCBj
YWxsU3RhY2spKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6
Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZVR5
cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdlLCBXVEZNb3ZlKGNhbGxT
dGFjaykpKTsKIH0KIAogQ29uc29sZUNsaWVudCogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpjb25zb2xlQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlci5oCmluZGV4IGYzZmVhZmQxOTNkY2NiZGEyNjVkODljY2U5ZjJiZWI5ZWZlZDkyYTgu
LjI2YTU2OGY2MDI4ZGQ2MmMxMjU0MzYxNjYzNmRhNTIzNDc5NDY5M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTAyLDcgKzEwMiw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlciBmaW5hbAogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgdm9pZCBhcHBlbmRBUElCYWNrdHJhY2UoU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spOwor
ICAgIHZvaWQgYXBwZW5kQVBJQmFja3RyYWNlKFNjcmlwdENhbGxTdGFjayYpOwogCiAgICAgSlND
OjpKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
amVjdGVkU2NyaXB0TWFuYWdlcj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKaW5kZXggMWYxZTQ2OTU5NGQ3N2MyOTY4Yjg4NWI5OWNiMGU2MGM4YzYxYzE3OC4uMTkx
NmM1ZGM4ZTJhYTdjODNlMTJhMjNjODYzMjI4NWU1MjI1OTYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNw
cApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c19pbmZvID0geyAiSmF2YVNjcmlwdENhbGxGcmFt
ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lKSB9OwogCi1KU0phdmFTY3JpcHRDYWxsRnJhbWU6OkpTSmF2YVNjcmlwdENhbGxGcmFt
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxs
RnJhbWU+IGltcGwpCitKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkpTSmF2YVNjcmlwdENhbGxGcmFt
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8SmF2YVNjcmlwdENhbGxGcmFtZT4m
JiBpbXBsKQogICAgIDogSlNEZXN0cnVjdGlibGVPYmplY3Qodm0sIHN0cnVjdHVyZSkKLSAgICAs
IG1faW1wbChpbXBsLmxlYWtSZWYoKSkKKyAgICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7
CiB9CiAKQEAgLTIyOCw3ICsyMjgsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKYXZhU2NyaXB0Q2FsbEZyYW1lKgogCiAgICAg
SlNPYmplY3QqIHByb3RvdHlwZSA9IEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlUHJvdG90
eXBlKGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSk7Ci0gICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBqYXZhU2Ny
aXB0Q2FsbEZyYW1lID0gSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwg
c3RydWN0dXJlLCBpbXBsKTsKKyAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGphdmFTY3JpcHRD
YWxsRnJhbWUgPSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShleGVjLT52bSgpLCBzdHJ1
Y3R1cmUsICppbXBsKTsKIAogICAgIHJldHVybiBqYXZhU2NyaXB0Q2FsbEZyYW1lOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lLmgKaW5kZXggNTZiNjlkNGI4ZGFiODRjMGI2OWUxMDJkMjliMmU4YjY1Njg5ZTJkMi4u
MmFjMjQ3Y2FlOWQ1MjBkYWMyOWFiM2Q0Y2ZhODE0OGRhMWZkYzliZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5o
CkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIEpTSmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBpbXBsKQorICAg
IHN0YXRpYyBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+JiYgaW1wbCkKICAg
ICB7Ci0gICAgICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTSmF2YVNjcmlwdENhbGxGcmFtZT4odm0uaGVhcCkpIEpT
SmF2YVNjcmlwdENhbGxGcmFtZSh2bSwgc3RydWN0dXJlLCBpbXBsKTsKKyAgICAgICAgSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNKYXZhU2NyaXB0Q2FsbEZyYW1lPih2bS5oZWFwKSkgSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQpAQCAtODMsNyAr
ODMsNyBAQCBjbGFzcyBKU0phdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJsaWMgSlNDOjpKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiAKIHBy
aXZhdGU6Ci0gICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVy
ZSosIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4pOworICAgIEpTSmF2YVNjcmlwdENh
bGxGcmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8SmF2YVNjcmlwdENhbGxGcmFt
ZT4mJik7CiAgICAgfkpTSmF2YVNjcmlwdENhbGxGcmFtZSgpOwogCiAgICAgSmF2YVNjcmlwdENh
bGxGcmFtZSogbV9pbXBsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKaW5kZXggZDVmNzNkNTQwNTA2OWFhYWFiN2M4
M2MxMDdmMDA5ZWZiODFhYTA3Mi4uM2MyODQ4NGFlYjRkMTE4MDUxYzg0MDAxN2FhYzEzNDllMThl
NTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0ph
dmFTY3JpcHRDYWxsRnJhbWUuY3BwCkBAIC0zMCw4ICszMCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1KYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZh
U2NyaXB0Q2FsbEZyYW1lKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2Fs
bEZyYW1lKQotICAgIDogbV9kZWJ1Z2dlckNhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkKK0ph
dmFTY3JpcHRDYWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUoUmVmPERlYnVnZ2VyQ2FsbEZy
YW1lPiYmIGRlYnVnZ2VyQ2FsbEZyYW1lKQorICAgIDogbV9kZWJ1Z2dlckNhbGxGcmFtZShXVEZN
b3ZlKGRlYnVnZ2VyQ2FsbEZyYW1lKSkKIHsKIH0KIApAQCAtNDQsNyArNDQsNyBAQCBKYXZhU2Ny
aXB0Q2FsbEZyYW1lKiBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjYWxsZXIoKQogICAgIGlmICghZGVi
dWdnZXJDYWxsZXJGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBtX2NhbGxl
ciA9IGNyZWF0ZShkZWJ1Z2dlckNhbGxlckZyYW1lKTsKKyAgICBtX2NhbGxlciA9IGNyZWF0ZShk
ZWJ1Z2dlckNhbGxlckZyYW1lLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIHJldHVybiBtX2NhbGxl
ci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRleCBmOWFkYmVjODFiNzYwOGM4ZTc2MjNjYWYxYWY5
MWFhNTY4OGU1ZDY4Li42YWY0OTJlZjYwODllM2EwZWQzODNhOTA4MDJlNjdkMGNmMWZmNGU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxs
RnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xh
c3MgSmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEphdmFTY3JpcHRDYWxs
RnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNy
ZWF0ZShQYXNzUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2FsbEZyYW1l
KQorICAgIHN0YXRpYyBSZWY8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFJlZjxKU0M6OkRl
YnVnZ2VyQ2FsbEZyYW1lPiYmIGRlYnVnZ2VyQ2FsbEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSmF2YVNjcmlwdENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKFdURk1v
dmUoZGVidWdnZXJDYWxsRnJhbWUpKSk7CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFt
ZSogY2FsbGVyKCk7CkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWUg
OiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiAgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBKU0M6
OkpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiBleGNl
cHRpb24pIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPmV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uKHNjcmlwdCwgc2NvcGVFeHRlbnNpb24sIGV4Y2VwdGlvbik7IH0KIAogcHJp
dmF0ZToKLSAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKFBhc3NSZWZQdHI8SlNDOjpEZWJ1Z2dlckNh
bGxGcmFtZT4pOworICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoUmVmPEpTQzo6RGVidWdnZXJDYWxs
RnJhbWU+JiYpOwogCi0gICAgUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IG1fZGVidWdn
ZXJDYWxsRnJhbWU7CisgICAgUmVmPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IG1fZGVidWdnZXJD
YWxsRnJhbWU7CiAgICAgUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IG1fY2FsbGVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmNwcAppbmRleCA3NTVmNWI4NTM1YzJlMmE0MDRkOGVhZDYwNWM3MDIxZjNmNjhkYWUy
Li44NGNlZmRmNzA5NDljNjBlNDFiOGM0M2NhZDJkMzEyMDIzMTYxZWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcApA
QCAtODksMjkgKzg5LDI5IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmNsZWFyQnJlYWtwb2lu
dEFjdGlvbnMoKQogCiBib29sIFNjcmlwdERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRB
Y3Rpb24oY29uc3QgU2NyaXB0QnJlYWtwb2ludEFjdGlvbiYgYnJlYWtwb2ludEFjdGlvbikKIHsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKKyAgICBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUg
PSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKTsKIAogICAgIHN3aXRjaCAoYnJlYWtwb2ludEFj
dGlvbi50eXBlKSB7CiAgICAgY2FzZSBTY3JpcHRCcmVha3BvaW50QWN0aW9uVHlwZUxvZzogewot
ICAgICAgICBkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Mb2coZGVidWdnZXJDYWxsRnJhbWUtPmds
b2JhbEV4ZWMoKSwgYnJlYWtwb2ludEFjdGlvbi5kYXRhKTsKKyAgICAgICAgZGlzcGF0Y2hCcmVh
a3BvaW50QWN0aW9uTG9nKGRlYnVnZ2VyQ2FsbEZyYW1lLmdsb2JhbEV4ZWMoKSwgYnJlYWtwb2lu
dEFjdGlvbi5kYXRhKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU2NyaXB0QnJl
YWtwb2ludEFjdGlvblR5cGVFdmFsdWF0ZTogewogICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+
IGV4Y2VwdGlvbjsKICAgICAgICAgSlNPYmplY3QqIHNjb3BlRXh0ZW5zaW9uT2JqZWN0ID0gbnVs
bHB0cjsKLSAgICAgICAgZGVidWdnZXJDYWxsRnJhbWUtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5z
aW9uKGJyZWFrcG9pbnRBY3Rpb24uZGF0YSwgc2NvcGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlv
bik7CisgICAgICAgIGRlYnVnZ2VyQ2FsbEZyYW1lLmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
KGJyZWFrcG9pbnRBY3Rpb24uZGF0YSwgc2NvcGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlvbik7
CiAgICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICByZXBvcnRFeGNlcHRpb24oZGVi
dWdnZXJDYWxsRnJhbWUtPmdsb2JhbEV4ZWMoKSwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHJl
cG9ydEV4Y2VwdGlvbihkZWJ1Z2dlckNhbGxGcmFtZS5nbG9iYWxFeGVjKCksIGV4Y2VwdGlvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFNjcmlwdEJyZWFrcG9pbnRBY3Rpb25U
eXBlU291bmQ6Ci0gICAgICAgIGRpc3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKGRlYnVnZ2Vy
Q2FsbEZyYW1lLT5nbG9iYWxFeGVjKCksIGJyZWFrcG9pbnRBY3Rpb24uaWRlbnRpZmllcik7Cisg
ICAgICAgIGRpc3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKGRlYnVnZ2VyQ2FsbEZyYW1lLmds
b2JhbEV4ZWMoKSwgYnJlYWtwb2ludEFjdGlvbi5pZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBTY3JpcHRCcmVha3BvaW50QWN0aW9uVHlwZVByb2JlOiB7CiAgICAgICAgIE5h
a2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwogICAgICAgICBKU09iamVjdCogc2NvcGVFeHRl
bnNpb25PYmplY3QgPSBudWxscHRyOwotICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGRlYnVnZ2Vy
Q2FsbEZyYW1lLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihicmVha3BvaW50QWN0aW9uLmRh
dGEsIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRpb24pOwotICAgICAgICBKU0M6OkV4ZWNT
dGF0ZSogZXhlYyA9IGRlYnVnZ2VyQ2FsbEZyYW1lLT5nbG9iYWxFeGVjKCk7CisgICAgICAgIEpT
VmFsdWUgcmVzdWx0ID0gZGVidWdnZXJDYWxsRnJhbWUuZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNp
b24oYnJlYWtwb2ludEFjdGlvbi5kYXRhLCBzY29wZUV4dGVuc2lvbk9iamVjdCwgZXhjZXB0aW9u
KTsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBkZWJ1Z2dlckNhbGxGcmFtZS5nbG9i
YWxFeGVjKCk7CiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICByZXBvcnRFeGNl
cHRpb24oZXhlYywgZXhjZXB0aW9uKTsKIApAQCAtMTI4LDggKzEyOCw4IEBAIGJvb2wgU2NyaXB0
RGVidWdTZXJ2ZXI6OmV2YWx1YXRlQnJlYWtwb2ludEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3Bv
aW50QWN0aW9uJiBiCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERpZFBhdXNlKFNj
cmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQogewogICAgIEFTU0VSVChpc1BhdXNlZCgpKTsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVidWdn
ZXJDYWxsRnJhbWUtPnNjb3BlKCktPmdsb2JhbE9iamVjdCgpOworICAgIERlYnVnZ2VyQ2FsbEZy
YW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSA9IGN1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpOworICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZWJ1Z2dlckNhbGxGcmFtZS5zY29wZSgp
LT5nbG9iYWxPYmplY3QoKTsKICAgICBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUgPSAqZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBqc0NhbGxGcmFtZSA9IHRvSlMoJnN0YXRl
LCBnbG9iYWxPYmplY3QsIEphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShkZWJ1Z2dlckNhbGxG
cmFtZSkucHRyKCkpOwogICAgIGxpc3RlbmVyLT5kaWRQYXVzZShzdGF0ZSwganNDYWxsRnJhbWUs
IGV4Y2VwdGlvbk9yQ2F1Z2h0VmFsdWUoJnN0YXRlKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgSlND
OjpKU1ZhbHVlIFNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb25PckNhdWdodFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSkKICAgICBpZiAocmVhc29uRm9yUGF1c2UoKSA9PSBQYXVzZWRGb3JF
eGNlcHRpb24pCiAgICAgICAgIHJldHVybiBjdXJyZW50RXhjZXB0aW9uKCk7CiAKLSAgICBmb3Ig
KFJlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4gZnJhbWUgPSBjdXJyZW50RGVidWdnZXJDYWxsRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCkpIHsKKyAgICBmb3IgKFJl
ZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4gZnJhbWUgPSAmY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZSgpKSB7CiAgICAgICAgIERlYnVn
Z2VyU2NvcGUmIHNjb3BlID0gKmZyYW1lLT5zY29wZSgpOwogICAgICAgICBpZiAoc2NvcGUuaXND
YXRjaFNjb3BlKCkpCiAgICAgICAgICAgICByZXR1cm4gc2NvcGUuY2F1Z2h0VmFsdWUoc3RhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggZTk1NmVlNTExNmIyYmQyNzJi
ZDU0Y2NhNjNkZDNjYjUzYmI0N2MxNS4uZDQ1M2RiYmQ4Njc0MGJiZmZkY2MwZTcyMzczMGNlMzIz
NDVmMzZhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xNDUsNyArMTQ1
LDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0VGltaW5nKGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0b3BUaW1pbmcoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2spCiB7CiAgICAgQVNT
RVJUKCF0aXRsZS5pc051bGwoKSk7CiAgICAgaWYgKHRpdGxlLmlzTnVsbCgpKQpAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9wVGltaW5nKGNvbnN0IFN0
cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsCiAKICAgICBkb3VibGUgZWxhcHNlZCA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnRUaW1lOwogICAgIFN0cmluZyBt
ZXNzYWdlID0gdGl0bGUgKyBTdHJpbmc6OmZvcm1hdCgiOiAlLjNmbXMiLCBlbGFwc2VkICogMTAw
MCk7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNz
YWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNz
YWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBjYWxsU3RhY2spKTsKKyAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNv
bnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3Nh
Z2UsIFdURk1vdmUoY2FsbFN0YWNrKSkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtMTgwLDkgKzE4MCw5
IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KGNvbnN0IFN0
cmluZyYgdGl0bGUpCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1l
c3RhbXAsIHNuYXBzaG90RGF0YSwgdGl0bGUuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCit2b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
YWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSwgU2NyaXB0Q2Fs
bFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CisgICAgUmVmPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSwg
U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKIAogICAgIFN0cmlu
ZyB0aXRsZTsKICAgICBTdHJpbmcgaWRlbnRpZmllcjsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lk
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZQogICAgIC8vIEZJWE1FOiBXZWIgSW5zcGVjdG9yIHNob3VsZCBo
YXZlIGEgYmV0dGVyIFVJIGZvciBjb3VudGVycywgYnV0IGZvciBub3cgd2UganVzdCBsb2cgYW4g
dXBkYXRlZCBjb3VudGVyIHZhbHVlLgogCiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KHRpdGxlLCAiOiAiLCBTdHJpbmc6Om51bWJlcihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSk7Ci0g
ICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6
OkRlYnVnLCBtZXNzYWdlLCBjYWxsU3RhY2spKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0
ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEks
IE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2UsIFdURk1vdmUo
Y2FsbFN0YWNrKSkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0dyb3VwTWVzc2FnZShNZXNzYWdlVHlw
ZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA0NTg0MGU2OWU4YTZjOWI3
MjIwNjMwYzhjNmYwNmE2NTRlZWVlODIwLi4xNzVjZWM5ZGE4OGQ3YjI4OThhMGEzZjE1NjNlZWI2
NGI4YzQ2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNzEsOSArNzEsOSBA
QCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShz
dGQ6OnVuaXF1ZV9wdHI8Q29uc29sZU1lc3NhZ2U+KTsKIAogICAgIHZvaWQgc3RhcnRUaW1pbmco
Y29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYg
dGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCBzdG9wVGltaW5n
KGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHZvaWQg
dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICB2b2lkIGNvdW50KEpT
Qzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKKyAgICB2b2lkIGNv
dW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJik7CiAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlTWVz
c2FnZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBkMzRkMjlmNzQ4
MTU3OTlmYjhlMmExMmRhOTRhZThkOTZjMzdkNTQ3Li42MTdlZmI5YWMzOWIyYWFmZjBmNzI2Njg0
NWI1NzdiYzlkZGY4ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAt
MjMwLDkgKzIzMCw5IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkU2NoZWR1bGVB
c3luY0NhbGwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGludCBhc3luCiAgICAgaWYgKCFtX3Njcmlw
dERlYnVnU2VydmVyLmJyZWFrcG9pbnRzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFj
ayhleGVjLCBtX2FzeW5jU3RhY2tUcmFjZURlcHRoKTsKLSAgICBBU1NFUlQoY2FsbFN0YWNrICYm
IGNhbGxTdGFjay0+c2l6ZSgpKTsKLSAgICBpZiAoIWNhbGxTdGFjayB8fCAhY2FsbFN0YWNrLT5z
aXplKCkpCisgICAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrKGV4ZWMsIG1fYXN5bmNTdGFja1RyYWNlRGVwdGgpOworICAgIEFTU0VSVChjYWxs
U3RhY2stPnNpemUoKSk7CisgICAgaWYgKCFjYWxsU3RhY2stPnNpemUoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50U3RhY2tUcmFjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXgg
MWFlM2UyOTMzZjE2NzkwNWM5OTY0MTYzNzI3MGNmYTNhMjlmMTExNy4uNjhkNzFjMzFiNTFmOTU2
MDEyZTAwZGYxMmQyMDA3ZmFlNDNlZTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKQEAgLTE0NywxMSArMTQ3LDExIEBAIHZvaWQgQ29u
c29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZVR5cGUgdHlwZSwKICAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1l
c3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xl
TWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGJvb2wgaXNUcmFjZU1lc3NhZ2UgPSB0eXBl
ID09IE1lc3NhZ2VUeXBlOjpUcmFjZTsKICAgICBzaXplX3Qgc3RhY2tTaXplID0gaXNUcmFjZU1l
c3NhZ2UgPyBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUgOiAxOwot
ICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGb3JDb25zb2xlKGV4ZWMsIHN0YWNrU2l6ZSkpOworICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgc3RhY2tT
aXplKTsKICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGxhc3RDYWxsZXIgPSBjYWxsU3RhY2st
PmF0KDApOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTkwLDcgKzE5MCw3IEBA
IHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgfQogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6
OmludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4mJiBhcmd1bWVudHMsIEFyZ3VtZW50UmVxdWlyZW1lbnQgYXJndW1lbnRSZXF1aXJlbWVudCkK
K3ZvaWQgQ29uc29sZUNsaWVudDo6aW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgQXJndW1lbnRSZXF1aXJlbWVudCBhcmd1
bWVudFJlcXVpcmVtZW50KQogewogICAgIGlmIChhcmd1bWVudFJlcXVpcmVtZW50ID09IEFyZ3Vt
ZW50UmVxdWlyZWQgJiYgIWFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpKQogICAgICAgICByZXR1
cm47CkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjppbnRlcm5hbE1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXYKICAgICBtZXNz
YWdlV2l0aFR5cGVBbmRMZXZlbCh0eXBlLCBsZXZlbCwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMp
KTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50Ojpsb2dXaXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVj
LCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgTWVzc2FnZUxldmVsIGxldmVs
KQordm9pZCBDb25zb2xlQ2xpZW50Ojpsb2dXaXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBSZWY8
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgTWVzc2FnZUxldmVsIGxldmVsKQogewogICAg
IGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWws
IGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSwgQXJndW1lbnRSZXF1aXJlZCk7CiB9CkBAIC0yMDgs
NDIgKzIwOCw0MiBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OmNsZWFyKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpDbGVhciwg
TWVzc2FnZUxldmVsOjpMb2csIGV4ZWMsIFNjcmlwdEFyZ3VtZW50czo6Y3JlYXRlRW1wdHkoZXhl
YyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OmRpcihF
eGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9p
ZCBDb25zb2xlQ2xpZW50OjpkaXIoRXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1l
c3NhZ2VUeXBlOjpEaXIsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50
cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OmRpclhNTChF
eGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9p
ZCBDb25zb2xlQ2xpZW50OjpkaXJYTUwoRXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlOjpEaXJYTUwsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OnRh
YmxlKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
Cit2b2lkIENvbnNvbGVDbGllbnQ6OnRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbChNZXNzYWdlVHlwZTo6VGFibGUsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3Zl
KGFyZ3VtZW50cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6
OnRyYWNlKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCit2b2lkIENvbnNvbGVDbGllbnQ6OnRyYWNlKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVB
bmRMZXZlbChNZXNzYWdlVHlwZTo6VHJhY2UsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZN
b3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVD
bGllbnQ6OmFzc2VydGlvbihFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQordm9pZCBDb25zb2xlQ2xpZW50Ojphc3NlcnRpb24oRXhlY1N0YXRlKiBl
eGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1l
c3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpBc3NlcnQsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSwgQXJndW1lbnROb3RSZXF1aXJlZCk7CiB9
CiAKLXZvaWQgQ29uc29sZUNsaWVudDo6Z3JvdXAoRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgQ29uc29sZUNsaWVudDo6Z3JvdXAoRXhl
Y1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBp
bnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpTdGFydEdyb3VwLCBN
ZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpLCBBcmd1bWVudE5vdFJl
cXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50Ojpncm91cENvbGxhcHNlZChFeGVjU3Rh
dGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBDb25z
b2xlQ2xpZW50Ojpncm91cENvbGxhcHNlZChFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGU6OlN0YXJ0R3JvdXBDb2xsYXBzZWQsIE1lc3NhZ2VMZXZlbDo6TG9nLCBl
eGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lk
IENvbnNvbGVDbGllbnQ6Omdyb3VwRW5kKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIENvbnNvbGVDbGllbnQ6Omdyb3VwRW5kKEV4ZWNT
dGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50
ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZTo6RW5kR3JvdXAsIE1lc3Nh
Z2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWly
ZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZUNsaWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5o
CmluZGV4IDc1OWRmN2YzMGViMTZjZWM2NjEwYzFjMGNjMjgzMWQ1Y2ZhYTRhOGQuLjQ5NTFmNDYy
NjQ1NWNjNDkwYjU2MmQ2ODdiMTU0Y2FkYmRlMWViNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKQEAgLTQxLDMxICs0MSwzMSBAQCBjbGFzcyBD
b25zb2xlQ2xpZW50IHsKICAgICB2aXJ0dWFsIH5Db25zb2xlQ2xpZW50KCkgeyB9CiAKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBwcmludENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlcik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcHJpbnRDb25zb2xlTWVz
c2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYp
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHByaW50Q29uc29sZU1lc3NhZ2VX
aXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKIAotICAg
IHZvaWQgbG9nV2l0aExldmVsKEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJiwgTWVzc2FnZUxldmVsKTsKKyAgICB2b2lkIGxvZ1dpdGhMZXZlbChFeGVjU3Rh
dGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYsIE1lc3NhZ2VMZXZlbCk7CiAg
ICAgdm9pZCBjbGVhcihFeGVjU3RhdGUqKTsKLSAgICB2b2lkIGRpcihFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgZGlyWE1MKEV4ZWNT
dGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgdm9pZCB0
YWJsZShFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwot
ICAgIHZvaWQgdHJhY2UoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiYmKTsKLSAgICB2b2lkIGFzc2VydGlvbihFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgZ3JvdXAoRXhlY1N0YXRlKiwgUmVmUHRy
PEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICB2b2lkIGdyb3VwQ29sbGFwc2Vk
KEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAg
dm9pZCBncm91cEVuZChFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpOworICAgIHZvaWQgZGlyKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJik7CisgICAgdm9pZCBkaXJYTUwoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIHRhYmxlKEV4ZWNTdGF0ZSosIFJlZjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCB0cmFjZShFeGVjU3RhdGUqLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgYXNzZXJ0aW9uKEV4
ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCBn
cm91cChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAg
IHZvaWQgZ3JvdXBDb2xsYXBzZWQoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKTsKKyAgICB2b2lkIGdyb3VwRW5kKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWVzc2FnZVdpdGhUeXBl
QW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y291bnQoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvdW50KEV4ZWNTdGF0ZSosIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9m
aWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcHJvZmlsZUVuZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZUVuZChFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRpbWVTdGFtcChFeGVjU3Rh
dGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgPSAwOwogCiBwcml2YXRlOgogICAgIGVudW0gQXJndW1lbnRSZXF1aXJlbWVudCB7
IEFyZ3VtZW50UmVxdWlyZWQsIEFyZ3VtZW50Tm90UmVxdWlyZWQgfTsKLSAgICB2b2lkIGludGVy
bmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlND
OjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYsIEFyZ3Vt
ZW50UmVxdWlyZW1lbnQpOworICAgIHZvaWQgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiwgQXJndW1lbnRSZXF1aXJlbWVudCk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZU9iamVjdC5jcHAKaW5kZXggZWU4ZTU5OTJjNmI2NjhlZThkMzFiMGJiOTU3NzQzMzczNDdlZWI4
Ny4uNzZhZTQ1ZDJhMzU5MDlkYzE5ZjNlYjQ3YWY2ZjY4NGUwZThkNDkxNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKQEAgLTExMCw4ICsx
MTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc29sZUxvZ1dpdGhMZXZlbChFeGVjU3Rh
dGUqIGV4ZWMsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0
QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmxvZ1dpdGhMZXZlbChleGVjLCBXVEZN
b3ZlKGFyZ3VtZW50cyksIGxldmVsKTsKKyAgICBjbGllbnQtPmxvZ1dpdGhMZXZlbChleGVjLCBJ
bnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSwgbGV2ZWwpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTE1Niw4ICsxNTUs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
RGlyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRz
KGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmRpcihleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwor
ICAgIGNsaWVudC0+ZGlyKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4
ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
CkBAIC0xNjcsOCArMTY1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNy
ZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5kaXJYTUwoZXhlYywg
V1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjbGllbnQtPmRpclhNTChleGVjLCBJbnNwZWN0b3I6
OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMTc4LDggKzE3NSw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWJsZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0g
ICAgY2xpZW50LT50YWJsZShleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+
dGFibGUoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTE4OSw4
ICsxODUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJv
dG9GdW5jVHJhY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xpZW50KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRB
cmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+dHJhY2UoZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpKTsKKyAgICBjbGllbnQtPnRyYWNlKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0
QXJndW1lbnRzKGV4ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCkBAIC0yMDgsOCArMjAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
aWYgKGNvbmRpdGlvbikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
KEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKLSAgICBjbGllbnQt
PmFzc2VydGlvbihleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+YXNzZXJ0
aW9uKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yMTksOCAr
MjEzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0NvdW50KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJn
dW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmNvdW50KGV4ZWMsIFdURk1vdmUoYXJndW1l
bnRzKSk7CisgICAgY2xpZW50LT5jb3VudChleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFy
Z3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtMzQwLDggKzMzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAoRXhlY1N0YXRlKiBleGVjKQogICAg
IGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCi0gICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMo
SW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+
dGltZVN0YW1wKGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY2xpZW50LT50aW1lU3Rh
bXAoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTM1MSw4ICsz
NDMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jR3JvdXAoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgUmVmUHRyPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1
bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+Z3JvdXAoZXhlYywgV1RGTW92ZShhcmd1bWVu
dHMpKTsKKyAgICBjbGllbnQtPmdyb3VwKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJn
dW1lbnRzKGV4ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCkBAIC0zNjIsOCArMzUzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKEV4ZWNTdGF0ZSogZXgKICAg
ICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
KEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQt
Pmdyb3VwQ29sbGFwc2VkKGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY2xpZW50LT5n
cm91cENvbGxhcHNlZChleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVj
LCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApA
QCAtMzczLDggKzM2Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNHcm91cEVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNy
ZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5ncm91cEVuZChleGVj
LCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+Z3JvdXBFbmQoZXhlYywgSW5zcGVj
dG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMDVmZTAzMzg4NTFkYTRiZmNi
MjRhMzJiNGE1ODYyZjI4ZTA4M2Y0ZS4uYTZkNDdjYjc4NzgyZWM5OWYyMzMyYTI5MTE0YTY3MDM4
ZDUyMzllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTQ1MjksNyArNDUyOSw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRo
CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgIipkb2N1bWVudCIpOwogICAgIH0KICAgICBp
ZiAoJGZ1bmN0aW9uIGFuZCAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSkgewotICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1
bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoJHN0YXRlUG9pbnRlciwgIiAu
IEB7JGZ1bmN0aW9uLT5hcmd1bWVudHN9IC4gIikpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cygkc3RhdGVQb2ludGVyLCAiIC4g
QHskZnVuY3Rpb24tPmFyZ3VtZW50c30gLiAiKSk7XG4iKTsKICAgICAgICAgJGltcGxJbmNsdWRl
c3siPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaD4ifSA9IDE7CiAgICAgICAgICRpbXBsSW5j
bHVkZXN7IjxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPiJ9ID0gMTsKICAgICAg
ICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiV1RGTW92ZShzY3JpcHRBcmd1bWVudHMpIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCmluZGV4IDViNTM5NGZiNDkxODJiMmJiYzIxNTE2NDU5ZjQ0ZjNhMTdjMzYxZWEuLmI4NTE5
Y2UyYTExZWJmMDIzNzg3YjkwOWZjNTQ5YzcwMWFjZTZkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC02MTEy
LDcgKzYxMTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQQogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIGF1dG8mIGltcGwgPSBj
YXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiBzY3JpcHRBcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoc3Rh
dGUsIDApKTsKKyAgICBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhzdGF0ZSwgMCkpOwogICAgIGlt
cGwud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayhXVEZNb3ZlKHNjcmlwdEFyZ3VtZW50
cykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggZTI3OTI0
NGVkMDdmYTc4Zjc3NWE4NTkyNDQ2NjM3OTQxMDE5NjcwYy4uMzI4ODE4ZjRhNjJjOTQzM2Q3ZWRi
YzE0MDcwOTJlYWE0YzA1ZDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcApAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6UGVuZGluZ0V4Y2VwdGlvbiB7CiAgICAgICAgICwgbV9saW5lTnVtYmVyKGxpbmVO
dW1iZXIpCiAgICAgICAgICwgbV9jb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKQogICAgICAgICAs
IG1fc291cmNlVVJMKHNvdXJjZVVSTCkKLSAgICAgICAgLCBtX2NhbGxTdGFjayhjYWxsU3RhY2sp
CisgICAgICAgICwgbV9jYWxsU3RhY2soV1RGTW92ZShjYWxsU3RhY2spKQogICAgIHsKICAgICB9
CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkNjhjNTIyZWZjZTAy
Y2ZlZDU5YThmMDg1OWY0NTRlMWM4YzJjYTgxLi44N2YwZDkzZmY4MTlhZmE1ODlhMTFhZTFlMzYy
Yzk2OGRiMzQ0NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtODM4LDEwICs4MzgsMTAgQEAgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3QKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1
bWVudHMpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGlmIChXZWJD
b25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29s
ZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnQoc3RhdGUsIGFyZ3VtZW50cyk7
CisgICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnQoc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQpAQCAtODY0LDIxICs4NjQsMjEgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHIKICAg
ICAgICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyh0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCiB7CiAgICAgaWYgKFdlYkNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKLSAg
ICAgICAgY29uc29sZUFnZW50LT5zdG9wVGltaW5nKHRpdGxlLCBzdGFjayk7CisgICAgICAgIGNv
bnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgV1RGTW92ZShzdGFjaykpOwogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWVF
bmQoZnJhbWUsIHRpdGxlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNr
KQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQogewogICAgIGlmIChXZWJDb25zb2xl
QWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50
KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgc3RhY2spOworICAg
ICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUsIFdURk1vdmUoc3RhY2spKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7CiAgICAgICAg
IFN0cmluZyBtZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI0NWNkYzg4NzUyZDA4NTFlNTcwNDRiYjcyMzM1
YjZhMDgyNGFhZmQuLjY4Y2VjY2Y2NDdjZjhkNWMwNTM3MTJmMWUwM2Y0NTM5NTY2OGU0OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKQEAgLTE4NCwxNCArMTg0LDE0IEBAIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
biB7CiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlJiwgc3RkOjp1bmlx
dWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKICAgICBzdGF0aWMgdm9pZCBhZGRN
ZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKIAotICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChQ
YWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYpOwotICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29wZSYsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPElu
c3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291
bnQoV29ya2VyR2xvYmFsU2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChGcmFt
ZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRp
bWluZyhGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0
Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwot
ICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBzdGF0aWMg
dm9pZCBzdG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7Ci0gICAgc3RhdGlj
IHZvaWQgY29uc29sZVRpbWVTdGFtcChGcmFtZSYsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwor
ICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlVGltZVN0YW1wKEZyYW1lJiwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydFByb2ZpbGluZyhQYWdlJiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBz
dG9wUHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogCkBAIC0zNDksMTMgKzM0OSwxMyBAQCBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24g
ewogCiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAK
LSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBK
U0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Cisg
ICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlND
OjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogICAgIHN0
YXRpYyB2b2lkIHRha2VIZWFwU25hcHNob3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAg
IHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwotICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBzdGF0aWMg
dm9pZCBjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOworICAgIHN0
YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
RnJhbWUmLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogCiAgICAgc3RhdGlj
IHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
aW50IGNhbGxiYWNrSWQsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQW5pbWF0
aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUq
KTsKQEAgLTExOTUsMTIgKzExOTUsMTIgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3IKICAgICBh
ZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFs
U2NvcGUod29ya2VyR2xvYmFsU2NvcGUpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQoUGFnZSYgcGFnZSwg
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25z
b2xlQ291bnQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGNvbnNvbGVDb3VudEltcGwo
aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50
cykpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVD
b3VudChXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFdvcmtl
ckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGNvbnNv
bGVDb3VudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CkBAIC0xMjIzLDE4
ICsxMjIzLDE4IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRD
b25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrCiAgICAgc3RhcnRDb25zb2xlVGlt
aW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGUpLCB0aXRsZSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCitpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
IHN0YWNrKQogewogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgc3RvcENv
bnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSwgdGl0bGUsIFdURk1v
dmUoc3RhY2spKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiBz
dGFjaykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVU
aW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCiB7CiAgICAg
c3RvcENvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxT
Y29wZSh3b3JrZXJHbG9iYWxTY29wZSksIHRpdGxlLCBXVEZNb3ZlKHN0YWNrKSk7CiB9CiAKLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChGcmFt
ZSYgZnJhbWUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAo
RnJhbWUmIGZyYW1lLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRz
KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckZyYW1lKGZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggNDMyNDc4ZjI0ZjI5OWUxNzhmOWFlMGQwMzYy
MmY5ZGJmNmY2ZDQ2YS4uNTY5Y2U0YTJjZWRiN2ExMTMzNTllODEwNzYxYzZhOTM4ZTc0MmU0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKQEAgLTUwMiw4ICs1MDIsOCBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlk
U2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6SW5pdGlhdG9yPiBJbnNwZWN0b3JOZXR3b3Jr
QWdlbnQ6OmJ1aWxkSW5pdGlhdG9yT2JqZWN0KERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIFNjcmlwdENhbGxTdGFjazo6
bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7Ci0gICAgaWYgKHN0YWNrVHJhY2UgJiYgc3RhY2tU
cmFjZS0+c2l6ZSgpID4gMCkgeworICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2Ug
PSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3Rh
dGUoKSwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICBp
ZiAoc3RhY2tUcmFjZS0+c2l6ZSgpID4gMCkgewogICAgICAgICBhdXRvIGluaXRpYXRvck9iamVj
dCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRvcjo6Y3JlYXRlKCkKICAg
ICAgICAgICAgIC5zZXRUeXBlKEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRv
cjo6VHlwZTo6U2NyaXB0KQogICAgICAgICAgICAgLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggNjhmNzU5
MTliMDJjZjU5NDQwMDBkZGE5NDY3MDIxZjNlODI0OTg3Yi4uYTIxNjU5M2Y4NWIwMWE4M2RhNjdj
YWU5ZDRmN2QyOTdmNTQzY2IxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTUwLDggKzUwLDggQEAgUmVmPEluc3BlY3Rv
ck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJs
ZSBzdGFydFRpbWUKICAgICByZWNvcmQtPnNldERvdWJsZShBU0NJSUxpdGVyYWwoInN0YXJ0VGlt
ZSIpLCBzdGFydFRpbWUpOwogCiAgICAgaWYgKG1heENhbGxTdGFja0RlcHRoKSB7Ci0gICAgICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgbWF4Q2FsbFN0YWNrRGVw
dGgpOwotICAgICAgICBpZiAoc3RhY2tUcmFjZSAmJiBzdGFja1RyYWNlLT5zaXplKCkpCisgICAg
ICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgbWF4Q2FsbFN0YWNrRGVw
dGgpOworICAgICAgICBpZiAoc3RhY2tUcmFjZS0+c2l6ZSgpKQogICAgICAgICAgICAgcmVjb3Jk
LT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwoInN0YWNrVHJhY2UiKSwgc3RhY2tUcmFjZS0+YnVpbGRJ
bnNwZWN0b3JBcnJheSgpKTsKICAgICB9CiAgICAgcmV0dXJuIHJlY29yZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5k
ZXggN2E5OTZkY2IwYjBjN2RmNGY4ZTZmOTM5MWVkYWNhZmFhMzQ4ZmQ4NS4uYzdmODJmZjExOGFl
NTU3NmNiOTkwODM3ODk1OThlNjZmZTlhY2FkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1X
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0
b3JFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFJlZlB0cjxJbmplY3RlZFNjcmlwdEhvc3Q+JiYg
aG9zdCkKK1dlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KEluc3BlY3RvckVudmlyb25tZW50JiBlbnZpcm9ubWVudCwgUmVmPEluamVjdGVkU2NyaXB0SG9z
dD4mJiBob3N0KQogICAgIDogSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGVudmlyb25tZW50LCBXVEZN
b3ZlKGhvc3QpKQogICAgICwgbV9jb21tYW5kTGluZUFQSUhvc3QoQ29tbWFuZExpbmVBUElIb3N0
OjpjcmVhdGUoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJ
bmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCBiYzE2MzdjYzUzYWY5YzhkMWZhYmUzNTliNzVjOWMx
ZGY3OWQ4NThjLi42YjRhZDdjYjljNjdjMjE3NTFkYTJhMjQ0ODgxNTZkMDk1NTBlMzUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdl
ci5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIERPTVdpbmRvdzsKIAogY2xhc3MgV2ViSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5zcGVjdG9y
OjpJbnNwZWN0b3JFbnZpcm9ubWVudCYsIFJlZlB0cjxJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
SG9zdD4mJik7CisgICAgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRW52aXJvbm1lbnQmLCBSZWY8SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdEhvc3Q+JiYpOwog
ICAgIHZpcnR1YWwgfldlYkluamVjdGVkU2NyaXB0TWFuYWdlcigpIHsgfQogCiAgICAgQ29tbWFu
ZExpbmVBUElIb3N0KiBjb21tYW5kTGluZUFQSUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2NvbW1h
bmRMaW5lQVBJSG9zdC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDli
NmFiYjI0NGRkNjdjNjFmOTk3OTA1YmY2MDUxZGQ3OGNkNjdjMGQuLmQ5YjdjNmE3YWM0Njg4NTg1
NTQ4ODY4ZGRhMTY0MTk5MDBlNzg0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAg
LTk5Myw3ICs5OTMsMTAgQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZChQ
b3N0TWVzc2FnZVRpbWVyJiB0aW1lcikKICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdp
bi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsK
ICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgewogICAgICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAiLCBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSwgIi4gUmVjaXBpZW50
IGhhcyBvcmlnaW4gIiwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCAi
LlxuIik7Ci0gICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHRpbWVyLnN0YWNr
VHJhY2UoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVyLnN0YWNrVHJhY2UoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsICp0aW1lci5zdGFja1RyYWNlKCkp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUt
PmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IG1lc3NhZ2UpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDc5Y2FlMTgy
Njg3ZjQxYzZlZjg0OTY5MTUyZGRkZjdiZmFiMzlhYTMuLjIwOTNlNzM1NjM5MTBkODFkNzg5MThi
MzYyYTU4ODE1MTBmNDc1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb24KICAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgY29sdW1uLCAwLCBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykKIHsKICAg
ICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCAwLCBXVEZN
b3ZlKGNhbGxTdGFjayksIDApOwogfQpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUGFnZUNvbnNv
bGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+
IG1lc3NhZ2U7CiAKICAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBtZXNzYWdlID0gc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2UsIE1lc3NhZ2VUeXBl
OjpMb2csIGxldmVsLCBtZXNzYWdlVGV4dCwgV1RGTW92ZShjYWxsU3RhY2spLCByZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6
Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1lc3NhZ2VU
ZXh0LCBjYWxsU3RhY2sucmVsZWFzZU5vbk51bGwoKSwgcmVxdWVzdElkZW50aWZpZXIpOwogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yOjpDb25z
b2xlTWVzc2FnZT4oc291cmNlLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZVRleHQs
IHN1Z2dlc3RlZFVSTCwgc3VnZ2VzdGVkTGluZU51bWJlciwgc3VnZ2VzdGVkQ29sdW1uTnVtYmVy
LCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBQ
YWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb24KIH0KIAogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYg
YXJndW1lbnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAg
ICBTdHJpbmcgbWVzc2FnZVRleHQ7CiAgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1lbnRzLT5n
ZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZVRleHQpOwpAQCAtMTc2LDcgKzE3Niw3IEBA
IHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsCiAgICAgICAgIENvbnNvbGVDbGllbnQ6OnByaW50Q29u
c29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUs
IGxldmVsLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi12b2lkIFBhZ2VDb25zb2xl
Q2xpZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4mJiBhcmd1bWVudHMpCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpjb3VudChKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQobV9wYWdlLCBleGVjLCBXVEZNb3Zl
KGFyZ3VtZW50cykpOwogfQpAQCAtMjA1LDExICsyMDUsMTAgQEAgdm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAKIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCiB7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNy
ZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwotICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCB0aXRs
ZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUsIGNyZWF0ZVNjcmlwdENh
bGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50
Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0
ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChtX3BhZ2UubWFpbkZyYW1lKCksIFdURk1v
dmUoYXJndW1lbnRzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgK
aW5kZXggYzhlNTFlOTIxZjk2YTVlYjYzNThlN2I1ODQwYTU4MTQyN2MxNzc3NS4uNWU0NGYyODJj
ZDE1YjJhZDFhNTY5NmNiMmUwNzUyZjNlMzA0N2RhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuaApAQCAtNTQsMTggKzU0LDE4IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAg
ICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiA9IG51bGxwdHIsIEpTQzo6RXhlY1N0
YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKLSAg
ICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CisgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHZvaWQg
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IG51
bGxwdHIpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4
ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxl
RW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVj
U3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAppbmRleCA2
ZDgyNGMyZmZjYWYzZGIxMTk0ODMwZWNlZjI0NTFmZjA0YmNlNDZiLi5hZjk5ZjVlYTA1ZjA4MGQ5
NThkY2I0MjZmOTMzZThlNDhhZmViMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29uc29sZUNsaWVudC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgV29ya2VyQ29uc29sZUNs
aWVudDo6fldvcmtlckNvbnNvbGVDbGllbnQoKQogewogfQogCi12b2lkIFdvcmtlckNvbnNvbGVD
bGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlw
dEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6Om1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwogICAgIGFyZ3VtZW50cy0+Z2V0
Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2VUZXh0KTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9p
ZCBXb3JrZXJDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwKICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLmFkZENvbnNvbGVN
ZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6
OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fd29ya2VyR2xvYmFsU2NvcGUsIGV4ZWMs
IFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CkBAIC02NSw4ICs2NSw3IEBAIHZvaWQgV29ya2VyQ29u
c29sZUNsaWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAK
IHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSk7Ci0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhtX3dvcmtlckdsb2JhbFNj
b3BlLCB0aXRsZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnN0b3BDb25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUsIHRpdGxlLCBjcmVh
dGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKIH0KIAogLy8gRklYTUU6IDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmls
ZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKQEAgLTc1LDYgKzc0LDYgQEAg
dm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJikgeyB9CiAKIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI3NjM0
PiBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGRlYnVnZ2luZyB3ZWIgd29ya2Vycwogdm9pZCBXb3Jr
ZXJDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJikgeyB9Ci12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4
ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpIHsgfQordm9pZCBXb3JrZXJDb25z
b2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYmKSB7IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaAppbmRleCA1ZWNhOTc1MjVmNzk3ZGU0MDE4NzQ0NmJi
NDc1ZjkwZmQxNmFhNTNkLi5hOGQxMjI4MTVlZDUzYmJjNmY2NjZkMGI3YTNhYWRhYmIwM2Y1NTdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaApAQCAt
NDIsMTQgKzQyLDE0IEBAIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQgZmluYWwgOiBwdWJsaWMg
SlNDOjpDb25zb2xlQ2xpZW50IHsKICAgICB2aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQ2xpZW50KCk7
CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRl
KiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRh
a2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVy
cmlkZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSos
IFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dv
cmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCA1ZTJlMmNmNGI4YWJkMzc5MjMyNDQ4YTEzMzIwZTg2ZGU1ZjRkYWI1Li40
MGU3ODZiZTIwMzUwZDhhODFhYmZlMmRkMDNlNTczMDIyYjVlMWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZv
aWQgV29ya2VyR2xvYmFsU2NvcGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpD
b25zb2xlTWVzc2FnZT4gbWVzc2FnZTsKICAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBtZXNz
YWdlID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2Us
IE1lc3NhZ2VUeXBlOjpMb2csIGxldmVsLCBtZXNzYWdlVGV4dCwgV1RGTW92ZShjYWxsU3RhY2sp
LCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2
ZWwsIG1lc3NhZ2VUZXh0LCBjYWxsU3RhY2sucmVsZWFzZU5vbk51bGwoKSwgcmVxdWVzdElkZW50
aWZpZXIpOwogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5z
cGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oc291cmNlLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwg
bWVzc2FnZVRleHQsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzdGF0ZSwg
cmVxdWVzdElkZW50aWZpZXIpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZSgqdGhpcywgV1RGTW92ZShtZXNzYWdlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301742</attachid>
            <date>2017-02-16 04:16:29 -0800</date>
            <delta_ts>2017-02-16 08:16:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168420-20170216211352.patch</filename>
            <type>text/plain</type>
            <size>80353</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjRkZGZjMWQ1M2VkNGMyNzdiYWE5YTA4N2ViMGJmYzAzNTMwMTcwLi45MWJlYTQxN2VkNzcyY2M2
NzdlNDU5MGI0MGFiZWQwOTgxNzVlOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MCBAQAorMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5zcGVjdG9yLworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBQYXNzUmVm
UHRyIHVzZXMuCisgICAgICAgIEFuZCB1c2UgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRz
PiBhbmQgUmVmPFNjcmlwdENhbGxTdGFjaz4gYXMgbXVjaCBhcyBwb3NzaWJsZS4KKyAgICAgICAg
SXQgZHJvcHMgc29tZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrcy4KKworICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6Omhhc0JyZWFrcG9pbnQp
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKToKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0
YWNrVHJhY2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpBc3luY1N0YWNrVHJhY2U6OmNyZWF0
ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFja1RyYWNl
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6QXN5bmNTdGFja1RyYWNlOjpidWlsZEluc3BlY3Rvck9i
amVjdCk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6dHJ1bmNhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAgICAg
ICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdl
cik6CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRT
Y3JpcHRIb3N0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lRW5kKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ6Ondhcm5VbmltcGxlbWVudGVkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgIENvbnNvbGVDbGllbnQg
bm93IHRha2VzIFJlZjxTY3JpcHRBcmd1bWVudD4mJiBpbnN0ZWFkIG9mIFJlZlB0cjxTY3JpcHRB
cmd1bWVudD4mJi4KKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZSk6CisgICAgICAgIChJbnNwZWN0b3I6
OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkpTSmF2YVNjcmlwdENhbGxGcmFtZTo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1l
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6dG9KUyk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2
YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0phdmFTY3JpcHRDYWxs
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0
Q2FsbEZyYW1lKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNjcmlwdENhbGxGcmFtZTo6Y2Fs
bGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAg
ICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlw
dERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAoSW5zcGVj
dG9yOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVzZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb25PckNhdWdodFZhbHVlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyk6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkU2NoZWR1bGVBc3luY0NhbGwpOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGll
bnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q29u
c29sZUNsaWVudDo6aW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIChK
U0M6OkNvbnNvbGVDbGllbnQ6OmxvZ1dpdGhMZXZlbCk6CisgICAgICAgIChKU0M6OkNvbnNvbGVD
bGllbnQ6OmRpcik6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OmRpclhNTCk6CisgICAg
ICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OnRhYmxlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNs
aWVudDo6dHJhY2UpOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojphc3NlcnRpb24pOgor
ICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojpncm91cCk6CisgICAgICAgIChKU0M6OkNvbnNv
bGVDbGllbnQ6Omdyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6
Z3JvdXBFbmQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNvbnNvbGVMb2dXaXRo
TGV2ZWwpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyKToKKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0RpclhNTCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNUYWJsZSk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUcmFjZSk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNBc3NlcnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJv
dG9GdW5jQ291bnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKToK
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKToKKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKToKKwogMjAxNy0wMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHRoZSBidWlsZCBhZnRl
ciByMjEyNDI0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhjOTlmYWEyOWMzMGZlMzFlZjBmNjkxYTQ5NmNhMGVm
Y2MxM2E2YmEuLmUzN2ZkMTExMzdjZTgxZWUxYWRjZjJlZWY2MGFlYTQwYTIzYjcxMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5z
cGVjdG9yLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY4NDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYW5kIFJlZjxTY3JpcHRDYWxsU3Rh
Y2s+IGFzIG11Y2ggYXMgcG9zc2libGUuCisgICAgICAgIEl0IGRyb3BzIHNvbWUgdW5uZWNlc3Nh
cnkgbnVsbCBjaGVja3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbFdpdGgpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQ2FsbGVy
KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5n
RXhjZXB0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29s
ZUNvdW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnN0b3BDb25zb2xlVGltaW5nSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmJ1aWxkSW5pdGlhdG9yT2JqZWN0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCk6CisgICAgICAgICogaW5z
cGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3Nh
Z2VUaW1lckZpcmVkKToKKyAgICAgICAgV2UgZGlzcGF0Y2ggYXBwcm9wcmlhdGUgYWRkTWVzc2Fn
ZSBmdW5jdGlvbiBhY2NvcmRpbmcgdG8gd2hldGhlcgorICAgICAgICBgdGltZXIuc3RhY2tUcmFj
ZSgpYCBpcyBudWxscHRyLgorCisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNv
bGVDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFkZE1l
c3NhZ2UpOgorCiAyMDE3LTAyLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTIzMTEpOiBOVUxMLWRlcmVmZXJlbmNlIGluIEhUTUxN
ZWRpYUVsZW1lbnQ6OnByZXBhcmVUb1BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlci5jcHAKaW5kZXggZDQ3NzhlZjE3MmM3MzBjYTdjMGFmYjI3MTU0MGMzNjE4
YzI2ZWI2OC4uOGU3MGZiYzZkNWY1Mjc3ZTQyODU5ZTM1NDgyYTRlYzg2ZDNiYjg5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC01MDIsOSArNTAy
LDkgQEAgYm9vbCBEZWJ1Z2dlcjo6aGFzQnJlYWtwb2ludChTb3VyY2VJRCBzb3VyY2VJRCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbiwgQnIKICAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBw
YXVzZWRTdGF0ZSgqdGhpcyk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKKyAgICBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUg
PSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKTsKICAgICBKU09iamVjdCogc2NvcGVFeHRlbnNp
b25PYmplY3QgPSBudWxscHRyOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZGVidWdnZXJDYWxsRnJh
bWUtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGJyZWFrcG9pbnQtPmNvbmRpdGlvbiwgc2Nv
cGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBkZWJ1
Z2dlckNhbGxGcmFtZS5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihicmVha3BvaW50LT5jb25k
aXRpb24sIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRpb24pOwogCiAgICAgLy8gV2UgY2Fu
IGxvc2UgdGhlIGRlYnVnZ2VyIHdoaWxlIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIGlmICgh
bV9jdXJyZW50Q2FsbEZyYW1lKQpAQCAtOTExLDExICs5MTEsMTEgQEAgdm9pZCBEZWJ1Z2dlcjo6
ZGlkUmVhY2hCcmVha3BvaW50KENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHVwZGF0ZUNhbGxG
cmFtZShjYWxsRnJhbWUsIEF0dGVtcHRQYXVzZSk7CiB9CiAKLURlYnVnZ2VyQ2FsbEZyYW1lKiBE
ZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCkKK0RlYnVnZ2VyQ2FsbEZyYW1lJiBE
ZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCkKIHsKICAgICBpZiAoIW1fY3VycmVu
dERlYnVnZ2VyQ2FsbEZyYW1lKQogICAgICAgICBtX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSA9
IERlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICByZXR1
cm4gbV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUuZ2V0KCk7CisgICAgcmV0dXJuICptX2N1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZTsKIH0KIAogYm9vbCBEZWJ1Z2dlcjo6aXNCbGFja2xpc3RlZChT
b3VyY2VJRCBzb3VyY2VJRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyLmgKaW5kZXggZmE2ZDMxZWExYzAzM2NiMDA5YmU2MWY2MTliYmExYmNkN2I2OTc4ZS4u
M2Y1MWJiNDJkYmY4MGVlZjBhYjQ1MmI2OWRkYTI2YTNiZjQ3ZDA3OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgSlNf
RVhQT1JUX1BSSVZBVEUgRGVidWdnZXIgewogCiAgICAgVk0mIHZtKCkgeyByZXR1cm4gbV92bTsg
fQogCi0gICAgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSogY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7CisgICAgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7CiAgICAgYm9vbCBoYXNIYW5kbGVyRm9yRXhjZXB0aW9uQ2FsbGJhY2soKSBjb25zdAogICAg
IHsKICAgICAgICAgQVNTRVJUKG1fcmVhc29uRm9yUGF1c2UgPT0gUGF1c2VkRm9yRXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFj
a1RyYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFja1Ry
YWNlLmNwcAppbmRleCA4ODBhMzYyZDBlN2ZkYzU3MWZmMDM5OTQyNzg2MGIzOTYyNjBmYmFjLi40
MDAyOTY0YWNmMDQyNGQwNTU4YjAzMmY1YTQ1MDM2YmQ5NWE4OTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKLVJlZlB0cjxBc3luY1N0YWNr
VHJhY2U+IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaywgYm9vbCBzaW5nbGVTaG90LCBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBwYXJlbnQp
CitSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBBc3luY1N0YWNrVHJhY2U6OmNyZWF0ZShSZWY8U2Ny
aXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaywgYm9vbCBzaW5nbGVTaG90LCBSZWZQdHI8QXN5bmNT
dGFja1RyYWNlPiBwYXJlbnQpCiB7Ci0gICAgQVNTRVJUKGNhbGxTdGFjayAmJiBjYWxsU3RhY2st
PnNpemUoKSk7CisgICAgQVNTRVJUKGNhbGxTdGFjay0+c2l6ZSgpKTsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBc3luY1N0YWNrVHJhY2UoV1RGTW92ZShjYWxsU3RhY2spLCBzaW5nbGVTaG90
LCBXVEZNb3ZlKHBhcmVudCkpKTsKIH0KIAotQXN5bmNTdGFja1RyYWNlOjpBc3luY1N0YWNrVHJh
Y2UoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBib29sIHNpbmdsZVNob3QsIFJl
ZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBhcmVudCkKLSAgICA6IG1fY2FsbFN0YWNrKGNhbGxTdGFj
aykKK0FzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFja1RyYWNlKFJlZjxTY3JpcHRDYWxsU3RhY2s+
JiYgY2FsbFN0YWNrLCBib29sIHNpbmdsZVNob3QsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBh
cmVudCkKKyAgICA6IG1fY2FsbFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKICAgICAsIG1fcGFy
ZW50KHBhcmVudCkKICAgICAsIG1fc2luZ2xlU2hvdChzaW5nbGVTaG90KQogewpAQCAtMTA0LDgg
KzEwNCw4IEBAIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpTdGFja1RyYWNl
PiBBc3luY1N0YWNrVHJhY2U6OmJ1aWxkSW5zcGVjdG9yCiAKICAgICBhdXRvKiBzdGFja1RyYWNl
ID0gdGhpczsKICAgICB3aGlsZSAoc3RhY2tUcmFjZSkgewotICAgICAgICBhdXRvIGNhbGxTdGFj
ayA9IHN0YWNrVHJhY2UtPm1fY2FsbFN0YWNrOwotICAgICAgICBBU1NFUlQoY2FsbFN0YWNrICYm
IGNhbGxTdGFjay0+c2l6ZSgpKTsKKyAgICAgICAgYXV0byYgY2FsbFN0YWNrID0gc3RhY2tUcmFj
ZS0+bV9jYWxsU3RhY2s7CisgICAgICAgIEFTU0VSVChjYWxsU3RhY2stPnNpemUoKSk7CiAKICAg
ICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNvbnNvbGU6OlN0YWNrVHJhY2U+IHBy
b3RvY29sT2JqZWN0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6U3RhY2tUcmFjZTo6
Y3JlYXRlKCkKICAgICAgICAgICAgIC5zZXRDYWxsRnJhbWVzKGNhbGxTdGFjay0+YnVpbGRJbnNw
ZWN0b3JBcnJheSgpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgQXN5bmNTdGFja1RyYWNlOjp0
cnVuY2F0ZShzaXplX3QgbWF4RGVwdGgpCiAgICAgYXV0byogY3VycmVudE5vZGUgPSBsYXN0VW5s
b2NrZWRBbmNlc3RvcjsKICAgICB3aGlsZSAoY3VycmVudE5vZGUtPm1fcGFyZW50KSB7CiAgICAg
ICAgIGF1dG8mIHBhcmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+bV9wYXJlbnQ7Ci0gICAgICAgIGN1
cnJlbnROb2RlLT5tX3BhcmVudCA9IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKHBhcmVudE5vZGUt
Pm1fY2FsbFN0YWNrLCB0cnVlLCBwYXJlbnROb2RlLT5tX3BhcmVudCk7CisgICAgICAgIGN1cnJl
bnROb2RlLT5tX3BhcmVudCA9IEFzeW5jU3RhY2tUcmFjZTo6Y3JlYXRlKHBhcmVudE5vZGUtPm1f
Y2FsbFN0YWNrLmNvcHlSZWYoKSwgdHJ1ZSwgcGFyZW50Tm9kZS0+bV9wYXJlbnQpOwogICAgICAg
ICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT5tX3BhcmVudC5nZXQoKTsKIAogICAgICAgICBp
ZiAocGFyZW50Tm9kZS5nZXQoKSA9PSBuZXdTdGFja1RyYWNlUm9vdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFja1RyYWNlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5oCmluZGV4IDI5MDk2NzJk
YWIzMjhlMzBhY2NmMzJhMzM1MGQ5NmVkODE2NmE1MzQuLmE2MThmZTdhZmYxZjZkNTEwYWE0NTBj
MzMwYjdhMTgwZTMwZmJhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQXN5bmNTdGFja1RyYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Bc3luY1N0YWNrVHJhY2UuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBBc3luY1N0YWNrVHJhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxBc3luY1N0YWNrVHJh
Y2U+IHsKICAgICAgICAgQ2FuY2VsZWQsCiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWZQdHI8QXN5
bmNTdGFja1RyYWNlPiBjcmVhdGUoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGJvb2wgc2luZ2xl
U2hvdCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50KTsKKyAgICBzdGF0aWMgUmVmUHRy
PEFzeW5jU3RhY2tUcmFjZT4gY3JlYXRlKFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYsIGJvb2wgc2lu
Z2xlU2hvdCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50KTsKIAogICAgIGJvb2wgaXNQ
ZW5kaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0OwpAQCAtNTYsMTIgKzU2
LDEyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEFzeW5jU3RhY2tUcmFjZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFzeW5jU3RhY2tUcmFjZT4gewogICAgIH5Bc3luY1N0YWNrVHJhY2UoKTsKIAog
cHJpdmF0ZToKLSAgICBBc3luY1N0YWNrVHJhY2UoUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGJv
b2wsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+KTsKKyAgICBBc3luY1N0YWNrVHJhY2UoUmVmPFNj
cmlwdENhbGxTdGFjaz4mJiwgYm9vbCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4pOwogCiAgICAg
dm9pZCB0cnVuY2F0ZShzaXplX3QgbWF4RGVwdGgpOwogICAgIHZvaWQgcmVtb3ZlKCk7CiAKLSAg
ICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX2NhbGxTdGFjazsKKyAgICBSZWY8U2NyaXB0Q2Fs
bFN0YWNrPiBtX2NhbGxTdGFjazsKICAgICBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBtX3BhcmVu
dDsKICAgICB1bnNpZ25lZCBtX2NoaWxkQ291bnQgeyAwIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7
IFN0YXRlOjpQZW5kaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDEzMzg5M2ZiMGFhMzA5YzA1NWU3OTgzMzc3Mjhj
YTFmN2MwZjZmZDguLmVmMDlmY2MxZThiNmJlMWNjNjgyNjUxOTQzNGQ4YmQ5NzUwYzVhZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCkBAIC02NiwxNiArNjYsMTUgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICBhdXRv
Z2VuZXJhdGVNZXRhZGF0YShzdGF0ZSk7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCitDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0
Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikK
ICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9sZXZl
bChsZXZlbCkKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQorICAgICwgbV9jYWxsU3RhY2soV1RG
TW92ZShjYWxsU3RhY2spKQogICAgICwgbV91cmwoKQogICAgICwgbV9yZXF1ZXN0SWQoSWRlbnRp
ZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZpZXIpKQogewotICAgIG1fY2Fs
bFN0YWNrID0gY2FsbFN0YWNrOwotCiAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lKiBmcmFtZSA9
IG1fY2FsbFN0YWNrID8gbV9jYWxsU3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCkgOiBu
dWxscHRyOwogICAgIGlmIChmcmFtZSkgewogICAgICAgICBtX3VybCA9IGZyYW1lLT5zb3VyY2VV
UkwoKTsKQEAgLTg0LDEyICs4MywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgIH0K
IH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQorQ29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllcikKICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fdHlw
ZSh0eXBlKQogICAgICwgbV9sZXZlbChsZXZlbCkKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQot
ICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9hcmd1bWVudHMoV1RGTW92ZShh
cmd1bWVudHMpKQogICAgICwgbV91cmwoKQogICAgICwgbV9yZXF1ZXN0SWQoSWRlbnRpZmllcnNG
YWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZpZXIpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IDRmMDYwODFjN2Uw
NDUzNTEyOGRkNGJiMzQ1N2UzNmNiODY0YTRkYWUuLmE0ZDE4Yjg4MmJkZGMyMWY4ZjE5YmFjMmFk
YTUwNWQ3NjBkOWY0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmgKQEAgLTUwLDggKzUwLDggQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgQ29uc29sZU1lc3NhZ2UgewogcHVibGljOgogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVt
biwgSlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApOwotICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Ci0gICAgQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIEpTQzo6RXhl
Y1N0YXRlKiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyID0gMCk7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKICAgICB2b2lkIGFkZFRv
RnJvbnRlbmQoQ29uc29sZUZyb250ZW5kRGlzcGF0Y2hlciYsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciYsIGJvb2wgZ2VuZXJhdGVQcmV2aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCBiNzc2MWNj
N2E5N2EzNGIyYjg5YjFhZGIwYTI2YmQxMDRhOWRhMjRjLi4wOTc2MTViMTA2ZGRmMTRkM2QwMWE2
ZWVmMjQ5NmUyM2IwYWZhNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC00NSw5ICs0NSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1JbmplY3Rl
ZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0b3JFbnZpcm9ubWVu
dCYgZW52aXJvbm1lbnQsIFBhc3NSZWZQdHI8SW5qZWN0ZWRTY3JpcHRIb3N0PiBpbmplY3RlZFNj
cmlwdEhvc3QpCitJbmplY3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcihJ
bnNwZWN0b3JFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFJlZjxJbmplY3RlZFNjcmlwdEhvc3Q+
JiYgaW5qZWN0ZWRTY3JpcHRIb3N0KQogICAgIDogbV9lbnZpcm9ubWVudChlbnZpcm9ubWVudCkK
LSAgICAsIG1faW5qZWN0ZWRTY3JpcHRIb3N0KGluamVjdGVkU2NyaXB0SG9zdCkKKyAgICAsIG1f
aW5qZWN0ZWRTY3JpcHRIb3N0KFdURk1vdmUoaW5qZWN0ZWRTY3JpcHRIb3N0KSkKICAgICAsIG1f
bmV4dEluamVjdGVkU2NyaXB0SWQoMSkKIHsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKQogICAgIG1fc2NyaXB0
U3RhdGVUb0lkLmNsZWFyKCk7CiB9CiAKLUluamVjdGVkU2NyaXB0SG9zdCogSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjppbmplY3RlZFNjcmlwdEhvc3QoKQorSW5qZWN0ZWRTY3JpcHRIb3N0JiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0SG9zdCgpCiB7CiAgICAgcmV0dXJuIG1f
aW5qZWN0ZWRTY3JpcHRIb3N0LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKaW5kZXggZjFiNzgwODQ5
ZTA1ZTFiZDIyNmY1OGNkOTQ2YWQ5YmI0MGZlOTdkMi4uODQ3NWU0MmY3OGIxN2FmZTMxNTgyNzU1
YmNjODJlZjIwNzJjZTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCkBAIC00OSwxMyArNDksMTMgQEAgbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbmplY3RlZFNjcmlw
dE1hbmFnZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluamVjdGVkU2NyaXB0TWFuYWdl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEluamVjdGVkU2NyaXB0
TWFuYWdlcihJbnNwZWN0b3JFbnZpcm9ubWVudCYsIFBhc3NSZWZQdHI8SW5qZWN0ZWRTY3JpcHRI
b3N0Pik7CisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3RvckVudmlyb25tZW50Jiwg
UmVmPEluamVjdGVkU2NyaXB0SG9zdD4mJik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNjYXJkSW5qZWN0ZWRTY3JpcHRzKCk7CiAKLSAgICBJbmplY3RlZFNjcmlwdEhvc3Qq
IGluamVjdGVkU2NyaXB0SG9zdCgpOworICAgIEluamVjdGVkU2NyaXB0SG9zdCYgaW5qZWN0ZWRT
Y3JpcHRIb3N0KCk7CiAgICAgSW5zcGVjdG9yRW52aXJvbm1lbnQmIGluc3BlY3RvckVudmlyb25t
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnZpcm9ubWVudDsgfQogCiAgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHRGb3IoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTc2LDcgKzc2LDcgQEAg
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIHsKICAgICBKU0M6
OkpTT2JqZWN0KiBjcmVhdGVJbmplY3RlZFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgSlND
OjpFeGVjU3RhdGUqLCBpbnQgaWQpOwogCiAgICAgSW5zcGVjdG9yRW52aXJvbm1lbnQmIG1fZW52
aXJvbm1lbnQ7Ci0gICAgUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4gbV9pbmplY3RlZFNjcmlw
dEhvc3Q7CisgICAgUmVmPEluamVjdGVkU2NyaXB0SG9zdD4gbV9pbmplY3RlZFNjcmlwdEhvc3Q7
CiAgICAgaW50IG1fbmV4dEluamVjdGVkU2NyaXB0SWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUNsaWVudC5jcHAKaW5kZXggODc2M2QyN2Y4YjZmYzFhZmRjMTkxY2IyNzZmNjA1NjU2NzU0MjNh
ZC4uMWY5MDNiYWU3OGU5ZmNhM2Y0ODA2ZjUwYjcwMGNhMTM5NWY1M2NhNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdl
bnQqCiB7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0
aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3Zv
aWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAoSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKSkKICAgICAgICAgQ29uc29s
ZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6
Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cy5jb3B5UmVmKCkpOwpAQCAt
NzIsOSArNzIsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzcwogICAgIG1fY29uc29sZUFnZW50
LT5hZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1l
c3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIGV4ZWMpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6
OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCit2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnQoRXhlY1N0YXRlKiBl
eGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBtX2NvbnNvbGVB
Z2VudC0+Y291bnQoZXhlYywgYXJndW1lbnRzKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQo
ZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpA
QCAtMTU2LDExICsxNTYsMTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRp
bWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIAogdm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OnRpbWVFbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQogewotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+c3Rv
cFRpbWluZyh0aXRsZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+
c3RvcFRpbWluZyh0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAx
KSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoRXhl
Y1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikKK3ZvaWQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoRXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4m
JikKIHsKICAgICAvLyBGSVhNRTogSlNDb250ZXh0IGluc3BlY3Rpb24gbmVlZHMgYSB0aW1lbGlu
ZS4KICAgICB3YXJuVW5pbXBsZW1lbnRlZChBU0NJSUxpdGVyYWwoImNvbnNvbGUudGltZVN0YW1w
IikpOwpAQCAtMTY5LDcgKzE2OCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojp0aW1lU3RhbXAoRXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mCiB2b2lkIEpT
R2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6d2FyblVuaW1wbGVtZW50ZWQoY29uc3QgU3RyaW5n
JiBtZXRob2QpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtZXRob2QgKyAiIGlzIGN1cnJlbnRs
eSBpZ25vcmVkIGluIEphdmFTY3JpcHQgY29udGV4dCBpbnNwZWN0aW9uLiI7Ci0gICAgbV9jb25z
b2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgbV9jb25z
b2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKaW5kZXggNTI3ZmZkOTE0ZTIwOGE3NDE4ZTA1MzA4
YWRiZjVkNDEyYTM1YzI0OS4uZDliMjU5Y2I2YmE5MTZkYjc0N2ZmNjdiYWY5ZjUwMWM3ODZmOWZh
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCkBAIC00NSwxOCArNDUsMTggQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNs
aWVudCB7CiAgICAgc3RhdGljIHZvaWQgc2V0TG9nVG9TeXN0ZW1Db25zb2xlKGJvb2wpOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYp
IG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmls
ZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAg
IHZvaWQgdGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0
bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhl
Y1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0
aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHdhcm5VbmltcGxlbWVudGVkKGNvbnN0IFN0cmluZyYg
bWV0aG9kKTsKLSAgICB2b2lkIGludGVybmFsQWRkTWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpOworICAg
IHZvaWQgaW50ZXJuYWxBZGRNZXNzYWdlKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6
RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJik7CiAKICAgICB2b2lkIHN0YXJ0Q29u
c29sZVByb2ZpbGUoKTsKICAgICB2b2lkIHN0b3BDb25zb2xlUHJvZmlsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDFiZjgwMDhhZDc2Nzg5M2EyNTBi
OGQzY2Q1ZTUyMTM4ODk4OWNkNTIuLjMxMzczMGE1NzAyOTcxNTRhYjhhNTE5YmM3NzM2MmE1N2Zi
MjMxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE4
Nyw3ICsxODcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cGF1
c2UoKQogICAgIG1fZGVidWdnZXJBZ2VudC0+cGF1c2UoZHVtbXlFcnJvcik7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjphcHBlbmRBUElCYWNrdHJhY2UoU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlcjo6YXBwZW5kQVBJQmFja3RyYWNlKFNjcmlwdENhbGxTdGFjayYgY2FsbFN0YWNrKQog
ewogI2lmIE9TKERBUldJTikgfHwgKE9TKExJTlVYKSAmJiAhUExBVEZPUk0oR1RLKSkKICAgICBz
dGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2hvdyA9IDMxOwpAQCAtMjA4LDkgKzIwOCw5IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjphcHBlbmRBUElCYWNrdHJhY2Uo
U2NyaXB0Q2FsbFN0YWNrKiBjYWxsCiAgICAgICAgIGlmIChtYW5nbGVkTmFtZSkKICAgICAgICAg
ICAgIGN4YURlbWFuZ2xlZCA9IGFiaTo6X19jeGFfZGVtYW5nbGUobWFuZ2xlZE5hbWUsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBpZiAobWFuZ2xlZE5hbWUgfHwgY3hhRGVt
YW5nbGVkKQotICAgICAgICAgICAgY2FsbFN0YWNrLT5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGN4
YURlbWFuZ2xlZCA/IGN4YURlbWFuZ2xlZCA6IG1hbmdsZWROYW1lLCBBU0NJSUxpdGVyYWwoIltu
YXRpdmUgY29kZV0iKSwgbm9Tb3VyY2VJRCwgMCwgMCkpOworICAgICAgICAgICAgY2FsbFN0YWNr
LmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoY3hhRGVtYW5nbGVkID8gY3hhRGVtYW5nbGVkIDogbWFu
Z2xlZE5hbWUsIEFTQ0lJTGl0ZXJhbCgiW25hdGl2ZSBjb2RlXSIpLCBub1NvdXJjZUlELCAwLCAw
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNhbGxTdGFjay0+YXBwZW5kKFNjcmlwdENh
bGxGcmFtZShBU0NJSUxpdGVyYWwoIj8iKSwgQVNDSUlMaXRlcmFsKCJbbmF0aXZlIGNvZGVdIiks
IG5vU291cmNlSUQsIDAsIDApKTsKKyAgICAgICAgICAgIGNhbGxTdGFjay5hcHBlbmQoU2NyaXB0
Q2FsbEZyYW1lKEFTQ0lJTGl0ZXJhbCgiPyIpLCBBU0NJSUxpdGVyYWwoIltuYXRpdmUgY29kZV0i
KSwgbm9Tb3VyY2VJRCwgMCwgMCkpOwogICAgICAgICBmcmVlKGN4YURlbWFuZ2xlZCk7CiAgICAg
fQogI2Vsc2UKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXhjZQogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICBFcnJvckhhbmRsaW5n
U2NvcGUgZXJyb3JTY29wZSh2bSk7CiAKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlv
biwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICBSZWY8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhj
ZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXpl
VG9DYXB0dXJlKTsKICAgICBpZiAoaW5jbHVkZXNOYXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5n
RXhjZXB0aW9ucygpKQogICAgICAgICBhcHBlbmRBUElCYWNrdHJhY2UoY2FsbFN0YWNrLmdldCgp
KTsKIApAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXBvcnRBUElFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlCiAgICAgICAg
ICAgICBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBlcnJvck1lc3NhZ2UsIFN0
cmluZygpLCAwLCAwKTsKICAgICB9CiAKLSAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdlLCBj
YWxsU3RhY2spKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6
Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZVR5
cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdlLCBXVEZNb3ZlKGNhbGxT
dGFjaykpKTsKIH0KIAogQ29uc29sZUNsaWVudCogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpjb25zb2xlQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlci5oCmluZGV4IGYzZmVhZmQxOTNkY2NiZGEyNjVkODljY2U5ZjJiZWI5ZWZlZDkyYTgu
LjI2YTU2OGY2MDI4ZGQ2MmMxMjU0MzYxNjYzNmRhNTIzNDc5NDY5M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTAyLDcgKzEwMiw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlciBmaW5hbAogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgdm9pZCBhcHBlbmRBUElCYWNrdHJhY2UoU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spOwor
ICAgIHZvaWQgYXBwZW5kQVBJQmFja3RyYWNlKFNjcmlwdENhbGxTdGFjayYpOwogCiAgICAgSlND
OjpKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
amVjdGVkU2NyaXB0TWFuYWdlcj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKaW5kZXggMWYxZTQ2OTU5NGQ3N2MyOTY4Yjg4NWI5OWNiMGU2MGM4YzYxYzE3OC4uMTkx
NmM1ZGM4ZTJhYTdjODNlMTJhMjNjODYzMjI4NWU1MjI1OTYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNw
cApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c19pbmZvID0geyAiSmF2YVNjcmlwdENhbGxGcmFt
ZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lKSB9OwogCi1KU0phdmFTY3JpcHRDYWxsRnJhbWU6OkpTSmF2YVNjcmlwdENhbGxGcmFt
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxs
RnJhbWU+IGltcGwpCitKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkpTSmF2YVNjcmlwdENhbGxGcmFt
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8SmF2YVNjcmlwdENhbGxGcmFtZT4m
JiBpbXBsKQogICAgIDogSlNEZXN0cnVjdGlibGVPYmplY3Qodm0sIHN0cnVjdHVyZSkKLSAgICAs
IG1faW1wbChpbXBsLmxlYWtSZWYoKSkKKyAgICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7
CiB9CiAKQEAgLTIyOCw3ICsyMjgsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKYXZhU2NyaXB0Q2FsbEZyYW1lKgogCiAgICAg
SlNPYmplY3QqIHByb3RvdHlwZSA9IEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlUHJvdG90
eXBlKGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSk7Ci0gICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBqYXZhU2Ny
aXB0Q2FsbEZyYW1lID0gSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwg
c3RydWN0dXJlLCBpbXBsKTsKKyAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGphdmFTY3JpcHRD
YWxsRnJhbWUgPSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShleGVjLT52bSgpLCBzdHJ1
Y3R1cmUsICppbXBsKTsKIAogICAgIHJldHVybiBqYXZhU2NyaXB0Q2FsbEZyYW1lOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lLmgKaW5kZXggNTZiNjlkNGI4ZGFiODRjMGI2OWUxMDJkMjliMmU4YjY1Njg5ZTJkMi4u
MmFjMjQ3Y2FlOWQ1MjBkYWMyOWFiM2Q0Y2ZhODE0OGRhMWZkYzliZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5o
CkBAIC00Miw5ICs0Miw5IEBAIGNsYXNzIEpTSmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBpbXBsKQorICAg
IHN0YXRpYyBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+JiYgaW1wbCkKICAg
ICB7Ci0gICAgICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTSmF2YVNjcmlwdENhbGxGcmFtZT4odm0uaGVhcCkpIEpT
SmF2YVNjcmlwdENhbGxGcmFtZSh2bSwgc3RydWN0dXJlLCBpbXBsKTsKKyAgICAgICAgSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNKYXZhU2NyaXB0Q2FsbEZyYW1lPih2bS5oZWFwKSkgSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW1wbCkpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQpAQCAtODMsNyAr
ODMsNyBAQCBjbGFzcyBKU0phdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJsaWMgSlNDOjpKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiAKIHBy
aXZhdGU6Ci0gICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVy
ZSosIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4pOworICAgIEpTSmF2YVNjcmlwdENh
bGxGcmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8SmF2YVNjcmlwdENhbGxGcmFt
ZT4mJik7CiAgICAgfkpTSmF2YVNjcmlwdENhbGxGcmFtZSgpOwogCiAgICAgSmF2YVNjcmlwdENh
bGxGcmFtZSogbV9pbXBsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKaW5kZXggZDVmNzNkNTQwNTA2OWFhYWFiN2M4
M2MxMDdmMDA5ZWZiODFhYTA3Mi4uM2MyODQ4NGFlYjRkMTE4MDUxYzg0MDAxN2FhYzEzNDllMThl
NTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0ph
dmFTY3JpcHRDYWxsRnJhbWUuY3BwCkBAIC0zMCw4ICszMCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1KYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZh
U2NyaXB0Q2FsbEZyYW1lKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2Fs
bEZyYW1lKQotICAgIDogbV9kZWJ1Z2dlckNhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkKK0ph
dmFTY3JpcHRDYWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUoUmVmPERlYnVnZ2VyQ2FsbEZy
YW1lPiYmIGRlYnVnZ2VyQ2FsbEZyYW1lKQorICAgIDogbV9kZWJ1Z2dlckNhbGxGcmFtZShXVEZN
b3ZlKGRlYnVnZ2VyQ2FsbEZyYW1lKSkKIHsKIH0KIApAQCAtNDQsNyArNDQsNyBAQCBKYXZhU2Ny
aXB0Q2FsbEZyYW1lKiBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjYWxsZXIoKQogICAgIGlmICghZGVi
dWdnZXJDYWxsZXJGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBtX2NhbGxl
ciA9IGNyZWF0ZShkZWJ1Z2dlckNhbGxlckZyYW1lKTsKKyAgICBtX2NhbGxlciA9IGNyZWF0ZShk
ZWJ1Z2dlckNhbGxlckZyYW1lLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIHJldHVybiBtX2NhbGxl
ci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRleCBmOWFkYmVjODFiNzYwOGM4ZTc2MjNjYWYxYWY5
MWFhNTY4OGU1ZDY4Li42YWY0OTJlZjYwODllM2EwZWQzODNhOTA4MDJlNjdkMGNmMWZmNGU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxs
RnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xh
c3MgSmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEphdmFTY3JpcHRDYWxs
RnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNy
ZWF0ZShQYXNzUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2FsbEZyYW1l
KQorICAgIHN0YXRpYyBSZWY8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFJlZjxKU0M6OkRl
YnVnZ2VyQ2FsbEZyYW1lPiYmIGRlYnVnZ2VyQ2FsbEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSmF2YVNjcmlwdENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKFdURk1v
dmUoZGVidWdnZXJDYWxsRnJhbWUpKSk7CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFt
ZSogY2FsbGVyKCk7CkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWUg
OiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiAgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBKU0M6
OkpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiBleGNl
cHRpb24pIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPmV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uKHNjcmlwdCwgc2NvcGVFeHRlbnNpb24sIGV4Y2VwdGlvbik7IH0KIAogcHJp
dmF0ZToKLSAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKFBhc3NSZWZQdHI8SlNDOjpEZWJ1Z2dlckNh
bGxGcmFtZT4pOworICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoUmVmPEpTQzo6RGVidWdnZXJDYWxs
RnJhbWU+JiYpOwogCi0gICAgUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IG1fZGVidWdn
ZXJDYWxsRnJhbWU7CisgICAgUmVmPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IG1fZGVidWdnZXJD
YWxsRnJhbWU7CiAgICAgUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IG1fY2FsbGVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmNwcAppbmRleCA3NTVmNWI4NTM1YzJlMmE0MDRkOGVhZDYwNWM3MDIxZjNmNjhkYWUy
Li44NGNlZmRmNzA5NDljNjBlNDFiOGM0M2NhZDJkMzEyMDIzMTYxZWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcApA
QCAtODksMjkgKzg5LDI5IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmNsZWFyQnJlYWtwb2lu
dEFjdGlvbnMoKQogCiBib29sIFNjcmlwdERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRB
Y3Rpb24oY29uc3QgU2NyaXB0QnJlYWtwb2ludEFjdGlvbiYgYnJlYWtwb2ludEFjdGlvbikKIHsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKKyAgICBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUg
PSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKTsKIAogICAgIHN3aXRjaCAoYnJlYWtwb2ludEFj
dGlvbi50eXBlKSB7CiAgICAgY2FzZSBTY3JpcHRCcmVha3BvaW50QWN0aW9uVHlwZUxvZzogewot
ICAgICAgICBkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Mb2coZGVidWdnZXJDYWxsRnJhbWUtPmds
b2JhbEV4ZWMoKSwgYnJlYWtwb2ludEFjdGlvbi5kYXRhKTsKKyAgICAgICAgZGlzcGF0Y2hCcmVh
a3BvaW50QWN0aW9uTG9nKGRlYnVnZ2VyQ2FsbEZyYW1lLmdsb2JhbEV4ZWMoKSwgYnJlYWtwb2lu
dEFjdGlvbi5kYXRhKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU2NyaXB0QnJl
YWtwb2ludEFjdGlvblR5cGVFdmFsdWF0ZTogewogICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+
IGV4Y2VwdGlvbjsKICAgICAgICAgSlNPYmplY3QqIHNjb3BlRXh0ZW5zaW9uT2JqZWN0ID0gbnVs
bHB0cjsKLSAgICAgICAgZGVidWdnZXJDYWxsRnJhbWUtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5z
aW9uKGJyZWFrcG9pbnRBY3Rpb24uZGF0YSwgc2NvcGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlv
bik7CisgICAgICAgIGRlYnVnZ2VyQ2FsbEZyYW1lLmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
KGJyZWFrcG9pbnRBY3Rpb24uZGF0YSwgc2NvcGVFeHRlbnNpb25PYmplY3QsIGV4Y2VwdGlvbik7
CiAgICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICByZXBvcnRFeGNlcHRpb24oZGVi
dWdnZXJDYWxsRnJhbWUtPmdsb2JhbEV4ZWMoKSwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHJl
cG9ydEV4Y2VwdGlvbihkZWJ1Z2dlckNhbGxGcmFtZS5nbG9iYWxFeGVjKCksIGV4Y2VwdGlvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFNjcmlwdEJyZWFrcG9pbnRBY3Rpb25U
eXBlU291bmQ6Ci0gICAgICAgIGRpc3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKGRlYnVnZ2Vy
Q2FsbEZyYW1lLT5nbG9iYWxFeGVjKCksIGJyZWFrcG9pbnRBY3Rpb24uaWRlbnRpZmllcik7Cisg
ICAgICAgIGRpc3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKGRlYnVnZ2VyQ2FsbEZyYW1lLmds
b2JhbEV4ZWMoKSwgYnJlYWtwb2ludEFjdGlvbi5pZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBTY3JpcHRCcmVha3BvaW50QWN0aW9uVHlwZVByb2JlOiB7CiAgICAgICAgIE5h
a2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwogICAgICAgICBKU09iamVjdCogc2NvcGVFeHRl
bnNpb25PYmplY3QgPSBudWxscHRyOwotICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGRlYnVnZ2Vy
Q2FsbEZyYW1lLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihicmVha3BvaW50QWN0aW9uLmRh
dGEsIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRpb24pOwotICAgICAgICBKU0M6OkV4ZWNT
dGF0ZSogZXhlYyA9IGRlYnVnZ2VyQ2FsbEZyYW1lLT5nbG9iYWxFeGVjKCk7CisgICAgICAgIEpT
VmFsdWUgcmVzdWx0ID0gZGVidWdnZXJDYWxsRnJhbWUuZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNp
b24oYnJlYWtwb2ludEFjdGlvbi5kYXRhLCBzY29wZUV4dGVuc2lvbk9iamVjdCwgZXhjZXB0aW9u
KTsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBkZWJ1Z2dlckNhbGxGcmFtZS5nbG9i
YWxFeGVjKCk7CiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICByZXBvcnRFeGNl
cHRpb24oZXhlYywgZXhjZXB0aW9uKTsKIApAQCAtMTI4LDggKzEyOCw4IEBAIGJvb2wgU2NyaXB0
RGVidWdTZXJ2ZXI6OmV2YWx1YXRlQnJlYWtwb2ludEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3Bv
aW50QWN0aW9uJiBiCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERpZFBhdXNlKFNj
cmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQogewogICAgIEFTU0VSVChpc1BhdXNlZCgpKTsK
LSAgICBEZWJ1Z2dlckNhbGxGcmFtZSogZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVidWdn
ZXJDYWxsRnJhbWUtPnNjb3BlKCktPmdsb2JhbE9iamVjdCgpOworICAgIERlYnVnZ2VyQ2FsbEZy
YW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSA9IGN1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpOworICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZWJ1Z2dlckNhbGxGcmFtZS5zY29wZSgp
LT5nbG9iYWxPYmplY3QoKTsKICAgICBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUgPSAqZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBqc0NhbGxGcmFtZSA9IHRvSlMoJnN0YXRl
LCBnbG9iYWxPYmplY3QsIEphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShkZWJ1Z2dlckNhbGxG
cmFtZSkucHRyKCkpOwogICAgIGxpc3RlbmVyLT5kaWRQYXVzZShzdGF0ZSwganNDYWxsRnJhbWUs
IGV4Y2VwdGlvbk9yQ2F1Z2h0VmFsdWUoJnN0YXRlKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgSlND
OjpKU1ZhbHVlIFNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb25PckNhdWdodFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSkKICAgICBpZiAocmVhc29uRm9yUGF1c2UoKSA9PSBQYXVzZWRGb3JF
eGNlcHRpb24pCiAgICAgICAgIHJldHVybiBjdXJyZW50RXhjZXB0aW9uKCk7CiAKLSAgICBmb3Ig
KFJlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4gZnJhbWUgPSBjdXJyZW50RGVidWdnZXJDYWxsRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCkpIHsKKyAgICBmb3IgKFJl
ZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4gZnJhbWUgPSAmY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1l
KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZSgpKSB7CiAgICAgICAgIERlYnVn
Z2VyU2NvcGUmIHNjb3BlID0gKmZyYW1lLT5zY29wZSgpOwogICAgICAgICBpZiAoc2NvcGUuaXND
YXRjaFNjb3BlKCkpCiAgICAgICAgICAgICByZXR1cm4gc2NvcGUuY2F1Z2h0VmFsdWUoc3RhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggZTk1NmVlNTExNmIyYmQyNzJi
ZDU0Y2NhNjNkZDNjYjUzYmI0N2MxNS4uZDQ1M2RiYmQ4Njc0MGJiZmZkY2MwZTcyMzczMGNlMzIz
NDVmMzZhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xNDUsNyArMTQ1
LDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0VGltaW5nKGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0b3BUaW1pbmcoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2spCiB7CiAgICAgQVNT
RVJUKCF0aXRsZS5pc051bGwoKSk7CiAgICAgaWYgKHRpdGxlLmlzTnVsbCgpKQpAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9wVGltaW5nKGNvbnN0IFN0
cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsCiAKICAgICBkb3VibGUgZWxhcHNlZCA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnRUaW1lOwogICAgIFN0cmluZyBt
ZXNzYWdlID0gdGl0bGUgKyBTdHJpbmc6OmZvcm1hdCgiOiAlLjNmbXMiLCBlbGFwc2VkICogMTAw
MCk7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNz
YWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNz
YWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBjYWxsU3RhY2spKTsKKyAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNv
bnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3Nh
Z2UsIFdURk1vdmUoY2FsbFN0YWNrKSkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtMTgwLDkgKzE4MCw5
IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KGNvbnN0IFN0
cmluZyYgdGl0bGUpCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1l
c3RhbXAsIHNuYXBzaG90RGF0YSwgdGl0bGUuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCit2b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
YWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSwgU2NyaXB0Q2Fs
bFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CisgICAgUmVmPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSwg
U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKIAogICAgIFN0cmlu
ZyB0aXRsZTsKICAgICBTdHJpbmcgaWRlbnRpZmllcjsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lk
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZQogICAgIC8vIEZJWE1FOiBXZWIgSW5zcGVjdG9yIHNob3VsZCBo
YXZlIGEgYmV0dGVyIFVJIGZvciBjb3VudGVycywgYnV0IGZvciBub3cgd2UganVzdCBsb2cgYW4g
dXBkYXRlZCBjb3VudGVyIHZhbHVlLgogCiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KHRpdGxlLCAiOiAiLCBTdHJpbmc6Om51bWJlcihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSk7Ci0g
ICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6
OkRlYnVnLCBtZXNzYWdlLCBjYWxsU3RhY2spKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0
ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEks
IE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2UsIFdURk1vdmUo
Y2FsbFN0YWNrKSkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0dyb3VwTWVzc2FnZShNZXNzYWdlVHlw
ZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA0NTg0MGU2OWU4YTZjOWI3
MjIwNjMwYzhjNmYwNmE2NTRlZWVlODIwLi4xNzVjZWM5ZGE4OGQ3YjI4OThhMGEzZjE1NjNlZWI2
NGI4YzQ2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNzEsOSArNzEsOSBA
QCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShz
dGQ6OnVuaXF1ZV9wdHI8Q29uc29sZU1lc3NhZ2U+KTsKIAogICAgIHZvaWQgc3RhcnRUaW1pbmco
Y29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYg
dGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCBzdG9wVGltaW5n
KGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHZvaWQg
dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICB2b2lkIGNvdW50KEpT
Qzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKKyAgICB2b2lkIGNv
dW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJik7CiAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlTWVz
c2FnZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBkMzRkMjlmNzQ4
MTU3OTlmYjhlMmExMmRhOTRhZThkOTZjMzdkNTQ3Li42MTdlZmI5YWMzOWIyYWFmZjBmNzI2Njg0
NWI1NzdiYzlkZGY4ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAt
MjMwLDkgKzIzMCw5IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkU2NoZWR1bGVB
c3luY0NhbGwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGludCBhc3luCiAgICAgaWYgKCFtX3Njcmlw
dERlYnVnU2VydmVyLmJyZWFrcG9pbnRzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFj
ayhleGVjLCBtX2FzeW5jU3RhY2tUcmFjZURlcHRoKTsKLSAgICBBU1NFUlQoY2FsbFN0YWNrICYm
IGNhbGxTdGFjay0+c2l6ZSgpKTsKLSAgICBpZiAoIWNhbGxTdGFjayB8fCAhY2FsbFN0YWNrLT5z
aXplKCkpCisgICAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrKGV4ZWMsIG1fYXN5bmNTdGFja1RyYWNlRGVwdGgpOworICAgIEFTU0VSVChjYWxs
U3RhY2stPnNpemUoKSk7CisgICAgaWYgKCFjYWxsU3RhY2stPnNpemUoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFyZW50U3RhY2tUcmFjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXgg
MWFlM2UyOTMzZjE2NzkwNWM5OTY0MTYzNzI3MGNmYTNhMjlmMTExNy4uNjhkNzFjMzFiNTFmOTU2
MDEyZTAwZGYxMmQyMDA3ZmFlNDNlZTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKQEAgLTE0NywxMSArMTQ3LDExIEBAIHZvaWQgQ29u
c29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZVR5cGUgdHlwZSwKICAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1l
c3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xl
TWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGJvb2wgaXNUcmFjZU1lc3NhZ2UgPSB0eXBl
ID09IE1lc3NhZ2VUeXBlOjpUcmFjZTsKICAgICBzaXplX3Qgc3RhY2tTaXplID0gaXNUcmFjZU1l
c3NhZ2UgPyBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUgOiAxOwot
ICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGb3JDb25zb2xlKGV4ZWMsIHN0YWNrU2l6ZSkpOworICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgc3RhY2tT
aXplKTsKICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGxhc3RDYWxsZXIgPSBjYWxsU3RhY2st
PmF0KDApOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTkwLDcgKzE5MCw3IEBA
IHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgfQogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6
OmludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4mJiBhcmd1bWVudHMsIEFyZ3VtZW50UmVxdWlyZW1lbnQgYXJndW1lbnRSZXF1aXJlbWVudCkK
K3ZvaWQgQ29uc29sZUNsaWVudDo6aW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgQXJndW1lbnRSZXF1aXJlbWVudCBhcmd1
bWVudFJlcXVpcmVtZW50KQogewogICAgIGlmIChhcmd1bWVudFJlcXVpcmVtZW50ID09IEFyZ3Vt
ZW50UmVxdWlyZWQgJiYgIWFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpKQogICAgICAgICByZXR1
cm47CkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjppbnRlcm5hbE1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXYKICAgICBtZXNz
YWdlV2l0aFR5cGVBbmRMZXZlbCh0eXBlLCBsZXZlbCwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMp
KTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50Ojpsb2dXaXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVj
LCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgTWVzc2FnZUxldmVsIGxldmVs
KQordm9pZCBDb25zb2xlQ2xpZW50Ojpsb2dXaXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBSZWY8
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cywgTWVzc2FnZUxldmVsIGxldmVsKQogewogICAg
IGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWws
IGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSwgQXJndW1lbnRSZXF1aXJlZCk7CiB9CkBAIC0yMDgs
NDIgKzIwOCw0MiBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OmNsZWFyKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpDbGVhciwg
TWVzc2FnZUxldmVsOjpMb2csIGV4ZWMsIFNjcmlwdEFyZ3VtZW50czo6Y3JlYXRlRW1wdHkoZXhl
YyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OmRpcihF
eGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9p
ZCBDb25zb2xlQ2xpZW50OjpkaXIoRXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1l
c3NhZ2VUeXBlOjpEaXIsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50
cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OmRpclhNTChF
eGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9p
ZCBDb25zb2xlQ2xpZW50OjpkaXJYTUwoRXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlOjpEaXJYTUwsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6OnRh
YmxlKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
Cit2b2lkIENvbnNvbGVDbGllbnQ6OnRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbChNZXNzYWdlVHlwZTo6VGFibGUsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3Zl
KGFyZ3VtZW50cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6
OnRyYWNlKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCit2b2lkIENvbnNvbGVDbGllbnQ6OnRyYWNlKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVB
bmRMZXZlbChNZXNzYWdlVHlwZTo6VHJhY2UsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBXVEZN
b3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lkIENvbnNvbGVD
bGllbnQ6OmFzc2VydGlvbihFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQordm9pZCBDb25zb2xlQ2xpZW50Ojphc3NlcnRpb24oRXhlY1N0YXRlKiBl
eGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1l
c3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpBc3NlcnQsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSwgQXJndW1lbnROb3RSZXF1aXJlZCk7CiB9
CiAKLXZvaWQgQ29uc29sZUNsaWVudDo6Z3JvdXAoRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgQ29uc29sZUNsaWVudDo6Z3JvdXAoRXhl
Y1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBp
bnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpTdGFydEdyb3VwLCBN
ZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpLCBBcmd1bWVudE5vdFJl
cXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50Ojpncm91cENvbGxhcHNlZChFeGVjU3Rh
dGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBDb25z
b2xlQ2xpZW50Ojpncm91cENvbGxhcHNlZChFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGU6OlN0YXJ0R3JvdXBDb2xsYXBzZWQsIE1lc3NhZ2VMZXZlbDo6TG9nLCBl
eGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWlyZWQpOwogfQogCi12b2lk
IENvbnNvbGVDbGllbnQ6Omdyb3VwRW5kKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIENvbnNvbGVDbGllbnQ6Omdyb3VwRW5kKEV4ZWNT
dGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50
ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZTo6RW5kR3JvdXAsIE1lc3Nh
Z2VMZXZlbDo6TG9nLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWly
ZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZUNsaWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5o
CmluZGV4IDc1OWRmN2YzMGViMTZjZWM2NjEwYzFjMGNjMjgzMWQ1Y2ZhYTRhOGQuLjQ5NTFmNDYy
NjQ1NWNjNDkwYjU2MmQ2ODdiMTU0Y2FkYmRlMWViNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKQEAgLTQxLDMxICs0MSwzMSBAQCBjbGFzcyBD
b25zb2xlQ2xpZW50IHsKICAgICB2aXJ0dWFsIH5Db25zb2xlQ2xpZW50KCkgeyB9CiAKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBwcmludENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlcik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcHJpbnRDb25zb2xlTWVz
c2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYp
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHByaW50Q29uc29sZU1lc3NhZ2VX
aXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKIAotICAg
IHZvaWQgbG9nV2l0aExldmVsKEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJiwgTWVzc2FnZUxldmVsKTsKKyAgICB2b2lkIGxvZ1dpdGhMZXZlbChFeGVjU3Rh
dGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYsIE1lc3NhZ2VMZXZlbCk7CiAg
ICAgdm9pZCBjbGVhcihFeGVjU3RhdGUqKTsKLSAgICB2b2lkIGRpcihFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgZGlyWE1MKEV4ZWNT
dGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgdm9pZCB0
YWJsZShFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwot
ICAgIHZvaWQgdHJhY2UoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiYmKTsKLSAgICB2b2lkIGFzc2VydGlvbihFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgZ3JvdXAoRXhlY1N0YXRlKiwgUmVmUHRy
PEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICB2b2lkIGdyb3VwQ29sbGFwc2Vk
KEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAg
dm9pZCBncm91cEVuZChFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpOworICAgIHZvaWQgZGlyKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJik7CisgICAgdm9pZCBkaXJYTUwoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIHRhYmxlKEV4ZWNTdGF0ZSosIFJlZjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCB0cmFjZShFeGVjU3RhdGUqLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgYXNzZXJ0aW9uKEV4
ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCBn
cm91cChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAg
IHZvaWQgZ3JvdXBDb2xsYXBzZWQoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKTsKKyAgICB2b2lkIGdyb3VwRW5kKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWVzc2FnZVdpdGhUeXBl
QW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y291bnQoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvdW50KEV4ZWNTdGF0ZSosIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9m
aWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcHJvZmlsZUVuZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZUVuZChFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRpbWVTdGFtcChFeGVjU3Rh
dGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgPSAwOwogCiBwcml2YXRlOgogICAgIGVudW0gQXJndW1lbnRSZXF1aXJlbWVudCB7
IEFyZ3VtZW50UmVxdWlyZWQsIEFyZ3VtZW50Tm90UmVxdWlyZWQgfTsKLSAgICB2b2lkIGludGVy
bmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlND
OjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYsIEFyZ3Vt
ZW50UmVxdWlyZW1lbnQpOworICAgIHZvaWQgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiwgQXJndW1lbnRSZXF1aXJlbWVudCk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZU9iamVjdC5jcHAKaW5kZXggZWU4ZTU5OTJjNmI2NjhlZThkMzFiMGJiOTU3NzQzMzczNDdlZWI4
Ny4uNzZhZTQ1ZDJhMzU5MDlkYzE5ZjNlYjQ3YWY2ZjY4NGUwZThkNDkxNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKQEAgLTExMCw4ICsx
MTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc29sZUxvZ1dpdGhMZXZlbChFeGVjU3Rh
dGUqIGV4ZWMsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0
QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmxvZ1dpdGhMZXZlbChleGVjLCBXVEZN
b3ZlKGFyZ3VtZW50cyksIGxldmVsKTsKKyAgICBjbGllbnQtPmxvZ1dpdGhMZXZlbChleGVjLCBJ
bnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSwgbGV2ZWwpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTE1Niw4ICsxNTUs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
RGlyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRz
KGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmRpcihleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwor
ICAgIGNsaWVudC0+ZGlyKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4
ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
CkBAIC0xNjcsOCArMTY1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNy
ZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5kaXJYTUwoZXhlYywg
V1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjbGllbnQtPmRpclhNTChleGVjLCBJbnNwZWN0b3I6
OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMTc4LDggKzE3NSw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWJsZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0g
ICAgY2xpZW50LT50YWJsZShleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+
dGFibGUoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTE4OSw4
ICsxODUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJv
dG9GdW5jVHJhY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xpZW50KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRB
cmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+dHJhY2UoZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpKTsKKyAgICBjbGllbnQtPnRyYWNlKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0
QXJndW1lbnRzKGV4ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCkBAIC0yMDgsOCArMjAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
aWYgKGNvbmRpdGlvbikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
KEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKLSAgICBjbGllbnQt
PmFzc2VydGlvbihleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+YXNzZXJ0
aW9uKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yMTksOCAr
MjEzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0NvdW50KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJn
dW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmNvdW50KGV4ZWMsIFdURk1vdmUoYXJndW1l
bnRzKSk7CisgICAgY2xpZW50LT5jb3VudChleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFy
Z3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtMzQwLDggKzMzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAoRXhlY1N0YXRlKiBleGVjKQogICAg
IGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCi0gICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMo
SW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+
dGltZVN0YW1wKGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY2xpZW50LT50aW1lU3Rh
bXAoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTM1MSw4ICsz
NDMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jR3JvdXAoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgUmVmUHRyPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1
bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+Z3JvdXAoZXhlYywgV1RGTW92ZShhcmd1bWVu
dHMpKTsKKyAgICBjbGllbnQtPmdyb3VwKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJn
dW1lbnRzKGV4ZWMsIDApKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCkBAIC0zNjIsOCArMzUzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKEV4ZWNTdGF0ZSogZXgKICAg
ICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
KEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQt
Pmdyb3VwQ29sbGFwc2VkKGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY2xpZW50LT5n
cm91cENvbGxhcHNlZChleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVj
LCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApA
QCAtMzczLDggKzM2Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNHcm91cEVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNy
ZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5ncm91cEVuZChleGVj
LCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+Z3JvdXBFbmQoZXhlYywgSW5zcGVj
dG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMDVmZTAzMzg4NTFkYTRiZmNi
MjRhMzJiNGE1ODYyZjI4ZTA4M2Y0ZS4uYTZkNDdjYjc4NzgyZWM5OWYyMzMyYTI5MTE0YTY3MDM4
ZDUyMzllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTQ1MjksNyArNDUyOSw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRo
CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgIipkb2N1bWVudCIpOwogICAgIH0KICAgICBp
ZiAoJGZ1bmN0aW9uIGFuZCAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSkgewotICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1
bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoJHN0YXRlUG9pbnRlciwgIiAu
IEB7JGZ1bmN0aW9uLT5hcmd1bWVudHN9IC4gIikpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cygkc3RhdGVQb2ludGVyLCAiIC4g
QHskZnVuY3Rpb24tPmFyZ3VtZW50c30gLiAiKSk7XG4iKTsKICAgICAgICAgJGltcGxJbmNsdWRl
c3siPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaD4ifSA9IDE7CiAgICAgICAgICRpbXBsSW5j
bHVkZXN7IjxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPiJ9ID0gMTsKICAgICAg
ICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiV1RGTW92ZShzY3JpcHRBcmd1bWVudHMpIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCmluZGV4IDViNTM5NGZiNDkxODJiMmJiYzIxNTE2NDU5ZjQ0ZjNhMTdjMzYxZWEuLmI4NTE5
Y2UyYTExZWJmMDIzNzg3YjkwOWZjNTQ5YzcwMWFjZTZkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC02MTEy
LDcgKzYxMTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQQogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIGF1dG8mIGltcGwgPSBj
YXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiBzY3JpcHRBcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoc3Rh
dGUsIDApKTsKKyAgICBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhzdGF0ZSwgMCkpOwogICAgIGlt
cGwud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayhXVEZNb3ZlKHNjcmlwdEFyZ3VtZW50
cykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggZTI3OTI0
NGVkMDdmYTc4Zjc3NWE4NTkyNDQ2NjM3OTQxMDE5NjcwYy4uMzI4ODE4ZjRhNjJjOTQzM2Q3ZWRi
YzE0MDcwOTJlYWE0YzA1ZDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcApAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6UGVuZGluZ0V4Y2VwdGlvbiB7CiAgICAgICAgICwgbV9saW5lTnVtYmVyKGxpbmVO
dW1iZXIpCiAgICAgICAgICwgbV9jb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKQogICAgICAgICAs
IG1fc291cmNlVVJMKHNvdXJjZVVSTCkKLSAgICAgICAgLCBtX2NhbGxTdGFjayhjYWxsU3RhY2sp
CisgICAgICAgICwgbV9jYWxsU3RhY2soV1RGTW92ZShjYWxsU3RhY2spKQogICAgIHsKICAgICB9
CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkNjhjNTIyZWZjZTAy
Y2ZlZDU5YThmMDg1OWY0NTRlMWM4YzJjYTgxLi44N2YwZDkzZmY4MTlhZmE1ODlhMTFhZTFlMzYy
Yzk2OGRiMzQ0NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtODM4LDEwICs4MzgsMTAgQEAgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3QKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1
bWVudHMpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGlmIChXZWJD
b25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29s
ZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnQoc3RhdGUsIGFyZ3VtZW50cyk7
CisgICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnQoc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQpAQCAtODY0LDIxICs4NjQsMjEgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHIKICAg
ICAgICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyh0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCiB7CiAgICAgaWYgKFdlYkNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKLSAg
ICAgICAgY29uc29sZUFnZW50LT5zdG9wVGltaW5nKHRpdGxlLCBzdGFjayk7CisgICAgICAgIGNv
bnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgV1RGTW92ZShzdGFjaykpOwogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWVF
bmQoZnJhbWUsIHRpdGxlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNr
KQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQogewogICAgIGlmIChXZWJDb25zb2xl
QWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50
KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgc3RhY2spOworICAg
ICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUsIFdURk1vdmUoc3RhY2spKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7CiAgICAgICAg
IFN0cmluZyBtZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI0NWNkYzg4NzUyZDA4NTFlNTcwNDRiYjcyMzM1
YjZhMDgyNGFhZmQuLjY4Y2VjY2Y2NDdjZjhkNWMwNTM3MTJmMWUwM2Y0NTM5NTY2OGU0OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKQEAgLTE4NCwxNCArMTg0LDE0IEBAIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
biB7CiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlJiwgc3RkOjp1bmlx
dWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKICAgICBzdGF0aWMgdm9pZCBhZGRN
ZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKIAotICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChQ
YWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYpOwotICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29wZSYsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPElu
c3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291
bnQoV29ya2VyR2xvYmFsU2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChGcmFt
ZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRp
bWluZyhGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0
Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwot
ICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBzdGF0aWMg
dm9pZCBzdG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7Ci0gICAgc3RhdGlj
IHZvaWQgY29uc29sZVRpbWVTdGFtcChGcmFtZSYsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwor
ICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlVGltZVN0YW1wKEZyYW1lJiwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydFByb2ZpbGluZyhQYWdlJiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBz
dG9wUHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogCkBAIC0zNDksMTMgKzM0OSwxMyBAQCBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24g
ewogCiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAK
LSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBK
U0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Cisg
ICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlND
OjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogICAgIHN0
YXRpYyB2b2lkIHRha2VIZWFwU25hcHNob3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAg
IHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwotICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBzdGF0aWMg
dm9pZCBjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBS
ZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOworICAgIHN0
YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
RnJhbWUmLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogCiAgICAgc3RhdGlj
IHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
aW50IGNhbGxiYWNrSWQsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQW5pbWF0
aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUq
KTsKQEAgLTExOTUsMTIgKzExOTUsMTIgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3IKICAgICBh
ZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFs
U2NvcGUod29ya2VyR2xvYmFsU2NvcGUpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQoUGFnZSYgcGFnZSwg
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25z
b2xlQ291bnQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGNvbnNvbGVDb3VudEltcGwo
aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50
cykpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVD
b3VudChXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFdvcmtl
ckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGNvbnNv
bGVDb3VudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CkBAIC0xMjIzLDE4
ICsxMjIzLDE4IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRD
b25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrCiAgICAgc3RhcnRDb25zb2xlVGlt
aW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGUpLCB0aXRsZSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCitpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
IHN0YWNrKQogewogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgc3RvcENv
bnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSwgdGl0bGUsIFdURk1v
dmUoc3RhY2spKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiBz
dGFjaykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVU
aW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCiB7CiAgICAg
c3RvcENvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxT
Y29wZSh3b3JrZXJHbG9iYWxTY29wZSksIHRpdGxlLCBXVEZNb3ZlKHN0YWNrKSk7CiB9CiAKLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChGcmFt
ZSYgZnJhbWUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAo
RnJhbWUmIGZyYW1lLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRz
KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckZyYW1lKGZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggNDMyNDc4ZjI0ZjI5OWUxNzhmOWFlMGQwMzYy
MmY5ZGJmNmY2ZDQ2YS4uNTY5Y2U0YTJjZWRiN2ExMTMzNTllODEwNzYxYzZhOTM4ZTc0MmU0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKQEAgLTUwMiw4ICs1MDIsOCBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlk
U2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6SW5pdGlhdG9yPiBJbnNwZWN0b3JOZXR3b3Jr
QWdlbnQ6OmJ1aWxkSW5pdGlhdG9yT2JqZWN0KERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIFNjcmlwdENhbGxTdGFjazo6
bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7Ci0gICAgaWYgKHN0YWNrVHJhY2UgJiYgc3RhY2tU
cmFjZS0+c2l6ZSgpID4gMCkgeworICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2Ug
PSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3Rh
dGUoKSwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICBp
ZiAoc3RhY2tUcmFjZS0+c2l6ZSgpID4gMCkgewogICAgICAgICBhdXRvIGluaXRpYXRvck9iamVj
dCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRvcjo6Y3JlYXRlKCkKICAg
ICAgICAgICAgIC5zZXRUeXBlKEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRv
cjo6VHlwZTo6U2NyaXB0KQogICAgICAgICAgICAgLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggNjhmNzU5
MTliMDJjZjU5NDQwMDBkZGE5NDY3MDIxZjNlODI0OTg3Yi4uYTIxNjU5M2Y4NWIwMWE4M2RhNjdj
YWU5ZDRmN2QyOTdmNTQzY2IxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTUwLDggKzUwLDggQEAgUmVmPEluc3BlY3Rv
ck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJs
ZSBzdGFydFRpbWUKICAgICByZWNvcmQtPnNldERvdWJsZShBU0NJSUxpdGVyYWwoInN0YXJ0VGlt
ZSIpLCBzdGFydFRpbWUpOwogCiAgICAgaWYgKG1heENhbGxTdGFja0RlcHRoKSB7Ci0gICAgICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgbWF4Q2FsbFN0YWNrRGVw
dGgpOwotICAgICAgICBpZiAoc3RhY2tUcmFjZSAmJiBzdGFja1RyYWNlLT5zaXplKCkpCisgICAg
ICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgbWF4Q2FsbFN0YWNrRGVw
dGgpOworICAgICAgICBpZiAoc3RhY2tUcmFjZS0+c2l6ZSgpKQogICAgICAgICAgICAgcmVjb3Jk
LT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwoInN0YWNrVHJhY2UiKSwgc3RhY2tUcmFjZS0+YnVpbGRJ
bnNwZWN0b3JBcnJheSgpKTsKICAgICB9CiAgICAgcmV0dXJuIHJlY29yZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5k
ZXggN2E5OTZkY2IwYjBjN2RmNGY4ZTZmOTM5MWVkYWNhZmFhMzQ4ZmQ4NS4uYzdmODJmZjExOGFl
NTU3NmNiOTkwODM3ODk1OThlNjZmZTlhY2FkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1X
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0
b3JFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFJlZlB0cjxJbmplY3RlZFNjcmlwdEhvc3Q+JiYg
aG9zdCkKK1dlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KEluc3BlY3RvckVudmlyb25tZW50JiBlbnZpcm9ubWVudCwgUmVmPEluamVjdGVkU2NyaXB0SG9z
dD4mJiBob3N0KQogICAgIDogSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGVudmlyb25tZW50LCBXVEZN
b3ZlKGhvc3QpKQogICAgICwgbV9jb21tYW5kTGluZUFQSUhvc3QoQ29tbWFuZExpbmVBUElIb3N0
OjpjcmVhdGUoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJ
bmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCBiYzE2MzdjYzUzYWY5YzhkMWZhYmUzNTliNzVjOWMx
ZGY3OWQ4NThjLi42YjRhZDdjYjljNjdjMjE3NTFkYTJhMjQ0ODgxNTZkMDk1NTBlMzUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdl
ci5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIERPTVdpbmRvdzsKIAogY2xhc3MgV2ViSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5zcGVjdG9y
OjpJbnNwZWN0b3JFbnZpcm9ubWVudCYsIFJlZlB0cjxJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
SG9zdD4mJik7CisgICAgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRW52aXJvbm1lbnQmLCBSZWY8SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdEhvc3Q+JiYpOwog
ICAgIHZpcnR1YWwgfldlYkluamVjdGVkU2NyaXB0TWFuYWdlcigpIHsgfQogCiAgICAgQ29tbWFu
ZExpbmVBUElIb3N0KiBjb21tYW5kTGluZUFQSUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2NvbW1h
bmRMaW5lQVBJSG9zdC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDli
NmFiYjI0NGRkNjdjNjFmOTk3OTA1YmY2MDUxZGQ3OGNkNjdjMGQuLmQ5YjdjNmE3YWM0Njg4NTg1
NTQ4ODY4ZGRhMTY0MTk5MDBlNzg0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAg
LTk5Myw3ICs5OTMsMTAgQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZChQ
b3N0TWVzc2FnZVRpbWVyJiB0aW1lcikKICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdp
bi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsK
ICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgewogICAgICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAiLCBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSwgIi4gUmVjaXBpZW50
IGhhcyBvcmlnaW4gIiwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCAi
LlxuIik7Ci0gICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHRpbWVyLnN0YWNr
VHJhY2UoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVyLnN0YWNrVHJhY2UoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsICp0aW1lci5zdGFja1RyYWNlKCkp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUt
PmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IG1lc3NhZ2UpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDc5Y2FlMTgy
Njg3ZjQxYzZlZjg0OTY5MTUyZGRkZjdiZmFiMzlhYTMuLjIwOTNlNzM1NjM5MTBkODFkNzg5MThi
MzYyYTU4ODE1MTBmNDc1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb24KICAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgY29sdW1uLCAwLCBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykKIHsKICAg
ICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCAwLCBXVEZN
b3ZlKGNhbGxTdGFjayksIDApOwogfQpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUGFnZUNvbnNv
bGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+
IG1lc3NhZ2U7CiAKICAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBtZXNzYWdlID0gc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2UsIE1lc3NhZ2VUeXBl
OjpMb2csIGxldmVsLCBtZXNzYWdlVGV4dCwgV1RGTW92ZShjYWxsU3RhY2spLCByZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6
Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1lc3NhZ2VU
ZXh0LCBjYWxsU3RhY2sucmVsZWFzZU5vbk51bGwoKSwgcmVxdWVzdElkZW50aWZpZXIpOwogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yOjpDb25z
b2xlTWVzc2FnZT4oc291cmNlLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZVRleHQs
IHN1Z2dlc3RlZFVSTCwgc3VnZ2VzdGVkTGluZU51bWJlciwgc3VnZ2VzdGVkQ29sdW1uTnVtYmVy
LCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBQ
YWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb24KIH0KIAogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYg
YXJndW1lbnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAg
ICBTdHJpbmcgbWVzc2FnZVRleHQ7CiAgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1lbnRzLT5n
ZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZVRleHQpOwpAQCAtMTc2LDcgKzE3Niw3IEBA
IHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsCiAgICAgICAgIENvbnNvbGVDbGllbnQ6OnByaW50Q29u
c29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUs
IGxldmVsLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi12b2lkIFBhZ2VDb25zb2xl
Q2xpZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4mJiBhcmd1bWVudHMpCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpjb3VudChKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQobV9wYWdlLCBleGVjLCBXVEZNb3Zl
KGFyZ3VtZW50cykpOwogfQpAQCAtMjA1LDExICsyMDUsMTAgQEAgdm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAKIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCiB7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNy
ZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwotICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCB0aXRs
ZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUsIGNyZWF0ZVNjcmlwdENh
bGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50
Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0
ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChtX3BhZ2UubWFpbkZyYW1lKCksIFdURk1v
dmUoYXJndW1lbnRzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgK
aW5kZXggYzhlNTFlOTIxZjk2YTVlYjYzNThlN2I1ODQwYTU4MTQyN2MxNzc3NS4uNWU0NGYyODJj
ZDE1YjJhZDFhNTY5NmNiMmUwNzUyZjNlMzA0N2RhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuaApAQCAtNTQsMTggKzU0LDE4IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAg
ICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiA9IG51bGxwdHIsIEpTQzo6RXhlY1N0
YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKLSAg
ICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CisgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHZvaWQg
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IG51
bGxwdHIpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4
ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxl
RW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVj
U3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAppbmRleCA2
ZDgyNGMyZmZjYWYzZGIxMTk0ODMwZWNlZjI0NTFmZjA0YmNlNDZiLi5hZjk5ZjVlYTA1ZjA4MGQ5
NThkY2I0MjZmOTMzZThlNDhhZmViMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29uc29sZUNsaWVudC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgV29ya2VyQ29uc29sZUNs
aWVudDo6fldvcmtlckNvbnNvbGVDbGllbnQoKQogewogfQogCi12b2lkIFdvcmtlckNvbnNvbGVD
bGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlw
dEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6Om1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwogICAgIGFyZ3VtZW50cy0+Z2V0
Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2VUZXh0KTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9p
ZCBXb3JrZXJDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwKICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLmFkZENvbnNvbGVN
ZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6
OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fd29ya2VyR2xvYmFsU2NvcGUsIGV4ZWMs
IFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CkBAIC02NSw4ICs2NSw3IEBAIHZvaWQgV29ya2VyQ29u
c29sZUNsaWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAK
IHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSk7Ci0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhtX3dvcmtlckdsb2JhbFNj
b3BlLCB0aXRsZSwgV1RGTW92ZShjYWxsU3RhY2spKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnN0b3BDb25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUsIHRpdGxlLCBjcmVh
dGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKIH0KIAogLy8gRklYTUU6IDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmls
ZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKQEAgLTc1LDYgKzc0LDYgQEAg
dm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJikgeyB9CiAKIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI3NjM0
PiBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGRlYnVnZ2luZyB3ZWIgd29ya2Vycwogdm9pZCBXb3Jr
ZXJDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJikgeyB9Ci12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4
ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpIHsgfQordm9pZCBXb3JrZXJDb25z
b2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYmKSB7IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaAppbmRleCA1ZWNhOTc1MjVmNzk3ZGU0MDE4NzQ0NmJi
NDc1ZjkwZmQxNmFhNTNkLi5hOGQxMjI4MTVlZDUzYmJjNmY2NjZkMGI3YTNhYWRhYmIwM2Y1NTdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaApAQCAt
NDIsMTQgKzQyLDE0IEBAIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQgZmluYWwgOiBwdWJsaWMg
SlNDOjpDb25zb2xlQ2xpZW50IHsKICAgICB2aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQ2xpZW50KCk7
CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRl
KiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRh
a2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVy
cmlkZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSos
IFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dv
cmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCA1ZTJlMmNmNGI4YWJkMzc5MjMyNDQ4YTEzMzIwZTg2ZGU1ZjRkYWI1Li40
MGU3ODZiZTIwMzUwZDhhODFhYmZlMmRkMDNlNTczMDIyYjVlMWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZv
aWQgV29ya2VyR2xvYmFsU2NvcGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpD
b25zb2xlTWVzc2FnZT4gbWVzc2FnZTsKICAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBtZXNz
YWdlID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2Us
IE1lc3NhZ2VUeXBlOjpMb2csIGxldmVsLCBtZXNzYWdlVGV4dCwgV1RGTW92ZShjYWxsU3RhY2sp
LCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2
ZWwsIG1lc3NhZ2VUZXh0LCBjYWxsU3RhY2sucmVsZWFzZU5vbk51bGwoKSwgcmVxdWVzdElkZW50
aWZpZXIpOwogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5z
cGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oc291cmNlLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwg
bWVzc2FnZVRleHQsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzdGF0ZSwg
cmVxdWVzdElkZW50aWZpZXIpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZSgqdGhpcywgV1RGTW92ZShtZXNzYWdlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301767</attachid>
            <date>2017-02-16 08:16:58 -0800</date>
            <delta_ts>2017-02-16 10:51:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168420-20170217011420.patch</filename>
            <type>text/plain</type>
            <size>83393</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YTY4YjUyNDNkZjRlNzQwOTBhNmY0ZDE0ODM3MWEyOTlkYmQwYzA1Li5lODE3ZDYwNTBkYzkwMzZm
NDBlZGQxOWNmNjUyMjMyZGUzOGYwMzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw5MiBAQAogMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5zcGVjdG9yLworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBQYXNzUmVm
UHRyIHVzZXMuCisgICAgICAgIEFuZCB1c2UgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRz
PiBhbmQgUmVmPFNjcmlwdENhbGxTdGFjaz4gYXMgbXVjaCBhcyBwb3NzaWJsZS4KKyAgICAgICAg
SXQgZHJvcHMgc29tZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrcy4KKworICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6Omhhc0JyZWFrcG9pbnQp
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKToKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0
YWNrVHJhY2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpBc3luY1N0YWNrVHJhY2U6OmNyZWF0
ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFja1RyYWNl
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6QXN5bmNTdGFja1RyYWNlOjpidWlsZEluc3BlY3Rvck9i
amVjdCk6CisgICAgICAgIChJbnNwZWN0b3I6OkFzeW5jU3RhY2tUcmFjZTo6dHJ1bmNhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAgICAg
ICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdl
cik6CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRT
Y3JpcHRIb3N0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lRW5kKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXApOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ6Ondhcm5VbmltcGxlbWVudGVkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgIENvbnNvbGVDbGllbnQg
bm93IHRha2VzIFJlZjxTY3JpcHRBcmd1bWVudD4mJiBpbnN0ZWFkIG9mIFJlZlB0cjxTY3JpcHRB
cmd1bWVudD4mJi4KKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZSk6CisgICAgICAgIChJbnNwZWN0b3I6
OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkpTSmF2YVNjcmlwdENhbGxGcmFtZTo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1l
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6dG9KUyk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2
YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0phdmFTY3JpcHRDYWxs
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0
Q2FsbEZyYW1lKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNjcmlwdENhbGxGcmFtZTo6Y2Fs
bGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAg
ICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlw
dERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAoSW5zcGVj
dG9yOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVzZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb25PckNhdWdodFZhbHVlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyk6CisgICAgICAg
IChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkU2NoZWR1bGVBc3luY0NhbGwpOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGll
bnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q29u
c29sZUNsaWVudDo6aW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIChK
U0M6OkNvbnNvbGVDbGllbnQ6OmxvZ1dpdGhMZXZlbCk6CisgICAgICAgIChKU0M6OkNvbnNvbGVD
bGllbnQ6OmRpcik6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OmRpclhNTCk6CisgICAg
ICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OnRhYmxlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNs
aWVudDo6dHJhY2UpOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojphc3NlcnRpb24pOgor
ICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50Ojpncm91cCk6CisgICAgICAgIChKU0M6OkNvbnNv
bGVDbGllbnQ6Omdyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6
Z3JvdXBFbmQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNvbnNvbGVMb2dXaXRo
TGV2ZWwpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyKToKKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0RpclhNTCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNUYWJsZSk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUcmFjZSk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNBc3NlcnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJv
dG9GdW5jQ291bnQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKToK
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKToKKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKToKKworMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KKwogICAgICAgICBbSlNDXSBVcGRhdGUgbW9kdWxlIG5hbWVzcGFjZSBvYmpl
Y3QgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgRUNNQTI2MgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MjgwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZmUwNjNl
Njk4ODVjOTM2ZmYzZmYyMmU3NDk4MjgyZTNmMDBlNzM1Li45MWVlNWI4MmQ1Yjg1YzA1NDk5YjIz
MzhiYWFkZDVjNDI1ZDAxNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTctMDIt
MTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pT
Q10gRHJvcCBQYXNzUmVmUHRyIGluIGluc3BlY3Rvci8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODQyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+IGFuZCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBhcyBtdWNoIGFzIHBvc3NpYmxlLgorICAgICAg
ICBJdCBkcm9wcyBzb21lIHVubmVjZXNzYXJ5IG51bGwgY2hlY2tzLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxX
aXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0NhbGxlcik6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
UGVuZGluZ0V4Y2VwdGlvbjo6UGVuZGluZ0V4Y2VwdGlvbik6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlVGltZVN0YW1wSW1w
bCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRp
bWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNv
bGVUaW1lU3RhbXApOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpidWlsZEluaXRp
YXRvck9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVy
aWNSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpXZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlw
dE1hbmFnZXIuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZCk6CisgICAgICAgIFdlIGRpc3Bh
dGNoIGFwcHJvcHJpYXRlIGFkZE1lc3NhZ2UgZnVuY3Rpb24gYWNjb3JkaW5nIHRvIHdoZXRoZXIK
KyAgICAgICAgYHRpbWVyLnN0YWNrVHJhY2UoKWAgaXMgbnVsbHB0ci4KKworICAgICAgICAqIHBh
Z2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVD
bGllbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6
Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Q2xpZW50Ojpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6dGlt
ZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKToK
KyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVD
bGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckNvbnNvbGVDbGllbnQ6OmNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVD
bGllbnQ6OnRpbWVFbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6
dGltZVN0YW1wKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlOjphZGRNZXNzYWdlKToKKwogMjAxNy0wMi0xNiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1hZ2Vz
IGFyZSBuZXZlciByZWFkIGZyb20gdGhlIGNsaXBib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDNm
OWRkZTJlN2FhNjhhYzA2ZGEyYWE0NjAyN2NmNzA2ZDdlYzZjOGYuLjg5MmI4YTYzNWFlZWY4ZWI0
N2Q3ZDgzNDk4M2FjNzU3YTBhOGQ0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxNy0wMi0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbSlNDXSBEcm9wIFBhc3NSZWZQdHIgaW4gaW5zcGVjdG9yLworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlNjcmlwdERl
YnVnZ2VyLm1tOgorICAgICAgICAoV2ViU2NyaXB0RGVidWdnZXI6OmhhbmRsZVBhdXNlKToKKwog
MjAxNy0wMi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggdGhlIGJ1aWxkIGFmdGVyIHIyMTIzNzkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IGQ0Nzc4ZWYxNzJjNzMwY2E3YzBhZmIyNzE1NDBj
MzYxOGMyNmViNjguLjhlNzBmYmM2ZDVmNTI3N2U0Mjg1OWUzNTQ4MmE0ZWM4NmQzYmI4OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtNTAyLDkg
KzUwMiw5IEBAIGJvb2wgRGVidWdnZXI6Omhhc0JyZWFrcG9pbnQoU291cmNlSUQgc291cmNlSUQs
IGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24sIEJyCiAgICAgVGVtcG9yYXJ5UGF1c2VkU3Rh
dGUgcGF1c2VkU3RhdGUoKnRoaXMpOwogCiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRp
b247Ci0gICAgRGVidWdnZXJDYWxsRnJhbWUqIGRlYnVnZ2VyQ2FsbEZyYW1lID0gY3VycmVudERl
YnVnZ2VyQ2FsbEZyYW1lKCk7CisgICAgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lID0gY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCk7CiAgICAgSlNPYmplY3QqIHNjb3BlRXh0
ZW5zaW9uT2JqZWN0ID0gbnVsbHB0cjsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGRlYnVnZ2VyQ2Fs
bEZyYW1lLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihicmVha3BvaW50LT5jb25kaXRpb24s
IHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRpb24pOworICAgIEpTVmFsdWUgcmVzdWx0ID0g
ZGVidWdnZXJDYWxsRnJhbWUuZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oYnJlYWtwb2ludC0+
Y29uZGl0aW9uLCBzY29wZUV4dGVuc2lvbk9iamVjdCwgZXhjZXB0aW9uKTsKIAogICAgIC8vIFdl
IGNhbiBsb3NlIHRoZSBkZWJ1Z2dlciB3aGlsZSBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBp
ZiAoIW1fY3VycmVudENhbGxGcmFtZSkKQEAgLTkxMSwxMSArOTExLDExIEBAIHZvaWQgRGVidWdn
ZXI6OmRpZFJlYWNoQnJlYWtwb2ludChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICB1cGRhdGVD
YWxsRnJhbWUoY2FsbEZyYW1lLCBBdHRlbXB0UGF1c2UpOwogfQogCi1EZWJ1Z2dlckNhbGxGcmFt
ZSogRGVidWdnZXI6OmN1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpCitEZWJ1Z2dlckNhbGxGcmFt
ZSYgRGVidWdnZXI6OmN1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpCiB7CiAgICAgaWYgKCFtX2N1
cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSkKICAgICAgICAgbV9jdXJyZW50RGVidWdnZXJDYWxsRnJh
bWUgPSBEZWJ1Z2dlckNhbGxGcmFtZTo6Y3JlYXRlKG1fY3VycmVudENhbGxGcmFtZSk7Ci0gICAg
cmV0dXJuIG1fY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lLmdldCgpOworICAgIHJldHVybiAqbV9j
dXJyZW50RGVidWdnZXJDYWxsRnJhbWU7CiB9CiAKIGJvb2wgRGVidWdnZXI6OmlzQmxhY2tsaXN0
ZWQoU291cmNlSUQgc291cmNlSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlci5oCmluZGV4IGZhNmQzMWVhMWMwMzNjYjAwOWJlNjFmNjE5YmJhMWJjZDdiNjk3
OGUuLjNmNTFiYjQyZGJmODBlZWYwYWI0NTJiNjlkZGEyNmEzYmY0N2QwNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIERlYnVnZ2VyIHsKIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1f
dm07IH0KIAotICAgIEpTQzo6RGVidWdnZXJDYWxsRnJhbWUqIGN1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSgpOworICAgIEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmIGN1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSgpOwogICAgIGJvb2wgaGFzSGFuZGxlckZvckV4Y2VwdGlvbkNhbGxiYWNrKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX3JlYXNvbkZvclBhdXNlID09IFBhdXNlZEZvckV4Y2Vw
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5j
U3RhY2tUcmFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3Rh
Y2tUcmFjZS5jcHAKaW5kZXggODgwYTM2MmQwZTdmZGM1NzFmZjAzOTk0Mjc4NjBiMzk2MjYwZmJh
Yy4uNDAwMjk2NGFjZjA0MjRkMDU1OGIwMzJmNWE0NTAzNmJkOTVhODk0YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQXN5bmNTdGFja1RyYWNlLmNwcApAQCAt
MzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1SZWZQdHI8QXN5bmNT
dGFja1RyYWNlPiBBc3luY1N0YWNrVHJhY2U6OmNyZWF0ZShSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2ssIGJvb2wgc2luZ2xlU2hvdCwgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gcGFy
ZW50KQorUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gQXN5bmNTdGFja1RyYWNlOjpjcmVhdGUoUmVm
PFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2ssIGJvb2wgc2luZ2xlU2hvdCwgUmVmUHRyPEFz
eW5jU3RhY2tUcmFjZT4gcGFyZW50KQogewotICAgIEFTU0VSVChjYWxsU3RhY2sgJiYgY2FsbFN0
YWNrLT5zaXplKCkpOworICAgIEFTU0VSVChjYWxsU3RhY2stPnNpemUoKSk7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXN5bmNTdGFja1RyYWNlKFdURk1vdmUoY2FsbFN0YWNrKSwgc2luZ2xl
U2hvdCwgV1RGTW92ZShwYXJlbnQpKSk7CiB9CiAKLUFzeW5jU3RhY2tUcmFjZTo6QXN5bmNTdGFj
a1RyYWNlKFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgYm9vbCBzaW5nbGVTaG90
LCBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPiBwYXJlbnQpCi0gICAgOiBtX2NhbGxTdGFjayhjYWxs
U3RhY2spCitBc3luY1N0YWNrVHJhY2U6OkFzeW5jU3RhY2tUcmFjZShSZWY8U2NyaXB0Q2FsbFN0
YWNrPiYmIGNhbGxTdGFjaywgYm9vbCBzaW5nbGVTaG90LCBSZWZQdHI8QXN5bmNTdGFja1RyYWNl
PiBwYXJlbnQpCisgICAgOiBtX2NhbGxTdGFjayhXVEZNb3ZlKGNhbGxTdGFjaykpCiAgICAgLCBt
X3BhcmVudChwYXJlbnQpCiAgICAgLCBtX3NpbmdsZVNob3Qoc2luZ2xlU2hvdCkKIHsKQEAgLTEw
NCw4ICsxMDQsOCBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6U3RhY2tU
cmFjZT4gQXN5bmNTdGFja1RyYWNlOjpidWlsZEluc3BlY3RvcgogCiAgICAgYXV0byogc3RhY2tU
cmFjZSA9IHRoaXM7CiAgICAgd2hpbGUgKHN0YWNrVHJhY2UpIHsKLSAgICAgICAgYXV0byBjYWxs
U3RhY2sgPSBzdGFja1RyYWNlLT5tX2NhbGxTdGFjazsKLSAgICAgICAgQVNTRVJUKGNhbGxTdGFj
ayAmJiBjYWxsU3RhY2stPnNpemUoKSk7CisgICAgICAgIGF1dG8mIGNhbGxTdGFjayA9IHN0YWNr
VHJhY2UtPm1fY2FsbFN0YWNrOworICAgICAgICBBU1NFUlQoY2FsbFN0YWNrLT5zaXplKCkpOwog
CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpTdGFja1RyYWNl
PiBwcm90b2NvbE9iamVjdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNvbnNvbGU6OlN0YWNrVHJh
Y2U6OmNyZWF0ZSgpCiAgICAgICAgICAgICAuc2V0Q2FsbEZyYW1lcyhjYWxsU3RhY2stPmJ1aWxk
SW5zcGVjdG9yQXJyYXkoKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEFzeW5jU3RhY2tUcmFj
ZTo6dHJ1bmNhdGUoc2l6ZV90IG1heERlcHRoKQogICAgIGF1dG8qIGN1cnJlbnROb2RlID0gbGFz
dFVubG9ja2VkQW5jZXN0b3I7CiAgICAgd2hpbGUgKGN1cnJlbnROb2RlLT5tX3BhcmVudCkgewog
ICAgICAgICBhdXRvJiBwYXJlbnROb2RlID0gY3VycmVudE5vZGUtPm1fcGFyZW50OwotICAgICAg
ICBjdXJyZW50Tm9kZS0+bV9wYXJlbnQgPSBBc3luY1N0YWNrVHJhY2U6OmNyZWF0ZShwYXJlbnRO
b2RlLT5tX2NhbGxTdGFjaywgdHJ1ZSwgcGFyZW50Tm9kZS0+bV9wYXJlbnQpOworICAgICAgICBj
dXJyZW50Tm9kZS0+bV9wYXJlbnQgPSBBc3luY1N0YWNrVHJhY2U6OmNyZWF0ZShwYXJlbnROb2Rl
LT5tX2NhbGxTdGFjay5jb3B5UmVmKCksIHRydWUsIHBhcmVudE5vZGUtPm1fcGFyZW50KTsKICAg
ICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+bV9wYXJlbnQuZ2V0KCk7CiAKICAgICAg
ICAgaWYgKHBhcmVudE5vZGUuZ2V0KCkgPT0gbmV3U3RhY2tUcmFjZVJvb3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuaAppbmRleCAyOTA5
NjcyZGFiMzI4ZTMwYWNjZjMyYTMzNTBkOTZlZDgxNjZhNTM0Li5hNjE4ZmU3YWZmMWY2ZDUxMGFh
NDUwYzMzMGI3YTE4MGUzMGZiYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvQXN5bmNTdGFja1RyYWNlLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSlNfRVhQ
T1JUX1BSSVZBVEUgQXN5bmNTdGFja1RyYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8QXN5bmNTdGFj
a1RyYWNlPiB7CiAgICAgICAgIENhbmNlbGVkLAogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmUHRy
PEFzeW5jU3RhY2tUcmFjZT4gY3JlYXRlKFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCBib29sIHNp
bmdsZVNob3QsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBhcmVudCk7CisgICAgc3RhdGljIFJl
ZlB0cjxBc3luY1N0YWNrVHJhY2U+IGNyZWF0ZShSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmLCBib29s
IHNpbmdsZVNob3QsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBhcmVudCk7CiAKICAgICBib29s
IGlzUGVuZGluZygpIGNvbnN0OwogICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdDsKQEAgLTU2LDEy
ICs1NiwxMiBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBBc3luY1N0YWNrVHJhY2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxBc3luY1N0YWNrVHJhY2U+IHsKICAgICB+QXN5bmNTdGFja1RyYWNlKCk7
CiAKIHByaXZhdGU6Ci0gICAgQXN5bmNTdGFja1RyYWNlKFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
LCBib29sLCBSZWZQdHI8QXN5bmNTdGFja1RyYWNlPik7CisgICAgQXN5bmNTdGFja1RyYWNlKFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYsIGJvb2wsIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+KTsKIAog
ICAgIHZvaWQgdHJ1bmNhdGUoc2l6ZV90IG1heERlcHRoKTsKICAgICB2b2lkIHJlbW92ZSgpOwog
Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7CisgICAgUmVmPFNjcmlw
dENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7CiAgICAgUmVmUHRyPEFzeW5jU3RhY2tUcmFjZT4gbV9w
YXJlbnQ7CiAgICAgdW5zaWduZWQgbV9jaGlsZENvdW50IHsgMCB9OwogICAgIFN0YXRlIG1fc3Rh
dGUgeyBTdGF0ZTo6UGVuZGluZyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCAxMzM4OTNmYjBhYTMwOWMwNTVlNzk4MzM3
NzI4Y2ExZjdjMGY2ZmQ4Li5lZjA5ZmNjMWU4YjZiZTFjYzY4MjY1MTk0MzRkOGJkOTc1MGM1YWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcApAQCAtNjYsMTYgKzY2LDE1IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAg
YXV0b2dlbmVyYXRlTWV0YWRhdGEoc3RhdGUpOwogfQogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQorQ29uc29s
ZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNj
cmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIpCiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
bGV2ZWwobGV2ZWwpCiAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAsIG1fY2FsbFN0YWNr
KFdURk1vdmUoY2FsbFN0YWNrKSkKICAgICAsIG1fdXJsKCkKICAgICAsIG1fcmVxdWVzdElkKElk
ZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkKIHsKLSAgICBt
X2NhbGxTdGFjayA9IGNhbGxTdGFjazsKLQogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogZnJh
bWUgPSBtX2NhbGxTdGFjayA/IG1fY2FsbFN0YWNrLT5maXJzdE5vbk5hdGl2ZUNhbGxGcmFtZSgp
IDogbnVsbHB0cjsKICAgICBpZiAoZnJhbWUpIHsKICAgICAgICAgbV91cmwgPSBmcmFtZS0+c291
cmNlVVJMKCk7CkBAIC04NCwxMiArODMsMTIgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAg
ICB9CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK0NvbnNvbGVN
ZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYgYXJndW1lbnRzLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBt
X3R5cGUodHlwZSkKICAgICAsIG1fbGV2ZWwobGV2ZWwpCiAgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKLSAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cykKKyAgICAsIG1fYXJndW1lbnRzKFdURk1v
dmUoYXJndW1lbnRzKSkKICAgICAsIG1fdXJsKCkKICAgICAsIG1fcmVxdWVzdElkKElkZW50aWZp
ZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRleCA0ZjA2MDgx
YzdlMDQ1MzUxMjhkZDRiYjM0NTdlMzZjYjg2NGE0ZGFlLi5hNGQxOGI4ODJiZGRjMjFmOGYxOWJh
YzJhZGE1MDVkNzYwZDlmNDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC01MCw4ICs1MCw4IEBAIGNsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIENvbnNvbGVNZXNzYWdlIHsKIHB1YmxpYzoKICAgICBDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICBDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBj
b2x1bW4sIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwKTsKLSAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAg
IENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBKU0M6
OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYsIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwogCiAgICAgdm9pZCBh
ZGRUb0Zyb250ZW5kKENvbnNvbGVGcm9udGVuZERpc3BhdGNoZXImLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXImLCBib29sIGdlbmVyYXRlUHJldmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5kZXggYjc3
NjFjYzdhOTdhMzRiMmI4OWIxYWRiMGEyNmJkMTA0YTlkYTI0Yy4uMDk3NjE1YjEwNmRkZjE0ZDNk
MDFhNmVlZjI0OTZlMjNiMGFmYTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDUsOSArNDUs
OSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5zcGVjdG9yRW52aXJv
bm1lbnQmIGVudmlyb25tZW50LCBQYXNzUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4gaW5qZWN0
ZWRTY3JpcHRIb3N0KQorSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpJbmplY3RlZFNjcmlwdE1hbmFn
ZXIoSW5zcGVjdG9yRW52aXJvbm1lbnQmIGVudmlyb25tZW50LCBSZWY8SW5qZWN0ZWRTY3JpcHRI
b3N0PiYmIGluamVjdGVkU2NyaXB0SG9zdCkKICAgICA6IG1fZW52aXJvbm1lbnQoZW52aXJvbm1l
bnQpCi0gICAgLCBtX2luamVjdGVkU2NyaXB0SG9zdChpbmplY3RlZFNjcmlwdEhvc3QpCisgICAg
LCBtX2luamVjdGVkU2NyaXB0SG9zdChXVEZNb3ZlKGluamVjdGVkU2NyaXB0SG9zdCkpCiAgICAg
LCBtX25leHRJbmplY3RlZFNjcmlwdElkKDEpCiB7CiB9CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjYXJkSW5qZWN0ZWRTY3JpcHRzKCkKICAgICBtX3Nj
cmlwdFN0YXRlVG9JZC5jbGVhcigpOwogfQogCi1JbmplY3RlZFNjcmlwdEhvc3QqIEluamVjdGVk
U2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRTY3JpcHRIb3N0KCkKK0luamVjdGVkU2NyaXB0SG9zdCYg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjppbmplY3RlZFNjcmlwdEhvc3QoKQogewogICAgIHJldHVy
biBtX2luamVjdGVkU2NyaXB0SG9zdC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCmluZGV4IGYxYjc4
MDg0OWUwNWUxYmQyMjZmNThjZDk0NmFkOWJiNDBmZTk3ZDIuLjg0NzVlNDJmNzhiMTdhZmUzMTU4
Mjc1NWJjYzgyZWYyMDcyY2U2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaApAQCAtNDksMTMgKzQ5LDEzIEBA
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbmplY3RlZFNjcmlwdE1h
bmFnZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbmplY3RlZFNj
cmlwdE1hbmFnZXIoSW5zcGVjdG9yRW52aXJvbm1lbnQmLCBQYXNzUmVmUHRyPEluamVjdGVkU2Ny
aXB0SG9zdD4pOworICAgIEluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0b3JFbnZpcm9ubWVu
dCYsIFJlZjxJbmplY3RlZFNjcmlwdEhvc3Q+JiYpOwogICAgIHZpcnR1YWwgfkluamVjdGVkU2Ny
aXB0TWFuYWdlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOwogCi0gICAgSW5qZWN0ZWRTY3JpcHRI
b3N0KiBpbmplY3RlZFNjcmlwdEhvc3QoKTsKKyAgICBJbmplY3RlZFNjcmlwdEhvc3QmIGluamVj
dGVkU2NyaXB0SG9zdCgpOwogICAgIEluc3BlY3RvckVudmlyb25tZW50JiBpbnNwZWN0b3JFbnZp
cm9ubWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW52aXJvbm1lbnQ7IH0KIAogICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yKEpTQzo6RXhlY1N0YXRlKik7CkBAIC03Niw3ICs3Niw3
IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVkU2NyaXB0TWFuYWdlciB7CiAgICAg
SlNDOjpKU09iamVjdCogY3JlYXRlSW5qZWN0ZWRTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IEpTQzo6RXhlY1N0YXRlKiwgaW50IGlkKTsKIAogICAgIEluc3BlY3RvckVudmlyb25tZW50JiBt
X2Vudmlyb25tZW50OwotICAgIFJlZlB0cjxJbmplY3RlZFNjcmlwdEhvc3Q+IG1faW5qZWN0ZWRT
Y3JpcHRIb3N0OworICAgIFJlZjxJbmplY3RlZFNjcmlwdEhvc3Q+IG1faW5qZWN0ZWRTY3JpcHRI
b3N0OwogICAgIGludCBtX25leHRJbmplY3RlZFNjcmlwdElkOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQuY3BwCmluZGV4IDg3NjNkMjdmOGI2ZmMxYWZkYzE5MWNiMjc2ZjYwNTY1Njc1
NDIzYWQuLjFmOTAzYmFlNzhlOWZjYTNmNDgwNmY1MGI3MDBjYTEzOTVmNTNjYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29s
ZUFnZW50KgogewogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2Fn
ZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
Cit2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaWYgKEpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bG9nVG9TeXN0ZW1Db25zb2xlKCkpCiAgICAgICAgIENv
bnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3Vy
Y2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBleGVjLCBhcmd1bWVudHMuY29weVJlZigpKTsK
QEAgLTcyLDkgKzcyLDkgQEAgdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6Om1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3MKICAgICBtX2NvbnNvbGVB
Z2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdl
PihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgV1RGTW92
ZShhcmd1bWVudHMpLCBleGVjKSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50Ojpjb3VudChFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJn
dW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0
ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7Ci0gICAgbV9jb25z
b2xlQWdlbnQtPmNvdW50KGV4ZWMsIGFyZ3VtZW50cyk7CisgICAgbV9jb25zb2xlQWdlbnQtPmNv
dW50KGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKQEAgLTE1NiwxMSArMTU2LDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojp0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAKIHZvaWQgSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiB0aXRsZSkKIHsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSk7Ci0gICAgbV9jb25zb2xlQWdlbnQt
PnN0b3BUaW1pbmcodGl0bGUsIFdURk1vdmUoY2FsbFN0YWNrKSk7CisgICAgbV9jb25zb2xlQWdl
bnQtPnN0b3BUaW1pbmcodGl0bGUsIGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhl
YywgMSkpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGltZVN0YW1w
KEV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpCit2b2lkIEpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVu
dHM+JiYpCiB7CiAgICAgLy8gRklYTUU6IEpTQ29udGV4dCBpbnNwZWN0aW9uIG5lZWRzIGEgdGlt
ZWxpbmUuCiAgICAgd2FyblVuaW1wbGVtZW50ZWQoQVNDSUlMaXRlcmFsKCJjb25zb2xlLnRpbWVT
dGFtcCIpKTsKQEAgLTE2OSw3ICsxNjgsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudDo6dGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+Jgogdm9p
ZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6Ondhcm5VbmltcGxlbWVudGVkKGNvbnN0IFN0
cmluZyYgbWV0aG9kKQogewogICAgIFN0cmluZyBtZXNzYWdlID0gbWV0aG9kICsgIiBpcyBjdXJy
ZW50bHkgaWdub3JlZCBpbiBKYXZhU2NyaXB0IGNvbnRleHQgaW5zcGVjdGlvbi4iOwotICAgIG1f
Y29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2csIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgbWVzc2FnZSwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIG1f
Y29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2csIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgbWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCmluZGV4IDUyN2ZmZDkxNGUyMDhhNzQxOGUw
NTMwOGFkYmY1ZDQxMmEzNWMyNDkuLmQ5YjI1OWNiNmJhOTE2ZGI3NDdmZjY3YmFmOWY1MDFjNzg2
ZjlmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaApAQCAtNDUsMTggKzQ1LDE4IEBAIGNs
YXNzIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBKU0M6OkNvbnNv
bGVDbGllbnQgewogICAgIHN0YXRpYyB2b2lkIHNldExvZ1RvU3lzdGVtQ29uc29sZShib29sKTsK
IAogcHJvdGVjdGVkOgotICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUq
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHBy
b2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsK
ICAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVTdGFtcChKU0M6
OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB3YXJuVW5pbXBsZW1lbnRlZChjb25zdCBTdHJp
bmcmIG1ldGhvZCk7Ci0gICAgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmKTsK
KyAgICB2b2lkIGludGVybmFsQWRkTWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBK
U0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwogCiAgICAgdm9pZCBzdGFy
dENvbnNvbGVQcm9maWxlKCk7CiAgICAgdm9pZCBzdG9wQ29uc29sZVByb2ZpbGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAxYmY4MDA4YWQ3Njc4OTNh
MjUwYjhkM2NkNWU1MjEzODg5ODljZDUyLi4zMTM3MzBhNTcwMjk3MTU0YWI4YTUxOWJjNzczNjJh
NTdmYjIzMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC0xODcsNyArMTg3LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6
OnBhdXNlKCkKICAgICBtX2RlYnVnZ2VyQWdlbnQtPnBhdXNlKGR1bW15RXJyb3IpOwogfQogCi12
b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6YXBwZW5kQVBJQmFja3RyYWNl
KFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQordm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZShTY3JpcHRDYWxsU3RhY2smIGNhbGxTdGFj
aykKIHsKICNpZiBPUyhEQVJXSU4pIHx8IChPUyhMSU5VWCkgJiYgIVBMQVRGT1JNKEdUSykpCiAg
ICAgc3RhdGljIGNvbnN0IGludCBmcmFtZXNUb1Nob3cgPSAzMTsKQEAgLTIwOCw5ICsyMDgsOSBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6YXBwZW5kQVBJQmFja3Ry
YWNlKFNjcmlwdENhbGxTdGFjayogY2FsbAogICAgICAgICBpZiAobWFuZ2xlZE5hbWUpCiAgICAg
ICAgICAgICBjeGFEZW1hbmdsZWQgPSBhYmk6Ol9fY3hhX2RlbWFuZ2xlKG1hbmdsZWROYW1lLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgaWYgKG1hbmdsZWROYW1lIHx8IGN4
YURlbWFuZ2xlZCkKLSAgICAgICAgICAgIGNhbGxTdGFjay0+YXBwZW5kKFNjcmlwdENhbGxGcmFt
ZShjeGFEZW1hbmdsZWQgPyBjeGFEZW1hbmdsZWQgOiBtYW5nbGVkTmFtZSwgQVNDSUlMaXRlcmFs
KCJbbmF0aXZlIGNvZGVdIiksIG5vU291cmNlSUQsIDAsIDApKTsKKyAgICAgICAgICAgIGNhbGxT
dGFjay5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGN4YURlbWFuZ2xlZCA/IGN4YURlbWFuZ2xlZCA6
IG1hbmdsZWROYW1lLCBBU0NJSUxpdGVyYWwoIltuYXRpdmUgY29kZV0iKSwgbm9Tb3VyY2VJRCwg
MCwgMCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjYWxsU3RhY2stPmFwcGVuZChTY3Jp
cHRDYWxsRnJhbWUoQVNDSUlMaXRlcmFsKCI/IiksIEFTQ0lJTGl0ZXJhbCgiW25hdGl2ZSBjb2Rl
XSIpLCBub1NvdXJjZUlELCAwLCAwKSk7CisgICAgICAgICAgICBjYWxsU3RhY2suYXBwZW5kKFNj
cmlwdENhbGxGcmFtZShBU0NJSUxpdGVyYWwoIj8iKSwgQVNDSUlMaXRlcmFsKCJbbmF0aXZlIGNv
ZGVdIiksIG5vU291cmNlSUQsIDAsIDApKTsKICAgICAgICAgZnJlZShjeGFEZW1hbmdsZWQpOwog
ICAgIH0KICNlbHNlCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnJlcG9ydEFQSUV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2UK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgRXJyb3JIYW5k
bGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOwogCi0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2VwdGlvbihleGVjLCBleGNl
cHRpb24sIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAg
UmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJv
bUV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24sIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNr
U2l6ZVRvQ2FwdHVyZSk7CiAgICAgaWYgKGluY2x1ZGVzTmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9y
dGluZ0V4Y2VwdGlvbnMoKSkKICAgICAgICAgYXBwZW5kQVBJQmFja3RyYWNlKGNhbGxTdGFjay5n
ZXQoKSk7CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXhjZQogICAg
ICAgICAgICAgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdl
LCBTdHJpbmcoKSwgMCwgMCk7CiAgICAgfQogCi0gICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2Fn
ZSwgY2FsbFN0YWNrKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
c3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgV1RGTW92ZShj
YWxsU3RhY2spKSk7CiB9CiAKIENvbnNvbGVDbGllbnQqIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6Y29uc29sZUNsaWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuaAppbmRleCBmM2ZlYWZkMTkzZGNjYmRhMjY1ZDg5Y2NlOWYyYmViOWVmZWQ5
MmE4Li4yNmE1NjhmNjAyOGRkNjJjMTI1NDM2MTY2MzZkYTUyMzQ3OTQ2OTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBjbGFzcyBK
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIgZmluYWwKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIHZvaWQgYXBwZW5kQVBJQmFja3RyYWNlKFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNr
KTsKKyAgICB2b2lkIGFwcGVuZEFQSUJhY2t0cmFjZShTY3JpcHRDYWxsU3RhY2smKTsKIAogICAg
IEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbmplY3RlZFNjcmlwdE1hbmFnZXI+IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJh
bWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWUuY3BwCmluZGV4IDFmMWU0Njk1OTRkNzdjMjk2OGI4ODViOTljYjBlNjBjOGM2MWMxNzgu
LjE5MTZjNWRjOGUyYWE3YzgzZTEyYTIzYzg2MzIyODVlNTIyNTk2MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNvbnN0IENs
YXNzSW5mbyBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnNfaW5mbyA9IHsgIkphdmFTY3JpcHRDYWxs
RnJhbWUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSmF2YVNjcmlw
dENhbGxGcmFtZSkgfTsKIAotSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKU0phdmFTY3JpcHRDYWxs
RnJhbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0
Q2FsbEZyYW1lPiBpbXBsKQorSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKU0phdmFTY3JpcHRDYWxs
RnJhbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPEphdmFTY3JpcHRDYWxsRnJh
bWU+JiYgaW1wbCkKICAgICA6IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCi0g
ICAgLCBtX2ltcGwoaW1wbC5sZWFrUmVmKCkpCisgICAgLCBtX2ltcGwoJmltcGwubGVha1JlZigp
KQogewogfQogCkBAIC0yMjgsNyArMjI4LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSmF2YVNjcmlwdENhbGxGcmFtZSoKIAog
ICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZVBy
b3RvdHlwZShleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpOwogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+dm0oKSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUpOwotICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSogamF2
YVNjcmlwdENhbGxGcmFtZSA9IEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlKGV4ZWMtPnZt
KCksIHN0cnVjdHVyZSwgaW1wbCk7CisgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBqYXZhU2Ny
aXB0Q2FsbEZyYW1lID0gSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwg
c3RydWN0dXJlLCAqaW1wbCk7CiAKICAgICByZXR1cm4gamF2YVNjcmlwdENhbGxGcmFtZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlw
dENhbGxGcmFtZS5oCmluZGV4IDU2YjY5ZDRiOGRhYjg0YzBiNjllMTAyZDI5YjJlOGI2NTY4OWUy
ZDIuLjJhYzI0N2NhZTlkNTIwZGFjMjlhYjNkNGNmYTgxNDhkYTFmZGM5YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJh
bWUuaApAQCAtNDIsOSArNDIsOSBAQCBjbGFzcyBKU0phdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJs
aWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gaW1wbCkK
KyAgICBzdGF0aWMgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiYmIGltcGwp
CiAgICAgewotICAgICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGluc3RhbmNlID0gbmV3IChO
b3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU0phdmFTY3JpcHRDYWxsRnJhbWU+KHZtLmhlYXAp
KSBKU0phdmFTY3JpcHRDYWxsRnJhbWUodm0sIHN0cnVjdHVyZSwgaW1wbCk7CisgICAgICAgIEpT
SmF2YVNjcmlwdENhbGxGcmFtZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2Nh
dGVDZWxsPEpTSmF2YVNjcmlwdENhbGxGcmFtZT4odm0uaGVhcCkpIEpTSmF2YVNjcmlwdENhbGxG
cmFtZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGltcGwpKTsKICAgICAgICAgaW5zdGFuY2UtPmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0KQEAgLTgz
LDcgKzgzLDcgQEAgY2xhc3MgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lIDogcHVibGljIEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwog
CiBwcml2YXRlOgotICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+KTsKKyAgICBKU0phdmFTY3Jp
cHRDYWxsRnJhbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPEphdmFTY3JpcHRDYWxs
RnJhbWU+JiYpOwogICAgIH5KU0phdmFTY3JpcHRDYWxsRnJhbWUoKTsKIAogICAgIEphdmFTY3Jp
cHRDYWxsRnJhbWUqIG1faW1wbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCmluZGV4IGQ1ZjczZDU0MDUwNjlhYWFh
YjdjODNjMTA3ZjAwOWVmYjgxYWEwNzIuLjNjMjg0ODRhZWI0ZDExODA1MWM4NDAwMTdhYWMxMzQ5
ZTE4ZTUzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2
YVNjcmlwdENhbGxGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApAQCAtMzAsOCArMzAsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotSmF2YVNjcmlwdENhbGxGcmFtZTo6
SmF2YVNjcmlwdENhbGxGcmFtZShQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBkZWJ1Z2dl
ckNhbGxGcmFtZSkKLSAgICA6IG1fZGVidWdnZXJDYWxsRnJhbWUoZGVidWdnZXJDYWxsRnJhbWUp
CitKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKFJlZjxEZWJ1Z2dlckNh
bGxGcmFtZT4mJiBkZWJ1Z2dlckNhbGxGcmFtZSkKKyAgICA6IG1fZGVidWdnZXJDYWxsRnJhbWUo
V1RGTW92ZShkZWJ1Z2dlckNhbGxGcmFtZSkpCiB7CiB9CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgSmF2
YVNjcmlwdENhbGxGcmFtZSogSmF2YVNjcmlwdENhbGxGcmFtZTo6Y2FsbGVyKCkKICAgICBpZiAo
IWRlYnVnZ2VyQ2FsbGVyRnJhbWUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbV9j
YWxsZXIgPSBjcmVhdGUoZGVidWdnZXJDYWxsZXJGcmFtZSk7CisgICAgbV9jYWxsZXIgPSBjcmVh
dGUoZGVidWdnZXJDYWxsZXJGcmFtZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICByZXR1cm4gbV9j
YWxsZXIuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKaW5kZXggZjlhZGJlYzgxYjc2MDhjOGU3NjIzY2Fm
MWFmOTFhYTU2ODhlNWQ2OC4uNmFmNDkyZWY2MDg5ZTNhMGVkMzgzYTkwODAyZTY3ZDBjZjFmZjRl
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAK
IGNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0
Q2FsbEZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxKYXZhU2NyaXB0Q2FsbEZyYW1l
PiBjcmVhdGUoUGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBkZWJ1Z2dlckNhbGxG
cmFtZSkKKyAgICBzdGF0aWMgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShSZWY8SlND
OjpEZWJ1Z2dlckNhbGxGcmFtZT4mJiBkZWJ1Z2dlckNhbGxGcmFtZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdnZXJDYWxsRnJh
bWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSmF2YVNjcmlwdENhbGxGcmFtZShX
VEZNb3ZlKGRlYnVnZ2VyQ2FsbEZyYW1lKSkpOwogICAgIH0KIAogICAgIEphdmFTY3JpcHRDYWxs
RnJhbWUqIGNhbGxlcigpOwpAQCAtNTgsOSArNTgsOSBAQCBjbGFzcyBKYXZhU2NyaXB0Q2FsbEZy
YW1lIDogcHVibGljIFJlZkNvdW50ZWQ8SmF2YVNjcmlwdENhbGxGcmFtZT4gewogICAgIEpTQzo6
SlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHNjcmlwdCwg
SlNDOjpKU09iamVjdCogc2NvcGVFeHRlbnNpb24sIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYg
ZXhjZXB0aW9uKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5ldmFsdWF0ZVdp
dGhTY29wZUV4dGVuc2lvbihzY3JpcHQsIHNjb3BlRXh0ZW5zaW9uLCBleGNlcHRpb24pOyB9CiAK
IHByaXZhdGU6Ci0gICAgSmF2YVNjcmlwdENhbGxGcmFtZShQYXNzUmVmUHRyPEpTQzo6RGVidWdn
ZXJDYWxsRnJhbWU+KTsKKyAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKFJlZjxKU0M6OkRlYnVnZ2Vy
Q2FsbEZyYW1lPiYmKTsKIAotICAgIFJlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBtX2Rl
YnVnZ2VyQ2FsbEZyYW1lOworICAgIFJlZjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBtX2RlYnVn
Z2VyQ2FsbEZyYW1lOwogICAgIFJlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBtX2NhbGxlcjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAKaW5kZXggNzU1ZjViODUzNWMyZTJhNDA0ZDhlYWQ2MDVjNzAyMWYzZjY4
ZGFlMi4uODRjZWZkZjcwOTQ5YzYwZTQxYjhjNDNjYWQyZDMxMjAyMzE2MWViMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAKQEAgLTg5LDI5ICs4OSwyOSBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpjbGVhckJyZWFr
cG9pbnRBY3Rpb25zKCkKIAogYm9vbCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZXZhbHVhdGVCcmVha3Bv
aW50QWN0aW9uKGNvbnN0IFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mIGJyZWFrcG9pbnRBY3Rpb24p
CiB7Ci0gICAgRGVidWdnZXJDYWxsRnJhbWUqIGRlYnVnZ2VyQ2FsbEZyYW1lID0gY3VycmVudERl
YnVnZ2VyQ2FsbEZyYW1lKCk7CisgICAgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lID0gY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCk7CiAKICAgICBzd2l0Y2ggKGJyZWFrcG9p
bnRBY3Rpb24udHlwZSkgewogICAgIGNhc2UgU2NyaXB0QnJlYWtwb2ludEFjdGlvblR5cGVMb2c6
IHsKLSAgICAgICAgZGlzcGF0Y2hCcmVha3BvaW50QWN0aW9uTG9nKGRlYnVnZ2VyQ2FsbEZyYW1l
LT5nbG9iYWxFeGVjKCksIGJyZWFrcG9pbnRBY3Rpb24uZGF0YSk7CisgICAgICAgIGRpc3BhdGNo
QnJlYWtwb2ludEFjdGlvbkxvZyhkZWJ1Z2dlckNhbGxGcmFtZS5nbG9iYWxFeGVjKCksIGJyZWFr
cG9pbnRBY3Rpb24uZGF0YSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFNjcmlw
dEJyZWFrcG9pbnRBY3Rpb25UeXBlRXZhbHVhdGU6IHsKICAgICAgICAgTmFrZWRQdHI8RXhjZXB0
aW9uPiBleGNlcHRpb247CiAgICAgICAgIEpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbk9iamVjdCA9
IG51bGxwdHI7Ci0gICAgICAgIGRlYnVnZ2VyQ2FsbEZyYW1lLT5ldmFsdWF0ZVdpdGhTY29wZUV4
dGVuc2lvbihicmVha3BvaW50QWN0aW9uLmRhdGEsIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNl
cHRpb24pOworICAgICAgICBkZWJ1Z2dlckNhbGxGcmFtZS5ldmFsdWF0ZVdpdGhTY29wZUV4dGVu
c2lvbihicmVha3BvaW50QWN0aW9uLmRhdGEsIHNjb3BlRXh0ZW5zaW9uT2JqZWN0LCBleGNlcHRp
b24pOwogICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgcmVwb3J0RXhjZXB0aW9u
KGRlYnVnZ2VyQ2FsbEZyYW1lLT5nbG9iYWxFeGVjKCksIGV4Y2VwdGlvbik7CisgICAgICAgICAg
ICByZXBvcnRFeGNlcHRpb24oZGVidWdnZXJDYWxsRnJhbWUuZ2xvYmFsRXhlYygpLCBleGNlcHRp
b24pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBTY3JpcHRCcmVha3BvaW50QWN0
aW9uVHlwZVNvdW5kOgotICAgICAgICBkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Tb3VuZChkZWJ1
Z2dlckNhbGxGcmFtZS0+Z2xvYmFsRXhlYygpLCBicmVha3BvaW50QWN0aW9uLmlkZW50aWZpZXIp
OworICAgICAgICBkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Tb3VuZChkZWJ1Z2dlckNhbGxGcmFt
ZS5nbG9iYWxFeGVjKCksIGJyZWFrcG9pbnRBY3Rpb24uaWRlbnRpZmllcik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU2NyaXB0QnJlYWtwb2ludEFjdGlvblR5cGVQcm9iZTogewogICAgICAg
ICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKICAgICAgICAgSlNPYmplY3QqIHNjb3Bl
RXh0ZW5zaW9uT2JqZWN0ID0gbnVsbHB0cjsKLSAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBkZWJ1
Z2dlckNhbGxGcmFtZS0+ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oYnJlYWtwb2ludEFjdGlv
bi5kYXRhLCBzY29wZUV4dGVuc2lvbk9iamVjdCwgZXhjZXB0aW9uKTsKLSAgICAgICAgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMgPSBkZWJ1Z2dlckNhbGxGcmFtZS0+Z2xvYmFsRXhlYygpOworICAgICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGRlYnVnZ2VyQ2FsbEZyYW1lLmV2YWx1YXRlV2l0aFNjb3BlRXh0
ZW5zaW9uKGJyZWFrcG9pbnRBY3Rpb24uZGF0YSwgc2NvcGVFeHRlbnNpb25PYmplY3QsIGV4Y2Vw
dGlvbik7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZGVidWdnZXJDYWxsRnJhbWUu
Z2xvYmFsRXhlYygpOwogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgcmVwb3J0
RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7CiAKQEAgLTEyOCw4ICsxMjgsOCBAQCBib29sIFNj
cmlwdERlYnVnU2VydmVyOjpldmFsdWF0ZUJyZWFrcG9pbnRBY3Rpb24oY29uc3QgU2NyaXB0QnJl
YWtwb2ludEFjdGlvbiYgYgogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVz
ZShTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikKIHsKICAgICBBU1NFUlQoaXNQYXVzZWQo
KSk7Ci0gICAgRGVidWdnZXJDYWxsRnJhbWUqIGRlYnVnZ2VyQ2FsbEZyYW1lID0gY3VycmVudERl
YnVnZ2VyQ2FsbEZyYW1lKCk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRl
YnVnZ2VyQ2FsbEZyYW1lLT5zY29wZSgpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBEZWJ1Z2dlckNh
bGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKTsK
KyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVidWdnZXJDYWxsRnJhbWUuc2Nv
cGUoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgSlNDOjpFeGVjU3RhdGUmIHN0YXRlID0gKmdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgIEpTVmFsdWUganNDYWxsRnJhbWUgPSB0b0pTKCZz
dGF0ZSwgZ2xvYmFsT2JqZWN0LCBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZGVidWdnZXJD
YWxsRnJhbWUpLnB0cigpKTsKICAgICBsaXN0ZW5lci0+ZGlkUGF1c2Uoc3RhdGUsIGpzQ2FsbEZy
YW1lLCBleGNlcHRpb25PckNhdWdodFZhbHVlKCZzdGF0ZSkpOwpAQCAtMzQ1LDcgKzM0NSw3IEBA
IEpTQzo6SlNWYWx1ZSBTY3JpcHREZWJ1Z1NlcnZlcjo6ZXhjZXB0aW9uT3JDYXVnaHRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgaWYgKHJlYXNvbkZvclBhdXNlKCkgPT0gUGF1c2Vk
Rm9yRXhjZXB0aW9uKQogICAgICAgICByZXR1cm4gY3VycmVudEV4Y2VwdGlvbigpOwogCi0gICAg
Zm9yIChSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGZyYW1lID0gY3VycmVudERlYnVnZ2VyQ2Fs
bEZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZSgpKSB7CisgICAgZm9y
IChSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGZyYW1lID0gJmN1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+Y2FsbGVyRnJhbWUoKSkgewogICAgICAgICBE
ZWJ1Z2dlclNjb3BlJiBzY29wZSA9ICpmcmFtZS0+c2NvcGUoKTsKICAgICAgICAgaWYgKHNjb3Bl
LmlzQ2F0Y2hTY29wZSgpKQogICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmNhdWdodFZhbHVlKHN0
YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IGU5NTZlZTUxMTZiMmJk
MjcyYmQ1NGNjYTYzZGQzY2I1M2JiNDdjMTUuLmQ0NTNkYmJkODY3NDBiYmZmZGNjMGU3MjM3MzBj
ZTMyMzQ1ZjM2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtMTQ1LDcg
KzE0NSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdGFydFRpbWluZyhjb25zdCBT
dHJpbmcmIHRpdGxlKQogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0
b3BUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjaykKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9wVGltaW5nKGNvbnN0
IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYgY2FsbFN0YWNrKQogewogICAg
IEFTU0VSVCghdGl0bGUuaXNOdWxsKCkpOwogICAgIGlmICh0aXRsZS5pc051bGwoKSkKQEAgLTE2
NCw3ICsxNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyhjb25z
dCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbAogCiAgICAgZG91YmxlIGVsYXBz
ZWQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZTsKICAgICBTdHJp
bmcgbWVzc2FnZSA9IHRpdGxlICsgU3RyaW5nOjpmb3JtYXQoIjogJS4zZm1zIiwgZWxhcHNlZCAq
IDEwMDApOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xl
TWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywg
TWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZSwgY2FsbFN0YWNrKSk7CisgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNl
OjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBt
ZXNzYWdlLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6OnRha2VIZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTE4MCw5ICsx
ODAsOSBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6dGFrZUhlYXBTbmFwc2hvdChjb25z
dCBTdHJpbmcmIHRpdGxlKQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5oZWFwU25hcHNob3Qo
dGltZXN0YW1wLCBzbmFwc2hvdERhdGEsIHRpdGxlLmlzRW1wdHkoKSA/IG51bGxwdHIgOiAmdGl0
bGUpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQordm9pZCBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoc3RhdGUsIFNjcmlw
dENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOworICAgIFJlZjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoc3Rh
dGUsIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CiAKICAgICBT
dHJpbmcgdGl0bGU7CiAgICAgU3RyaW5nIGlkZW50aWZpZXI7CkBAIC0yMDMsNyArMjAzLDcgQEAg
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwg
UGFzc1JlZlB0cjxTY3JpcHRBcmd1bWUKICAgICAvLyBGSVhNRTogV2ViIEluc3BlY3RvciBzaG91
bGQgaGF2ZSBhIGJldHRlciBVSSBmb3IgY291bnRlcnMsIGJ1dCBmb3Igbm93IHdlIGp1c3QgbG9n
IGFuIHVwZGF0ZWQgY291bnRlciB2YWx1ZS4KIAogICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0
cmluZyh0aXRsZSwgIjogIiwgU3RyaW5nOjpudW1iZXIocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkp
OwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2Fn
ZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxl
dmVsOjpEZWJ1ZywgbWVzc2FnZSwgY2FsbFN0YWNrKSk7CisgICAgYWRkTWVzc2FnZVRvQ29uc29s
ZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xl
QVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZN
b3ZlKGNhbGxTdGFjaykpKTsKIH0KIAogc3RhdGljIGJvb2wgaXNHcm91cE1lc3NhZ2UoTWVzc2Fn
ZVR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNDU4NDBlNjllOGE2
YzliNzIyMDYzMGM4YzZmMDZhNjU0ZWVlZTgyMC4uMTc1Y2VjOWRhODhkN2IyODk4YTBhM2YxNTYz
ZWViNjRiOGM0NjVkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTcxLDkgKzcx
LDkgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQ29uc29sZUFnZW50IDogcHVi
bGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGkKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdlPik7CiAKICAgICB2b2lkIHN0YXJ0VGlt
aW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgc3RvcFRpbWluZyhjb25zdCBTdHJp
bmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgc3RvcFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICB2
b2lkIHRha2VIZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBjb3Vu
dChKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CisgICAgdm9p
ZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwogCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8Q29uc29s
ZU1lc3NhZ2U+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZDM0ZDI5
Zjc0ODE1Nzk5ZmI4ZTJhMTJkYTk0YWU4ZDk2YzM3ZDU0Ny4uNjE3ZWZiOWFjMzliMmFhZmYwZjcy
NjY4NDViNTc3YmM5ZGRmOGU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAK
QEAgLTIzMCw5ICsyMzAsOSBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFNjaGVk
dWxlQXN5bmNDYWxsKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBpbnQgYXN5bgogICAgIGlmICghbV9z
Y3JpcHREZWJ1Z1NlcnZlci5icmVha3BvaW50c0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxs
U3RhY2soZXhlYywgbV9hc3luY1N0YWNrVHJhY2VEZXB0aCk7Ci0gICAgQVNTRVJUKGNhbGxTdGFj
ayAmJiBjYWxsU3RhY2stPnNpemUoKSk7Ci0gICAgaWYgKCFjYWxsU3RhY2sgfHwgIWNhbGxTdGFj
ay0+c2l6ZSgpKQorICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNj
cmlwdENhbGxTdGFjayhleGVjLCBtX2FzeW5jU3RhY2tUcmFjZURlcHRoKTsKKyAgICBBU1NFUlQo
Y2FsbFN0YWNrLT5zaXplKCkpOworICAgIGlmICghY2FsbFN0YWNrLT5zaXplKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlZlB0cjxBc3luY1N0YWNrVHJhY2U+IHBhcmVudFN0YWNrVHJhY2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCmlu
ZGV4IDFhZTNlMjkzM2YxNjc5MDVjOTk2NDE2MzcyNzBjZmEzYTI5ZjExMTcuLjY4ZDcxYzMxYjUx
Zjk1NjAxMmUwMGRmMTJkMjAwN2ZhZTQzZWU4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCkBAIC0xNDcsMTEgKzE0NywxMSBAQCB2b2lk
IENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsCiAgICAgV1RGTG9nQWx3YXlzKCIlcyIsIGJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNv
bGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29u
c29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBib29sIGlzVHJhY2VNZXNzYWdlID0g
dHlwZSA9PSBNZXNzYWdlVHlwZTo6VHJhY2U7CiAgICAgc2l6ZV90IHN0YWNrU2l6ZSA9IGlzVHJh
Y2VNZXNzYWdlID8gU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlIDog
MTsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrRm9yQ29uc29sZShleGVjLCBzdGFja1NpemUpKTsKKyAgICBSZWY8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIHN0
YWNrU2l6ZSk7CiAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBsYXN0Q2FsbGVyID0gY2FsbFN0
YWNrLT5hdCgwKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE5MCw3ICsxOTAs
NyBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRz
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQogICAgIH0KIH0KIAotdm9pZCBDb25zb2xlQ2xp
ZW50OjppbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzLCBBcmd1bWVudFJlcXVpcmVtZW50IGFyZ3VtZW50UmVxdWlyZW1l
bnQpCit2b2lkIENvbnNvbGVDbGllbnQ6OmludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwo
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMsIEFyZ3VtZW50UmVxdWlyZW1lbnQg
YXJndW1lbnRSZXF1aXJlbWVudCkKIHsKICAgICBpZiAoYXJndW1lbnRSZXF1aXJlbWVudCA9PSBB
cmd1bWVudFJlcXVpcmVkICYmICFhcmd1bWVudHMtPmFyZ3VtZW50Q291bnQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMTk4LDcgKzE5OCw3IEBAIHZvaWQgQ29uc29sZUNsaWVudDo6aW50ZXJuYWxN
ZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2CiAgICAg
bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwodHlwZSwgbGV2ZWwsIGV4ZWMsIFdURk1vdmUoYXJndW1l
bnRzKSk7CiB9CiAKLXZvaWQgQ29uc29sZUNsaWVudDo6bG9nV2l0aExldmVsKEV4ZWNTdGF0ZSog
ZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCkKK3ZvaWQgQ29uc29sZUNsaWVudDo6bG9nV2l0aExldmVsKEV4ZWNTdGF0ZSogZXhlYywg
UmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKIHsK
ICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlOjpMb2csIGxl
dmVsLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50UmVxdWlyZWQpOwogfQpAQCAt
MjA4LDQyICsyMDgsNDIgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjpjbGVhcihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZTo6Q2xl
YXIsIE1lc3NhZ2VMZXZlbDo6TG9nLCBleGVjLCBTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZUVtcHR5
KGV4ZWMpLCBBcmd1bWVudE5vdFJlcXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50Ojpk
aXIoRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
K3ZvaWQgQ29uc29sZUNsaWVudDo6ZGlyKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZTo6RGlyLCBNZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpLCBBcmd1bWVudFJlcXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50OjpkaXJY
TUwoRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
K3ZvaWQgQ29uc29sZUNsaWVudDo6ZGlyWE1MKEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbChNZXNzYWdlVHlwZTo6RGlyWE1MLCBNZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RGTW92
ZShhcmd1bWVudHMpLCBBcmd1bWVudFJlcXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xpZW50
Ojp0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1l
bnRzKQordm9pZCBDb25zb2xlQ2xpZW50Ojp0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGludGVybmFsTWVzc2FnZVdpdGhUeXBl
QW5kTGV2ZWwoTWVzc2FnZVR5cGU6OlRhYmxlLCBNZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RG
TW92ZShhcmd1bWVudHMpLCBBcmd1bWVudFJlcXVpcmVkKTsKIH0KIAotdm9pZCBDb25zb2xlQ2xp
ZW50Ojp0cmFjZShFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJn
dW1lbnRzKQordm9pZCBDb25zb2xlQ2xpZW50Ojp0cmFjZShFeGVjU3RhdGUqIGV4ZWMsIFJlZjxT
Y3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAgIGludGVybmFsTWVzc2FnZVdpdGhU
eXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGU6OlRyYWNlLCBNZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywg
V1RGTW92ZShhcmd1bWVudHMpLCBBcmd1bWVudE5vdFJlcXVpcmVkKTsKIH0KIAotdm9pZCBDb25z
b2xlQ2xpZW50Ojphc3NlcnRpb24oRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgQ29uc29sZUNsaWVudDo6YXNzZXJ0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJu
YWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZTo6QXNzZXJ0LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cyksIEFyZ3VtZW50Tm90UmVxdWlyZWQp
OwogfQogCi12b2lkIENvbnNvbGVDbGllbnQ6Omdyb3VwKEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIENvbnNvbGVDbGllbnQ6Omdyb3Vw
KEV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAg
ICAgaW50ZXJuYWxNZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZTo6U3RhcnRHcm91
cCwgTWVzc2FnZUxldmVsOjpMb2csIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSwgQXJndW1lbnRO
b3RSZXF1aXJlZCk7CiB9CiAKLXZvaWQgQ29uc29sZUNsaWVudDo6Z3JvdXBDb2xsYXBzZWQoRXhl
Y1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQg
Q29uc29sZUNsaWVudDo6Z3JvdXBDb2xsYXBzZWQoRXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFu
ZExldmVsKE1lc3NhZ2VUeXBlOjpTdGFydEdyb3VwQ29sbGFwc2VkLCBNZXNzYWdlTGV2ZWw6Okxv
ZywgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpLCBBcmd1bWVudE5vdFJlcXVpcmVkKTsKIH0KIAot
dm9pZCBDb25zb2xlQ2xpZW50Ojpncm91cEVuZChFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBDb25zb2xlQ2xpZW50Ojpncm91cEVuZChF
eGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAg
IGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGU6OkVuZEdyb3VwLCBN
ZXNzYWdlTGV2ZWw6OkxvZywgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpLCBBcmd1bWVudE5vdFJl
cXVpcmVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGll
bnQuaAppbmRleCA3NTlkZjdmMzBlYjE2Y2VjNjYxMGMxYzBjYzI4MzFkNWNmYWE0YThkLi40OTUx
ZjQ2MjY0NTVjYzQ5MGI1NjJkNjg3YjE1NGNhZGJkZTFlYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCkBAIC00MSwzMSArNDEsMzEgQEAgY2xh
c3MgQ29uc29sZUNsaWVudCB7CiAgICAgdmlydHVhbCB+Q29uc29sZUNsaWVudCgpIHsgfQogCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcHJpbnRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHByaW50Q29uc29s
ZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRz
PiYmKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBwcmludENvbnNvbGVNZXNz
YWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAK
LSAgICB2b2lkIGxvZ1dpdGhMZXZlbChFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYsIE1lc3NhZ2VMZXZlbCk7CisgICAgdm9pZCBsb2dXaXRoTGV2ZWwoRXhl
Y1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmLCBNZXNzYWdlTGV2ZWwp
OwogICAgIHZvaWQgY2xlYXIoRXhlY1N0YXRlKik7Ci0gICAgdm9pZCBkaXIoRXhlY1N0YXRlKiwg
UmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICB2b2lkIGRpclhNTChF
eGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZv
aWQgdGFibGUoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KTsKLSAgICB2b2lkIHRyYWNlKEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJik7Ci0gICAgdm9pZCBhc3NlcnRpb24oRXhlY1N0YXRlKiwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICB2b2lkIGdyb3VwKEV4ZWNTdGF0ZSosIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgdm9pZCBncm91cENvbGxh
cHNlZChFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwot
ICAgIHZvaWQgZ3JvdXBFbmQoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKTsKKyAgICB2b2lkIGRpcihFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgZGlyWE1MKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCB0YWJsZShFeGVjU3RhdGUqLCBSZWY8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgdHJhY2UoRXhlY1N0YXRl
KiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIGFzc2VydGlv
bihFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZv
aWQgZ3JvdXAoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsK
KyAgICB2b2lkIGdyb3VwQ29sbGFwc2VkKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlw
dEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCBncm91cEVuZChFeGVjU3RhdGUqLCBSZWY8SW5zcGVj
dG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogCi0gICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRo
VHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwg
UmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNvdW50KEV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlw
dEFyZ3VtZW50cz4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVjU3RhdGUqLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cHJvZmlsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHByb2ZpbGVFbmQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZShFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVFbmQoRXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0aW1lU3RhbXAoRXhl
Y1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHRpbWVTdGFtcChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRB
cmd1bWVudHM+JiYpID0gMDsKIAogcHJpdmF0ZToKICAgICBlbnVtIEFyZ3VtZW50UmVxdWlyZW1l
bnQgeyBBcmd1bWVudFJlcXVpcmVkLCBBcmd1bWVudE5vdFJlcXVpcmVkIH07Ci0gICAgdm9pZCBp
bnRlcm5hbE1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmLCBB
cmd1bWVudFJlcXVpcmVtZW50KTsKKyAgICB2b2lkIGludGVybmFsTWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5z
cGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYsIEFyZ3VtZW50UmVxdWlyZW1lbnQpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bnNvbGVPYmplY3QuY3BwCmluZGV4IGVlOGU1OTkyYzZiNjY4ZWU4ZDMxYjBiYjk1Nzc0MzM3MzQ3
ZWViODcuLjc2YWU0NWQyYTM1OTA5ZGMxOWYzZWI0N2FmNmY2ODRlMGU4ZDQ5MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCkBAIC0xMTAs
OCArMTEwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNvbnNvbGVMb2dXaXRoTGV2ZWwoRXhl
Y1N0YXRlKiBleGVjLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNj
cmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5sb2dXaXRoTGV2ZWwoZXhlYywg
V1RGTW92ZShhcmd1bWVudHMpLCBsZXZlbCk7CisgICAgY2xpZW50LT5sb2dXaXRoTGV2ZWwoZXhl
YywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCksIGxldmVsKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0xNTYsOCAr
MTU1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0RpcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3Vt
ZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5kaXIoZXhlYywgV1RGTW92ZShhcmd1bWVudHMp
KTsKKyAgICBjbGllbnQtPmRpcihleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50
cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIApAQCAtMTY3LDggKzE2NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xp
ZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0g
ICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9y
OjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+ZGlyWE1MKGV4
ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY2xpZW50LT5kaXJYTUwoZXhlYywgSW5zcGVj
dG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTE3OCw4ICsxNzUsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiBhcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkp
OwotICAgIGNsaWVudC0+dGFibGUoZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjbGll
bnQtPnRhYmxlKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDAp
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0x
ODksOCArMTg1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1RyYWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2Ny
aXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPnRyYWNlKGV4ZWMsIFdURk1vdmUo
YXJndW1lbnRzKSk7CisgICAgY2xpZW50LT50cmFjZShleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNj
cmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIApAQCAtMjA4LDggKzIwMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQoRXhlY1N0YXRlKiBleGVjKQog
ICAgIGlmIChjb25kaXRpb24pCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAxKSk7Ci0gICAgY2xp
ZW50LT5hc3NlcnRpb24oZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjbGllbnQtPmFz
c2VydGlvbihleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAxKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjE5
LDggKzIxMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNDb3VudChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5z
cGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlw
dEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xpZW50LT5jb3VudChleGVjLCBXVEZNb3ZlKGFy
Z3VtZW50cykpOworICAgIGNsaWVudC0+Y291bnQoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3Jp
cHRBcmd1bWVudHMoZXhlYywgMCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKQEAgLTM0MCw4ICszMzMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1l
bnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGll
bnQtPnRpbWVTdGFtcChleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVudC0+dGlt
ZVN0YW1wKGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0zNTEs
OCArMzQzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY0dyb3VwKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0
QXJndW1lbnRzKGV4ZWMsIDApKTsKLSAgICBjbGllbnQtPmdyb3VwKGV4ZWMsIFdURk1vdmUoYXJn
dW1lbnRzKSk7CisgICAgY2xpZW50LT5ncm91cChleGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlw
dEFyZ3VtZW50cyhleGVjLCAwKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIApAQCAtMzYyLDggKzM1Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZChFeGVjU3RhdGUqIGV4
CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+IGFyZ3Vt
ZW50cyhJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7Ci0gICAgY2xp
ZW50LT5ncm91cENvbGxhcHNlZChleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNsaWVu
dC0+Z3JvdXBDb2xsYXBzZWQoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMo
ZXhlYywgMCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKQEAgLTM3Myw4ICszNjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghY2xp
ZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0g
ICAgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMoSW5zcGVjdG9y
OjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwotICAgIGNsaWVudC0+Z3JvdXBFbmQo
ZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjbGllbnQtPmdyb3VwRW5kKGV4ZWMsIElu
c3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDA1ZmUwMzM4ODUxZGE0
YmZjYjI0YTMyYjRhNTg2MmYyOGUwODNmNGUuLmE2ZDQ3Y2I3ODc4MmVjOTlmMjMzMmEyOTExNGE2
NzAzOGQ1MjM5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCkBAIC00NTI5LDcgKzQ1MjksNyBAQCBzdWIgR2VuZXJhdGVDYWxs
V2l0aAogICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICIqZG9jdW1lbnQiKTsKICAgICB9CiAg
ICAgaWYgKCRmdW5jdGlvbiBhbmQgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29u
dGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0QXJndW1lbnRzIikpIHsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0
QXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKCRzdGF0ZVBvaW50ZXIs
ICIgLiBAeyRmdW5jdGlvbi0+YXJndW1lbnRzfSAuICIpKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRB
cmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoJHN0YXRlUG9pbnRlciwg
IiAuIEB7JGZ1bmN0aW9uLT5hcmd1bWVudHN9IC4gIikpO1xuIik7CiAgICAgICAgICRpbXBsSW5j
bHVkZXN7IjxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+In0gPSAxOwogICAgICAgICAkaW1w
bEluY2x1ZGVzeyI8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4ifSA9IDE7CiAg
ICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgIldURk1vdmUoc2NyaXB0QXJndW1lbnRzKSIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCA1YjUzOTRmYjQ5MTgyYjJiYmMyMTUxNjQ1OWY0NGYzYTE3YzM2MWVhLi5i
ODUxOWNlMmExMWViZjAyMzc4N2I5MDlmYzU0OWM3MDFhY2U2ZDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAt
NjExMiw3ICs2MTEyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEFyZ3VtZW50c0EKICAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKICAgICBhdXRvJiBpbXBs
ID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRz
KHN0YXRlLCAwKSk7CisgICAgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRB
cmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoc3RhdGUsIDApKTsKICAg
ICBpbXBsLndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soV1RGTW92ZShzY3JpcHRBcmd1
bWVudHMpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGUy
NzkyNDRlZDA3ZmE3OGY3NzVhODU5MjQ0NjYzNzk0MTAxOTY3MGMuLjMyODgxOGY0YTYyYzk0MzNk
N2VkYmMxNDA3MDkyZWFhNGMwNWQwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb24gewogICAgICAgICAsIG1fbGluZU51bWJlcihs
aW5lTnVtYmVyKQogICAgICAgICAsIG1fY29sdW1uTnVtYmVyKGNvbHVtbk51bWJlcikKICAgICAg
ICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCi0gICAgICAgICwgbV9jYWxsU3RhY2soY2FsbFN0
YWNrKQorICAgICAgICAsIG1fY2FsbFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKICAgICB7CiAg
ICAgfQogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDY4YzUyMmVm
Y2UwMmNmZWQ1OWE4ZjA4NTlmNDU0ZTFjOGMyY2E4MS4uODdmMGQ5M2ZmODE5YWZhNTg5YTExYWUx
ZTM2MmM5NjhkYjM0NDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTgzOCwxMCArODM4LDEwIEBAIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0CiAgICAgfQogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYg
YXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAo
V2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNv
bnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBhcmd1bWVu
dHMpOworICAgICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50
cykpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hv
dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKQEAgLTg2NCwyMSArODY0LDIxIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
CiAgICAgICAgIGNvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUpOwogfQogCi12b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiB0aXRsZSwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQogewogICAgIGlmIChXZWJDb25zb2xlQWdl
bnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkp
Ci0gICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgc3RhY2spOworICAgICAg
ICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUsIFdURk1vdmUoc3RhY2spKTsKICAgICBp
ZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuaW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT50
aW1lRW5kKGZyYW1lLCB0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBz
dGFjaykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5n
JiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKIHsKICAgICBpZiAoV2ViQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVB
Z2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUsIHN0YWNrKTsK
KyAgICAgICAgY29uc29sZUFnZW50LT5zdG9wVGltaW5nKHRpdGxlLCBXVEZNb3ZlKHN0YWNrKSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlVGltZVN0YW1wSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUs
IFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewogICAg
ICAgICBTdHJpbmcgbWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAyNDVjZGM4ODc1MmQwODUxZTU3MDQ0YmI3
MjMzNWI2YTA4MjRhYWZkLi42OGNlY2NmNjQ3Y2Y4ZDVjMDUzNzEyZjFlMDNmNDUzOTU2NjhlNDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCkBAIC0xODQsMTQgKzE4NCwxNCBAQCBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24gewogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSYsIHN0ZDo6
dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAgICAgc3RhdGljIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6dW5pcXVlX3B0cjxJ
bnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAKLSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291
bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiYmKTsKLSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoV29ya2VyR2xvYmFsU2NvcGUm
LCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7
CisgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIFJl
ZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgY29uc29s
ZUNvdW50KFdvcmtlckdsb2JhbFNjb3BlJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYpOwogICAgIHN0YXRpYyB2b2lkIHRha2VIZWFwU25hcHNob3Qo
RnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNv
bGVUaW1pbmcoRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBz
dGFydENvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmLCBjb25zdCBTdHJpbmcmIHRpdGxl
KTsKLSAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZyhGcmFtZSYsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7Ci0gICAgc3Rh
dGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwotICAgIHN0
YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXAoRnJhbWUmLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1l
JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
KTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7
CisgICAgc3RhdGljIHZvaWQgY29uc29sZVRpbWVTdGFtcChGcmFtZSYsIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmcoUGFn
ZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZv
aWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKTsKIApAQCAtMzQ5LDEzICszNDksMTMgQEAgY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uIHsKIAogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4p
OwogCi0gICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYp
OworICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKICAg
ICBzdGF0aWMgdm9pZCB0YWtlSGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsK
ICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRp
bWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBzdGF0aWMgdm9p
ZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7Ci0gICAgc3Rh
dGljIHZvaWQgY29uc29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1l
JiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9p
ZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAg
ICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7
CisgICAgc3RhdGljIHZvaWQgY29uc29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIEZyYW1lJiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKIAogICAgIHN0
YXRpYyB2b2lkIGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIGludCBjYWxsYmFja0lkLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbEFu
aW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IGNhbGxiYWNrSWQsIEZy
YW1lKik7CkBAIC0xMTk1LDEyICsxMTk1LDEyIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYgd29yCiAg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBh
Z2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBjb25zb2xlQ291bnRJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwgV1RGTW92ZShhcmd1
bWVudHMpKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25z
b2xlQ291bnQoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChX
b3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBj
b25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3
b3JrZXJHbG9iYWxTY29wZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQpAQCAtMTIy
MywxOCArMTIyMywxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
YXJ0Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29yawogICAgIHN0YXJ0Q29uc29s
ZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKSwgdGl0bGUpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQoraW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhGcmFtZSYg
ZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFj
az4mJiBzdGFjaykKIHsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIHN0
b3BDb25zb2xlVGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUsIHRpdGxlLCBX
VEZNb3ZlKHN0YWNrKSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c3RvcENvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3Bl
LCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+
JiYgc3RhY2spCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25z
b2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQogewog
ICAgIHN0b3BDb25zb2xlVGltaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xv
YmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpLCB0aXRsZSwgV1RGTW92ZShzdGFjaykpOwogfQog
Ci1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAo
RnJhbWUmIGZyYW1lLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1l
bnRzKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlVGltZVN0
YW1wKEZyYW1lJiBmcmFtZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDQzMjQ3OGYyNGYyOTllMTc4ZjlhZTBk
MDM2MjJmOWRiZjZmNmQ0NmEuLjU2OWNlNGEyY2VkYjdhMTEzMzU5ZTgxMDc2MWM2YTkzOGU3NDJl
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3Jr
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3Jr
QWdlbnQuY3BwCkBAIC01MDIsOCArNTAyLDggQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6
OmRpZFNjaGVkdWxlU3R5bGVSZWNhbGN1bGF0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKIAogUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRvcj4gSW5zcGVjdG9yTmV0
d29ya0FnZW50OjpidWlsZEluaXRpYXRvck9iamVjdChEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0g
ICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxT
dGFjayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBTY3JpcHRDYWxsU3Rh
Y2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpOwotICAgIGlmIChzdGFja1RyYWNlICYmIHN0
YWNrVHJhY2UtPnNpemUoKSA+IDApIHsKKyAgICBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1Ry
YWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVu
dFN0YXRlKCksIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7Cisg
ICAgaWYgKHN0YWNrVHJhY2UtPnNpemUoKSA+IDApIHsKICAgICAgICAgYXV0byBpbml0aWF0b3JP
YmplY3QgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I6OmNyZWF0ZSgp
CiAgICAgICAgICAgICAuc2V0VHlwZShJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0
aWF0b3I6OlR5cGU6OlNjcmlwdCkKICAgICAgICAgICAgIC5yZWxlYXNlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCmluZGV4IDY4
Zjc1OTE5YjAyY2Y1OTQ0MDAwZGRhOTQ2NzAyMWYzZTgyNDk4N2IuLmEyMTY1OTNmODViMDFhODNk
YTY3Y2FlOWQ0ZjdkMjk3ZjU0M2NiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC01MCw4ICs1MCw4IEBAIFJlZjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChk
b3VibGUgc3RhcnRUaW1lCiAgICAgcmVjb3JkLT5zZXREb3VibGUoQVNDSUlMaXRlcmFsKCJzdGFy
dFRpbWUiKSwgc3RhcnRUaW1lKTsKIAogICAgIGlmIChtYXhDYWxsU3RhY2tEZXB0aCkgewotICAg
ICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIG1heENhbGxTdGFj
a0RlcHRoKTsKLSAgICAgICAgaWYgKHN0YWNrVHJhY2UgJiYgc3RhY2tUcmFjZS0+c2l6ZSgpKQor
ICAgICAgICBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIG1heENhbGxTdGFj
a0RlcHRoKTsKKyAgICAgICAgaWYgKHN0YWNrVHJhY2UtPnNpemUoKSkKICAgICAgICAgICAgIHJl
Y29yZC0+c2V0VmFsdWUoQVNDSUlMaXRlcmFsKCJzdGFja1RyYWNlIiksIHN0YWNrVHJhY2UtPmJ1
aWxkSW5zcGVjdG9yQXJyYXkoKSk7CiAgICAgfQogICAgIHJldHVybiByZWNvcmQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3Bw
CmluZGV4IDdhOTk2ZGNiMGIwYzdkZjRmOGU2ZjkzOTFlZGFjYWZhYTM0OGZkODUuLmM3ZjgyZmYx
MThhZTU1NzZjYjk5MDgzNzg5NTk4ZTY2ZmU5YWNhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC0zMyw3ICsz
Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5z
cGVjdG9yRW52aXJvbm1lbnQmIGVudmlyb25tZW50LCBSZWZQdHI8SW5qZWN0ZWRTY3JpcHRIb3N0
PiYmIGhvc3QpCitXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OldlYkluamVjdGVkU2NyaXB0TWFu
YWdlcihJbnNwZWN0b3JFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFJlZjxJbmplY3RlZFNjcmlw
dEhvc3Q+JiYgaG9zdCkKICAgICA6IEluamVjdGVkU2NyaXB0TWFuYWdlcihlbnZpcm9ubWVudCwg
V1RGTW92ZShob3N0KSkKICAgICAsIG1fY29tbWFuZExpbmVBUElIb3N0KENvbW1hbmRMaW5lQVBJ
SG9zdDo6Y3JlYXRlKCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2Vi
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKaW5kZXggYmMxNjM3Y2M1M2FmOWM4ZDFmYWJlMzU5Yjc1
YzljMWRmNzlkODU4Yy4uNmI0YWQ3Y2I5YzY3YzIxNzUxZGEyYTI0NDg4MTU2ZDA5NTUwZTM1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1h
bmFnZXIuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBET01XaW5kb3c7CiAKIGNsYXNzIFdlYklu
amVjdGVkU2NyaXB0TWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0TWFuYWdlciB7CiBwdWJsaWM6Ci0gICAgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQmLCBSZWZQdHI8SW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdEhvc3Q+JiYpOworICAgIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0b3I6Oklu
c3BlY3RvckVudmlyb25tZW50JiwgUmVmPEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRIb3N0PiYm
KTsKICAgICB2aXJ0dWFsIH5XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIoKSB7IH0KIAogICAgIENv
bW1hbmRMaW5lQVBJSG9zdCogY29tbWFuZExpbmVBUElIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9j
b21tYW5kTGluZUFQSUhvc3QuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRl
eCA5YjZhYmIyNDRkZDY3YzYxZjk5NzkwNWJmNjA1MWRkNzhjZDY3YzBkLi5kOWI3YzZhN2FjNDY4
ODU4NTU0ODg2OGRkYTE2NDE5OTAwZTc4NDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CkBAIC05OTMsNyArOTkzLDEwIEBAIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmly
ZWQoUG9zdE1lc3NhZ2VUaW1lciYgdGltZXIpCiAgICAgICAgIGlmICghaW50ZW5kZWRUYXJnZXRP
cmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkp
KSB7CiAgICAgICAgICAgICBpZiAoYXV0byogcGFnZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsKICAg
ICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlVuYWJsZSB0byBwb3N0
IG1lc3NhZ2UgdG8gIiwgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5nKCksICIuIFJlY2lw
aWVudCBoYXMgb3JpZ2luICIsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmco
KSwgIi5cbiIpOwotICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLCB0aW1lci5z
dGFja1RyYWNlKCkpOworICAgICAgICAgICAgICAgIGlmICh0aW1lci5zdGFja1RyYWNlKCkpCisg
ICAgICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLCAqdGltZXIuc3RhY2tUcmFj
ZSgpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25z
b2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCBtZXNzYWdlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAppbmRleCA3OWNh
ZTE4MjY4N2Y0MWM2ZWY4NDk2OTE1MmRkZGY3YmZhYjM5YWEzLi4yMDkzZTczNTYzOTEwZDgxZDc4
OTE4YjM2MmE1ODgxNTEwZjQ3NTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uCiAg
ICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwg
MCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZp
ZXIpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2spCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2spCiB7
CiAgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgMCwg
V1RGTW92ZShjYWxsU3RhY2spLCAwKTsKIH0KQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFBhZ2VD
b25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNz
YWdlPiBtZXNzYWdlOwogCiAgICAgaWYgKGNhbGxTdGFjaykKLSAgICAgICAgbWVzc2FnZSA9IHN0
ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oc291cmNlLCBNZXNzYWdl
VHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZVRleHQsIFdURk1vdmUoY2FsbFN0YWNrKSwgcmVxdWVz
dElkZW50aWZpZXIpOworICAgICAgICBtZXNzYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0
b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2UsIE1lc3NhZ2VUeXBlOjpMb2csIGxldmVsLCBtZXNz
YWdlVGV4dCwgY2FsbFN0YWNrLnJlbGVhc2VOb25OdWxsKCksIHJlcXVlc3RJZGVudGlmaWVyKTsK
ICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6
Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1lc3NhZ2VU
ZXh0LCBzdWdnZXN0ZWRVUkwsIHN1Z2dlc3RlZExpbmVOdW1iZXIsIHN1Z2dlc3RlZENvbHVtbk51
bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIApAQCAtMTUzLDcgKzE1Myw3IEBAIHZv
aWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uCiB9CiAKIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVz
c2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRz
PiYmIGFyZ3VtZW50cykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFu
ZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7
CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwogICAgIGJvb2wgZ290TWVzc2FnZSA9IGFyZ3VtZW50
cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2VUZXh0KTsKQEAgLTE3Niw3ICsxNzYs
NyBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgICAgICBDb25zb2xlQ2xpZW50Ojpwcmlu
dENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0
eXBlLCBsZXZlbCwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29u
c29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fcGFnZSwgZXhlYywgV1RG
TW92ZShhcmd1bWVudHMpKTsKIH0KQEAgLTIwNSwxMSArMjA1LDEwIEBAIHZvaWQgUGFnZUNvbnNv
bGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogCiB2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIHRpdGxlKQogewotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
ayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKLSAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwg
dGl0bGUsIFdURk1vdmUoY2FsbFN0YWNrKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpzdG9wQ29uc29sZVRpbWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlLCBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4m
JiBhcmd1bWVudHMpCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVj
U3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAobV9wYWdlLm1haW5GcmFtZSgpLCBX
VEZNb3ZlKGFyZ3VtZW50cykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVu
dC5oCmluZGV4IGM4ZTUxZTkyMWY5NmE1ZWI2MzU4ZTdiNTg0MGE1ODE0MjdjMTc3NzUuLjVlNDRm
MjgyY2QxNWIyYWQxYTU2OTZjYjJlMDc1MmYzZTMwNDdkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlQ2xpZW50LmgKQEAgLTU0LDE4ICs1NCwxOCBAQCBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBQYWdlQ29uc29sZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBKU0M6OkNvbnNvbGVDbGllbnQg
ewogICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgPSBudWxscHRyLCBKU0M6OkV4
ZWNTdGF0ZSogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7
Ci0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwor
ICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICB2
b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCog
PSBudWxscHRyKTsKIAogcHJvdGVjdGVkOgotICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5z
cGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlND
OjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVj
dG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJv
ZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6
RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUGFnZSYgbV9wYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5jcHAKaW5k
ZXggNmQ4MjRjMmZmY2FmM2RiMTE5NDgzMGVjZWYyNDUxZmYwNGJjZTQ2Yi4uYWY5OWY1ZWEwNWYw
ODBkOTU4ZGNiNDI2ZjkzM2U4ZTQ4YWZlYjBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdvcmtlckNvbnNv
bGVDbGllbnQ6On5Xb3JrZXJDb25zb2xlQ2xpZW50KCkKIHsKIH0KIAotdm9pZCBXb3JrZXJDb25z
b2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8SW5zcGVjdG9yOjpT
Y3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpt
ZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQogewogICAgIFN0cmluZyBtZXNzYWdlVGV4dDsKICAgICBhcmd1bWVudHMt
PmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdlVGV4dCk7CkBAIC01Myw3ICs1Myw3IEBA
IHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsCiAgICAgbV93b3JrZXJHbG9iYWxTY29wZS5hZGRDb25z
b2xlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotdm9pZCBXb3JrZXJDb25zb2xlQ2xp
ZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4m
JiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OmNvdW50KEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChtX3dvcmtlckdsb2JhbFNjb3BlLCBl
eGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQpAQCAtNjUsOCArNjUsNyBAQCB2b2lkIFdvcmtl
ckNvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQogCiB2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwotICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmcobV93b3JrZXJHbG9i
YWxTY29wZSwgdGl0bGUsIFdURk1vdmUoY2FsbFN0YWNrKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhtX3dvcmtlckdsb2JhbFNjb3BlLCB0aXRsZSwg
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSk7CiB9CiAKIC8vIEZJWE1F
OiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnBy
b2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCkBAIC03NSw2ICs3NCw2
IEBAIHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYpIHsgfQogCiAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEy
NzYzND4gV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKIHZvaWQg
V29ya2VyQ29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYpIHsgfQotdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlND
OjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KK3ZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4mJikgeyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmgKaW5kZXggNWVjYTk3NTI1Zjc5N2RlNDAxODc0
NDZiYjQ3NWY5MGZkMTZhYTUzZC4uYThkMTIyODE1ZWQ1M2JiYzZmNjY2ZDBiN2EzYWFkYWJiMDNm
NTU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmgK
QEAgLTQyLDE0ICs0MiwxNCBAQCBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVi
bGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgdmlydHVhbCB+V29ya2VyQ29uc29sZUNsaWVu
dCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNT
dGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5k
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3Rh
dGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBXb3JrZXJHbG9iYWxTY29wZSYg
bV93b3JrZXJHbG9iYWxTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggNWUyZTJjZjRiOGFiZDM3OTIzMjQ0OGExMzMyMGU4NmRlNWY0ZGFi
NS4uNDBlNzg2YmUyMDM1MGQ4YTgxYWJmZTJkZDAzZTU3MzAyMmI1ZTFlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTI4NSw3ICsyODUsNyBA
QCB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
cjo6Q29uc29sZU1lc3NhZ2U+IG1lc3NhZ2U7CiAgICAgaWYgKGNhbGxTdGFjaykKLSAgICAgICAg
bWVzc2FnZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oc291
cmNlLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZVRleHQsIFdURk1vdmUoY2FsbFN0
YWNrKSwgcmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICBtZXNzYWdlID0gc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPihzb3VyY2UsIE1lc3NhZ2VUeXBlOjpMb2cs
IGxldmVsLCBtZXNzYWdlVGV4dCwgY2FsbFN0YWNrLnJlbGVhc2VOb25OdWxsKCksIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2
ZWwsIG1lc3NhZ2VUZXh0LCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc3Rh
dGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoKnRoaXMsIFdURk1vdmUobWVzc2FnZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0KaW5kZXggNzBiOGUwNDYzNjNm
YTliMTIyNWU2MjE3ODQzYzE3MDVmNWUzYjA5NC4uMTdjMWFmYTg3YzNmNTQ3NTg3MGJlYWU1MTE3
ZjM5MjRlYjY1M2M4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJT
Y3JpcHREZWJ1Z2dlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlw
dERlYnVnZ2VyLm1tCkBAIC0xMzEsMTggKzEzMSwxOCBAQCB2b2lkIFdlYlNjcmlwdERlYnVnZ2Vy
OjpoYW5kbGVQYXVzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWJ1Z2dlcjo6UmVh
cwogCiAgICAgV2ViRnJhbWUgKndlYkZyYW1lID0gdG9XZWJGcmFtZShnbG9iYWxPYmplY3QpOwog
ICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbd2ViRnJhbWUgd2ViVmlld107Ci0gICAgRGVidWdnZXJD
YWxsRnJhbWUqIGRlYnVnZ2VyQ2FsbEZyYW1lID0gY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCk7
CisgICAgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lID0gY3VycmVudERlYnVn
Z2VyQ2FsbEZyYW1lKCk7CiAgICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9IGN1cnJlbnRFeGNl
cHRpb24oKTsKLSAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gZGVidWdnZXJDYWxsRnJhbWUtPmZ1
bmN0aW9uTmFtZSgpOworICAgIFN0cmluZyBmdW5jdGlvbk5hbWUgPSBkZWJ1Z2dlckNhbGxGcmFt
ZS5mdW5jdGlvbk5hbWUoKTsKICAgICBSZXRhaW5QdHI8V2ViU2NyaXB0Q2FsbEZyYW1lPiB3ZWJD
YWxsRnJhbWUgPSBhZG9wdE5TKFtbV2ViU2NyaXB0Q2FsbEZyYW1lIGFsbG9jXSBfaW5pdFdpdGhH
bG9iYWxPYmplY3Q6Y29yZSh3ZWJGcmFtZSktPnNjcmlwdCgpLndpbmRvd1NjcmlwdE9iamVjdCgp
IGZ1bmN0aW9uTmFtZTpmdW5jdGlvbk5hbWUgZXhjZXB0aW9uVmFsdWU6ZXhjZXB0aW9uVmFsdWVd
KTsKIAogICAgIFdlYlNjcmlwdERlYnVnRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBjYWNo
ZSA9IFdlYlZpZXdHZXRTY3JpcHREZWJ1Z0RlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcp
OwogICAgIGlmIChjYWNoZS0+ZXhjZXB0aW9uV2FzUmFpc2VkRnVuYykgewogICAgICAgICBpZiAo
Y2FjaGUtPmV4Y2VwdGlvbldhc1JhaXNlZEV4cGVjdHNIYXNIYW5kbGVyRmxhZykgewogICAgICAg
ICAgICAgYm9vbCBoYXNIYW5kbGVyID0gaGFzSGFuZGxlckZvckV4Y2VwdGlvbkNhbGxiYWNrKCk7
Ci0gICAgICAgICAgICBDYWxsU2NyaXB0RGVidWdEZWxlZ2F0ZShjYWNoZS0+ZXhjZXB0aW9uV2Fz
UmFpc2VkRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZXhjZXB0aW9uV2FzUmFpc2Vk
Omhhc0hhbmRsZXI6c291cmNlSWQ6bGluZTpmb3JXZWJGcmFtZTopLCB3ZWJDYWxsRnJhbWUuZ2V0
KCksIGhhc0hhbmRsZXIsIGRlYnVnZ2VyQ2FsbEZyYW1lLT5zb3VyY2VJRCgpLCBkZWJ1Z2dlckNh
bGxGcmFtZS0+bGluZSgpLCB3ZWJGcmFtZSk7CisgICAgICAgICAgICBDYWxsU2NyaXB0RGVidWdE
ZWxlZ2F0ZShjYWNoZS0+ZXhjZXB0aW9uV2FzUmFpc2VkRnVuYywgd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6ZXhjZXB0aW9uV2FzUmFpc2VkOmhhc0hhbmRsZXI6c291cmNlSWQ6bGluZTpmb3JX
ZWJGcmFtZTopLCB3ZWJDYWxsRnJhbWUuZ2V0KCksIGhhc0hhbmRsZXIsIGRlYnVnZ2VyQ2FsbEZy
YW1lLnNvdXJjZUlEKCksIGRlYnVnZ2VyQ2FsbEZyYW1lLmxpbmUoKSwgd2ViRnJhbWUpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIENhbGxTY3JpcHREZWJ1Z0RlbGVnYXRlKGNhY2hlLT5l
eGNlcHRpb25XYXNSYWlzZWRGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpleGNlcHRp
b25XYXNSYWlzZWQ6c291cmNlSWQ6bGluZTpmb3JXZWJGcmFtZTopLCB3ZWJDYWxsRnJhbWUuZ2V0
KCksIGRlYnVnZ2VyQ2FsbEZyYW1lLT5zb3VyY2VJRCgpLCBkZWJ1Z2dlckNhbGxGcmFtZS0+bGlu
ZSgpLCB3ZWJGcmFtZSk7CisgICAgICAgICAgICBDYWxsU2NyaXB0RGVidWdEZWxlZ2F0ZShjYWNo
ZS0+ZXhjZXB0aW9uV2FzUmFpc2VkRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZXhj
ZXB0aW9uV2FzUmFpc2VkOnNvdXJjZUlkOmxpbmU6Zm9yV2ViRnJhbWU6KSwgd2ViQ2FsbEZyYW1l
LmdldCgpLCBkZWJ1Z2dlckNhbGxGcmFtZS5zb3VyY2VJRCgpLCBkZWJ1Z2dlckNhbGxGcmFtZS5s
aW5lKCksIHdlYkZyYW1lKTsKICAgICB9CiAKICAgICBtX2NhbGxpbmdEZWxlZ2F0ZSA9IGZhbHNl
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>