<?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>194835</bug_id>
          
          <creation_ts>2019-02-19 15:24:52 -0800</creation_ts>
          <short_desc>Reduce use of LegacySync IPC message type</short_desc>
          <delta_ts>2019-03-20 16:43:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507876</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-19 15:24:52 -0800</bug_when>
    <thetext>Reduce use of LegacySync IPC message type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507879</commentid>
    <comment_count>1</comment_count>
      <attachid>362444</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-19 15:27:56 -0800</bug_when>
    <thetext>Created attachment 362444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508828</commentid>
    <comment_count>2</comment_count>
      <attachid>362444</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-21 19:22:39 -0800</bug_when>
    <thetext>Comment on attachment 362444
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:464
&gt; +    completionHandler(result.first, result.second);

I think WTFMove(result.first) would save a tiny bit of reference count churn.

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:487
&gt; +    completionHandler(result.first, result.second);

I think WTFMove(result.first) would save a tiny bit of reference count churn.

&gt; Source/WebKit/UIProcess/Plugins/mac/PluginProcessProxyMac.mm:254
&gt; +        return completionHandler(false);

There it is, one of those return void things.

&gt; Source/WebKit/UIProcess/Plugins/mac/PluginProcessProxyMac.mm:261
&gt; +    completionHandler(true);

But no return here. What about if you refactor and add a return value? (Just kidding.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519306</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-20 16:38:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/r243258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519312</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-20 16:43:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/49085284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362444</attachid>
            <date>2019-02-19 15:27:56 -0800</date>
            <delta_ts>2019-02-21 19:22:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194835-20190219152755.patch</filename>
            <type>text/plain</type>
            <size>42530</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDE3ODIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTAyLTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIHVzZSBv
ZiBMZWdhY3lTeW5jIElQQyBtZXNzYWdlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdD
b29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmJsb2JTaXplKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24p
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRO
ZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVzcG9uc2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0TmV0
d29ya0xvYWRJbnRlcm1lZGlhdGVJbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0YWtlTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJp
Y3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMv
UGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNz
UHJveHk6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJv
eHk6OmxhdW5jaEFwcGxpY2F0aW9uQXRVUkwpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzUHJveHk6Om9wZW5VUkwpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6
Om9wZW5GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBv
cnRzRnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW46CisKIDIwMTktMDItMTkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFBhc3Mgcm9vdENvbnRlbnRzTGF5ZXIgdG8gTWFjIHJlbW90ZSBsYXllciB0
cmVlCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjQxNzUzKQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MSwxNiArNDUxLDE3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnYKICAgICBsb2FkZXItPmNvbnZlcnRUb0Rvd25s
b2FkKGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIFN0cmluZyYgY29va2llU3RyaW5nLCBib29sJiBzZWN1cmVDb29raWVzQWNjZXNzZWQpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29y
a1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKLSAgICBzdGQ6OnRpZShjb29raWVTdHJpbmcsIHNlY3Vy
ZUNvb2tpZXNBY2Nlc3NlZCkgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2llc0ZvckRPTShm
aXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2Vj
dXJlQ29va2llcyk7CisgICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29v
a2llc0ZvckRPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlE
LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKGF1dG8gc2Vzc2lvbiA9IG5l
dHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAo
c2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAgICAgICAgICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKnRoaXMsICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3Qgdm9pZCo+KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIFdURjo6bnVsbG9w
dCk7CiAgICAgfQogI2VuZGlmCisgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0LmZpcnN0LCBy
ZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQpAQCAtNDc1LDE5ICs0NzYsMjIgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0QwogI2VuZGlmCiB9CiAKLXZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgYm9vbCYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJlc3VsdCA9
IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuY29va2llc0VuYWJs
ZWQoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2Vz
cygpLCBzZXNzaW9uSUQpLmNvb2tpZXNFbmFibGVkKCkpOwogfQogCi12b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMsIFN0cmluZyYgY29va2llU3RyaW5nLCBib29sJiBzZWN1cmVDb29r
aWVzQWNjZXNzZWQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBzdGQ6OnRpZShjb29raWVTdHJpbmcsIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCkgPSBzdG9yYWdl
U2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICBhdXRvIHJlc3VsdCA9IHN0b3JhZ2VTZXNzaW9u
KG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5maXJzdCwgcmVz
dWx0LnNlY29uZCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omdl
dFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3Rv
cjxDb29raWU+JiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpn
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogeworICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3VsdDsKICAgICBz
dG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJhd0Nvb2tpZXMo
Zmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVzdWx0KTsK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQpAQCAtNTI1
LDkgKzUyOSw5IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmUKICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrQmxvYlJlZ2lzdHJ5KCkudW5yZWdpc3RlckJsb2JV
UkwoKnRoaXMsIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsLCB1aW50NjRfdCYgcmVzdWx0U2l6ZSkKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICByZXN1bHRTaXplID0gbV9uZXR3b3JrUHJvY2Vzcy0+bmV0d29ya0Jsb2JSZWdpc3RyeSgpLmJs
b2JTaXplKCp0aGlzLCB1cmwpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbmV0d29ya1Byb2Nl
c3MtPm5ldHdvcmtCbG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSgqdGhpcywgdXJsKSk7CiB9CiAKIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc2MSwxMyArNzY1
LDE0IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEQkNvbm5lY3Rpb25Ub1MKICAgICByZXR1
cm4gKytpZGVudGlmaWVyOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGdl
bmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpOworICAgIHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJ
ZGVudGlmaWVyKCk7CiAgICAgTE9HKEluZGV4ZWREQiwgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBBU1NFUlQoIW1fd2ViSURCQ29ubmVjdGlvbnMu
Y29udGFpbnMoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICAKICAgICBtX3dlYklE
QkNvbm5lY3Rpb25zLnNldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpjcmVhdGUobV9uZXR3b3JrUHJvY2VzcywgbV9jb25uZWN0aW9uLmdldCgp
LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2Vzc2lvbklEKSk7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogfQogI2VuZGlmCiAgICAgCkBA
IC03ODEsMTcgKzc4NiwxOCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1
bnJlCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3Rh
Ymxpc2hTV1NlcnZlckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyJiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvJiBzZXJ2ZXIgPSBtX25ldHdvcmtQcm9jZXNzLT5zd1NlcnZlckZvclNlc3Np
b24oc2Vzc2lvbklEKTsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YlNXU2VydmVyQ29ubmVjdGlvbj4obV9uZXR3b3JrUHJvY2Vzcywgc2VydmVyLCBtX2Nvbm5lY3Rp
b24uZ2V0KCksIHNlc3Npb25JRCk7CiAgICAgCi0gICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgPSBjb25uZWN0aW9uLT5pZGVudGlmaWVyKCk7CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb24tPmlkZW50aWZp
ZXIoKTsKICAgICBMT0coU2VydmljZVdvcmtlciwgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24gLSAlcyIsIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIEFTU0VSVCgh
bV9zd0Nvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiAg
ICAgbV9zd0Nvbm5lY3Rpb25zLmFkZChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbWFrZVdl
YWtQdHIoKmNvbm5lY3Rpb24pKTsKICAgICBzZXJ2ZXIuYWRkQ29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAkocmV2aXNpb24gMjQxNzUzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCwyNCArODAs
MjQgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYW51cEZvclN1c3BlbnNpb24oRnVuY3Rpb248dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGVuZFN1c3BlbnNpb24oKTsKIAotICAgIHZvaWQgZ2V0TmV0d29y
a0xvYWRJbmZvcm1hdGlvblJlcXVlc3QoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCisgICAgdm9pZCBnZXROZXR3b3Jr
TG9hZEluZm9ybWF0aW9uUmVxdWVzdChSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICByZXF1ZXN0ID0gbV9uZXR3b3Jr
TG9hZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikucmVxdWVzdDsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIobV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmll
cikucmVxdWVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBnZXROZXR3b3JrTG9hZEluZm9ybWF0aW9u
UmVzcG9uc2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKKyAgICB2b2lkIGdldE5ldHdvcmtMb2FkSW5mb3JtYXRp
b25SZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgcmVzcG9uc2UgPSBtX25ldHdvcmtMb2FkSW5mb3Jt
YXRpb25CeUlELmdldChpZGVudGlmaWVyKS5yZXNwb25zZTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikucmVzcG9u
c2UpOwogICAgIH0KIAotICAgIHZvaWQgZ2V0TmV0d29ya0xvYWRJbnRlcm1lZGlhdGVJbmZvcm1h
dGlvbihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpO
ZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4mIGluZm9ybWF0aW9uKQorICAgIHZvaWQgZ2V0
TmV0d29ya0xvYWRJbnRlcm1lZGlhdGVJbmZvcm1hdGlvbihSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6
Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ICAgIHsKLSAgICAgICAgaW5mb3JtYXRpb24gPSBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlE
LmdldChpZGVudGlmaWVyKS50cmFuc2FjdGlvbnM7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuZ2V0KGlkZW50aWZpZXIpLnRyYW5zYWN0aW9u
cyk7CiAgICAgfQogCi0gICAgdm9pZCB0YWtlTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3Mo
UmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1l
dHJpY3MmIG1ldHJpY3MpCisgICAgdm9pZCB0YWtlTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJp
Y3MoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogICAgIHsKLSAgICAgICAgbWV0cmljcyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5
SUQudGFrZShpZGVudGlmaWVyKS5tZXRyaWNzOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
X25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELnRha2UoaWRlbnRpZmllcikubWV0cmljcyk7CiAg
ICAgfQogCiAgICAgdm9pZCBhZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uKFJlc291cmNlTG9hZElk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlvbiYmIGlu
Zm9ybWF0aW9uKQpAQCAtMTUzLDExICsxNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0
RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAgICAgdm9p
ZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2
NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAK
LSAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6Oklu
Y2x1ZGVTZWN1cmVDb29raWVzLCBTdHJpbmcmIGNvb2tpZVN0cmluZywgYm9vbCYgc2VjdXJlQ29v
a2llc0FjY2Vzc2VkKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdl
SUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CiAg
ICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3Ry
aW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgYm9vbCYgcmVz
dWx0KTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50NjRf
dD4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgU3RyaW5nJiBjb29raWVT
dHJpbmcsIGJvb2wmIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk7Ci0gICAgdm9pZCBnZXRSYXdDb29r
aWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOworICAg
IHZvaWQgY29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0Fj
Y2Vzc2VkKT4mJik7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsK
ICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNy
Y1VSTCwgYm9vbCBzaG91bGRCeXBhc3NDb25uZWN0aW9uQ2hlY2spOwogICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNV
UkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKLSAgICB2b2lkIGJsb2JT
aXplKGNvbnN0IFVSTCYsIHVpbnQ2NF90JiByZXN1bHRTaXplKTsKKyAgICB2b2lkIGJsb2JTaXpl
KGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpOwogICAgIHZvaWQgd3JpdGVCbG9ic1Rv
VGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsKIApAQCAtMTc4LDExICsxNzgsMTEg
QEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIC8vIE1lc3Nh
Z2VzIGhhbmRsZXJzIChNb2Rlcm4gSURCKS4KLSAgICB2b2lkIGVzdGFibGlzaElEQkNvbm5lY3Rp
b25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCAgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpPiYmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQot
ICAgIHZvaWQgZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJik7CisgICAgdm9pZCBlc3RhYmxpc2hT
V1NlcnZlckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciYmKT4mJik7CiAgICAgdm9pZCB1
bnJlZ2lzdGVyU1dDb25uZWN0aW9ucygpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQxNzUzKQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDExIEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PHVpbnQ2NF90PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2ll
cyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlk
QWNjZXNzU2VjdXJlQ29va2llcykgTGVnYWN5U3luYworICAgIENvb2tpZXNGb3JET00oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5n
LCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIERlbGF5ZWQKICAgICBTZXRDb29raWVzRnJv
bURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJp
bmcpCi0gICAgQ29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9v
bCBlbmFibGVkKSBMZWdhY3lTeW5jCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2ll
U3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIExlZ2FjeVN5bmMKLSAgICBHZXRS
YXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVj
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIExlZ2FjeVN5bmMKKyAgICBDb29raWVzRW5hYmxlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIERlbGF5ZWQKKyAgICBD
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVS
TCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywg
VVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBw
YWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJl
Q29va2llcykgRGVsYXllZAorICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0
ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgRGVsYXll
ZAogICAgIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFN0
cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChVUkwgdXJsLCBTdHJp
bmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxl
LCBTdHJpbmcgY29udGVudFR5cGUpCkBAIC00Niw3ICs0Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmlu
ZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwg
c3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKICAgICBVbnJlZ2lzdGVyQmxvYlVS
TChVUkwgdXJsKQotICAgIEJsb2JTaXplKFVSTCB1cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXpl
KSBMZWdhY3lTeW5jCisgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNp
emUpIERlbGF5ZWQKICAgICBXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhWZWN0b3I8U3RyaW5n
PiBibG9iVVJMcykgLT4gKFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lcykgQXN5bmMKIAogICAgIFNl
dENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQpAQCAt
NzEsMTYgKzcxLDE2IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMK
ICAgICBSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2lu
LCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgUmVzZXRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RzKCk7CiAKLSAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVxdWVzdCh1aW50NjRf
dCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QpIExlZ2FjeVN5bmMKLSAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVzcG9uc2Uo
dWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpIExlZ2FjeVN5bmMKLSAgICBHZXROZXR3b3JrTG9hZEludGVybWVkaWF0
ZUluZm9ybWF0aW9uKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChWZWN0b3I8
V2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24+IHRyYW5zYWN0aW9ucykgTGVn
YWN5U3luYwotICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyh1aW50NjRfdCBy
ZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG5l
dHdvcmtNZXRyaWNzKSBMZWdhY3lTeW5jCisgICAgR2V0TmV0d29ya0xvYWRJbmZvcm1hdGlvblJl
cXVlc3QodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KSBEZWxheWVkCisgICAgR2V0TmV0d29ya0xvYWRJbmZvcm1hdGlv
blJlc3BvbnNlKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSBEZWxheWVkCisgICAgR2V0TmV0d29ya0xvYWRJbnRl
cm1lZGlhdGVJbmZvcm1hdGlvbih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAo
VmVjdG9yPFdlYkNvcmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uPiB0cmFuc2FjdGlv
bnMpIERlbGF5ZWQKKyAgICBUYWtlTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3ModWludDY0
X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmlj
cyBuZXR3b3JrTWV0cmljcykgRGVsYXllZAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0gICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSBMZWdhY3lTeW5j
CisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSBEZWxheWVkCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV1NlcnZl
ckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikgTGVnYWN5
U3luYworICAgIEVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKSBEZWxheWVkCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCShy
ZXZpc2lvbiAyNDE3NTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsMTIgKzk3LDEyIEBAIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEUKICAgICBtX3BhZ2UucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3Jl
ZW4oKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQsIGJvb2wmIHN1cHBvcnRz
KQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9v
bCB3aXRoS2V5Ym9hcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBzdXBwb3J0cyA9ICF3
aXRoS2V5Ym9hcmQ7CisgICAgY29tcGxldGlvbkhhbmRsZXIoIXdpdGhLZXlib2FyZCk7CiAjZWxz
ZQotICAgIHN1cHBvcnRzID0gdHJ1ZTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICNl
bmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyNDE3NTMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlk
ZGVuKGJvb2wpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wg
d2l0aEtleWJvYXJkLCBib29sJik7CisgICAgdm9pZCBzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3
aXRoS2V5Ym9hcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
ZW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBleGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQg
YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1l
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmaW5hbEZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQxNzUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtMjIsNyArMjIsNyBAQAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2FnZXMg
LT4gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7Ci0gICAgU3VwcG9ydHNGdWxsU2NyZWVuKGJv
b2wgd2l0aEtleWJvYXJkKSAtPiAoYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4pIExlZ2FjeVN5bmMK
KyAgICBTdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQpIC0+IChib29sIHN1cHBv
cnRzRnVsbFNjcmVlbikgRGVsYXllZAogICAgIEVudGVyRnVsbFNjcmVlbigpCiAgICAgRXhpdEZ1
bGxTY3JlZW4oKQogICAgIEJlZ2FuRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OkludFJlY3QgaW5p
dGlhbFJlY3QsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDI0MTc1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzcsNyArMTM3LDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJN
ZWRpYQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKLXZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7
CiAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CkBAIC0xNTYsNyArMTU2LDkgQEAgdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdAogICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICBzdWNjZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgYm9vbCBzdWNjZWVkZWQg
PSAhIXNvdXJjZU9yRXJyb3I7CisgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKKyAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgaWYgKHNv
dXJjZU9yRXJyb3IpIHsKICAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJj
ZSgpOwogICAgICAgICBzb3VyY2UtPnNldElzUmVtb3RlKHRydWUpOwpAQCAtMTY1LDYgKzE2Nyw3
IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXQKICAgICAgICAgbV9w
cm94aWVzLmFkZChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBX
VEZNb3ZlKHNvdXJjZSkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRz
ID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpKTsK
IH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QgaWQpCkBAIC0xODYsMTEgKzE4OSwxMyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmVuZCh1CiAgICAgbV9wcm94aWVzLnJlbW92ZShpZCk7CiB9CiAKLXZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlk
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMp
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyh1aW50NjRf
dCBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwogICAgIGF1dG8gaXRl
ciA9IG1fcHJveGllcy5maW5kKGlkKTsKICAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkp
CiAgICAgICAgIGNhcGFiaWxpdGllcyA9IGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5jYXBhYmlsaXRp
ZXMoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwogfQog
CiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnNldE11dGVkKHVpbnQ2NF90IGlk
LCBib29sIG11dGVkKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMjQx
NzUzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMSArNTEsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7
CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQs
IFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCYgc3VjY2Vl
ZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKT4mJik7CiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgZW5kKHVpbnQ2NF90KTsKLSAgICB2b2lkIGNh
cGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYpOworICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwog
ICAgIHZvaWQgc2V0TXV0ZWQodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0
MTc1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBA
QAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkgewotQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3Ry
aW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50
cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKSBMZWdhY3lTeW5jCisgICAgQ3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlk
LCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2Vzcywg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzKSBEZWxheWVkCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIEVuZCh1aW50NjRf
dCBpZCkKLSAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykgTGVnYWN5U3luYworICAgIENh
cGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBEZWxheWVkCiAgICAgU2V0TXV0ZWQodWludDY0X3Qg
aWQsIGJvb2wgbXV0ZWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHJldmlzaW9uIDI0MTc1MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBlbmRNb2RhbCgpOwogCiAgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEJl
Y29tZUFjdGl2ZSgpOwotICAgIHZvaWQgbGF1bmNoUHJvY2Vzcyhjb25zdCBTdHJpbmcmIGxhdW5j
aFBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhcmd1bWVudHMsIGJvb2wmIHJlc3VsdCk7Ci0g
ICAgdm9pZCBsYXVuY2hBcHBsaWNhdGlvbkF0VVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzLCBib29sJiByZXN1bHQpOwotICAgIHZvaWQg
b3BlblVSTChjb25zdCBTdHJpbmcmIHVybCwgYm9vbCYgcmVzdWx0LCBpbnQzMl90JiBzdGF0dXMs
IFN0cmluZyYgbGF1bmNoZWRVUkxTdHJpbmcpOwotICAgIHZvaWQgb3BlbkZpbGUoY29uc3QgU3Ry
aW5nJiBmdWxsUGF0aCwgYm9vbCYgcmVzdWx0KTsKKyAgICB2b2lkIGxhdW5jaFByb2Nlc3MoY29u
c3QgU3RyaW5nJiBsYXVuY2hQYXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGxhdW5jaEFwcGxpY2F0
aW9uQXRVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
cmd1bWVudHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgb3Bl
blVSTChjb25zdCBTdHJpbmcmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHJlc3Vs
dCwgaW50MzJfdCBzdGF0dXMsIFN0cmluZyBsYXVuY2hlZFVSTFN0cmluZyk+JiYpOworICAgIHZv
aWQgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBmdWxsUGF0aCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplUGx1Z2lu
UHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDE3NTMpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMzQsMTYgKzM0LDE2IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblBy
b2Nlc3NQcm94eSB7CiAgICAgU2V0RnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyhib29sIGZ1bGxz
Y3JlZW5XaW5kb3dJc1Nob3dpbmcpCiAgICAgCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJ
IHByb2Nlc3MgbGF1bmNoZWQgdGhlIHByb2Nlc3MuCi0gICAgTGF1bmNoUHJvY2VzcyhTdHJpbmcg
bGF1bmNoUGF0aCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpIExl
Z2FjeVN5bmMKKyAgICBMYXVuY2hQcm9jZXNzKFN0cmluZyBsYXVuY2hQYXRoLCBWZWN0b3I8U3Ry
aW5nPiBhcmd1bWVudHMpIC0+IChib29sIHJlc3VsdCkgRGVsYXllZAogCiAgICAgIyBSZXR1cm5z
IHRydWUgaWYgdGhlIFVJIHByb2Nlc3MgbGF1bmNoZWQgdGhlIGFwcGxpY2F0aW9uLgotICAgIExh
dW5jaEFwcGxpY2F0aW9uQXRVUkwoU3RyaW5nIHVybCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRz
KSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5bmMKKyAgICBMYXVuY2hBcHBsaWNhdGlvbkF0VVJM
KFN0cmluZyB1cmwsIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cykgLT4gKGJvb2wgcmVzdWx0KSBE
ZWxheWVkCiAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBkaWQgb3BlbiB0
aGUgVVJMLgotICAgIE9wZW5VUkwoU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wgcmVzdWx0LCBp
bnQzMl90IHN0YXR1cywgU3RyaW5nIGxhdW5jaGVkVVJMU3RyaW5nKSBMZWdhY3lTeW5jCisgICAg
T3BlblVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCByZXN1bHQsIGludDMyX3Qgc3RhdHVz
LCBTdHJpbmcgbGF1bmNoZWRVUkxTdHJpbmcpIERlbGF5ZWQKICAgICAKICAgICAjIFJldHVybnMg
dHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBkaWQgb3BlbiB0aGUgZmlsZS4KLSAgICBPcGVuRmlsZShT
dHJpbmcgZnVsbFBhdGgpIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYworICAgIE9wZW5GaWxl
KFN0cmluZyBmdWxsUGF0aCkgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCiAjZW5kaWYKIH0KIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQkocmV2aXNpb24gMjQxNzUzKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDgsMjAgKzI0OCwxNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRMYXVu
Y2hQcm9jZXNzKGNvbnN0IFBsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBsdWdpblBy
b2Nlc3NQcm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBTdHJpbmcmIGxhdW5jaFBhdGgsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBhcmd1bWVudHMsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgUGx1Z2luUHJv
Y2Vzc1Byb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFN0cmluZyYgbGF1bmNoUGF0aCwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGFyZ3VtZW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIXNob3VsZExhdW5jaFByb2Nlc3MobV9w
bHVnaW5Qcm9jZXNzQXR0cmlidXRlcywgbGF1bmNoUGF0aCwgYXJndW1lbnRzKSkgewotICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHJlc3VsdCA9
IHRydWU7CisgICAgaWYgKCFzaG91bGRMYXVuY2hQcm9jZXNzKG1fcGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMsIGxhdW5jaFBhdGgsIGFyZ3VtZW50cykpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7CiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGFyZ3VtZW50
c0FycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OmFyZ3VtZW50cy5zaXplKCldKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy5zaXplKCk7ICsraSkKICAgICAgICAgW2FyZ3VtZW50c0FycmF5IGFkZE9iamVjdDooTlNTdHJp
bmcgKilhcmd1bWVudHNbaV1dOwogCiAgICAgW05TVGFzayBsYXVuY2hlZFRhc2tXaXRoTGF1bmNo
UGF0aDpsYXVuY2hQYXRoIGFyZ3VtZW50czphcmd1bWVudHNBcnJheS5nZXQoKV07CisgICAgY29t
cGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKIHN0YXRpYyBib29sIGlzSmF2YVVwZGF0ZXJVUkwo
Y29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMmIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLCBj
b25zdCBTdHJpbmcmIHVybFN0cmluZykKQEAgLTI4OSwxNCArMjg2LDEwIEBAIHN0YXRpYyBib29s
IHNob3VsZExhdW5jaEFwcGxpY2F0aW9uQXRVUkwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpsYXVuY2hBcHBsaWNhdGlvbkF0VVJMKGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzLCBib29sJiByZXN1
bHQpCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bGF1bmNoQXBwbGljYXRpb25BdFVSTChjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFyZ3VtZW50cywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBp
ZiAoIXNob3VsZExhdW5jaEFwcGxpY2F0aW9uQXRVUkwobV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRl
cywgdXJsU3RyaW5nKSkgewotICAgICAgICByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIHJlc3VsdCA9IHRydWU7CisgICAgaWYgKCFzaG91bGRMYXVuY2hBcHBs
aWNhdGlvbkF0VVJMKG1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMsIHVybFN0cmluZykpCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAKICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlQXJyYXk+IGFyZ3VtZW50c0FycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OmFyZ3VtZW50cy5zaXplKCldKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkKQEAgLTMwNCw2ICsyOTcsNyBAQCB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bGF1bmNoQXBwbGljYXRpCiAKICAgICBOU0RpY3Rpb25h
cnkgKmNvbmZpZ3VyYXRpb24gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0OmFy
Z3VtZW50c0FycmF5LmdldCgpIGZvcktleTpOU1dvcmtzcGFjZUxhdW5jaENvbmZpZ3VyYXRpb25B
cmd1bWVudHNdOwogICAgIFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBsYXVuY2hBcHBs
aWNhdGlvbkF0VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOnVybFN0cmluZ10gb3B0aW9uczpOU1dv
cmtzcGFjZUxhdW5jaEFzeW5jIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBlcnJvcjpudWxs
cHRyXTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAogc3RhdGljIGJvb2wgaXNT
aWx2ZXJsaWdodFByZWZlcmVuY2VzVVJMKGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiBw
bHVnaW5Qcm9jZXNzQXR0cmlidXRlcywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCkBAIC0zMjEs
MjEgKzMxNSwyMCBAQCBzdGF0aWMgYm9vbCBzaG91bGRPcGVuVVJMKGNvbnN0IFBsdWdpblByCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6b3BlblVSTChj
b25zdCBTdHJpbmcmIHVybFN0cmluZywgYm9vbCYgcmVzdWx0LCBpbnQzMl90JiBzdGF0dXMsIFN0
cmluZyYgbGF1bmNoZWRVUkxTdHJpbmcpCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6b3BlblVS
TChjb25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHJl
c3VsdCwgaW50MzJfdCBzdGF0dXMsIFN0cmluZyBsYXVuY2hlZFVSTFN0cmluZyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFzaG91bGRPcGVuVVJMKG1fcGx1Z2luUHJvY2Vzc0F0
dHJpYnV0ZXMsIHVybFN0cmluZykpIHsKLSAgICAgICAgcmVzdWx0ID0gZmFsc2U7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgaWYgKCFzaG91bGRPcGVuVVJMKG1fcGx1Z2luUHJvY2Vzc0F0
dHJpYnV0ZXMsIHVybFN0cmluZykpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSwgMCwgeyB9KTsKIAotICAgIHJlc3VsdCA9IHRydWU7CiAgICAgQ0ZVUkxSZWYgbGF1bmNo
ZWRVUkw7Ci0gICAgc3RhdHVzID0gTFNPcGVuQ0ZVUkxSZWYoVVJMKHsgfSwgdXJsU3RyaW5nKS5j
cmVhdGVDRlVSTCgpLmdldCgpLCAmbGF1bmNoZWRVUkwpOworICAgIHVpbnQzMl90IHN0YXR1cyA9
IExTT3BlbkNGVVJMUmVmKFVSTCh7IH0sIHVybFN0cmluZykuY3JlYXRlQ0ZVUkwoKS5nZXQoKSwg
JmxhdW5jaGVkVVJMKTsKIAorICAgIFN0cmluZyBsYXVuY2hlZFVSTFN0cmluZzsKICAgICBpZiAo
bGF1bmNoZWRVUkwpIHsKICAgICAgICAgbGF1bmNoZWRVUkxTdHJpbmcgPSBVUkwobGF1bmNoZWRV
UkwpLnN0cmluZygpOwogICAgICAgICBDRlJlbGVhc2UobGF1bmNoZWRVUkwpOwogICAgIH0KKyAg
ICBjb21wbGV0aW9uSGFuZGxlcih0cnVlLCBzdGF0dXMsIGxhdW5jaGVkVVJMU3RyaW5nKTsKIH0K
IAogc3RhdGljIGJvb2wgc2hvdWxkT3BlbkZpbGUoY29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0
ZXMmIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKQpAQCAt
MzQ4LDE1ICszNDEsMTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkT3BlbkZpbGUoY29uc3QgUGx1Z2lu
UAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6Om9wZW5G
aWxlKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgUGx1Z2luUHJv
Y2Vzc1Byb3h5OjpvcGVuRmlsZShjb25zdCBTdHJpbmcmIGZ1bGxQYXRoLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghc2hvdWxk
T3BlbkZpbGUobV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcywgZnVsbFBhdGgpKSB7Ci0gICAgICAg
IHJlc3VsdCA9IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghc2hvdWxk
T3BlbkZpbGUobV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcywgZnVsbFBhdGgpKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogCi0gICAgcmVzdWx0ID0gdHJ1ZTsKICAg
ICBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gb3BlbkZpbGU6ZnVsbFBhdGhdOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCiBpbnQgcGx1Z2luUHJvY2Vzc0xhdGVuY3lR
T1MoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNp
b24gMjQxNzUzKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzMwLDE1ICsxMzMwLDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVs
ZWFzZVBhZ2VDYWNoZSgpCiAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5v
dygwLCBQcnVuaW5nUmVhc29uOjpNZW1vcnlQcmVzc3VyZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
czo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdlYnNpdGVEYXRhJiB3ZWJzaXRlRGF0
YSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CisgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgZm9yIChh
dXRvJiBvcmlnaW4gOiBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkub3JpZ2luc1dpdGhDYWNoZShz
ZXNzaW9uSUQpKQogICAgICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0
ZURhdGE6OkVudHJ5IHsgb3JpZ2luLT5kYXRhKCksIFdlYnNpdGVEYXRhVHlwZTo6TWVtb3J5Q2Fj
aGUsIDAgfSk7CiAgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUod2Vic2l0ZURh
dGEpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlw
ZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpCit2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNp
dGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFVOVVNFRF9QQVJBTSht
b2RpZmllZFNpbmNlKTsKIApAQCAtMTM0OCw5ICsxMzUwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjoKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlOjpzaW5nbGV0b24oKS5jbGVhcigpOwogICAgIH0KKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
JiBvcmlnaW5EYXRhcykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4g
d2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YT4mIG9yaWdpbkRhdGFzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+PiBvcmlnaW5zOwpAQCAtMTM1OSw2ICsxMzYyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaQogCiAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5y
ZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhzZXNzaW9uSUQsIG9yaWdpbnMpOwogICAgIH0KKyAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCkBAIC0x
NDQ1LDIwICsxNDQ5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVu
ZCgKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1p
bmVudGx5KGJvb2wmIGhhbmRsZWQpCit2b2lkIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+aW5TZW5kU3luYygp
KSB7CiAgICAgICAgIC8vIEF2b2lkIHJlZW50cmVuY3kgYnVncyBzdWNoIGFzIHJkYXI6Ly9wcm9i
bGVtLzIxNjA1NTA1IGJ5IGp1c3QgYmFpbGluZwogICAgICAgICAvLyBpZiB3ZSBnZXQgYW4gaW5j
b21pbmcgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSBtZXNzYWdlIHdoZW4gd2FpdGluZyBm
b3IgYQogICAgICAgICAvLyByZXBseSB0byBhIHN5bmMgbWVzc2FnZS4KICAgICAgICAgLy8gRklY
TUU6IFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkgc2hvdWxkIG5vdCBiZSBhIHN5bmMgbWVz
c2FnZS4KLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwogICAgIH0KIAogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KCkiLCB0aGlzKTsKICAg
ICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRR
dWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hv
dWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6Ok5vKTsKLSAgICBoYW5kbGVkID0gdHJ1
ZTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAkocmV2aXNpb24gMjQxNzUzKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDcgKzE5Niw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxp
c2Vjb25kcyk7CiAKLSAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYg
aGFuZGxlZCk7CisgICAgdm9pZCBwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZCgpOwog
ICAgIHZvaWQgY2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJl
c3VtZSgpOwpAQCAtMzI3LDkgKzMyNyw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbGVhc2VQ
YWdlQ2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdlYnNpdGVEYXRhJik7Ci0gICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMpOworICAgIHZvaWQg
ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEmJik+JiYpOworICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4mIG9yaWdpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAg
ICB2b2lkIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDE3
NTMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtNzcsOSArNzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKIAogICAgIFJlbGVhc2VQYWdlQ2FjaGUoKQogCi0gICAgRmV0Y2hXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVE
YXRhIHdlYnNpdGVEYXRhKSBMZWdhY3lTeW5jCi0gICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpIC0+ICgpIExlZ2FjeVN5bmMK
LSAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZl
Y3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgpIExlZ2FjeVN5
bmMKKyAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoc3RydWN0
IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIERlbGF5ZWQKKyAgICBEZWxldGVXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkgLT4g
KCkgRGVsYXllZAorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4g
KCkgRGVsYXllZAogCiAgICAgU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNl
TGltaXQoaW50IG1pbGxpc2Vjb25kcykKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTk1LDcgKzk1
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRW5zdXJl
QXV0b21hdGlvblNlc3Npb25Qcm94eShTdHJpbmcgc2Vzc2lvbklkZW50aWZpZXIpCiAgICAgRGVz
dHJveUF1dG9tYXRpb25TZXNzaW9uUHJveHkoKQogCi0gICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQpIExlZ2FjeVN5bmMKKyAgICBQcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgRGVsYXllZAogICAgIFByZXBhcmVU
b1N1c3BlbmQoKQogICAgIENhbmNlbFByZXBhcmVUb1N1c3BlbmQoKQogICAgIFByb2Nlc3NEaWRS
ZXN1bWUoKQo=
</data>
<flag name="review"
          id="379072"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>