<?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>196113</bug_id>
          
          <creation_ts>2019-03-21 14:49:00 -0700</creation_ts>
          <short_desc>Remove last use of LegacySync IPC messages</short_desc>
          <delta_ts>2019-03-25 16:12:14 -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>cdumez</cc>
    
    <cc>sroberts</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1519952</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-21 14:49:00 -0700</bug_when>
    <thetext>Remove last use of LegacySync IPC messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519955</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-21 14:53:43 -0700</bug_when>
    <thetext>\o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519968</commentid>
    <comment_count>2</comment_count>
      <attachid>365622</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-21 15:06:38 -0700</bug_when>
    <thetext>Created attachment 365622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519974</commentid>
    <comment_count>3</comment_count>
      <attachid>365627</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-21 15:13:14 -0700</bug_when>
    <thetext>Created attachment 365627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519975</commentid>
    <comment_count>4</comment_count>
      <attachid>365627</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-21 15:15:18 -0700</bug_when>
    <thetext>Comment on attachment 365627
Patch

r=me if the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520136</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-03-21 20:10:44 -0700</bug_when>
    <thetext>Looks like at least a retry is needed, as the patch failed to apply on several important bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520334</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-22 09:11:19 -0700</bug_when>
    <thetext>The patch failed to apply on some bots because I had already committed this to https://trac.webkit.org/changeset/243345/webkit once I saw that it built on all platforms and passed tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520337</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-22 09:12:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/49155685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520408</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-22 10:40:30 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/243345/webkit

has caused legacy-animation-engine/animations/resume-after-page-cache.html

to become a flakey timeout and more consistent failure.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=legacy-animation-engine%2Fanimations%2Fresume-after-page-cache.html

I was able to reproduce with command:

run-webkit-tests legacy-animation-engine/animations/resume-after-page-cache.html --iterations 100 -f --force

the test does not timeout on 243345 and does on 243346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520423</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-22 10:49:54 -0700</bug_when>
    <thetext>animations/resume-after-page-cache.html is also timing out.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=animations%2Fresume-after-page-cache.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521081</commentid>
    <comment_count>10</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-03-25 16:01:49 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/243345/webkit

is causing the following tests to fail around 75% of the time on Mac and iOS Simulator WK2 and Debug

http/tests/cache-storage/cache-records-persistency.https.html (was marked flaky previously on Mac)
http/tests/cache-storage/cache-clearing-origin.https.html

Dashboard :

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html?tests=http%2Ftests%2Fcache-storage%2Fcache-records-persistency.https.html+performance-api%2Fperformance-observer-periodic.html+scrollingcoordinator%2Fios%2Fui-scroll-fixed.html+storage%2Findexeddb%2Fmodern%2Fidbtransaction-objectstore-failures-private.html#showAllRuns=true&amp;tests=http%2Ftests%2Fcache-storage%2Fcache-records-persistency.https.html%20http%2Ftests%2Fcache-storage%2Fcache-clearing-origin.https.html

Prior to change the tests were still flaky failures, but after this change they have about a 75% failure rate.

Reproduced with :

run-webkit-tests http/tests/cache-storage/cache-records-persistency.https.html http/tests/cache-storage/cache-clearing-origin.https.html --iterations 100 --child-process 1 --ios-simulator --exit-after-n-failures=10 --no-retry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521092</commentid>
    <comment_count>11</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-03-25 16:12:14 -0700</bug_when>
    <thetext>Ignore the above comment. It looks like I&apos;m blaming the wrong revision.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365622</attachid>
            <date>2019-03-21 15:06:38 -0700</date>
            <delta_ts>2019-03-21 15:13:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196113-20190321150637.patch</filename>
            <type>text/plain</type>
            <size>92200</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMzMzQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBACisyMDE5LTAzLTIxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGxhc3Qg
dXNlIG9mIExlZ2FjeVN5bmMgSVBDIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlbmFtZSAiRGVsYXllZCIgdG8gIlN5bmNocm9u
b3VzIiBub3cgdGhhdCB0aGVyZSdzIG9ubHkgb25lIHR5cGUgb2Ygc3luY2hyb25vdXMgbWVzc2Fn
ZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0v
SVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZVN5bmNocm9u
b3VzKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2FudHNDb25uZWN0
aW9uKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZCk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkV2FudHNDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3Nh
Z2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3Rl
ZC5jcHA6CisgICAgICAgIChNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNNZXNzYWdlOjpzZW5k
KToKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpz
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToK
KyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U6OnNlbmQpOiBE
ZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBl
Y3RlZC5oOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jaHJvbm91c01lc3Nh
Z2U6Om5hbWUpOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jaHJvbm91c01l
c3NhZ2U6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2UpOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3REZWxheWVkTWVzc2FnZTo6cmVjZWl2ZXJOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U6Om5hbWUpOiBEZWxldGVkLgor
ICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3REZWxheWVkTWVzc2FnZTo6VGVzdERlbGF5
ZWRNZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVs
YXllZE1lc3NhZ2U6OmFyZ3VtZW50cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNf
dW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdC1sZWdhY3ktbWVzc2Fn
ZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdC1tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW46CisgICAgICAg
ICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c3luY1Rlcm1p
bmF0ZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKwogMjAxOS0wMy0yMSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU11bbWFjT1NdIEZpeCBzYW5kYm94IGNhbGwgdmlvbGF0aW9u
cwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsy
Myw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBTY2hlZHVsZVJlc291cmNlTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCi0gICAgUGVyZm9ybVN5
bmNocm9ub3VzTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291
cmNlTG9hZFBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4gZGF0YSkgRGVsYXll
ZAorICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNo
YXI+IGRhdGEpIFN5bmNocm9ub3VzCiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxvYWRJ
ZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgUGFnZUxvYWRD
b21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQpAQCAtMzMsMTEgKzMzLDExIEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBTdGFydERvd25sb2FkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBD
b252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJv
b2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgRGVsYXllZAorICAgIENvb2tpZXNGb3JET00oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBTdHJpbmcgY29v
a2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKGJvb2wgZW5hYmxlZCkgRGVsYXllZAotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNv
b2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBEZWxheWVkCi0gICAgR2V0
UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1
Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIC0+IChWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBEZWxheWVkCisgICAgQ29va2llc0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cworICAg
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZv
LCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+
IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1
cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykg
U3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoVVJM
IHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVu
c2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNDYsNyArNDYsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzCiAgICAgUmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQoVVJMIHVybCwgVVJMIHNyY1VSTCwgU3RyaW5nIGZpbGVCYWNrZWRQ
YXRoLCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoVVJM
IHVybCwgVVJMIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpCiAgICAgVW5yZWdp
c3RlckJsb2JVUkwoVVJMIHVybCkKLSAgICBCbG9iU2l6ZShVUkwgdXJsKSAtPiAodWludDY0X3Qg
cmVzdWx0U2l6ZSkgRGVsYXllZAorICAgIEJsb2JTaXplKFVSTCB1cmwpIC0+ICh1aW50NjRfdCBy
ZXN1bHRTaXplKSBTeW5jaHJvbm91cwogICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFZl
Y3RvcjxTdHJpbmc+IGJsb2JVUkxzKSAtPiAoVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzKSBBc3lu
YwogCiAgICAgU2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVu
YWJsZWQpCkBAIC03MSwxNyArNzEsMTcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2NlcwogICAgIFJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBz
b3VyY2VPcmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRp
b25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICBSZXNldE9yaWdp
bkFjY2Vzc1doaXRlbGlzdHMoKTsKIAotICAgIEdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXF1
ZXN0KHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCkgRGVsYXllZAotICAgIEdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25S
ZXNwb25zZSh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSkgRGVsYXllZAotICAgIEdldE5ldHdvcmtMb2FkSW50ZXJt
ZWRpYXRlSW5mb3JtYXRpb24odWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFZl
Y3RvcjxXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJhbnNhY3Rpb25z
KSBEZWxheWVkCi0gICAgVGFrZU5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKHVpbnQ2NF90
IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3Mg
bmV0d29ya01ldHJpY3MpIERlbGF5ZWQKKyAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVx
dWVzdCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya0xvYWRJbmZvcm1h
dGlvblJlc3BvbnNlKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cworICAgIEdldE5ldHdvcmtM
b2FkSW50ZXJtZWRpYXRlSW5mb3JtYXRpb24odWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
cikgLT4gKFZlY3RvcjxXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJh
bnNhY3Rpb25zKSBTeW5jaHJvbm91cworICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0
cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBTeW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0gICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKSBEZWxheWVkCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAg
RXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpIERlbGF5ZWQKKyAgICBFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikgU3luY2hyb25vdXMKICNlbmRpZgogCiAg
ICAgU2V0V2ViUHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZQogICAgIFNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hw
dXRRT1MpCiAgICAgU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2Vu
ZGlmCi0gICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCBlbmFi
bGVkKSAtPiAoKSBEZWxheWVkCisgICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJT
b2NrZXQoYm9vbCBlbmFibGVkKSAtPiAoKSBTeW5jaHJvbm91cwogCiAgICAgU3luY0FsbENvb2tp
ZXMoKQogCkBAIC03Nyw3ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmUKICAgICBQcm9jZXNzRGlkVHJhbnNpdGlvblRvQmFja2dyb3VuZCgpCiAgICAgUHJv
Y2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVncm91bmQoKQogCi0gICAgUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQpIERlbGF5ZWQKKyAgICBQcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBQcmVw
YXJlVG9TdXNwZW5kKCkKICAgICBDYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKICAgICBQcm9jZXNz
RGlkUmVzdW1lKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkw
LDYgKzI5MCwxMiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlclNlCiAg
ICAgbV9jbGllbnRPcmlnaW5zLnJlbW92ZShpdGVyYXRvcik7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciYmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzeW5jVGVybWluYXRlV29ya2VyKFdURk1v
dmUoaWRlbnRpZmllcikpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisgICAgCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2VuZFRvQ29udGV4
dFByb2Nlc3MoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBVJiYgbWVzc2FnZSkKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24mPihjb25uZWN0aW9uKS5zZW5kKFdURk1vdmUobWVzc2FnZSkpOwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAkocmV2aXNpb24gMjQzMzAwKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0
IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYs
IFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpOworICAg
IHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIElQQzo6
Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbnRlbnRDb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCkudG9VSW50
NjQoKTsgfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29u
bmVjdGlvbiB7CiAgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGEgZGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFN0cmluZyB1c2VyQWdlbnQpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiAKLSAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpIExlZ2FjeVN5bmMKKyAgICBTeW5jVGVy
bWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3
b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDcgKzEwMTIsNyBAQCB2b2lk
IENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShzdGQ6OnVuCiAgICAgbV9kaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UgfD0gbWVzc2FnZS0+aXNJbnZhbGlkKCk7CiAgICAgbV9pbkRpc3BhdGNoTWVz
c2FnZUNvdW50LS07CiAKLSAgICAvLyBGSVhNRTogRm9yIERlbGF5ZWQgc3luY2hyb25vdXMgbWVz
c2FnZXMsIHdlIHNob3VsZCBub3QgZGVjcmVtZW50IHRoZSBjb3VudGVyIHVudGlsIHdlIHNlbmQg
YSByZXNwb25zZS4KKyAgICAvLyBGSVhNRTogRm9yIHN5bmNocm9ub3VzIG1lc3NhZ2VzLCB3ZSBz
aG91bGQgbm90IGRlY3JlbWVudCB0aGUgY291bnRlciB1bnRpbCB3ZSBzZW5kIGEgcmVzcG9uc2Uu
CiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBkZWFkbG9jayBpZiBwcm9jZXNzaW5nIHRoZSBt
ZXNzYWdlIHJlc3VsdHMgaW4gYSBzeW5jIG1lc3NhZ2UgYmFjayBhZnRlciB3ZSBleGl0IHRoaXMg
ZnVuY3Rpb24uCiAgICAgaWYgKG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KCkpCiAgICAgICAgIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQtLTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NDcsMjEgKzQ3LDcgQEAgdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQXJnc1R1cGxlJiYgYXJncwog
ICAgIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwob2JqZWN0LCBmdW5jdGlvbiwgc3RkOjpmb3J3YXJk
PEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsKIH0KIAotLy8gRGlzcGF0Y2ggZnVu
Y3Rpb25zIHdpdGggcmVwbHkgYXJndW1lbnRzLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUYsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4uIEFyZ3NJbmRleCwgdHlwZW5h
bWUgUmVwbHlBcmdzVHVwbGUsIHNpemVfdC4uLiBSZXBseUFyZ3NJbmRleD4KLXZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1bmN0aW9uLCBBcmdzVHVwbGUmJiBhcmdz
LCBSZXBseUFyZ3NUdXBsZSYgcmVwbHlBcmdzLCBzdGQ6OmluZGV4X3NlcXVlbmNlPEFyZ3NJbmRl
eC4uLj4sIHN0ZDo6aW5kZXhfc2VxdWVuY2U8UmVwbHlBcmdzSW5kZXguLi4+KQotewotICAgIChv
YmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8QXJnc0luZGV4PihzdGQ6OmZvcndhcmQ8QXJnc1R1
cGxlPihhcmdzKSkuLi4sIHN0ZDo6Z2V0PFJlcGx5QXJnc0luZGV4PihyZXBseUFyZ3MpLi4uKTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVw
bGUsIHR5cGVuYW1lIEFyZ3NJbmRpY2llcyA9IHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6
OnR1cGxlX3NpemU8QXJnc1R1cGxlPjo6dmFsdWU+LCB0eXBlbmFtZSBSZXBseUFyZ3NUdXBsZSwg
dHlwZW5hbWUgUmVwbHlBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8c3Rk
Ojp0dXBsZV9zaXplPFJlcGx5QXJnc1R1cGxlPjo6dmFsdWU+Pgotdm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oQXJnc1R1cGxlJiYgYXJncywgUmVwbHlBcmdzVHVwbGUmIHJlcGx5QXJncywgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKLXsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb25JbXBsKG9iamVjdCwg
ZnVuY3Rpb24sIHN0ZDo6Zm9yd2FyZDxBcmdzVHVwbGU+KGFyZ3MpLCByZXBseUFyZ3MsIEFyZ3NJ
bmRpY2llcygpLCBSZXBseUFyZ3NJbmRpY2llcygpKTsKLX0KLQotLy8gRGlzcGF0Y2ggZnVuY3Rp
b25zIHdpdGggZGVsYXllZCByZXBseSBhcmd1bWVudHMuCisvLyBEaXNwYXRjaCBmdW5jdGlvbnMg
d2l0aCBzeW5jaHJvbm91cyByZXBseSBhcmd1bWVudHMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBD
LCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgQ0gsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4u
IEFyZ3NJbmRleD4KIHZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjxDSD4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJnc1R1
cGxlJiYgYXJncywgc3RkOjppbmRleF9zZXF1ZW5jZTxBcmdzSW5kZXguLi4+KQpAQCAtNzUsNyAr
NjEsNyBAQCB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihBcmdzVHVwbGUmJiBhcmdzCiAgICAgY2Fs
bE1lbWJlckZ1bmN0aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc3RkOjpmb3J3YXJkPEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsK
IH0KIAotLy8gRGlzcGF0Y2ggZnVuY3Rpb25zIHdpdGggY29ubmVjdGlvbiBwYXJhbWV0ZXIgd2l0
aCBkZWxheWVkIHJlcGx5IGFyZ3VtZW50cy4KKy8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIGNv
bm5lY3Rpb24gcGFyYW1ldGVyIHdpdGggc3luY2hyb25vdXMgcmVwbHkgYXJndW1lbnRzLgogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIENILCB0eXBlbmFtZSBB
cmdzVHVwbGUsIHNpemVfdC4uLiBBcmdzSW5kZXg+CiB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbklt
cGwoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbiwgQ29tcGxl
dGlvbkhhbmRsZXI8Q0g+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3NUdXBsZSYmIGFyZ3MsIHN0
ZDo6aW5kZXhfc2VxdWVuY2U8QXJnc0luZGV4Li4uPikKQEAgLTEwMywyMCArODksNiBAQCB2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uJiBjb25uCiAgICAgY2FsbE1lbWJlckZ1bmN0
aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBjb25uZWN0aW9uLCBzdGQ6OmZvcndhcmQ8QXJnc1R1
cGxlPihhcmdzKSwgQXJnc0luZGljaWVzKCkpOwogfQogCi0vLyBEaXNwYXRjaCBmdW5jdGlvbnMg
d2l0aCBjb25uZWN0aW9uIHBhcmFtZXRlciB3aXRoIHJlcGx5IGFyZ3VtZW50cy4KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVwbGUsIHNpemVfdC4u
LiBBcmdzSW5kZXgsIHR5cGVuYW1lIFJlcGx5QXJnc1R1cGxlLCBzaXplX3QuLi4gUmVwbHlBcmdz
SW5kZXg+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwoQyogb2JqZWN0LCBNRiBmdW5jdGlv
biwgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgUmVwbHlBcmdzVHVw
bGUmIHJlcGx5QXJncywgc3RkOjppbmRleF9zZXF1ZW5jZTxBcmdzSW5kZXguLi4+LCBzdGQ6Omlu
ZGV4X3NlcXVlbmNlPFJlcGx5QXJnc0luZGV4Li4uPikKLXsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGNvbm5lY3Rpb24sIHN0ZDo6Z2V0PEFyZ3NJbmRleD4oc3RkOjpmb3J3YXJkPEFyZ3NUdXBs
ZT4oYXJncykpLi4uLCBzdGQ6OmdldDxSZXBseUFyZ3NJbmRleD4ocmVwbHlBcmdzKS4uLik7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgQXJnc1R1cGxl
LCB0eXBlbmFtZSBBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8c3RkOjp0
dXBsZV9zaXplPEFyZ3NUdXBsZT46OnZhbHVlPiwgdHlwZW5hbWUgUmVwbHlBcmdzVHVwbGUsIHR5
cGVuYW1lIFJlcGx5QXJnc0luZGljaWVzID0gc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0ZDo6
dHVwbGVfc2l6ZTxSZXBseUFyZ3NUdXBsZT46OnZhbHVlPj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0
aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIFJlcGx5QXJnc1R1
cGxlJiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCi17Ci0gICAgY2FsbE1lbWJl
ckZ1bmN0aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBjb25uZWN0aW9uLCBzdGQ6OmZvcndhcmQ8
QXJnc1R1cGxlPihhcmdzKSwgcmVwbHlBcmdzLCBBcmdzSW5kaWNpZXMoKSwgUmVwbHlBcmdzSW5k
aWNpZXMoKSk7Ci19Ci0KIC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xNDgsMzQgKzEyMCw2IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShEZWNvZGVy
JiBkZWNvZGVyLCBDKiAKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VMZWdhY3lTeW5jKERlY29kZXImIGRlY29kZXIs
IEVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKLXsKLSAgICB0
eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUgYXJndW1lbnRz
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewotICAgICAgICBBU1NFUlQo
ZGVjb2Rlci5pc0ludmFsaWQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0eXBl
bmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OlJlcGx5Pjo6VHlwZSByZXBseUFyZ3VtZW50czsK
LSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oV1RGTW92ZShhcmd1bWVudHMpLCByZXBseUFyZ3VtZW50
cywgb2JqZWN0LCBmdW5jdGlvbik7Ci0gICAgcmVwbHlFbmNvZGVyIDw8IHJlcGx5QXJndW1lbnRz
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZv
aWQgaGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2Rl
ciYgZGVjb2RlciwgRW5jb2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9u
KQotewotICAgIHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlw
ZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7Ci0gICAg
ICAgIEFTU0VSVChkZWNvZGVyLmlzSW52YWxpZCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6UmVwbHk+OjpUeXBlIHJlcGx5
QXJndW1lbnRzOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAgICByZXBseUVu
Y29kZXIgPDwgcmVwbHlBcmd1bWVudHM7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgogdm9pZCBoYW5kbGVNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIERlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAg
dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBlbmFtZSBUOjpBcmd1bWVudHM+OjpUeXBlIGFyZ3VtZW50
czsKQEAgLTE4Nyw3ICsxMzEsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiYgY29u
bmVjdGlvCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1G
Pgotdm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzKENvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVu
YW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZSBhcmd1bWVudHM7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7CkBAIC0yMDIsNyArMTQ2LDcgQEAg
dm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0aW9uJiBjbwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZURl
bGF5ZWRXYW50c0Nvbm5lY3Rpb24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+JiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91c1dhbnRzQ29ubmVjdGlv
bihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8RW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUgYXJndW1l
bnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewpJbmRleDogU291cmNl
L1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC02OSwyOCArNjksMjggQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5
IExlZ2FjeQogICAgIEhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IG1vdXNl
RXZlbnQpCiAgICAgCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSB3aGVlbCBldmVudCBzaG91bGQg
YmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpXZWJXaGVlbEV2ZW50
IHdoZWVsRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIERlbGF5ZWQKKyAgICBIYW5kbGVXaGVlbEV2
ZW50KFdlYktpdDo6V2ViV2hlZWxFdmVudCB3aGVlbEV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBT
eW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSBlbnRlciBldmVudCBzaG91bGQg
YmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZU1vdXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgRGVsYXllZAorICAgIEhhbmRsZU1v
dXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wg
aGFuZGxlZCkgU3luY2hyb25vdXMKICAgICAKICAgICAjIFNlbnQgd2hlbiBhIG1vdXNlIGxlYXZl
IGV2ZW50IHNob3VsZCBiZSBwcm9jZXNzZWQuCi0gICAgSGFuZGxlTW91c2VMZWF2ZUV2ZW50KFdl
YktpdDo6V2ViTW91c2VFdmVudCBtb3VzZUV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVk
CisgICAgSGFuZGxlTW91c2VMZWF2ZUV2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBtb3VzZUV2
ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gYSBr
ZXlib2FyZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZUtleWJvYXJkRXZlbnQoV2Vi
S2l0OjpXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIERl
bGF5ZWQKKyAgICBIYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBr
ZXlib2FyZEV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogICAgIAogICAgICMg
U2VudCB3aGVuIGFuIGVkaXRpbmcgY29tbWFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhh
bmRsZUVkaXRpbmdDb21tYW5kKFN0cmluZyBjb21tYW5kTmFtZSwgU3RyaW5nIGFyZ3VtZW50KSAt
PiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgSGFuZGxlRWRpdGluZ0NvbW1hbmQoU3RyaW5n
IGNvbW1hbmROYW1lLCBTdHJpbmcgYXJndW1lbnQpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9u
b3VzCiAgICAgCiAgICAgIyBSZXR1cm4gd2hldGhlciBvciBub3QgYSBwbHVnaW4gd2FudHMgdG8g
ZW5hYmxlIHRoZSBnaXZlbiBlZGl0aW5nIGNvbW1hbmQuCi0gICAgSXNFZGl0aW5nQ29tbWFuZEVu
YWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAtPiAoYm9vbCBlbmFibGVkKSBEZWxheWVkCisgICAg
SXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAtPiAoYm9vbCBlbmFi
bGVkKSBTeW5jaHJvbm91cwogICAgIAogICAgICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1
Z2luIHdhbnRzIHRvIGhhbmRsZSBwYWdlIHNjYWxlIGZhY3RvciBpdHNlbGYuCi0gICAgSGFuZGxl
c1BhZ2VTY2FsZUZhY3RvcigpIC0+IChib29sIGVuYWJsZWQpIERlbGF5ZWQKKyAgICBIYW5kbGVz
UGFnZVNjYWxlRmFjdG9yKCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKIAogICAgICMg
UmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1Z2luIHdhbnRzIHBhZ2Ugc2NhbGUsIHBhZ2Ugem9v
bSwgYW5kIHRleHQgem9vbSBhbGwgdG8gYWZmZWN0IHBhZ2Ugc2NhbGUuCi0gICAgUmVxdWlyZXNV
bmlmaWVkU2NhbGVGYWN0b3IoKSAtPiAoYm9vbCByZXF1aXJlZCkgRGVsYXllZAorICAgIFJlcXVp
cmVzVW5pZmllZFNjYWxlRmFjdG9yKCkgLT4gKGJvb2wgcmVxdWlyZWQpIFN5bmNocm9ub3VzCiAK
ICAgICAjIFNlbnQgd2hlbiB0aGUgcGx1Zy1pbiBmb2N1cyBjaGFuZ2VzLgogICAgIFNldEZvY3Vz
KGJvb2wgaXNGb2N1c2VkKQpAQCAtOTksMTAgKzk5LDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNv
bnRyb2xsZXJQcm94eSBMZWdhY3kKICAgICBEaWRVcGRhdGUoKQogCiAgICAgIyBQYWludCB0aGUg
ZW50aXJlIHBsdWctaW4uCi0gICAgUGFpbnRFbnRpcmVQbHVnaW4oKSAtPiAoKSBEZWxheWVkCisg
ICAgUGFpbnRFbnRpcmVQbHVnaW4oKSAtPiAoKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZXQgYSBy
ZWZlcmVuY2UgdG8gdGhlIHBsdWctaW4ncyBzY3JpcHRhYmxlIE5QT2JqZWN0LgotICAgIEdldFBs
dWdpblNjcmlwdGFibGVOUE9iamVjdCgpIC0+ICh1aW50NjRfdCBwbHVnaW5TY3JpcHRhYmxlTlBP
YmplY3RJRCkgRGVsYXllZAorICAgIEdldFBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIC0+ICh1
aW50NjRfdCBwbHVnaW5TY3JpcHRhYmxlTlBPYmplY3RJRCkgU3luY2hyb25vdXMKIAogICAgICMg
U2VudCB3aGVuIHRoZSBjb250YWluaW5nIE5TV2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdp
bmRvd0ZvY3VzQ2hhbmdlZChib29sIGhhc0ZvY3VzKQpAQCAtMTIyLDEwICsxMjIsMTAgQEAgbWVz
c2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5IExlZ2FjeQogI2VuZGlmCiAKICAgICAjIERv
ZXMgdGhlIHBsdWdpbiBzdXBwb3J0IHNuYXBzaG90dGluZz8KLSAgICBTdXBwb3J0c1NuYXBzaG90
dGluZygpIC0+IChib29sIGlzU3VwcG9ydGVkKSBEZWxheWVkCisgICAgU3VwcG9ydHNTbmFwc2hv
dHRpbmcoKSAtPiAoYm9vbCBpc1N1cHBvcnRlZCkgU3luY2hyb25vdXMKIAogICAgICMgUmV0dXJu
IGEgc25hcHNob3Qgb2YgdGhlIHBsdWdpbi4KLSAgICBTbmFwc2hvdCgpIC0+IChXZWJLaXQ6OlNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGJhY2tpbmdTdG9yZUhhbmRsZSkgRGVsYXllZAorICAgIFNu
YXBzaG90KCkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgYmFja2luZ1N0b3Jl
SGFuZGxlKSBTeW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gc3RvcmFnZSBibG9ja2luZyBw
b2xpY3kgY2hhbmdlcwogICAgIFN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZChib29sIHN0b3Jh
Z2VCbG9ja2luZ0VuYWJsZWQpCkBAIC0xMzQsNyArMTM0LDcgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
Q29udHJvbGxlclByb3h5IExlZ2FjeQogICAgIFByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIAogICAgICMgR2V0cyB0aGUgc3RyaW5nIHJl
cHJlc2VudGF0aW5nIHRoZSBmb3JtIHZhbHVlIG9mIHRoZSBwbHVnLWluCi0gICAgR2V0Rm9ybVZh
bHVlKCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFN0cmluZyBmb3JtVmFsdWUpIERlbGF5ZWQKKyAg
ICBHZXRGb3JtVmFsdWUoKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgU3RyaW5nIGZvcm1WYWx1ZSkg
U3luY2hyb25vdXMKIAogICAgICMgU2VudCB3aGVuIHRoZSBicm93c2VyIHdhbnRzIHRvIG11dGUg
b3IgdW5tdXRlIHRoZSBwbHVnaW4uCiAgICAgTXV0ZWRTdGF0ZUNoYW5nZWQoYm9vbCBtdXRlZCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMjQsMTMgKzI0LDEzIEBACiAKIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIENyZWF0ZXMgYSBwbHVnLWluIGlu
c3RhbmNlIHVzaW5nIHRoZSBnaXZlbiBjcmVhdGlvbiBwYXJhbWV0ZXJzLgotICAgIENyZWF0ZVBs
dWdpbihzdHJ1Y3QgV2ViS2l0OjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgcGx1Z2luQ3JlYXRp
b25QYXJhbWV0ZXJzKSAtPiAoYm9vbCBjcmVhdGlvblJlc3VsdCwgYm9vbCB3YW50c1doZWVsRXZl
bnRzLCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKSBEZWxheWVkCisgICAgQ3JlYXRlUGx1
Z2luKHN0cnVjdCBXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyBwbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMpIC0+IChib29sIGNyZWF0aW9uUmVzdWx0LCBib29sIHdhbnRzV2hlZWxFdmVu
dHMsIHVpbnQzMl90IHJlbW90ZUxheWVyQ2xpZW50SUQpIFN5bmNocm9ub3VzCiAKICAgICAjIENy
ZWF0ZXMgYSBwbHVnLWluIGluc3RhbmNlIGFzeW5jaHJvbm91c2x5IHVzaW5nIHRoZSBnaXZlbiBj
cmVhdGlvbiBwYXJhbWV0ZXJzLgogICAgIENyZWF0ZVBsdWdpbkFzeW5jaHJvbm91c2x5KHN0cnVj
dCBXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyBwbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMpCiAKICAgICAjIERlc3Ryb3lzIHRoZSBwbHVnLWluIGluc3RhbmNlIHdpdGggdGhlIGdpdmVu
IGluc3RhbmNlIElELgotICAgIERlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJ
RCwgYm9vbCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpIC0+ICgpIERlbGF5ZWQKKyAg
ICBEZXN0cm95UGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGJvb2wgYXN5bmNocm9u
b3VzQ3JlYXRpb25JbmNvbXBsZXRlKSAtPiAoKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4
cGVjdGVkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xl
Z2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDExICsxNzYsMTEgQEAgdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpIHsKLSAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlRGVs
YXllZDxNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5l
Y3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlU3luY2hyb25vdXM8
TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihjb25uZWN0aW9u
LCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6
bmFtZSgpKSB7Ci0gICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWRXYW50c0Nvbm5lY3Rp
b248TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3RNdWx0aXBsZUF0dHJp
YnV0ZXMpOworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91c1dhbnRzQ29ubmVj
dGlvbjxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlcz4oY29ubmVjdGlv
biwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdE11bHRpcGxlQXR0
cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgUExBVEZPUk0oTUFDKQpJbmRl
eDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJl
Y2VpdmVyLWV4cGVjdGVkLmNwcAkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzYsMTEgKzE3NiwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Om5h
bWUoKSkgewotICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOwor
ICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91czxNZXNzYWdlczo6V2ViUGFnZTo6
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5j
b2RlciwgdGhpcywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpuYW1lKCkpIHsKLSAgICAgICAg
SVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZFdhbnRzQ29ubmVjdGlvbjxNZXNzYWdlczo6V2ViUGFn
ZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlcz4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdE11bHRpcGxlQXR0cmlidXRlcyk7CisgICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2FudHNDb25uZWN0aW9uPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNpZiBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3Vw
ZXJjbGFzcy1leHBlY3RlZC5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksMTMgQEAgdm9pZCBUZXN0QXN5bmNNZXNzYWdlV2l0
aE11bHRpcGxlQXJndW1lbgogCiAjZW5kaWYKIAotdm9pZCBUZXN0RGVsYXllZE1lc3NhZ2U6OnNl
bmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4mIG9w
dGlvbmFsUmVwbHkpCit2b2lkIFRlc3RTeW5jTWVzc2FnZTo6c2VuZChzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWlu
dDhfdCByZXBseSkKK3sKKyAgICAqZW5jb2RlciA8PCByZXBseTsKKyAgICBjb25uZWN0aW9uLnNl
bmRTeW5jUmVwbHkoV1RGTW92ZShlbmNvZGVyKSk7Cit9CisKK3ZvaWQgVGVzdFN5bmNocm9ub3Vz
TWVzc2FnZTo6c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xh
c3NOYW1lPiYgb3B0aW9uYWxSZXBseSkKIHsKICAgICAqZW5jb2RlciA8PCBvcHRpb25hbFJlcGx5
OwogICAgIGNvbm5lY3Rpb24uc2VuZFN5bmNSZXBseShXVEZNb3ZlKGVuY29kZXIpKTsKQEAgLTE2
MSwxMSArMTY3LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb24K
IHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jTWVzc2FnZTo6bmFtZSgpKSB7Ci0gICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNNZXNzYWdlPihkZWNv
ZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFN5bmNNZXNzYWdlKTsKKyAg
ICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlU3luY2hyb25vdXM8TWVzc2FnZXM6OldlYlBhZ2U6OlRl
c3RTeW5jTWVzc2FnZT4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAm
V2ViUGFnZTo6dGVzdFN5bmNNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXll
ZE1lc3NhZ2U6Om5hbWUoKSkgewotICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1l
c3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U+KGNvbm5lY3Rpb24sIGRlY29kZXIs
IHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3REZWxheWVkTWVzc2FnZSk7CisgICAg
aWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNo
cm9ub3VzTWVzc2FnZTo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZVN5bmNo
cm9ub3VzPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0U3luY2hyb25v
dXNNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3Vw
ZXJjbGFzcy1leHBlY3RlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmgJKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw2ICsxNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSgiVGVzdFN5bmNNZXNzYWdlIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0
cnVlOwogCisgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50OF90IHJlcGx5KT47CisgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50OF90IHJlcGx5KTsKICAgICB0eXBl
ZGVmIHN0ZDo6dHVwbGU8dWludDhfdCY+IFJlcGx5OwogICAgIGV4cGxpY2l0IFRlc3RTeW5jTWVz
c2FnZSh1aW50MzJfdCBwYXJhbSkKICAgICAgICAgOiBtX2FyZ3VtZW50cyhwYXJhbSkKQEAgLTE2
OSwxOCArMTcxLDE4IEBAIHByaXZhdGU6CiAgICAgQXJndW1lbnRzIG1fYXJndW1lbnRzOwogfTsK
IAotY2xhc3MgVGVzdERlbGF5ZWRNZXNzYWdlIHsKK2NsYXNzIFRlc3RTeW5jaHJvbm91c01lc3Nh
Z2UgewogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxib29sPiBBcmd1bWVudHM7CiAK
ICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdERlbGF5ZWRNZXNzYWdl
Iik7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0U3luY2hyb25vdXNNZXNzYWdlIik7IH0KICAgICBzdGF0
aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05h
bWU+JiBvcHRpb25hbFJlcGx5KT47CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBPcHRpb25hbDxXZWJL
aXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKICAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8T3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiY+IFJlcGx5OwotICAgIGV4cGxpY2l0
IFRlc3REZWxheWVkTWVzc2FnZShib29sIHZhbHVlKQorICAgIGV4cGxpY2l0IFRlc3RTeW5jaHJv
bm91c01lc3NhZ2UoYm9vbCB2YWx1ZSkKICAgICAgICAgOiBtX2FyZ3VtZW50cyh2YWx1ZSkKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCw4IEBAIGZyb20gd2Via2l0IGltcG9y
dCBwYXJzZXIKIAogV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUgPSAnV2FudHNDb25uZWN0aW9u
JwogTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSA9ICdMZWdhY3lSZWNlaXZlcicKLURFTEFZRURf
QVRUUklCVVRFID0gJ0RlbGF5ZWQnCitTWU5DSFJPTk9VU19BVFRSSUJVVEUgPSAnU3luY2hyb25v
dXMnCiBBU1lOQ19BVFRSSUJVVEUgPSAnQXN5bmMnCi1MRUdBQ1lfU1lOQ19BVFRSSUJVVEUgPSAn
TGVnYWN5U3luYycKIAogX2xpY2Vuc2VfaGVhZGVyID0gIiIiLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTEzMCw5ICsxMjks
OSBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdl
UmVwbHlOYW1lKCkgeyByZXR1cm4geyAiJXNSZXBseSIgfTsgfVxuJyAlIG1lc3NhZ2UubmFtZSkK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBBc3luY1JlcGx5JykKLSAgICAg
ICAgZWxpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpOgorICAgICAg
ICBlbGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIERlbGF5ZWRSZXBseScpCi0gICAgICAg
IGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShB
U1lOQ19BVFRSSUJVVEUpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCglcyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJicpCiAgICAgICAgICAgICBp
ZiBsZW4oc2VuZF9wYXJhbWV0ZXJzKToKQEAgLTMwNCwyMCArMzAzLDE4IEBAIGRlZiBhc3luY19t
ZXNzYWdlX3N0YXRlbWVudChyZWNlaXZlciwgbWUKIAogZGVmIHN5bmNfbWVzc2FnZV9zdGF0ZW1l
bnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIGRpc3BhdGNoX2Z1bmN0aW9uID0gJ2hhbmRsZU1l
c3NhZ2UnCi0gICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToK
LSAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0RlbGF5ZWQnCisgICAgaWYgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6CisgICAgICAgIGRpc3BhdGNoX2Z1
bmN0aW9uICs9ICdTeW5jaHJvbm91cycKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KFdBTlRTX0NPTk5FQ1RJT05fQVRUUklCVVRFKToKICAgICAgICAgICAgIGRpc3BhdGNoX2Z1bmN0
aW9uICs9ICdXYW50c0Nvbm5lY3Rpb24nCiAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFT
WU5DX0FUVFJJQlVURSk6CiAgICAgICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKLSAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1NZTkNfQVRUUklCVVRFKToKLSAgICAg
ICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0xlZ2FjeVN5bmMnCiAKLSAgICB3YW50c19jb25uZWN0
aW9uID0gbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdl
Lmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpCisgICAgd2FudHNfY29u
bmVjdGlvbiA9IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShXQU5UU19DT05ORUNUSU9OX0FUVFJJQlVURSkKIAogICAg
IHJlc3VsdCA9IFtdCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VO
YW1lKCkgPT0gTWVzc2FnZXM6OiVzOjolczo6bmFtZSgpKSB7XG4nICUgKHJlY2VpdmVyLm5hbWUs
IG1lc3NhZ2UubmFtZSkpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBJUEM6OiVzPE1lc3Nh
Z2VzOjolczo6JXM+KCVzZGVjb2RlciwgJXNyZXBseUVuY29kZXIsIHRoaXMsICYlcyk7XG4nICUg
KGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0
aW9uLCAnIGlmIHdhbnRzX2Nvbm5lY3Rpb24gZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNf
QVRUUklCVVRFKSBlbHNlICcqJywgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSkp
KQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgSVBDOjolczxNZXNzYWdlczo6JXM6OiVzPigl
c2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xuJyAlIChkaXNwYXRjaF9mdW5j
dGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29ubmVjdGlvbiwgJyBpZiB3YW50
c19jb25uZWN0aW9uIGVsc2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJP
Tk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
IGVsc2UgJyonLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKSkpCiAgICAgcmVz
dWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB9
XG4nKQogICAgIHJldHVybiBzdXJyb3VuZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBt
ZXNzYWdlLmNvbmRpdGlvbikKQEAgLTU1NSw3ICs1NTIsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2Fn
ZV9oYW5kbGVyKGZpbGUpOgogCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtdCiAg
ICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2Uu
cmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZ
RURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6
CisgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgogICAgICAgICAgICAgZGVsYXllZF9vcl9hc3luY19t
ZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKIAogICAgIGlmIGRlbGF5ZWRfb3JfYXN5bmNfbWVzc2Fn
ZXM6CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNf
dW5pdHRlc3QucHkJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsyODAs
NyBAQCBfZXhwZWN0ZWRfc3VwZXJjbGFzc19yZXN1bHRzID0gewogICAgICAgICAgICAgJ2NvbmRp
dGlvbnMnOiAoTm9uZSksCiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgICduYW1l
JzogJ1Rlc3REZWxheWVkTWVzc2FnZScsCisgICAgICAgICAgICAnbmFtZSc6ICdUZXN0U3luY2hy
b25vdXNNZXNzYWdlJywKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAogICAgICAgICAgICAg
ICAgICgnYm9vbCcsICd2YWx1ZScpLAogICAgICAgICAgICAgKSwKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdC1sZWdhY3ktbWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LWxlZ2Fj
eS1tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDUsOSArNDUsOSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDcmVhdGVQbHVnaW4odWludDY0X3QgcGx1
Z2luSW5zdGFuY2VJRCwgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4g
KGJvb2wgcmVzdWx0KQogICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgbWVzc2FnZSkgLT4gKCkKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zKQotICAgIEdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKFN0cmluZyBwbHVnaW5QYXRoKSAtPiAoSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUg
Y29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KFN0cmluZyBwbHVnaW5QYXRoKSAtPiAoSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUgY29ubmVjdGlv
bkhhbmRsZSkgU3luY2hyb25vdXMKIAotICAgIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMoKSAtPiAo
KSBXYW50c0Nvbm5lY3Rpb24gRGVsYXllZAorICAgIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMoKSAt
PiAoKSBXYW50c0Nvbm5lY3Rpb24gU3luY2hyb25vdXMKIAogICAgIFRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzKFtBdHRyaWJ1dGVPbmUgQXR0cmlidXRlVHdvXSB1aW50NjRfdCBmb28sIGRvdWJsZSBi
YXIsIFtBdHRyaWJ1dGVUaHJlZV0gZG91YmxlIGJheikKIApJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0LW1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdC1tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysg
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LW1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw5ICs1Miw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIENyZWF0ZVBs
dWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKSAtPiAoYm9vbCByZXN1bHQpCiAgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBtZXNzYWdlKSAtPiAoKQogICAgIEdldFBsdWdpbnMoYm9v
bCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMpCi0gICAg
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oU3RyaW5nIHBsdWdpblBhdGgpIC0+IChJUEM6OkNv
bm5lY3Rpb246OkhhbmRsZSBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAgR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24oU3RyaW5nIHBsdWdpblBhdGgpIC0+IChJUEM6OkNvbm5lY3Rpb246
OkhhbmRsZSBjb25uZWN0aW9uSGFuZGxlKSBTeW5jaHJvbm91cwogCi0gICAgVGVzdE11bHRpcGxl
QXR0cmlidXRlcygpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbiBEZWxheWVkCisgICAgVGVzdE11bHRp
cGxlQXR0cmlidXRlcygpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbiBTeW5jaHJvbm91cwogCiAgICAg
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMoW0F0dHJpYnV0ZU9uZSBBdHRyaWJ1dGVUd29dIHVpbnQ2
NF90IGZvbywgZG91YmxlIGJhciwgW0F0dHJpYnV0ZVRocmVlXSBkb3VibGUgYmF6KQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Qtc3VwZXJjbGFzcy1tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Qtc3VwZXJj
bGFzcy1tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSA6IFdlYlBhZ2VCYXNlIHsKICAgICBU
ZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzKCkgLT4gKCkgQXN5bmMKICAgICBUZXN0QXN5
bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzKCkgLT4gKGJvb2wgZmxhZywgdWludDY0X3Qg
dmFsdWUpIEFzeW5jCiAjZW5kaWYKLSAgICBUZXN0U3luY01lc3NhZ2UodWludDMyX3QgcGFyYW0p
IC0+ICh1aW50OF90IHJlcGx5KSBTeW5jCi0gICAgVGVzdERlbGF5ZWRNZXNzYWdlKGJvb2wgdmFs
dWUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+IG9wdGlvbmFsUmVwbHkpIERl
bGF5ZWQKKyAgICBUZXN0U3luY01lc3NhZ2UodWludDMyX3QgcGFyYW0pIC0+ICh1aW50OF90IHJl
cGx5KSBTeW5jaHJvbm91cworICAgIFRlc3RTeW5jaHJvbm91c01lc3NhZ2UoYm9vbCB2YWx1ZSkg
LT4gKE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4gb3B0aW9uYWxSZXBseSkgU3luY2hy
b25vdXMKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjYsMTIg
KzI2LDEyIEBACiAKIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IHsKIAot
ICAgIEF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpIC0+IChWZWN0b3I8U3RyaW5nPiBhdmFpbGFi
bGVQYXltZW50TmV0d29ya3MpIERlbGF5ZWQKLSAgICBDYW5NYWtlUGF5bWVudHMoKSAtPiAoYm9v
bCByZXN1bHQpIERlbGF5ZWQKKyAgICBBdmFpbGFibGVQYXltZW50TmV0d29ya3MoKSAtPiAoVmVj
dG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKSBTeW5jaHJvbm91cworICAgIENh
bk1ha2VQYXltZW50cygpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBDYW5NYWtl
UGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcg
ZG9tYWluTmFtZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBjYW5NYWtlUGF5
bWVudHMpIEFzeW5jCiAgICAgT3BlblBheW1lbnRTZXR1cChTdHJpbmcgbWVyY2hhbnRJZGVudGlm
aWVyLCBTdHJpbmcgZG9tYWluTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwogCi0gICAgU2hv
d1BheW1lbnRVSSh1aW50NjRfdCBkZXN0aW5hdGlvbklELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0cmluZyBvcmlnaW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25V
UkxTdHJpbmdzLCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50
UmVxdWVzdCkgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCisgICAgU2hvd1BheW1lbnRVSSh1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBvcmln
aW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4gKGJv
b2wgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIENvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKFdl
YkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1lcmNoYW50U2Vzc2lvbikKICAg
ICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCiAgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiB1cGRhdGUpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMv
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDE2ICsyMywxNiBAQAogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogCiBtZXNzYWdlcyAtPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZl
ciBMZWdhY3lSZWNlaXZlciB7Ci0gICAgRGVhbGxvY2F0ZSgpIC0+ICgpIERlbGF5ZWQKLSAgICBI
YXNNZXRob2QoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1ldGhvZE5hbWUpIC0+IChib29sIHJl
dHVyblZhbHVlKSBEZWxheWVkCi0gICAgSW52b2tlKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBt
ZXRob2ROYW1lLCBWZWN0b3I8V2ViS2l0OjpOUFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAt
PiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIERl
bGF5ZWQKLSAgICBJbnZva2VEZWZhdWx0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFyaWFudERhdGE+IGFy
Z3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEg
cmVzdWx0RGF0YSkgRGVsYXllZAotICAgIEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVy
RGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBEZWxheWVkCi0gICAgR2V0
UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSkgLT4gKGJvb2wg
cmV0dXJuVmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBEZWxheWVkCi0g
ICAgU2V0UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSwgV2Vi
S2l0OjpOUFZhcmlhbnREYXRhIHByb3BlcnR5VmFsdWVEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1
ZSkgRGVsYXllZAotICAgIFJlbW92ZVByb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBw
cm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBEZWxheWVkCi0gICAgRW51bWVyYXRl
KCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFZlY3RvcjxXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGE+
IGlkZW50aWZpZXJzRGF0YSkgRGVsYXllZAotICAgIENvbnN0cnVjdChWZWN0b3I8V2ViS2l0OjpO
UFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0
OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIERlbGF5ZWQKKyAgICBEZWFsbG9jYXRlKCkgLT4g
KCkgU3luY2hyb25vdXMKKyAgICBIYXNNZXRob2QoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1l
dGhvZE5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEludm9rZShX
ZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgbWV0aG9kTmFtZSwgVmVjdG9yPFdlYktpdDo6TlBWYXJp
YW50RGF0YT4gYXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFdlYktpdDo6TlBW
YXJpYW50RGF0YSByZXN1bHREYXRhKSBTeW5jaHJvbm91cworICAgIEludm9rZURlZmF1bHQoVmVj
dG9yPFdlYktpdDo6TlBWYXJpYW50RGF0YT4gYXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJu
VmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBTeW5jaHJvbm91cworICAg
IEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChi
b29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEdldFByb3BlcnR5KFdlYktpdDo6TlBJ
ZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6
Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkgU3luY2hyb25vdXMKKyAgICBTZXRQcm9wZXJ0eShX
ZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lLCBXZWJLaXQ6Ok5QVmFyaWFudERh
dGEgcHJvcGVydHlWYWx1ZURhdGEpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwor
ICAgIFJlbW92ZVByb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUp
IC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEVudW1lcmF0ZSgpIC0+IChi
b29sIHJldHVyblZhbHVlLCBWZWN0b3I8V2ViS2l0OjpOUElkZW50aWZpZXJEYXRhPiBpZGVudGlm
aWVyc0RhdGEpIFN5bmNocm9ub3VzCisgICAgQ29uc3RydWN0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFy
aWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5Q
VmFyaWFudERhdGEgcmVzdWx0RGF0YSkgU3luY2hyb25vdXMKIH0KIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
IG1lc3NhZ2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgewotICAgIFN1cHBvcnRzRnVs
bFNjcmVlbihib29sIHdpdGhLZXlib2FyZCkgLT4gKGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKSBE
ZWxheWVkCisgICAgU3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wgd2l0aEtleWJvYXJkKSAtPiAoYm9v
bCBzdXBwb3J0c0Z1bGxTY3JlZW4pIFN5bmNocm9ub3VzCiAgICAgRW50ZXJGdWxsU2NyZWVuKCkK
ICAgICBFeGl0RnVsbFNjcmVlbigpCiAgICAgQmVnYW5FbnRlckZ1bGxTY3JlZW4oV2ViQ29yZTo6
SW50UmVjdCBpbml0aWFsUmVjdCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyNDMzMjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIyLDIwICsyMiwyMCBAQAogCiBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgVUkgbWVzc2FnZXMKLSAgICBDcmVhdGVOZXdQYWdl
KHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1
aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIHN0cnVjdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+ICh1
aW50NjRfdCBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIERlbGF5ZWQKKyAgICBDcmVhdGVOZXdQYWdlKHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRf
dCBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0
cnVjdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktp
dDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+ICh1aW50NjRf
dCBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4g
bmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3Nl
UGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVy
dCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBEZWxheWVkCi0gICAgUnVu
SmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJv
b2wgcmVzdWx0KSBEZWxheWVkCi0gICAgUnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3Vs
dCkgRGVsYXllZAorICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25v
dXMKKyAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwog
ICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1
bHREYXRhIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBV
bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3QgcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIFN0cmluZyBtaW1lVHlwZSwgU3RyaW5nIHBsdWdpblVSTFN0cmluZywgU3RyaW5n
IHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0
cmluZyBwYWdlVVJMU3RyaW5nKQogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBXZWJHTFBvbGljeUZvclVSTChVUkwgdXJsKSAtPiAo
dWludDMyX3QgbG9hZFBvbGljeSkgRGVsYXllZAotICAgIFJlc29sdmVXZWJHTFBvbGljeUZvclVS
TChVUkwgdXJsKSAtPiAodWludDMyX3QgbG9hZFBvbGljeSkgRGVsYXllZAorICAgIFdlYkdMUG9s
aWN5Rm9yVVJMKFVSTCB1cmwpIC0+ICh1aW50MzJfdCBsb2FkUG9saWN5KSBTeW5jaHJvbm91cwor
ICAgIFJlc29sdmVXZWJHTFBvbGljeUZvclVSTChVUkwgdXJsKSAtPiAodWludDMyX3QgbG9hZFBv
bGljeSkgU3luY2hyb25vdXMKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCiAgICAgRGlkQ2hhbmdl
Vmlld3BvcnRQcm9wZXJ0aWVzKHN0cnVjdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKICAgICBEaWRSZWNlaXZlRXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVk
KQpAQCAtNTEsMjkgKzUxLDI5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRnJh
bWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVy
VHJlZVNpemUodWludDY0X3QgdHJlZVNpemUpCiAgICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJv
b2wgdG9vbGJhcnNBcmVWaXNpYmxlKQotICAgIEdldFRvb2xiYXJzQXJlVmlzaWJsZSgpIC0+IChi
b29sIHRvb2xiYXJzQXJlVmlzaWJsZSkgRGVsYXllZAorICAgIEdldFRvb2xiYXJzQXJlVmlzaWJs
ZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkgU3luY2hyb25vdXMKICAgICBTZXRNZW51
QmFySXNWaXNpYmxlKGJvb2wgbWVudUJhcklzVmlzaWJsZSkKLSAgICBHZXRNZW51QmFySXNWaXNp
YmxlKCkgLT4gKGJvb2wgbWVudUJhcklzVmlzaWJsZSkgRGVsYXllZAorICAgIEdldE1lbnVCYXJJ
c1Zpc2libGUoKSAtPiAoYm9vbCBtZW51QmFySXNWaXNpYmxlKSBTeW5jaHJvbm91cwogICAgIFNl
dFN0YXR1c0JhcklzVmlzaWJsZShib29sIHN0YXR1c0JhcklzVmlzaWJsZSkKLSAgICBHZXRTdGF0
dXNCYXJJc1Zpc2libGUoKSAtPiAoYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUpIERlbGF5ZWQKKyAg
ICBHZXRTdGF0dXNCYXJJc1Zpc2libGUoKSAtPiAoYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUpIFN5
bmNocm9ub3VzCiAgICAgU2V0SXNSZXNpemFibGUoYm9vbCBpc1Jlc2l6YWJsZSkKICAgICBTZXRX
aW5kb3dGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUpCi0gICAgR2V0V2luZG93
RnJhbWUoKSAtPiAoV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lKSBEZWxheWVkCi0gICAg
U2NyZWVuVG9Sb290VmlldyhXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNv
cmU6OkludFBvaW50IHdpbmRvd1BvaW50KSBEZWxheWVkCi0gICAgUm9vdFZpZXdUb1NjcmVlbihX
ZWJDb3JlOjpJbnRSZWN0IHJlY3QpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHNjcmVlbkZyYW1lKSBE
ZWxheWVkCi0gICAgQWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6SW50UG9p
bnQgc2NyZWVuUG9pbnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCB3aW5kb3dQb2ludCkgRGVsYXll
ZAotICAgIFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVj
dCkgLT4gKFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUpIERlbGF5ZWQKKyAgICBHZXRXaW5k
b3dGcmFtZSgpIC0+IChXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUpIFN5bmNocm9ub3Vz
CisgICAgU2NyZWVuVG9Sb290VmlldyhXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4g
KFdlYkNvcmU6OkludFBvaW50IHdpbmRvd1BvaW50KSBTeW5jaHJvbm91cworICAgIFJvb3RWaWV3
VG9TY3JlZW4oV2ViQ29yZTo6SW50UmVjdCByZWN0KSAtPiAoV2ViQ29yZTo6SW50UmVjdCBzY3Jl
ZW5GcmFtZSkgU3luY2hyb25vdXMKKyAgICBBY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290VmlldyhX
ZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdpbmRv
d1BvaW50KSBTeW5jaHJvbm91cworICAgIFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKFdl
YkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUpIFN5
bmNocm9ub3VzCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTaG93VmFsaWRhdGlvbk1lc3Nh
Z2UoV2ViQ29yZTo6SW50UmVjdCBhbmNob3JSZWN0LCBTdHJpbmcgbWVzc2FnZSkKICAgICBIaWRl
VmFsaWRhdGlvbk1lc3NhZ2UoKQogI2VuZGlmCiAKLSAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xv
c2UpIERlbGF5ZWQKKyAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCiAg
ICAgUGFnZURpZFNjcm9sbCgpCiAgICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hh
cmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAt
PiAoKSBEZWxheWVkCisgICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAoKSBTeW5j
aHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxl
SW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNj
cm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCkBAIC0xMDQsNyArMTA0LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFBvbGljeSBtZXNzYWdlcwogICAg
IERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1
Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2
NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJl
c3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQot
ICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQs
IGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBv
bGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0
ZVBvbGljaWVzKSBEZWxheWVkCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
dWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklE
LCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRl
UG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCiAKQEAgLTE0Myw3ICsxNDMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIERpZENoYW5nZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKTsKICAgICBE
aWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCiAKLSAgICBIYXNJbnNl
Y3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBo
YXNJbnNlY3VyZUNvbnRlbnQpIERlbGF5ZWQKKyAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAo
ZW51bTpib29sIFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQp
IFN5bmNocm9ub3VzCiAKICAgICBNYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVy
ZURpZENoYW5nZShib29sIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQog
CkBAIC0xODcsNyArMTg3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBBdXRv
Y29ycmVjdGlvbkRhdGFDYWxsYmFjayhWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVj
dHMsIFN0cmluZyBmb250TmFtZSwgZG91YmxlIGZvbnRTaXplLCB1aW50NjRfdCB0cmFpdHMsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEF1dG9jb3JyZWN0aW9uQ29udGV4dENh
bGxiYWNrKHN0cnVjdCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCBjb250ZXh0LCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBTZWxlY3Rpb25Db250ZXh0Q2FsbGJh
Y2soU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIGJlZm9yZVRleHQsIFN0cmluZyBhZnRlclRl
eHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEludGVycHJldEtleUV2ZW50
KHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIHN0YXRlLCBib29sIGlzQ2hhckV2ZW50KSAtPiAo
Ym9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgSW50ZXJwcmV0S2V5RXZlbnQoc3RydWN0IFdlYktp
dDo6RWRpdG9yU3RhdGUgc3RhdGUsIGJvb2wgaXNDaGFyRXZlbnQpIC0+IChib29sIGhhbmRsZWQp
IFN5bmNocm9ub3VzCiAgICAgRGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pCiAgICAg
U2F2ZUltYWdlVG9MaWJyYXJ5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1
aW50NjRfdCBzaXplKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVv
LCBXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5IHBvbGljeSwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKQpAQCAtMjIz
LDEwICsyMjMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgQmFja0Zv
cndhcmQgbWVzc2FnZXMKICAgICBCYWNrRm9yd2FyZEFkZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFj
a0ZvcndhcmRMaXN0SXRlbVN0YXRlIGl0ZW1TdGF0ZSkKLSAgICBCYWNrRm9yd2FyZEdvVG9JdGVt
KHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCkgLT4gKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpIERl
bGF5ZWQKLSAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGludDMyX3QgaXRlbUluZGV4KSAtPiAo
T3B0aW9uYWw8V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gaXRlbUlEKSBEZWxh
eWVkCi0gICAgQmFja0ZvcndhcmRCYWNrTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50KSBE
ZWxheWVkCi0gICAgQmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNv
dW50KSBEZWxheWVkCisgICAgQmFja0ZvcndhcmRHb1RvSXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciBpdGVtSUQpIC0+IChXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSBTeW5jaHJvbm91cworICAgIEJhY2tG
b3J3YXJkSXRlbUF0SW5kZXgoaW50MzJfdCBpdGVtSW5kZXgpIC0+IChPcHRpb25hbDxXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyPiBpdGVtSUQpIFN5bmNocm9ub3VzCisgICAgQmFj
a0ZvcndhcmRCYWNrTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50KSBTeW5jaHJvbm91cwor
ICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3lu
Y2hyb25vdXMKICAgICBCYWNrRm9yd2FyZENsZWFyKCkKICAgICBXaWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlE
LCBib29sIGluUGFnZUNhY2hlKQogCkBAIC0yMzQsOCArMjM0LDggQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21t
YW5kSUQsIFN0cmluZyBsYWJlbCkKICAgICBDbGVhckFsbEVkaXRDb21tYW5kcygpCiAgICAgUmVn
aXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQotICAgIENhblVuZG9SZWRvKGVudW06Ym9vbCBX
ZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCi0g
ICAgRXhlY3V0ZVVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVk
bykgLT4gKCkgRGVsYXllZAorICAgIENhblVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9P
clJlZG8gdW5kb09yUmVkbykgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIEV4ZWN1
dGVVbmRvUmVkbyhlbnVtOmJvb2wgV2ViS2l0OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pIC0+ICgp
IFN5bmNocm9ub3VzCiAKICAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZwogICAgIExv
Z0RpYWdub3N0aWNNZXNzYWdlKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGVu
dW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQpAQCAtMjUyLDcgKzI1
Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0SGFzSGFkU2VsZWN0aW9u
Q2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdl
cykKICAgICBTZXRJc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRh
YmxlKGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZCkKICAgICBTZXRJc05ldmVyUmljaGx5
RWRpdGFibGVGb3JUb3VjaEJhcihib29sIGlzTmV2ZXJSaWNobHlFZGl0YWJsZSkKLSAgICBSZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSByZXNwb25zZSkgRGVsYXllZAorICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJD
b3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVu
dW06dWludDhfdCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5j
aHJvbm91cwogCiAgICAgIyBGaW5kIG1lc3NhZ2VzCiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVz
KFN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291bnQpCkBAIC0yNzIsMTAgKzI3MiwxMCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIERhdGFiYXNlIG1l
c3NhZ2VzCi0gICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VE
aXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVz
YWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIERlbGF5ZWQKKyAgICBFeGNlZWRlZERhdGFiYXNl
UXVvdGEodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBk
YXRhYmFzZU5hbWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFi
YXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKIAogICAgICMgQXBwbGljYXRpb24gY2FjaGUgbWVzc2FnZXMKLSAgICBSZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50
NjRfdCBuZXdRdW90YSkgRGVsYXllZAorICAgIFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWlu
dDY0X3QgdG90YWxCeXRlc05lZWRlZCkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91
cwogCiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKQEAgLTI5NiwxNCArMjk2LDE0IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIFNwZWxsaW5nIGFuZCBncmFtbWFyIG1lc3NhZ2Vz
CiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykgIAotICAgIENoZWNrVGV4dE9mUGFyYWdy
YXBoKFN0cmluZyB0ZXh0LCBPcHRpb25TZXQ8V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZT4gY2hl
Y2tpbmdUeXBlcywgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHMpIERlbGF5ZWQKKyAgICBDaGVja1RleHRPZlBhcmFn
cmFwaChTdHJpbmcgdGV4dCwgT3B0aW9uU2V0PFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGU+IGNo
ZWNraW5nVHlwZXMsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgQ2hl
Y2tTcGVsbGluZ09mU3RyaW5nKFN0cmluZyB0ZXh0KSAtPiAoaW50MzJfdCBtaXNzcGVsbGluZ0xv
Y2F0aW9uLCBpbnQzMl90IG1pc3NwZWxsaW5nTGVuZ3RoKSBEZWxheWVkCi0gICAgQ2hlY2tHcmFt
bWFyT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFp
bD4gcmVzdWx0cywgaW50MzJfdCBiYWRHcmFtbWFyTG9jYXRpb24sIGludDMyX3QgYmFkR3JhbW1h
ckxlbmd0aCkgRGVsYXllZAotICAgIFNwZWxsaW5nVUlJc1Nob3dpbmcoKSAtPiAoYm9vbCBpc1No
b3dpbmcpIERlbGF5ZWQKKyAgICBDaGVja1NwZWxsaW5nT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+
IChpbnQzMl90IG1pc3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3QgbWlzc3BlbGxpbmdMZW5ndGgp
IFN5bmNocm9ub3VzCisgICAgQ2hlY2tHcmFtbWFyT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4gcmVzdWx0cywgaW50MzJfdCBiYWRHcmFtbWFy
TG9jYXRpb24sIGludDMyX3QgYmFkR3JhbW1hckxlbmd0aCkgU3luY2hyb25vdXMKKyAgICBTcGVs
bGluZ1VJSXNTaG93aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKSBTeW5jaHJvbm91cwogICAgIFVw
ZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoU3RyaW5nIG1pc3NwZWxsZWRXb3JkKQog
ICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhTdHJpbmcgYmFkR3JhbW1hclBo
cmFzZSwgc3RydWN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwgZ3JhbW1hckRldGFpbCkKLSAgICBH
ZXRHdWVzc2VzRm9yV29yZChTdHJpbmcgd29yZCwgU3RyaW5nIGNvbnRleHQsIGludDMyX3QgaW5z
ZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8U3RyaW5nPiBndWVzc2VzKSBEZWxheWVkCisgICAgR2V0
R3Vlc3Nlc0ZvcldvcmQoU3RyaW5nIHdvcmQsIFN0cmluZyBjb250ZXh0LCBpbnQzMl90IGluc2Vy
dGlvblBvaW50KSAtPiAoVmVjdG9yPFN0cmluZz4gZ3Vlc3NlcykgU3luY2hyb25vdXMKICAgICBM
ZWFybldvcmQoU3RyaW5nIHdvcmQpCiAgICAgSWdub3JlV29yZChTdHJpbmcgd29yZCkKICAgICBS
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1JlcXVlc3REYXRhIHJlcXVlc3QsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpCkBAIC0z
MzYsNyArMzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChzdHJ1Y3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0
aW9uYXJ5UG9wdXBJbmZvKQogCiAgICAgIyBLZXlib2FyZCBpbnB1dCBzdXBwb3J0IG1lc3NhZ2Vz
Ci0gICAgRXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU3RyaW5nIHNlbGVjdG9yKSAtPiAo
Ym9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgRXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3Io
U3RyaW5nIHNlbGVjdG9yKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCiAgICAgIyBS
ZW1vdGUgYWNjZXNzaWJpbGl0eSBtZXNzYWdlcwogICAgIFJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vz
c2liaWxpdHlUb2tlbihJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKQEAgLTM0Niw3ICszNDYsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgdWludDY0
X3QgY29tcGxleFRleHRJbnB1dFN0YXRlKQogCiAgICAgIyBTcGVlY2ggbWVzc2FnZXMKLSAgICBH
ZXRJc1NwZWFraW5nKCkgLT4gKGJvb2wgaXNTcGVha2luZykgRGVsYXllZAorICAgIEdldElzU3Bl
YWtpbmcoKSAtPiAoYm9vbCBpc1NwZWFraW5nKSBTeW5jaHJvbm91cwogICAgIFNwZWFrKFN0cmlu
ZyBzdHJpbmcpCiAgICAgU3RvcFNwZWFraW5nKCkKIApAQCAtMzY0LDcgKzM2NCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgU3Vi
c3RpdHV0aW9uc1BhbmVsSXNTaG93aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKSBEZWxheWVkCisg
ICAgU3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKSBTeW5j
aHJvbm91cwogI2VuZGlmCiAjaWYgVVNFKEFVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5UKQogICAg
IHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKQEAgLTM3Nyw3ICszNzcsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgICMgQXV0b2NvcnJlY3Rpb24gbWVzc2FnZXMKICAgICBTaG93
Q29ycmVjdGlvblBhbmVsKGludDMyX3QgcGFuZWxUeXBlLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBTdHJpbmcgcmVwbGFjZWRTdHJpbmcsIFN0cmluZyBy
ZXBsYWNlbWVudFN0cmluZywgVmVjdG9yPFN0cmluZz4gYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0
cmluZ3MpCiAgICAgRGlzbWlzc0NvcnJlY3Rpb25QYW5lbChpbnQzMl90IHJlYXNvbikKLSAgICBE
aXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihpbnQzMl90IHJlYXNvbikgLT4gKFN0cmluZyByZXN1
bHQpIERlbGF5ZWQKKyAgICBEaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihpbnQzMl90IHJlYXNv
bikgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgUmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZShpbnQzMl90IHJlc3BvbnNlLCBTdHJpbmcgcmVwbGFjZWRTdHJpbmcsIFN0cmlu
ZyByZXBsYWNlbWVudFN0cmluZyk7CiAKICAgICBTZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQo
Ym9vbCBlZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQpCkBAIC0zODYsMTIgKzM4NiwxMiBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQog
ICAgIFNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZGlu
Z0JveE9mRGljdGF0ZWRUZXh0LCB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KQogICAgIFJlbW92
ZURpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KQotICAgIERp
Y3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSAtPiAoVmVjdG9y
PFN0cmluZz4gYWx0ZXJuYXRpdmVzKSBEZWxheWVkCisgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVz
KHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2
ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFgxMSkKICAgICAjIFgxMSB3
aW5kb3dlZCBwbHVnaW4gbWVzc2FnZXMKLSAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAtPiAo
dWludDY0X3Qgd2luZG93SUQpIERlbGF5ZWQKKyAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAt
PiAodWludDY0X3Qgd2luZG93SUQpIFN5bmNocm9ub3VzCiAgICAgV2luZG93ZWRQbHVnaW5HZW9t
ZXRyeURpZENoYW5nZShXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCwgV2ViQ29yZTo6SW50UmVj
dCBjbGlwUmVjdCwgdWludDY0X3Qgd2luZG93SUQpCiAgICAgV2luZG93ZWRQbHVnaW5WaXNpYmls
aXR5RGlkQ2hhbmdlKGJvb2wgaXNWaXNpYmxlLCB1aW50NjRfdCB3aW5kb3dJRCkKICNlbmRpZgpA
QCAtNDI5LDcgKzQyOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIFNl
YXJjaCBwb3B1cCBtZW51cwogICAgIFNhdmVSZWNlbnRTZWFyY2hlcyhTdHJpbmcgbmFtZSwgVmVj
dG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4gc2VhcmNoSXRlbXMpCi0gICAgTG9hZFJlY2VudFNl
YXJjaGVzKFN0cmluZyBuYW1lKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4gcmVz
dWx0KSBEZWxheWVkCisgICAgTG9hZFJlY2VudFNlYXJjaGVzKFN0cmluZyBuYW1lKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4gcmVzdWx0KSBTeW5jaHJvbm91cwogCiAgICAgU2F2
ZVBERlRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgVVJM
IG9yaWdpbmF0aW5nVVJMLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIApAQCAtNDM5LDExICs0
MzksMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBERktJVF9QTFVHSU4pCi0gICAgU2hvd1BERkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBE
RkNvbnRleHRNZW51IGNvbnRleHRNZW51KSAtPiAoT3B0aW9uYWw8aW50MzJfdD4gc2VsZWN0ZWRJ
dGVtKSBEZWxheWVkCisgICAgU2hvd1BERkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBERkNv
bnRleHRNZW51IGNvbnRleHRNZW51KSAtPiAoT3B0aW9uYWw8aW50MzJfdD4gc2VsZWN0ZWRJdGVt
KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
LSAgICBGaW5kUGx1Z2luKFN0cmluZyBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFN0
cmluZyB1cmxTdHJpbmcsIFN0cmluZyBmcmFtZVVSTFN0cmluZywgU3RyaW5nIHBhZ2VVUkxTdHJp
bmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSAtPiAodWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuLCBTdHJpbmcgbmV3TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xp
Y3ksIFN0cmluZyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBib29sIGlzVW5zdXBwb3J0ZWQp
IERlbGF5ZWQKKyAgICBGaW5kUGx1Z2luKFN0cmluZyBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vz
c1R5cGUsIFN0cmluZyB1cmxTdHJpbmcsIFN0cmluZyBmcmFtZVVSTFN0cmluZywgU3RyaW5nIHBh
Z2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSAtPiAodWludDY0
X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcgbmV3TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdp
bkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBib29sIGlzVW5z
dXBwb3J0ZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAogICAgIERpZFVwZGF0ZUFjdGl2aXR5U3Rh
dGUoKQpAQCAtNDUxLDggKzQ1MSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
RGlkU2F2ZVRvUGFnZUNhY2hlKCkKIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQotICAgIFdyYXBD
cnlwdG9LZXkoVmVjdG9yPHVpbnQ4X3Q+IGtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8
dWludDhfdD4gd3JhcHBlZEtleSkgRGVsYXllZAotICAgIFVud3JhcENyeXB0b0tleShWZWN0b3I8
dWludDhfdD4gd3JhcHBlZEtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8dWludDhfdD4g
a2V5KSBEZWxheWVkCisgICAgV3JhcENyeXB0b0tleShWZWN0b3I8dWludDhfdD4ga2V5KSAtPiAo
Ym9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1aW50OF90PiB3cmFwcGVkS2V5KSBTeW5jaHJvbm91cwor
ICAgIFVud3JhcENyeXB0b0tleShWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleSkgLT4gKGJvb2wg
c3VjY2VlZGVkLCBWZWN0b3I8dWludDhfdD4ga2V5KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKIApA
QCAtNDg1LDcgKzQ4NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVy
Zm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Qoc3RydWN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3Vs
dERhdGEgcmVzdWx0LCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCiAjZW5kaWYKICAgICBIYW5kbGVNZXNzYWdlKFN0cmluZyBtZXNzYWdlTmFt
ZSwgV2ViS2l0OjpVc2VyRGF0YSBtZXNzYWdlQm9keSkgV2FudHNDb25uZWN0aW9uCi0gICAgSGFu
ZGxlU3luY2hyb25vdXNNZXNzYWdlKFN0cmluZyBtZXNzYWdlTmFtZSwgV2ViS2l0OjpVc2VyRGF0
YSBtZXNzYWdlQm9keSkgLT4gKFdlYktpdDo6VXNlckRhdGEgcmV0dXJuRGF0YSkgRGVsYXllZCBX
YW50c0Nvbm5lY3Rpb24KKyAgICBIYW5kbGVTeW5jaHJvbm91c01lc3NhZ2UoU3RyaW5nIG1lc3Nh
Z2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRhIG1lc3NhZ2VCb2R5KSAtPiAoV2ViS2l0OjpVc2VyRGF0
YSByZXR1cm5EYXRhKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KIAogICAgIEhhbmRsZUF1
dG9GaWxsQnV0dG9uQ2xpY2soV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIApAQCAtNTMyLDcg
KzUzMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBTdGFydFVSTFNjaGVt
ZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykK
ICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0
X3QgdGFza0lkZW50aWZpZXIpCi0gICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1
Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
ciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKKyAgICBMb2FkU3luY2hyb25vdXNV
UkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGVycm9yLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkgU3luY2hyb25vdXMK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgUmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwpAQCAtNTQ2
LDEzICs1NDYsMTMgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDbG9uZUF0dGFj
aG1lbnREYXRhKFN0cmluZyBmcm9tSWRlbnRpZmllciwgU3RyaW5nIHRvSWRlbnRpZmllcikKICAg
ICBEaWRJbnNlcnRBdHRhY2htZW50V2l0aElkZW50aWZpZXIoU3RyaW5nIGlkZW50aWZpZXIsIFN0
cmluZyBzb3VyY2UsIGJvb2wgaGFzRW5jbG9zaW5nSW1hZ2UpCiAgICAgRGlkUmVtb3ZlQXR0YWNo
bWVudFdpdGhJZGVudGlmaWVyKFN0cmluZyBpZGVudGlmaWVyKQotICAgIFNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YUZvcklkZW50aWZpZXJzKFZlY3RvcjxTdHJpbmc+IGlkZW50aWZpZXJzKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gc2VyYWxpemVkRGF0YSkg
RGVsYXllZAorICAgIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YUZvcklkZW50aWZpZXJzKFZlY3Rv
cjxTdHJpbmc+IGlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YT4gc2VyYWxpemVkRGF0YSkgU3luY2hyb25vdXMKICNlbmRpZgogCi0gICAgU2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgU3Ry
aW5nIGNoYWxsZW5nZVN0cmluZywgVVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpIERlbGF5ZWQK
KyAgICBTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUlu
ZGV4LCBTdHJpbmcgY2hhbGxlbmdlU3RyaW5nLCBVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkg
U3luY2hyb25vdXMKIAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQotICAgIFNwZWVjaFN5
bnRoZXNpc1ZvaWNlTGlzdCgpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNW
b2ljZT4gdm9pY2VMaXN0KSBEZWxheWVkCisgICAgU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiB2b2ljZUxpc3QpIFN5
bmNocm9ub3VzCiAgICAgU3BlZWNoU3ludGhlc2lzU3BlYWsoU3RyaW5nIHRleHQsIFN0cmluZyBs
YW5nLCBmbG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9uaWNUaW1l
IHN0YXJ0VGltZSwgU3RyaW5nIHZvaWNlVVJJLCBTdHJpbmcgdm9pY2VOYW1lLCBTdHJpbmcgdm9p
Y2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0Vm9pY2UpIC0+ICgpIEFzeW5j
CiAgICAgU3BlZWNoU3ludGhlc2lzQ2FuY2VsKCkKICAgICBTcGVlY2hTeW50aGVzaXNQYXVzZSgp
IC0+ICgpIEFzeW5jCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMjUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDQ3ICsyNiw0NyBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJv
eHkgewogICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFz
dGVib2FyZFdlYkNvbnRlbnQgY29udGVudCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAgIFdy
aXRlSW1hZ2VUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSBwYXN0
ZWJvYXJkSW1hZ2UsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBXcml0ZVN0cmluZ1RvUGFz
dGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0LCBTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpCi0gICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBT
dHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyBz
dHJpbmcpIERlbGF5ZWQKLSAgICBSZWFkVVJMRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgs
IFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyB1cmwsIFN0cmluZyB0aXRsZSkgRGVs
YXllZAotICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5n
IHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkgRGVsYXllZAotICAgIEdldFBh
c3RlYm9hcmRJdGVtc0NvdW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IGl0
ZW1zQ291bnQpIERlbGF5ZWQKLSAgICBBbGxQYXN0ZWJvYXJkSXRlbUluZm8oU3RyaW5nIHBhc3Rl
Ym9hcmROYW1lKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbz4gYWxsSW5m
bykgRGVsYXllZAotICAgIEluZm9ybWF0aW9uRm9ySXRlbUF0SW5kZXgodWludDY0X3QgaW5kZXgs
IFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSXRl
bUluZm8gaW5mbykgRGVsYXllZAorICAgIFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRf
dCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+
IChTdHJpbmcgc3RyaW5nKSBTeW5jaHJvbm91cworICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1
aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHVybCwgU3Ry
aW5nIHRpdGxlKSBTeW5jaHJvbm91cworICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50
NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUp
IC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkg
U3luY2hyb25vdXMKKyAgICBHZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChTdHJpbmcgcGFzdGVib2Fy
ZE5hbWUpIC0+ICh1aW50NjRfdCBpdGVtc0NvdW50KSBTeW5jaHJvbm91cworICAgIEFsbFBhc3Rl
Ym9hcmRJdGVtSW5mbyhTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6
UGFzdGVib2FyZEl0ZW1JbmZvPiBhbGxJbmZvKSBTeW5jaHJvbm91cworICAgIEluZm9ybWF0aW9u
Rm9ySXRlbUF0SW5kZXgodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4g
KHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSXRlbUluZm8gaW5mbykgU3luY2hyb25vdXMKICAg
ICBVcGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnMoVmVjdG9yPFN0cmluZz4gaWRlbnRpZmll
cnMsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICNlbmRpZgogCi0gICAgV3JpdGVDdXN0b21EYXRh
KHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBkYXRhLCBTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgRGVsYXllZAotICAgIFR5cGVzU2Fm
ZUZvckRPTVRvUmVhZEFuZFdyaXRlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIG9yaWdp
bikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBEZWxheWVkCisgICAgV3JpdGVDdXN0b21EYXRh
KHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBkYXRhLCBTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgU3luY2hyb25vdXMKKyAgICBUeXBl
c1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBv
cmlnaW4pIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25vdXMKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgICMgUGFzdGVib2FyZCBtZXNzYWdlcy4KLSAgICBHZXROdW1iZXJPZkZp
bGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IG51bWJlck9mRmlsZXMpIERl
bGF5ZWQKLSAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAo
VmVjdG9yPFN0cmluZz4gdHlwZXMpIERlbGF5ZWQKLSAgICBHZXRQYXN0ZWJvYXJkUGF0aG5hbWVz
Rm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4g
KFZlY3RvcjxTdHJpbmc+IHBhdGhuYW1lcywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSBzYW5kYm94RXh0ZW5zaW9ucykgRGVsYXllZCBXYW50c0Nvbm5lY3Rpb24KLSAgICBH
ZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBw
YXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpIERlbGF5ZWQKLSAgICBHZXRQYXN0ZWJv
YXJkU3RyaW5nc0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2Fy
ZFR5cGUpIC0+IChWZWN0b3I8U3RyaW5nPiBzdHJpbmdzKSBEZWxheWVkCi0gICAgR2V0UGFzdGVi
b2FyZEJ1ZmZlckZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2Fy
ZFR5cGUpIC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qg
c2l6ZSkgRGVsYXllZAotICAgIFBhc3RlYm9hcmRDb3B5KFN0cmluZyBmcm9tUGFzdGVib2FyZCwg
U3RyaW5nIHRvUGFzdGVib2FyZCkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBEZWxheWVkCi0g
ICAgR2V0UGFzdGVib2FyZENoYW5nZUNvdW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVp
bnQ2NF90IGNoYW5nZUNvdW50KSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZFVuaXF1ZU5hbWUo
KSAtPiAoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZENv
bG9yKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFdlYkNvcmU6OkNvbG9yIGNvbG9yKSBEZWxh
eWVkCi0gICAgR2V0UGFzdGVib2FyZFVSTChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJp
bmcgdXJsU3RyaW5nKSBEZWxheWVkCi0gICAgQWRkUGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSwgVmVjdG9yPFN0cmluZz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3Qg
Y2hhbmdlQ291bnQpIERlbGF5ZWQKLSAgICBTZXRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3Rl
Ym9hcmROYW1lLCBWZWN0b3I8U3RyaW5nPiBwYXN0ZWJvYXJkVHlwZXMpIC0+ICh1aW50NjRfdCBj
aGFuZ2VDb3VudCkgRGVsYXllZAotICAgIFNldFBhc3RlYm9hcmRVUkwoc3RydWN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRVUkwgcGFzdGVib2FyZFVSTCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAo
dWludDY0X3QgY2hhbmdlQ291bnQpIERlbGF5ZWQgV2FudHNDb25uZWN0aW9uCi0gICAgU2V0UGFz
dGVib2FyZENvbG9yKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6Q29sb3IgY29sb3Ip
IC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgRGVsYXllZAotICAgIFNldFBhc3RlYm9hcmRTdHJp
bmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBT
dHJpbmcgc3RyaW5nKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIERlbGF5ZWQKLSAgICBTZXRQ
YXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0
ZWJvYXJkVHlwZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90
IHNpemUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgRGVsYXllZAorICAgIEdldE51bWJlck9m
RmlsZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgbnVtYmVyT2ZGaWxlcykg
U3luY2hyb25vdXMKKyAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1l
KSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCisgICAgR2V0UGFzdGVib2Fy
ZFBhdGhuYW1lc0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2Fy
ZFR5cGUpIC0+IChWZWN0b3I8U3RyaW5nPiBwYXRobmFtZXMsIFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVuc2lvbnMpIFN5bmNocm9ub3VzIFdhbnRzQ29u
bmVjdGlvbgorICAgIEdldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykgU3luY2hyb25v
dXMKKyAgICBHZXRQYXN0ZWJvYXJkU3RyaW5nc0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1l
LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChWZWN0b3I8U3RyaW5nPiBzdHJpbmdzKSBTeW5j
aHJvbm91cworICAgIEdldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Okhh
bmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIFN5bmNocm9ub3VzCisgICAgUGFzdGVib2FyZENv
cHkoU3RyaW5nIGZyb21QYXN0ZWJvYXJkLCBTdHJpbmcgdG9QYXN0ZWJvYXJkKSAtPiAodWludDY0
X3QgY2hhbmdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgR2V0UGFzdGVib2FyZENoYW5nZUNvdW50
KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBTeW5jaHJv
bm91cworICAgIEdldFBhc3RlYm9hcmRVbmlxdWVOYW1lKCkgLT4gKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSkgU3luY2hyb25vdXMKKyAgICBHZXRQYXN0ZWJvYXJkQ29sb3IoU3RyaW5nIHBhc3RlYm9h
cmROYW1lKSAtPiAoV2ViQ29yZTo6Q29sb3IgY29sb3IpIFN5bmNocm9ub3VzCisgICAgR2V0UGFz
dGVib2FyZFVSTChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJpbmcgdXJsU3RyaW5nKSBT
eW5jaHJvbm91cworICAgIEFkZFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUs
IFZlY3RvcjxTdHJpbmc+IHBhc3RlYm9hcmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50
KSBTeW5jaHJvbm91cworICAgIFNldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5h
bWUsIFZlY3RvcjxTdHJpbmc+IHBhc3RlYm9hcmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNv
dW50KSBTeW5jaHJvbm91cworICAgIFNldFBhc3RlYm9hcmRVUkwoc3RydWN0IFdlYkNvcmU6OlBh
c3RlYm9hcmRVUkwgcGFzdGVib2FyZFVSTCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWlu
dDY0X3QgY2hhbmdlQ291bnQpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIFNldFBh
c3RlYm9hcmRDb2xvcihTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkNvbG9yIGNvbG9y
KSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgU2V0UGFzdGVib2Fy
ZFN0cmluZ0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5
cGUsIFN0cmluZyBzdHJpbmcpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgU3luY2hyb25vdXMK
KyAgICBTZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0
cmluZyBwYXN0ZWJvYXJkVHlwZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUs
IHVpbnQ2NF90IHNpemUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgU3luY2hyb25vdXMKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBh
c3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRD
b250ZW50KQotICAgIFJlYWRGcm9tQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4g
KHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpIERlbGF5
ZWQKKyAgICBSZWFkRnJvbUNsaXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KSBTeW5jaHJvbm91
cwogI2VuZGlmCiAKICNpZiBVU0UoTElCV1BFKQotICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+
IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgRGVsYXllZAotICAgIFJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5nIHN0
cmluZykgRGVsYXllZAorICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3RyaW5n
PiB0eXBlcykgU3luY2hyb25vdXMKKyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0
X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpIFN5bmNo
cm9ub3VzCiAgICAgV3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCBjb250ZW50KQogICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJk
KFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHRleHQpCiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAgICAgSGFuZGxlTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5h
bWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIFdhbnRzQ29ubmVjdGlvbgotICAgIEhh
bmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRh
dGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJEYXRhIHJldHVybkRhdGEpIERlbGF5ZWQg
V2FudHNDb25uZWN0aW9uCisgICAgSGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKFN0cmluZyBtZXNz
YWdlTmFtZSwgV2ViS2l0OjpVc2VyRGF0YSBtZXNzYWdlQm9keSkgLT4gKFdlYktpdDo6VXNlckRh
dGEgcmV0dXJuRGF0YSkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAKICAgICBEaWRHZXRT
dGF0aXN0aWNzKHN0cnVjdCBXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhIHN0YXRpc3RpY3NEYXRhLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDE3ICsyNiwxNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2CiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1
c2VyR2VzdHVyZVRva2VuSUQpIAogCi0gICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hv
dWxkVGVybWluYXRlKSBEZWxheWVkCisgICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hv
dWxkVGVybWluYXRlKSBTeW5jaHJvbm91cwogCiAgICAgRW5hYmxlU3VkZGVuVGVybWluYXRpb24o
KQogICAgIERpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiAKICAgICAjIFBsdWdpbiBtZXNzYWdl
cy4KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wg
cmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3QgT3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBzdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVycykgRGVsYXllZAotICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQK
KyAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5J
bmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVn
aW5zLCBzdHJ1Y3QgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50
aWZpZXI+PiBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykgU3luY2hyb25vdXMKKyAgICBHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJ
UEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91
c0luaXRpYWxpemF0aW9uKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgR2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxh
eWVkCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSGFuZGxlKSBTeW5jaHJvbm91cwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVu
ZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBAQAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNo
U2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChi
b29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgRGVsYXllZAorICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0
aW5ncykgU3luY2hyb25vdXMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAg
ICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgRW5kKHVpbnQ2NF90IGlkKQot
ICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBEZWxheWVkCisgICAgQ2FwYWJpbGl0aWVz
KHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyBjYXBhYmlsaXRpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0TXV0ZWQodWludDY0X3QgaWQsIGJv
b2wgbXV0ZWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTM0LDE2ICszNCwxNiBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm9jZXNzUHJveHkgewogICAg
IFNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCBmdWxsc2NyZWVuV2luZG93SXNTaG93
aW5nKQogICAgIAogICAgICMgUmV0dXJucyB0cnVlIGlmIHRoZSBVSSBwcm9jZXNzIGxhdW5jaGVk
IHRoZSBwcm9jZXNzLgotICAgIExhdW5jaFByb2Nlc3MoU3RyaW5nIGxhdW5jaFBhdGgsIFZlY3Rv
cjxTdHJpbmc+IGFyZ3VtZW50cykgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCisgICAgTGF1bmNo
UHJvY2VzcyhTdHJpbmcgbGF1bmNoUGF0aCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAo
Ym9vbCByZXN1bHQpIFN5bmNocm9ub3VzCiAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkg
cHJvY2VzcyBsYXVuY2hlZCB0aGUgYXBwbGljYXRpb24uCi0gICAgTGF1bmNoQXBwbGljYXRpb25B
dFVSTChTdHJpbmcgdXJsLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMpIC0+IChib29sIHJlc3Vs
dCkgRGVsYXllZAorICAgIExhdW5jaEFwcGxpY2F0aW9uQXRVUkwoU3RyaW5nIHVybCwgVmVjdG9y
PFN0cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCiAKICAgICAj
IFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBkaWQgb3BlbiB0aGUgVVJMLgotICAgIE9w
ZW5VUkwoU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wgcmVzdWx0LCBpbnQzMl90IHN0YXR1cywg
U3RyaW5nIGxhdW5jaGVkVVJMU3RyaW5nKSBEZWxheWVkCisgICAgT3BlblVSTChTdHJpbmcgdXJs
U3RyaW5nKSAtPiAoYm9vbCByZXN1bHQsIGludDMyX3Qgc3RhdHVzLCBTdHJpbmcgbGF1bmNoZWRV
UkxTdHJpbmcpIFN5bmNocm9ub3VzCiAgICAgCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJ
IHByb2Nlc3MgZGlkIG9wZW4gdGhlIGZpbGUuCi0gICAgT3BlbkZpbGUoU3RyaW5nIGZ1bGxQYXRo
KSAtPiAoYm9vbCByZXN1bHQpIERlbGF5ZWQKKyAgICBPcGVuRmlsZShTdHJpbmcgZnVsbFBhdGgp
IC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZU1hbmFnZXIgewogICAgIENy
ZWF0ZVNlc3Npb25TdG9yYWdlTWFwKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3Rv
cmFnZU5hbWVzcGFjZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3Vy
aXR5T3JpZ2luRGF0YSkgV2FudHNDb25uZWN0aW9uCiAgICAgRGVzdHJveVN0b3JhZ2VNYXAodWlu
dDY0X3Qgc3RvcmFnZU1hcElEKSBXYW50c0Nvbm5lY3Rpb24KIAotICAgIEdldFZhbHVlcyhzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDY0
X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCkgLT4gKEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IHZhbHVlcykgRGVsYXllZCBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXRWYWx1
ZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEs
IHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpIC0+IChIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgog
CiAgICAgU2V0SXRlbShzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5
T3JpZ2luRGF0YSwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdl
QXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVl
LCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KICAgICBSZW1vdmVJdGVtKHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhLCB1aW50NjRf
dCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0
b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rp
b24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1l
c3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJ
dGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gU2VjSXRlbVNoaW1Qcm94eSB7CiAK
ICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKLSAgICBTZWNJdGVtUmVxdWVzdChXZWJLaXQ6OlNl
Y0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoV2ViS2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRh
IHJlc3BvbnNlKSBEZWxheWVkCisgICAgU2VjSXRlbVJlcXVlc3QoV2ViS2l0OjpTZWNJdGVtUmVx
dWVzdERhdGEgcmVxdWVzdCkgLT4gKFdlYktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YSByZXNwb25z
ZSkgU3luY2hyb25vdXMKICNlbmRpZgogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTc3LDkgKzc3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAKICAgICBSZWxlYXNlUGFnZUNhY2hlKCkKIAotICAgIEZldGNoV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRl
RGF0YSkgRGVsYXllZAotICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBEZWxheWVkCi0gICAgRGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKSBEZWxheWVkCisgICAgRmV0Y2hXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRh
IHdlYnNpdGVEYXRhKSBTeW5jaHJvbm91cworICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBTeW5jaHJvbm91cwor
ICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkgU3luY2hyb25v
dXMKIAogICAgIFNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGlu
dCBtaWxsaXNlY29uZHMpCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC05NSw3ICs5NSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUF1dG9tYXRp
b25TZXNzaW9uUHJveHkoU3RyaW5nIHNlc3Npb25JZGVudGlmaWVyKQogICAgIERlc3Ryb3lBdXRv
bWF0aW9uU2Vzc2lvblByb3h5KCkKIAotICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHko
KSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5l
bnRseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVu
ZCgpCiAgICAgQ2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgp
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjQzMzAwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAK
IAogbWVzc2FnZXMgLT4gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewog
ICAgICMgU2V0IGEgZ2xvYmFsIEphdmFTY3JpcHQgZXhjZXB0aW9uLgotICAgIFNldEV4Y2VwdGlv
bihTdHJpbmcgZXhjZXB0aW9uU3RyaW5nKSAtPiAoKSBEZWxheWVkCisgICAgU2V0RXhjZXB0aW9u
KFN0cmluZyBleGNlcHRpb25TdHJpbmcpIC0+ICgpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCwyMiArMzAsMjIgQEAgbWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFVwZGF0ZShXZWJDb3JlOjpJbnRSZWN0IHBhaW50ZWRSZWN0KQogCiAgICAgIyBS
ZXR1cm5zIGEgUEFDIHN0eWxlIHN0cmluZyB3aXRoIHByb3hpZXMgZm9yIHRoZSBnaXZlbiBVUkwu
Ci0gICAgUHJveGllc0ZvclVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoU3RyaW5nIHByb3hpZXNT
dHJpbmcpIERlbGF5ZWQKKyAgICBQcm94aWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+IChT
dHJpbmcgcHJveGllc1N0cmluZykgU3luY2hyb25vdXMKIAogICAgICMgUmV0dXJucyB0aGUgY29v
a2llcyBmb3IgdGhlIGdpdmVuIFVSTC4KLSAgICBDb29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJp
bmcpIC0+IChTdHJpbmcgY29va2llU3RyaW5nKSBEZWxheWVkCisgICAgQ29va2llc0ZvclVSTChT
dHJpbmcgdXJsU3RyaW5nKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZykgU3luY2hyb25vdXMKIAog
ICAgICMgU2V0cyB0aGUgY29va2llcyBmb3IgdGhlIGdpdmVuIFVSTC4KICAgICBTZXRDb29raWVz
Rm9yVVJMKFN0cmluZyB1cmxTdHJpbmcsIFN0cmluZyBjb29raWVTdHJpbmcpCiAKICAgICAjIEdl
dHMgdGhlIGF1dGhlbnRpY2F0aW9uIGluZm8gZm9yIHRoZSBnaXZlbiBwcm90ZWN0aW9uIHNwYWNl
LgotICAgIEdldEF1dGhlbnRpY2F0aW9uSW5mbyhXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UgcHJv
dGVjdGlvblNwYWNlKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgU3RyaW5nIHVzZXJuYW1lLCBTdHJp
bmcgcGFzc3dvcmQpIERlbGF5ZWQKKyAgICBHZXRBdXRoZW50aWNhdGlvbkluZm8oV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFN0
cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZXRz
IGEgcmVmZXJlbmNlIHRvIHRoZSBwbHVnLWluIGVsZW1lbnQgTlBPYmplY3QuCi0gICAgR2V0UGx1
Z2luRWxlbWVudE5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpbkVsZW1lbnROUE9iamVjdElE
KSBEZWxheWVkCisgICAgR2V0UGx1Z2luRWxlbWVudE5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBs
dWdpbkVsZW1lbnROUE9iamVjdElEKSBTeW5jaHJvbm91cwogCiAgICAgIyBFdmFsdWF0ZXMgdGhl
IGdpdmVuIEphdmFTY3JpcHQgc3RyaW5nLgotICAgIEV2YWx1YXRlKFdlYktpdDo6TlBWYXJpYW50
RGF0YSBucE9iamVjdEFzVmFyaWFudERhdGEsIFN0cmluZyBzY3JpcHRTdHJpbmcsIGJvb2wgYWxs
b3dQb3B1cHMpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVz
dWx0RGF0YSkgRGVsYXllZAorICAgIEV2YWx1YXRlKFdlYktpdDo6TlBWYXJpYW50RGF0YSBucE9i
amVjdEFzVmFyaWFudERhdGEsIFN0cmluZyBzY3JpcHRTdHJpbmcsIGJvb2wgYWxsb3dQb3B1cHMp
IC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkg
U3luY2hyb25vdXMKIAogICAgICMgQ2FuY2VscyB0aGUgZ2l2ZW4gc3RyZWFtIGxvYWQuCiAgICAg
Q2FuY2VsU3RyZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1JRCkKQEAgLTcyLDcgKzcyLDcgQEAgbWVz
c2FnZXMgLT4gUGx1Z2luUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgUExBVEZPUk0oWDEx
KQogICAgICMgQ3JlYXRlIHRoZSBwbHVnaW4gY29udGFpbmVyIGZvciB3aW5kb3dlZCBwbHVnaW5z
Ci0gICAgQ3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKSBEZWxh
eWVkCisgICAgQ3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKSBT
eW5jaHJvbm91cwogCiAgICAgIyBVcGRhdGUgZ2VvbWV0cnkgb2Ygd2luZG93ZWQgcGx1Z2luIHdp
ZGdldAogICAgIFdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoV2ViQ29yZTo6SW50UmVj
dCBmcmFtZVJlY3QsIFdlYkNvcmU6OkludFJlY3QgY2xpcFJlY3QsIHVpbnQ2NF90IHdpbmRvd0lE
KQpAQCAtODIsMTAgKzgyLDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IExlZ2FjeVJlY2Vp
dmVyIHsKICNlbmRpZgogCiAgICAgIyBUZWxscyB0aGUgV2ViUHJvY2VzcyB0aGF0IHRoZSBwbHVn
LWluIHdhcyBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQgYXN5bmNocm9ub3VzbHkKLSAgICBEaWRD
cmVhdGVQbHVnaW4oYm9vbCB3YW50c1doZWVsRXZlbnRzLCB1aW50MzJfdCByZW1vdGVMYXllckNs
aWVudElEKSAtPiAoKSBEZWxheWVkCisgICAgRGlkQ3JlYXRlUGx1Z2luKGJvb2wgd2FudHNXaGVl
bEV2ZW50cywgdWludDMyX3QgcmVtb3RlTGF5ZXJDbGllbnRJRCkgLT4gKCkgU3luY2hyb25vdXMK
ICAgICAKICAgICAjIFRlbGxzIHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIHBsdWctaW4gZmFpbGVk
IHRvIGluaXRpYWxpemUuCi0gICAgRGlkRmFpbFRvQ3JlYXRlUGx1Z2luKCkgLT4gKCkgRGVsYXll
ZAorICAgIERpZEZhaWxUb0NyZWF0ZVBsdWdpbigpIC0+ICgpIFN5bmNocm9ub3VzCiAKICAgICAj
IFRlbGxzIHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIHBsdWctaW4gaGFzIHN0YXJ0ZWQgb3Igc3Rv
cHBlZCBwbGF5aW5nIGF1ZGlvLgogICAgIFNldFBsdWdpbklzUGxheWluZ0F1ZGlvKGJvb2wgcGx1
Z2luSXNQbGF5aW5nQXVkaW8pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI0
MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6Y29ubmVjdGlvblRvCiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7Ci0gICAgc2VuZFN5bmMoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3lu
Y1Rlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyKSwgTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVj
dGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6UmVwbHkoKSk7CisgICAgc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQo
aWRlbnRpZmllciksIE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5h
dGVXb3JrZXJGcm9tQ2xpZW50OjpSZXBseSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTMxLDcgKzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
bwogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgRGVsYXll
ZAorICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKICAgICBGaW5kQ2xpZW50QnlJZGVudGlm
aWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhLCBib29sIGhhc1NlY3VyaXR5
RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRl
bnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnRz
RGF0YSkKICAgICBDbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVy
KQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMjYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03OCwx
MCArNzgsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVw
bGFjZVNlbGVjdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVx
dWVzdEF1dG9jb3JyZWN0aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmlu
ZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKLSAgICBTeW5jQXBwbHlBdXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwg
U3RyaW5nIG9yaWdpbmFsVGV4dCkgLT4gKGJvb2wgYXV0b2NvcnJlY3Rpb25BcHBsaWVkKSBEZWxh
eWVkCisgICAgU3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmlu
ZyBvcmlnaW5hbFRleHQpIC0+IChib29sIGF1dG9jb3JyZWN0aW9uQXBwbGllZCkgU3luY2hyb25v
dXMKICAgICBSZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKICAgICBSZXF1ZXN0RXZhc2lv
blJlY3RzQWJvdmVTZWxlY3Rpb24oKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVj
dHMpIEFzeW5jCi0gICAgR2V0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RydWN0IFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIERlbGF5ZWQKKyAgICBH
ZXRQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0IHJlcXVlc3QpIC0+IChzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgU3luY2hyb25vdXMKICAgICBSZXF1ZXN0UG9zaXRp
b25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCByZXF1ZXN0KQogICAgIFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudEF0UG9zaXRpb24oV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgU3RvcEludGVyYWN0aW9uKCkKQEAgLTEyMyw3ICsx
MjMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgVG91Y2hFdmVudFN5bmMoV2ViS2l0OjpX
ZWJUb3VjaEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgVG91Y2hF
dmVudFN5bmMoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBT
eW5jaHJvbm91cwogI2VuZGlmCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSAmJiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogICAgIFRvdWNoRXZlbnQoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2
ZW50KQpAQCAtMzc3LDcgKzM3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogICAgIERyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBEcmF3
UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJp
bnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6
UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1
aW50MzJfdCBwYWdlQ291bnQpIERlbGF5ZWQKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJp
bnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VD
b3VudCkgU3luY2hyb25vdXMKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAt
NDA3LDcgKzQwNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STSAoR1RLKSAmJiBIQVZFKEdUS19HRVNUVVJFUykKLSAgICBHZXRD
ZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJblZpZXdDb29yZGlu
YXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikgRGVsYXllZAorICAgIEdldENlbnRl
ckZvclpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVz
KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKQEAgLTQxNywxNiArNDE3LDE2IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZs
b2F0UmVjdCB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6
OkZsb2F0UmVjdCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpGbG9hdFBv
aW50IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCiAgICAgU2V0TWFpbkZyYW1lSXNTY3Jv
bGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxlKQogICAgIFJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJp
bGl0eVRva2VucyhJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVuVG9rZW4sIElQQzo6RGF0YVJlZmVy
ZW5jZSB3aW5kb3dUb2tlbikKLSAgICBHZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkg
LT4gKFN0cmluZyBzdHJpbmdWYWx1ZSkgRGVsYXllZAotICAgIEdldERhdGFTZWxlY3Rpb25Gb3JQ
YXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKSBEZWxheWVkCi0gICAgUmVhZFNlbGVjdGlv
bkZyb21QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBE
ZWxheWVkCisgICAgR2V0U3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIC0+IChTdHJpbmcg
c3RyaW5nVmFsdWUpIFN5bmNocm9ub3VzCisgICAgR2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9h
cmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIFN5bmNocm9ub3VzCisgICAgUmVhZFNlbGVjdGlvbkZy
b21QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5j
aHJvbm91cwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgUmVwbGFjZVNlbGVj
dGlvbldpdGhQYXN0ZWJvYXJkRGF0YShWZWN0b3I8U3RyaW5nPiB0eXBlcywgSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGEpCiAjZW5kaWYKIAotICAgIFNob3VsZERlbGF5V2luZG93T3JkZXJpbmdFdmVu
dChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIHJlc3VsdCkgRGVsYXllZAot
ICAgIEFjY2VwdHNGaXJzdE1vdXNlKGludCBldmVudE51bWJlciwgV2ViS2l0OjpXZWJNb3VzZUV2
ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1bHQpIERlbGF5ZWQKKyAgICBTaG91bGREZWxheVdpbmRv
d09yZGVyaW5nRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1
bHQpIFN5bmNocm9ub3VzCisgICAgQWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMK
IAogICAgIFNldFRleHRBc3luYyhTdHJpbmcgdGV4dCkKICAgICBJbnNlcnRUZXh0QXN5bmMoU3Ry
aW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBi
b29sIHJlZ2lzdGVyVW5kb0dyb3VwLCB1aW50MzJfdCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8s
IGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365627</attachid>
            <date>2019-03-21 15:13:14 -0700</date>
            <delta_ts>2019-03-21 15:15:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196113-20190321151313.patch</filename>
            <type>text/plain</type>
            <size>93658</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMzMzQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBACisyMDE5LTAzLTIxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGxhc3Qg
dXNlIG9mIExlZ2FjeVN5bmMgSVBDIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlbmFtZSAiRGVsYXllZCIgdG8gIlN5bmNocm9u
b3VzIiBub3cgdGhhdCB0aGVyZSdzIG9ubHkgb25lIHR5cGUgb2Ygc3luY2hyb25vdXMgbWVzc2Fn
ZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0v
SVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZVN5bmNocm9u
b3VzKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2FudHNDb25uZWN0
aW9uKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZCk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkV2FudHNDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3Nh
Z2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3Rl
ZC5jcHA6CisgICAgICAgIChNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNNZXNzYWdlOjpzZW5k
KToKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpz
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToK
KyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U6OnNlbmQpOiBE
ZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3VwZXJjbGFzcy1leHBl
Y3RlZC5oOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jaHJvbm91c01lc3Nh
Z2U6Om5hbWUpOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jaHJvbm91c01l
c3NhZ2U6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2UpOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3REZWxheWVkTWVzc2FnZTo6cmVjZWl2ZXJOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U6Om5hbWUpOiBEZWxldGVkLgor
ICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3REZWxheWVkTWVzc2FnZTo6VGVzdERlbGF5
ZWRNZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVs
YXllZE1lc3NhZ2U6OmFyZ3VtZW50cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNf
dW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdC1sZWdhY3ktbWVzc2Fn
ZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdC1tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW46CisgICAgICAg
ICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c3luY1Rlcm1p
bmF0ZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKwogMjAxOS0wMy0yMSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU11bbWFjT1NdIEZpeCBzYW5kYm94IGNhbGwgdmlvbGF0aW9u
cwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsy
Myw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBTY2hlZHVsZVJlc291cmNlTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCi0gICAgUGVyZm9ybVN5
bmNocm9ub3VzTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291
cmNlTG9hZFBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4gZGF0YSkgRGVsYXll
ZAorICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNo
YXI+IGRhdGEpIFN5bmNocm9ub3VzCiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxvYWRJ
ZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgUGFnZUxvYWRD
b21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQpAQCAtMzMsMTEgKzMzLDExIEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBTdGFydERvd25sb2FkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBD
b252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJv
b2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgRGVsYXllZAorICAgIENvb2tpZXNGb3JET00oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBTdHJpbmcgY29v
a2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKGJvb2wgZW5hYmxlZCkgRGVsYXllZAotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNv
b2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBEZWxheWVkCi0gICAgR2V0
UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1
Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIC0+IChWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBEZWxheWVkCisgICAgQ29va2llc0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cworICAg
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZv
LCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+
IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1
cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBz
YW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykg
U3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoVVJM
IHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVu
c2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNDYsNyArNDYsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzCiAgICAgUmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQoVVJMIHVybCwgVVJMIHNyY1VSTCwgU3RyaW5nIGZpbGVCYWNrZWRQ
YXRoLCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoVVJM
IHVybCwgVVJMIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpCiAgICAgVW5yZWdp
c3RlckJsb2JVUkwoVVJMIHVybCkKLSAgICBCbG9iU2l6ZShVUkwgdXJsKSAtPiAodWludDY0X3Qg
cmVzdWx0U2l6ZSkgRGVsYXllZAorICAgIEJsb2JTaXplKFVSTCB1cmwpIC0+ICh1aW50NjRfdCBy
ZXN1bHRTaXplKSBTeW5jaHJvbm91cwogICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFZl
Y3RvcjxTdHJpbmc+IGJsb2JVUkxzKSAtPiAoVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzKSBBc3lu
YwogCiAgICAgU2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVu
YWJsZWQpCkBAIC03MSwxNyArNzEsMTcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2NlcwogICAgIFJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBz
b3VyY2VPcmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRp
b25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICBSZXNldE9yaWdp
bkFjY2Vzc1doaXRlbGlzdHMoKTsKIAotICAgIEdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXF1
ZXN0KHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCkgRGVsYXllZAotICAgIEdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25S
ZXNwb25zZSh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSkgRGVsYXllZAotICAgIEdldE5ldHdvcmtMb2FkSW50ZXJt
ZWRpYXRlSW5mb3JtYXRpb24odWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFZl
Y3RvcjxXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJhbnNhY3Rpb25z
KSBEZWxheWVkCi0gICAgVGFrZU5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKHVpbnQ2NF90
IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3Mg
bmV0d29ya01ldHJpY3MpIERlbGF5ZWQKKyAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVx
dWVzdCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya0xvYWRJbmZvcm1h
dGlvblJlc3BvbnNlKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cworICAgIEdldE5ldHdvcmtM
b2FkSW50ZXJtZWRpYXRlSW5mb3JtYXRpb24odWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
cikgLT4gKFZlY3RvcjxXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJh
bnNhY3Rpb25zKSBTeW5jaHJvbm91cworICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0
cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBTeW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0gICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKSBEZWxheWVkCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAg
RXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpIERlbGF5ZWQKKyAgICBFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikgU3luY2hyb25vdXMKICNlbmRpZgogCiAg
ICAgU2V0V2ViUHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZQogICAgIFNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hw
dXRRT1MpCiAgICAgU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2Vu
ZGlmCi0gICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCBlbmFi
bGVkKSAtPiAoKSBEZWxheWVkCisgICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJT
b2NrZXQoYm9vbCBlbmFibGVkKSAtPiAoKSBTeW5jaHJvbm91cwogCiAgICAgU3luY0FsbENvb2tp
ZXMoKQogCkBAIC03Nyw3ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmUKICAgICBQcm9jZXNzRGlkVHJhbnNpdGlvblRvQmFja2dyb3VuZCgpCiAgICAgUHJv
Y2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVncm91bmQoKQogCi0gICAgUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQpIERlbGF5ZWQKKyAgICBQcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBQcmVw
YXJlVG9TdXNwZW5kKCkKICAgICBDYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKICAgICBQcm9jZXNz
RGlkUmVzdW1lKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkw
LDYgKzI5MCwxMiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlclNlCiAg
ICAgbV9jbGllbnRPcmlnaW5zLnJlbW92ZShpdGVyYXRvcik7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciYmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzeW5jVGVybWluYXRlV29ya2VyKFdURk1v
dmUoaWRlbnRpZmllcikpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisgICAgCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2VuZFRvQ29udGV4
dFByb2Nlc3MoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBVJiYgbWVzc2FnZSkKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24mPihjb25uZWN0aW9uKS5zZW5kKFdURk1vdmUobWVzc2FnZSkpOwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAkocmV2aXNpb24gMjQzMzAwKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0
IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYs
IFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpOworICAg
IHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIElQQzo6
Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbnRlbnRDb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCkudG9VSW50
NjQoKTsgfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29u
bmVjdGlvbiB7CiAgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGEgZGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFN0cmluZyB1c2VyQWdlbnQpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiAKLSAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpIExlZ2FjeVN5bmMKKyAgICBTeW5jVGVy
bWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3
b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDcgKzEwMTIsNyBAQCB2b2lk
IENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShzdGQ6OnVuCiAgICAgbV9kaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UgfD0gbWVzc2FnZS0+aXNJbnZhbGlkKCk7CiAgICAgbV9pbkRpc3BhdGNoTWVz
c2FnZUNvdW50LS07CiAKLSAgICAvLyBGSVhNRTogRm9yIERlbGF5ZWQgc3luY2hyb25vdXMgbWVz
c2FnZXMsIHdlIHNob3VsZCBub3QgZGVjcmVtZW50IHRoZSBjb3VudGVyIHVudGlsIHdlIHNlbmQg
YSByZXNwb25zZS4KKyAgICAvLyBGSVhNRTogRm9yIHN5bmNocm9ub3VzIG1lc3NhZ2VzLCB3ZSBz
aG91bGQgbm90IGRlY3JlbWVudCB0aGUgY291bnRlciB1bnRpbCB3ZSBzZW5kIGEgcmVzcG9uc2Uu
CiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBkZWFkbG9jayBpZiBwcm9jZXNzaW5nIHRoZSBt
ZXNzYWdlIHJlc3VsdHMgaW4gYSBzeW5jIG1lc3NhZ2UgYmFjayBhZnRlciB3ZSBleGl0IHRoaXMg
ZnVuY3Rpb24uCiAgICAgaWYgKG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KCkpCiAgICAgICAgIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQtLTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NDcsMjEgKzQ3LDcgQEAgdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQXJnc1R1cGxlJiYgYXJncwog
ICAgIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwob2JqZWN0LCBmdW5jdGlvbiwgc3RkOjpmb3J3YXJk
PEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsKIH0KIAotLy8gRGlzcGF0Y2ggZnVu
Y3Rpb25zIHdpdGggcmVwbHkgYXJndW1lbnRzLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUYsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4uIEFyZ3NJbmRleCwgdHlwZW5h
bWUgUmVwbHlBcmdzVHVwbGUsIHNpemVfdC4uLiBSZXBseUFyZ3NJbmRleD4KLXZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1bmN0aW9uLCBBcmdzVHVwbGUmJiBhcmdz
LCBSZXBseUFyZ3NUdXBsZSYgcmVwbHlBcmdzLCBzdGQ6OmluZGV4X3NlcXVlbmNlPEFyZ3NJbmRl
eC4uLj4sIHN0ZDo6aW5kZXhfc2VxdWVuY2U8UmVwbHlBcmdzSW5kZXguLi4+KQotewotICAgIChv
YmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8QXJnc0luZGV4PihzdGQ6OmZvcndhcmQ8QXJnc1R1
cGxlPihhcmdzKSkuLi4sIHN0ZDo6Z2V0PFJlcGx5QXJnc0luZGV4PihyZXBseUFyZ3MpLi4uKTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVw
bGUsIHR5cGVuYW1lIEFyZ3NJbmRpY2llcyA9IHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6
OnR1cGxlX3NpemU8QXJnc1R1cGxlPjo6dmFsdWU+LCB0eXBlbmFtZSBSZXBseUFyZ3NUdXBsZSwg
dHlwZW5hbWUgUmVwbHlBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8c3Rk
Ojp0dXBsZV9zaXplPFJlcGx5QXJnc1R1cGxlPjo6dmFsdWU+Pgotdm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oQXJnc1R1cGxlJiYgYXJncywgUmVwbHlBcmdzVHVwbGUmIHJlcGx5QXJncywgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKLXsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb25JbXBsKG9iamVjdCwg
ZnVuY3Rpb24sIHN0ZDo6Zm9yd2FyZDxBcmdzVHVwbGU+KGFyZ3MpLCByZXBseUFyZ3MsIEFyZ3NJ
bmRpY2llcygpLCBSZXBseUFyZ3NJbmRpY2llcygpKTsKLX0KLQotLy8gRGlzcGF0Y2ggZnVuY3Rp
b25zIHdpdGggZGVsYXllZCByZXBseSBhcmd1bWVudHMuCisvLyBEaXNwYXRjaCBmdW5jdGlvbnMg
d2l0aCBzeW5jaHJvbm91cyByZXBseSBhcmd1bWVudHMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBD
LCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgQ0gsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgc2l6ZV90Li4u
IEFyZ3NJbmRleD4KIHZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uSW1wbChDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjxDSD4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJnc1R1
cGxlJiYgYXJncywgc3RkOjppbmRleF9zZXF1ZW5jZTxBcmdzSW5kZXguLi4+KQpAQCAtNzUsNyAr
NjEsNyBAQCB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihBcmdzVHVwbGUmJiBhcmdzCiAgICAgY2Fs
bE1lbWJlckZ1bmN0aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc3RkOjpmb3J3YXJkPEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsK
IH0KIAotLy8gRGlzcGF0Y2ggZnVuY3Rpb25zIHdpdGggY29ubmVjdGlvbiBwYXJhbWV0ZXIgd2l0
aCBkZWxheWVkIHJlcGx5IGFyZ3VtZW50cy4KKy8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIGNv
bm5lY3Rpb24gcGFyYW1ldGVyIHdpdGggc3luY2hyb25vdXMgcmVwbHkgYXJndW1lbnRzLgogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIENILCB0eXBlbmFtZSBB
cmdzVHVwbGUsIHNpemVfdC4uLiBBcmdzSW5kZXg+CiB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbklt
cGwoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbiwgQ29tcGxl
dGlvbkhhbmRsZXI8Q0g+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3NUdXBsZSYmIGFyZ3MsIHN0
ZDo6aW5kZXhfc2VxdWVuY2U8QXJnc0luZGV4Li4uPikKQEAgLTEwMywyMCArODksNiBAQCB2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uJiBjb25uCiAgICAgY2FsbE1lbWJlckZ1bmN0
aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBjb25uZWN0aW9uLCBzdGQ6OmZvcndhcmQ8QXJnc1R1
cGxlPihhcmdzKSwgQXJnc0luZGljaWVzKCkpOwogfQogCi0vLyBEaXNwYXRjaCBmdW5jdGlvbnMg
d2l0aCBjb25uZWN0aW9uIHBhcmFtZXRlciB3aXRoIHJlcGx5IGFyZ3VtZW50cy4KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVwbGUsIHNpemVfdC4u
LiBBcmdzSW5kZXgsIHR5cGVuYW1lIFJlcGx5QXJnc1R1cGxlLCBzaXplX3QuLi4gUmVwbHlBcmdz
SW5kZXg+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwoQyogb2JqZWN0LCBNRiBmdW5jdGlv
biwgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgUmVwbHlBcmdzVHVw
bGUmIHJlcGx5QXJncywgc3RkOjppbmRleF9zZXF1ZW5jZTxBcmdzSW5kZXguLi4+LCBzdGQ6Omlu
ZGV4X3NlcXVlbmNlPFJlcGx5QXJnc0luZGV4Li4uPikKLXsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGNvbm5lY3Rpb24sIHN0ZDo6Z2V0PEFyZ3NJbmRleD4oc3RkOjpmb3J3YXJkPEFyZ3NUdXBs
ZT4oYXJncykpLi4uLCBzdGQ6OmdldDxSZXBseUFyZ3NJbmRleD4ocmVwbHlBcmdzKS4uLik7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgQXJnc1R1cGxl
LCB0eXBlbmFtZSBBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8c3RkOjp0
dXBsZV9zaXplPEFyZ3NUdXBsZT46OnZhbHVlPiwgdHlwZW5hbWUgUmVwbHlBcmdzVHVwbGUsIHR5
cGVuYW1lIFJlcGx5QXJnc0luZGljaWVzID0gc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0ZDo6
dHVwbGVfc2l6ZTxSZXBseUFyZ3NUdXBsZT46OnZhbHVlPj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0
aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIFJlcGx5QXJnc1R1
cGxlJiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCi17Ci0gICAgY2FsbE1lbWJl
ckZ1bmN0aW9uSW1wbChvYmplY3QsIGZ1bmN0aW9uLCBjb25uZWN0aW9uLCBzdGQ6OmZvcndhcmQ8
QXJnc1R1cGxlPihhcmdzKSwgcmVwbHlBcmdzLCBBcmdzSW5kaWNpZXMoKSwgUmVwbHlBcmdzSW5k
aWNpZXMoKSk7Ci19Ci0KIC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xNDgsMzQgKzEyMCw2IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShEZWNvZGVy
JiBkZWNvZGVyLCBDKiAKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VMZWdhY3lTeW5jKERlY29kZXImIGRlY29kZXIs
IEVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKLXsKLSAgICB0
eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUgYXJndW1lbnRz
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewotICAgICAgICBBU1NFUlQo
ZGVjb2Rlci5pc0ludmFsaWQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0eXBl
bmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OlJlcGx5Pjo6VHlwZSByZXBseUFyZ3VtZW50czsK
LSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oV1RGTW92ZShhcmd1bWVudHMpLCByZXBseUFyZ3VtZW50
cywgb2JqZWN0LCBmdW5jdGlvbik7Ci0gICAgcmVwbHlFbmNvZGVyIDw8IHJlcGx5QXJndW1lbnRz
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZv
aWQgaGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2Rl
ciYgZGVjb2RlciwgRW5jb2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9u
KQotewotICAgIHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlw
ZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7Ci0gICAg
ICAgIEFTU0VSVChkZWNvZGVyLmlzSW52YWxpZCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6UmVwbHk+OjpUeXBlIHJlcGx5
QXJndW1lbnRzOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAgICByZXBseUVu
Y29kZXIgPDwgcmVwbHlBcmd1bWVudHM7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgogdm9pZCBoYW5kbGVNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIERlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAg
dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBlbmFtZSBUOjpBcmd1bWVudHM+OjpUeXBlIGFyZ3VtZW50
czsKQEAgLTE4Nyw3ICsxMzEsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiYgY29u
bmVjdGlvCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1G
Pgotdm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzKENvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVu
YW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZSBhcmd1bWVudHM7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7CkBAIC0yMDIsNyArMTQ2LDcgQEAg
dm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0aW9uJiBjbwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZURl
bGF5ZWRXYW50c0Nvbm5lY3Rpb24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+JiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91c1dhbnRzQ29ubmVjdGlv
bihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8RW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUgYXJndW1l
bnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewpJbmRleDogU291cmNl
L1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC02OSwyOCArNjksMjggQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5
IExlZ2FjeQogICAgIEhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IG1vdXNl
RXZlbnQpCiAgICAgCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSB3aGVlbCBldmVudCBzaG91bGQg
YmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpXZWJXaGVlbEV2ZW50
IHdoZWVsRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIERlbGF5ZWQKKyAgICBIYW5kbGVXaGVlbEV2
ZW50KFdlYktpdDo6V2ViV2hlZWxFdmVudCB3aGVlbEV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBT
eW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSBlbnRlciBldmVudCBzaG91bGQg
YmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZU1vdXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgRGVsYXllZAorICAgIEhhbmRsZU1v
dXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wg
aGFuZGxlZCkgU3luY2hyb25vdXMKICAgICAKICAgICAjIFNlbnQgd2hlbiBhIG1vdXNlIGxlYXZl
IGV2ZW50IHNob3VsZCBiZSBwcm9jZXNzZWQuCi0gICAgSGFuZGxlTW91c2VMZWF2ZUV2ZW50KFdl
YktpdDo6V2ViTW91c2VFdmVudCBtb3VzZUV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVk
CisgICAgSGFuZGxlTW91c2VMZWF2ZUV2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBtb3VzZUV2
ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gYSBr
ZXlib2FyZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZUtleWJvYXJkRXZlbnQoV2Vi
S2l0OjpXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIERl
bGF5ZWQKKyAgICBIYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBr
ZXlib2FyZEV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogICAgIAogICAgICMg
U2VudCB3aGVuIGFuIGVkaXRpbmcgY29tbWFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhh
bmRsZUVkaXRpbmdDb21tYW5kKFN0cmluZyBjb21tYW5kTmFtZSwgU3RyaW5nIGFyZ3VtZW50KSAt
PiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgSGFuZGxlRWRpdGluZ0NvbW1hbmQoU3RyaW5n
IGNvbW1hbmROYW1lLCBTdHJpbmcgYXJndW1lbnQpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9u
b3VzCiAgICAgCiAgICAgIyBSZXR1cm4gd2hldGhlciBvciBub3QgYSBwbHVnaW4gd2FudHMgdG8g
ZW5hYmxlIHRoZSBnaXZlbiBlZGl0aW5nIGNvbW1hbmQuCi0gICAgSXNFZGl0aW5nQ29tbWFuZEVu
YWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAtPiAoYm9vbCBlbmFibGVkKSBEZWxheWVkCisgICAg
SXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAtPiAoYm9vbCBlbmFi
bGVkKSBTeW5jaHJvbm91cwogICAgIAogICAgICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1
Z2luIHdhbnRzIHRvIGhhbmRsZSBwYWdlIHNjYWxlIGZhY3RvciBpdHNlbGYuCi0gICAgSGFuZGxl
c1BhZ2VTY2FsZUZhY3RvcigpIC0+IChib29sIGVuYWJsZWQpIERlbGF5ZWQKKyAgICBIYW5kbGVz
UGFnZVNjYWxlRmFjdG9yKCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKIAogICAgICMg
UmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1Z2luIHdhbnRzIHBhZ2Ugc2NhbGUsIHBhZ2Ugem9v
bSwgYW5kIHRleHQgem9vbSBhbGwgdG8gYWZmZWN0IHBhZ2Ugc2NhbGUuCi0gICAgUmVxdWlyZXNV
bmlmaWVkU2NhbGVGYWN0b3IoKSAtPiAoYm9vbCByZXF1aXJlZCkgRGVsYXllZAorICAgIFJlcXVp
cmVzVW5pZmllZFNjYWxlRmFjdG9yKCkgLT4gKGJvb2wgcmVxdWlyZWQpIFN5bmNocm9ub3VzCiAK
ICAgICAjIFNlbnQgd2hlbiB0aGUgcGx1Zy1pbiBmb2N1cyBjaGFuZ2VzLgogICAgIFNldEZvY3Vz
KGJvb2wgaXNGb2N1c2VkKQpAQCAtOTksMTAgKzk5LDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNv
bnRyb2xsZXJQcm94eSBMZWdhY3kKICAgICBEaWRVcGRhdGUoKQogCiAgICAgIyBQYWludCB0aGUg
ZW50aXJlIHBsdWctaW4uCi0gICAgUGFpbnRFbnRpcmVQbHVnaW4oKSAtPiAoKSBEZWxheWVkCisg
ICAgUGFpbnRFbnRpcmVQbHVnaW4oKSAtPiAoKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZXQgYSBy
ZWZlcmVuY2UgdG8gdGhlIHBsdWctaW4ncyBzY3JpcHRhYmxlIE5QT2JqZWN0LgotICAgIEdldFBs
dWdpblNjcmlwdGFibGVOUE9iamVjdCgpIC0+ICh1aW50NjRfdCBwbHVnaW5TY3JpcHRhYmxlTlBP
YmplY3RJRCkgRGVsYXllZAorICAgIEdldFBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIC0+ICh1
aW50NjRfdCBwbHVnaW5TY3JpcHRhYmxlTlBPYmplY3RJRCkgU3luY2hyb25vdXMKIAogICAgICMg
U2VudCB3aGVuIHRoZSBjb250YWluaW5nIE5TV2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdp
bmRvd0ZvY3VzQ2hhbmdlZChib29sIGhhc0ZvY3VzKQpAQCAtMTIyLDEwICsxMjIsMTAgQEAgbWVz
c2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5IExlZ2FjeQogI2VuZGlmCiAKICAgICAjIERv
ZXMgdGhlIHBsdWdpbiBzdXBwb3J0IHNuYXBzaG90dGluZz8KLSAgICBTdXBwb3J0c1NuYXBzaG90
dGluZygpIC0+IChib29sIGlzU3VwcG9ydGVkKSBEZWxheWVkCisgICAgU3VwcG9ydHNTbmFwc2hv
dHRpbmcoKSAtPiAoYm9vbCBpc1N1cHBvcnRlZCkgU3luY2hyb25vdXMKIAogICAgICMgUmV0dXJu
IGEgc25hcHNob3Qgb2YgdGhlIHBsdWdpbi4KLSAgICBTbmFwc2hvdCgpIC0+IChXZWJLaXQ6OlNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGJhY2tpbmdTdG9yZUhhbmRsZSkgRGVsYXllZAorICAgIFNu
YXBzaG90KCkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgYmFja2luZ1N0b3Jl
SGFuZGxlKSBTeW5jaHJvbm91cwogCiAgICAgIyBTZW50IHdoZW4gc3RvcmFnZSBibG9ja2luZyBw
b2xpY3kgY2hhbmdlcwogICAgIFN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZChib29sIHN0b3Jh
Z2VCbG9ja2luZ0VuYWJsZWQpCkBAIC0xMzQsNyArMTM0LDcgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
Q29udHJvbGxlclByb3h5IExlZ2FjeQogICAgIFByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIAogICAgICMgR2V0cyB0aGUgc3RyaW5nIHJl
cHJlc2VudGF0aW5nIHRoZSBmb3JtIHZhbHVlIG9mIHRoZSBwbHVnLWluCi0gICAgR2V0Rm9ybVZh
bHVlKCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFN0cmluZyBmb3JtVmFsdWUpIERlbGF5ZWQKKyAg
ICBHZXRGb3JtVmFsdWUoKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgU3RyaW5nIGZvcm1WYWx1ZSkg
U3luY2hyb25vdXMKIAogICAgICMgU2VudCB3aGVuIHRoZSBicm93c2VyIHdhbnRzIHRvIG11dGUg
b3IgdW5tdXRlIHRoZSBwbHVnaW4uCiAgICAgTXV0ZWRTdGF0ZUNoYW5nZWQoYm9vbCBtdXRlZCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMjQsMTMgKzI0LDEzIEBACiAKIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIENyZWF0ZXMgYSBwbHVnLWluIGlu
c3RhbmNlIHVzaW5nIHRoZSBnaXZlbiBjcmVhdGlvbiBwYXJhbWV0ZXJzLgotICAgIENyZWF0ZVBs
dWdpbihzdHJ1Y3QgV2ViS2l0OjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgcGx1Z2luQ3JlYXRp
b25QYXJhbWV0ZXJzKSAtPiAoYm9vbCBjcmVhdGlvblJlc3VsdCwgYm9vbCB3YW50c1doZWVsRXZl
bnRzLCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKSBEZWxheWVkCisgICAgQ3JlYXRlUGx1
Z2luKHN0cnVjdCBXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyBwbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMpIC0+IChib29sIGNyZWF0aW9uUmVzdWx0LCBib29sIHdhbnRzV2hlZWxFdmVu
dHMsIHVpbnQzMl90IHJlbW90ZUxheWVyQ2xpZW50SUQpIFN5bmNocm9ub3VzCiAKICAgICAjIENy
ZWF0ZXMgYSBwbHVnLWluIGluc3RhbmNlIGFzeW5jaHJvbm91c2x5IHVzaW5nIHRoZSBnaXZlbiBj
cmVhdGlvbiBwYXJhbWV0ZXJzLgogICAgIENyZWF0ZVBsdWdpbkFzeW5jaHJvbm91c2x5KHN0cnVj
dCBXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyBwbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMpCiAKICAgICAjIERlc3Ryb3lzIHRoZSBwbHVnLWluIGluc3RhbmNlIHdpdGggdGhlIGdpdmVu
IGluc3RhbmNlIElELgotICAgIERlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJ
RCwgYm9vbCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpIC0+ICgpIERlbGF5ZWQKKyAg
ICBEZXN0cm95UGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGJvb2wgYXN5bmNocm9u
b3VzQ3JlYXRpb25JbmNvbXBsZXRlKSAtPiAoKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4
cGVjdGVkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xl
Z2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDExICsxNzYsMTEgQEAgdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpIHsKLSAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlRGVs
YXllZDxNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5l
Y3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlU3luY2hyb25vdXM8
TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihjb25uZWN0aW9u
LCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6
bmFtZSgpKSB7Ci0gICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWRXYW50c0Nvbm5lY3Rp
b248TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3RNdWx0aXBsZUF0dHJp
YnV0ZXMpOworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91c1dhbnRzQ29ubmVj
dGlvbjxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlcz4oY29ubmVjdGlv
biwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdE11bHRpcGxlQXR0
cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgUExBVEZPUk0oTUFDKQpJbmRl
eDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJl
Y2VpdmVyLWV4cGVjdGVkLmNwcAkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzYsMTEgKzE3NiwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Om5h
bWUoKSkgewotICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOwor
ICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91czxNZXNzYWdlczo6V2ViUGFnZTo6
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5j
b2RlciwgdGhpcywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpuYW1lKCkpIHsKLSAgICAgICAg
SVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZFdhbnRzQ29ubmVjdGlvbjxNZXNzYWdlczo6V2ViUGFn
ZTo6VGVzdE11bHRpcGxlQXR0cmlidXRlcz4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdE11bHRpcGxlQXR0cmlidXRlcyk7CisgICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2FudHNDb25uZWN0aW9uPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNpZiBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0ZWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3Vw
ZXJjbGFzcy1leHBlY3RlZC5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksMTMgQEAgdm9pZCBUZXN0QXN5bmNNZXNzYWdlV2l0
aE11bHRpcGxlQXJndW1lbgogCiAjZW5kaWYKIAotdm9pZCBUZXN0RGVsYXllZE1lc3NhZ2U6OnNl
bmQoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4mIG9w
dGlvbmFsUmVwbHkpCit2b2lkIFRlc3RTeW5jTWVzc2FnZTo6c2VuZChzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWlu
dDhfdCByZXBseSkKK3sKKyAgICAqZW5jb2RlciA8PCByZXBseTsKKyAgICBjb25uZWN0aW9uLnNl
bmRTeW5jUmVwbHkoV1RGTW92ZShlbmNvZGVyKSk7Cit9CisKK3ZvaWQgVGVzdFN5bmNocm9ub3Vz
TWVzc2FnZTo6c2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xh
c3NOYW1lPiYgb3B0aW9uYWxSZXBseSkKIHsKICAgICAqZW5jb2RlciA8PCBvcHRpb25hbFJlcGx5
OwogICAgIGNvbm5lY3Rpb24uc2VuZFN5bmNSZXBseShXVEZNb3ZlKGVuY29kZXIpKTsKQEAgLTE2
MSwxMSArMTY3LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb24K
IHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jTWVzc2FnZTo6bmFtZSgpKSB7Ci0gICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNNZXNzYWdlPihkZWNv
ZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFN5bmNNZXNzYWdlKTsKKyAg
ICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlU3luY2hyb25vdXM8TWVzc2FnZXM6OldlYlBhZ2U6OlRl
c3RTeW5jTWVzc2FnZT4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAm
V2ViUGFnZTo6dGVzdFN5bmNNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXll
ZE1lc3NhZ2U6Om5hbWUoKSkgewotICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1l
c3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U+KGNvbm5lY3Rpb24sIGRlY29kZXIs
IHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3REZWxheWVkTWVzc2FnZSk7CisgICAg
aWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFN5bmNo
cm9ub3VzTWVzc2FnZTo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZVN5bmNo
cm9ub3VzPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0U3luY2hyb25v
dXNNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzU3Vw
ZXJjbGFzcy1leHBlY3RlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVkLmgJKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw2ICsxNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSgiVGVzdFN5bmNNZXNzYWdlIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0
cnVlOwogCisgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50OF90IHJlcGx5KT47CisgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50OF90IHJlcGx5KTsKICAgICB0eXBl
ZGVmIHN0ZDo6dHVwbGU8dWludDhfdCY+IFJlcGx5OwogICAgIGV4cGxpY2l0IFRlc3RTeW5jTWVz
c2FnZSh1aW50MzJfdCBwYXJhbSkKICAgICAgICAgOiBtX2FyZ3VtZW50cyhwYXJhbSkKQEAgLTE2
OSwxOCArMTcxLDE4IEBAIHByaXZhdGU6CiAgICAgQXJndW1lbnRzIG1fYXJndW1lbnRzOwogfTsK
IAotY2xhc3MgVGVzdERlbGF5ZWRNZXNzYWdlIHsKK2NsYXNzIFRlc3RTeW5jaHJvbm91c01lc3Nh
Z2UgewogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxib29sPiBBcmd1bWVudHM7CiAK
ICAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdERlbGF5ZWRNZXNzYWdl
Iik7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0U3luY2hyb25vdXNNZXNzYWdlIik7IH0KICAgICBzdGF0
aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05h
bWU+JiBvcHRpb25hbFJlcGx5KT47CiAgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBPcHRpb25hbDxXZWJL
aXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKICAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8T3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPiY+IFJlcGx5OwotICAgIGV4cGxpY2l0
IFRlc3REZWxheWVkTWVzc2FnZShib29sIHZhbHVlKQorICAgIGV4cGxpY2l0IFRlc3RTeW5jaHJv
bm91c01lc3NhZ2UoYm9vbCB2YWx1ZSkKICAgICAgICAgOiBtX2FyZ3VtZW50cyh2YWx1ZSkKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCw4IEBAIGZyb20gd2Via2l0IGltcG9y
dCBwYXJzZXIKIAogV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUgPSAnV2FudHNDb25uZWN0aW9u
JwogTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSA9ICdMZWdhY3lSZWNlaXZlcicKLURFTEFZRURf
QVRUUklCVVRFID0gJ0RlbGF5ZWQnCitTWU5DSFJPTk9VU19BVFRSSUJVVEUgPSAnU3luY2hyb25v
dXMnCiBBU1lOQ19BVFRSSUJVVEUgPSAnQXN5bmMnCi1MRUdBQ1lfU1lOQ19BVFRSSUJVVEUgPSAn
TGVnYWN5U3luYycKIAogX2xpY2Vuc2VfaGVhZGVyID0gIiIiLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTEzMCw5ICsxMjks
OSBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgYXN5bmNNZXNzYWdl
UmVwbHlOYW1lKCkgeyByZXR1cm4geyAiJXNSZXBseSIgfTsgfVxuJyAlIG1lc3NhZ2UubmFtZSkK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBBc3luY1JlcGx5JykKLSAgICAg
ICAgZWxpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpOgorICAgICAg
ICBlbGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIERlbGF5ZWRSZXBseScpCi0gICAgICAg
IGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShB
U1lOQ19BVFRSSUJVVEUpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCglcyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJicpCiAgICAgICAgICAgICBp
ZiBsZW4oc2VuZF9wYXJhbWV0ZXJzKToKQEAgLTMwNCwyMCArMzAzLDE4IEBAIGRlZiBhc3luY19t
ZXNzYWdlX3N0YXRlbWVudChyZWNlaXZlciwgbWUKIAogZGVmIHN5bmNfbWVzc2FnZV9zdGF0ZW1l
bnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIGRpc3BhdGNoX2Z1bmN0aW9uID0gJ2hhbmRsZU1l
c3NhZ2UnCi0gICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToK
LSAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0RlbGF5ZWQnCisgICAgaWYgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6CisgICAgICAgIGRpc3BhdGNoX2Z1
bmN0aW9uICs9ICdTeW5jaHJvbm91cycKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KFdBTlRTX0NPTk5FQ1RJT05fQVRUUklCVVRFKToKICAgICAgICAgICAgIGRpc3BhdGNoX2Z1bmN0
aW9uICs9ICdXYW50c0Nvbm5lY3Rpb24nCiAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFT
WU5DX0FUVFJJQlVURSk6CiAgICAgICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKLSAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1NZTkNfQVRUUklCVVRFKToKLSAgICAg
ICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0xlZ2FjeVN5bmMnCiAKLSAgICB3YW50c19jb25uZWN0
aW9uID0gbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdl
Lmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpCisgICAgd2FudHNfY29u
bmVjdGlvbiA9IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShXQU5UU19DT05ORUNUSU9OX0FUVFJJQlVURSkKIAogICAg
IHJlc3VsdCA9IFtdCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VO
YW1lKCkgPT0gTWVzc2FnZXM6OiVzOjolczo6bmFtZSgpKSB7XG4nICUgKHJlY2VpdmVyLm5hbWUs
IG1lc3NhZ2UubmFtZSkpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBJUEM6OiVzPE1lc3Nh
Z2VzOjolczo6JXM+KCVzZGVjb2RlciwgJXNyZXBseUVuY29kZXIsIHRoaXMsICYlcyk7XG4nICUg
KGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0
aW9uLCAnIGlmIHdhbnRzX2Nvbm5lY3Rpb24gZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNf
QVRUUklCVVRFKSBlbHNlICcqJywgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSkp
KQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgSVBDOjolczxNZXNzYWdlczo6JXM6OiVzPigl
c2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xuJyAlIChkaXNwYXRjaF9mdW5j
dGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29ubmVjdGlvbiwgJyBpZiB3YW50
c19jb25uZWN0aW9uIGVsc2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJP
Tk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
IGVsc2UgJyonLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKSkpCiAgICAgcmVz
dWx0LmFwcGVuZCgnICAgICAgICByZXR1cm47XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB9
XG4nKQogICAgIHJldHVybiBzdXJyb3VuZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBt
ZXNzYWdlLmNvbmRpdGlvbikKQEAgLTU1NSw3ICs1NTIsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2Fn
ZV9oYW5kbGVyKGZpbGUpOgogCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtdCiAg
ICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2Uu
cmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZ
RURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6
CisgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgogICAgICAgICAgICAgZGVsYXllZF9vcl9hc3luY19t
ZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKIAogICAgIGlmIGRlbGF5ZWRfb3JfYXN5bmNfbWVzc2Fn
ZXM6CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNf
dW5pdHRlc3QucHkJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsyODAs
NyBAQCBfZXhwZWN0ZWRfc3VwZXJjbGFzc19yZXN1bHRzID0gewogICAgICAgICAgICAgJ2NvbmRp
dGlvbnMnOiAoTm9uZSksCiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgICduYW1l
JzogJ1Rlc3REZWxheWVkTWVzc2FnZScsCisgICAgICAgICAgICAnbmFtZSc6ICdUZXN0U3luY2hy
b25vdXNNZXNzYWdlJywKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAogICAgICAgICAgICAg
ICAgICgnYm9vbCcsICd2YWx1ZScpLAogICAgICAgICAgICAgKSwKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdC1sZWdhY3ktbWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LWxlZ2Fj
eS1tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDUsOSArNDUsOSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDcmVhdGVQbHVnaW4odWludDY0X3QgcGx1
Z2luSW5zdGFuY2VJRCwgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4g
KGJvb2wgcmVzdWx0KQogICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgbWVzc2FnZSkgLT4gKCkKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zKQotICAgIEdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKFN0cmluZyBwbHVnaW5QYXRoKSAtPiAoSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUg
Y29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KFN0cmluZyBwbHVnaW5QYXRoKSAtPiAoSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUgY29ubmVjdGlv
bkhhbmRsZSkgU3luY2hyb25vdXMKIAotICAgIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMoKSAtPiAo
KSBXYW50c0Nvbm5lY3Rpb24gRGVsYXllZAorICAgIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMoKSAt
PiAoKSBXYW50c0Nvbm5lY3Rpb24gU3luY2hyb25vdXMKIAogICAgIFRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzKFtBdHRyaWJ1dGVPbmUgQXR0cmlidXRlVHdvXSB1aW50NjRfdCBmb28sIGRvdWJsZSBi
YXIsIFtBdHRyaWJ1dGVUaHJlZV0gZG91YmxlIGJheikKIApJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0LW1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdC1tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysg
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0LW1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw5ICs1Miw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIENyZWF0ZVBs
dWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKSAtPiAoYm9vbCByZXN1bHQpCiAgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBtZXNzYWdlKSAtPiAoKQogICAgIEdldFBsdWdpbnMoYm9v
bCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMpCi0gICAg
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oU3RyaW5nIHBsdWdpblBhdGgpIC0+IChJUEM6OkNv
bm5lY3Rpb246OkhhbmRsZSBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAgR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24oU3RyaW5nIHBsdWdpblBhdGgpIC0+IChJUEM6OkNvbm5lY3Rpb246
OkhhbmRsZSBjb25uZWN0aW9uSGFuZGxlKSBTeW5jaHJvbm91cwogCi0gICAgVGVzdE11bHRpcGxl
QXR0cmlidXRlcygpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbiBEZWxheWVkCisgICAgVGVzdE11bHRp
cGxlQXR0cmlidXRlcygpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbiBTeW5jaHJvbm91cwogCiAgICAg
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMoW0F0dHJpYnV0ZU9uZSBBdHRyaWJ1dGVUd29dIHVpbnQ2
NF90IGZvbywgZG91YmxlIGJhciwgW0F0dHJpYnV0ZVRocmVlXSBkb3VibGUgYmF6KQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Qtc3VwZXJjbGFzcy1tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Qtc3VwZXJj
bGFzcy1tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0LXN1cGVyY2xhc3MtbWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSA6IFdlYlBhZ2VCYXNlIHsKICAgICBU
ZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzKCkgLT4gKCkgQXN5bmMKICAgICBUZXN0QXN5
bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzKCkgLT4gKGJvb2wgZmxhZywgdWludDY0X3Qg
dmFsdWUpIEFzeW5jCiAjZW5kaWYKLSAgICBUZXN0U3luY01lc3NhZ2UodWludDMyX3QgcGFyYW0p
IC0+ICh1aW50OF90IHJlcGx5KSBTeW5jCi0gICAgVGVzdERlbGF5ZWRNZXNzYWdlKGJvb2wgdmFs
dWUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+IG9wdGlvbmFsUmVwbHkpIERl
bGF5ZWQKKyAgICBUZXN0U3luY01lc3NhZ2UodWludDMyX3QgcGFyYW0pIC0+ICh1aW50OF90IHJl
cGx5KSBTeW5jaHJvbm91cworICAgIFRlc3RTeW5jaHJvbm91c01lc3NhZ2UoYm9vbCB2YWx1ZSkg
LT4gKE9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4gb3B0aW9uYWxSZXBseSkgU3luY2hy
b25vdXMKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjYsMTIg
KzI2LDEyIEBACiAKIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IHsKIAot
ICAgIEF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpIC0+IChWZWN0b3I8U3RyaW5nPiBhdmFpbGFi
bGVQYXltZW50TmV0d29ya3MpIERlbGF5ZWQKLSAgICBDYW5NYWtlUGF5bWVudHMoKSAtPiAoYm9v
bCByZXN1bHQpIERlbGF5ZWQKKyAgICBBdmFpbGFibGVQYXltZW50TmV0d29ya3MoKSAtPiAoVmVj
dG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKSBTeW5jaHJvbm91cworICAgIENh
bk1ha2VQYXltZW50cygpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBDYW5NYWtl
UGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcg
ZG9tYWluTmFtZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBjYW5NYWtlUGF5
bWVudHMpIEFzeW5jCiAgICAgT3BlblBheW1lbnRTZXR1cChTdHJpbmcgbWVyY2hhbnRJZGVudGlm
aWVyLCBTdHJpbmcgZG9tYWluTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwogCi0gICAgU2hv
d1BheW1lbnRVSSh1aW50NjRfdCBkZXN0aW5hdGlvbklELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0cmluZyBvcmlnaW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25V
UkxTdHJpbmdzLCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50
UmVxdWVzdCkgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCisgICAgU2hvd1BheW1lbnRVSSh1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBvcmln
aW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4gKGJv
b2wgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIENvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKFdl
YkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1lcmNoYW50U2Vzc2lvbikKICAg
ICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCiAgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiB1cGRhdGUpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMv
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDE2ICsyMywxNiBAQAogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogCiBtZXNzYWdlcyAtPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZl
ciBMZWdhY3lSZWNlaXZlciB7Ci0gICAgRGVhbGxvY2F0ZSgpIC0+ICgpIERlbGF5ZWQKLSAgICBI
YXNNZXRob2QoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1ldGhvZE5hbWUpIC0+IChib29sIHJl
dHVyblZhbHVlKSBEZWxheWVkCi0gICAgSW52b2tlKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBt
ZXRob2ROYW1lLCBWZWN0b3I8V2ViS2l0OjpOUFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAt
PiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIERl
bGF5ZWQKLSAgICBJbnZva2VEZWZhdWx0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFyaWFudERhdGE+IGFy
Z3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEg
cmVzdWx0RGF0YSkgRGVsYXllZAotICAgIEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVy
RGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBEZWxheWVkCi0gICAgR2V0
UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSkgLT4gKGJvb2wg
cmV0dXJuVmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBEZWxheWVkCi0g
ICAgU2V0UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSwgV2Vi
S2l0OjpOUFZhcmlhbnREYXRhIHByb3BlcnR5VmFsdWVEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1
ZSkgRGVsYXllZAotICAgIFJlbW92ZVByb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBw
cm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBEZWxheWVkCi0gICAgRW51bWVyYXRl
KCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFZlY3RvcjxXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGE+
IGlkZW50aWZpZXJzRGF0YSkgRGVsYXllZAotICAgIENvbnN0cnVjdChWZWN0b3I8V2ViS2l0OjpO
UFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0
OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIERlbGF5ZWQKKyAgICBEZWFsbG9jYXRlKCkgLT4g
KCkgU3luY2hyb25vdXMKKyAgICBIYXNNZXRob2QoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1l
dGhvZE5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEludm9rZShX
ZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgbWV0aG9kTmFtZSwgVmVjdG9yPFdlYktpdDo6TlBWYXJp
YW50RGF0YT4gYXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFdlYktpdDo6TlBW
YXJpYW50RGF0YSByZXN1bHREYXRhKSBTeW5jaHJvbm91cworICAgIEludm9rZURlZmF1bHQoVmVj
dG9yPFdlYktpdDo6TlBWYXJpYW50RGF0YT4gYXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJu
VmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBTeW5jaHJvbm91cworICAg
IEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChi
b29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEdldFByb3BlcnR5KFdlYktpdDo6TlBJ
ZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6
Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkgU3luY2hyb25vdXMKKyAgICBTZXRQcm9wZXJ0eShX
ZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lLCBXZWJLaXQ6Ok5QVmFyaWFudERh
dGEgcHJvcGVydHlWYWx1ZURhdGEpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwor
ICAgIFJlbW92ZVByb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUp
IC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cworICAgIEVudW1lcmF0ZSgpIC0+IChi
b29sIHJldHVyblZhbHVlLCBWZWN0b3I8V2ViS2l0OjpOUElkZW50aWZpZXJEYXRhPiBpZGVudGlm
aWVyc0RhdGEpIFN5bmNocm9ub3VzCisgICAgQ29uc3RydWN0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFy
aWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5Q
VmFyaWFudERhdGEgcmVzdWx0RGF0YSkgU3luY2hyb25vdXMKIH0KIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAyNDMzMjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NSwxMiArNDQ1LDEyIEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXMKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkR29Ub0l0ZW06Om5hbWUoKSkgewotICAgICAgICBJUEM6
OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJk
R29Ub0l0ZW0+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJlByb3Zp
c2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKTsKKyAgICAgICAgSVBDOjpoYW5k
bGVNZXNzYWdlU3luY2hyb25vdXM8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRH
b1RvSXRlbT4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAmUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6bmFtZSgpKSB7Ci0g
ICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM+KGNvbm5lY3Rpb24sIGRlY29kZXIs
IHJlcGx5RW5jb2RlciwgdGhpcywgJlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZVN5bmNo
cm9ub3VzPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcg
QEAKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIG1lc3NhZ2VzIC0+IFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkgewotICAgIFN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2Fy
ZCkgLT4gKGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKSBEZWxheWVkCisgICAgU3VwcG9ydHNGdWxs
U2NyZWVuKGJvb2wgd2l0aEtleWJvYXJkKSAtPiAoYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4pIFN5
bmNocm9ub3VzCiAgICAgRW50ZXJGdWxsU2NyZWVuKCkKICAgICBFeGl0RnVsbFNjcmVlbigpCiAg
ICAgQmVnYW5FbnRlckZ1bGxTY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgV2Vi
Q29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMjcpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDIwICsyMiwyMCBAQAogCiBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
ICMgVUkgbWVzc2FnZXMKLSAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5m
b0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlv
bkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+ICh1aW50NjRfdCBuZXdQYWdlSUQsIE9wdGlv
bmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMp
IERlbGF5ZWQKKyAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEg
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpXaW5kb3dGZWF0
dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEg
bmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+ICh1aW50NjRfdCBuZXdQYWdlSUQsIE9wdGlvbmFsPFdl
YktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNo
cm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZl
bmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZyBtZXNzYWdlKSAtPiAoKSBEZWxheWVkCi0gICAgUnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCi0gICAg
UnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJp
bmcgZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgRGVsYXllZAorICAgIFJ1bkphdmFT
Y3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJv
bm91cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1l
c3NhZ2UpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0UHJv
bXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUp
IC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIGhpdFRlc3RSZXN1bHREYXRh
LCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQodWludDMyX3QgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFN0cmluZyBtaW1lVHlw
ZSwgU3RyaW5nIHBsdWdpblVSTFN0cmluZywgU3RyaW5nIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJM
U3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3RyaW5nKQogI2Vu
ZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2lmIEVOQUJMRShXRUJHTCkKLSAg
ICBXZWJHTFBvbGljeUZvclVSTChVUkwgdXJsKSAtPiAodWludDMyX3QgbG9hZFBvbGljeSkgRGVs
YXllZAotICAgIFJlc29sdmVXZWJHTFBvbGljeUZvclVSTChVUkwgdXJsKSAtPiAodWludDMyX3Qg
bG9hZFBvbGljeSkgRGVsYXllZAorICAgIFdlYkdMUG9saWN5Rm9yVVJMKFVSTCB1cmwpIC0+ICh1
aW50MzJfdCBsb2FkUG9saWN5KSBTeW5jaHJvbm91cworICAgIFJlc29sdmVXZWJHTFBvbGljeUZv
clVSTChVUkwgdXJsKSAtPiAodWludDMyX3QgbG9hZFBvbGljeSkgU3luY2hyb25vdXMKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCiAgICAgRGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKHN0cnVj
dCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICBEaWRSZWNlaXZl
RXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQpAQCAtNTEsMjkgKzUxLDI5IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNp
emUpCiAgICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQot
ICAgIEdldFRvb2xiYXJzQXJlVmlzaWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkg
RGVsYXllZAorICAgIEdldFRvb2xiYXJzQXJlVmlzaWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJl
VmlzaWJsZSkgU3luY2hyb25vdXMKICAgICBTZXRNZW51QmFySXNWaXNpYmxlKGJvb2wgbWVudUJh
cklzVmlzaWJsZSkKLSAgICBHZXRNZW51QmFySXNWaXNpYmxlKCkgLT4gKGJvb2wgbWVudUJhcklz
VmlzaWJsZSkgRGVsYXllZAorICAgIEdldE1lbnVCYXJJc1Zpc2libGUoKSAtPiAoYm9vbCBtZW51
QmFySXNWaXNpYmxlKSBTeW5jaHJvbm91cwogICAgIFNldFN0YXR1c0JhcklzVmlzaWJsZShib29s
IHN0YXR1c0JhcklzVmlzaWJsZSkKLSAgICBHZXRTdGF0dXNCYXJJc1Zpc2libGUoKSAtPiAoYm9v
bCBzdGF0dXNCYXJJc1Zpc2libGUpIERlbGF5ZWQKKyAgICBHZXRTdGF0dXNCYXJJc1Zpc2libGUo
KSAtPiAoYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUpIFN5bmNocm9ub3VzCiAgICAgU2V0SXNSZXNp
emFibGUoYm9vbCBpc1Jlc2l6YWJsZSkKICAgICBTZXRXaW5kb3dGcmFtZShXZWJDb3JlOjpGbG9h
dFJlY3Qgd2luZG93RnJhbWUpCi0gICAgR2V0V2luZG93RnJhbWUoKSAtPiAoV2ViQ29yZTo6Rmxv
YXRSZWN0IHdpbmRvd0ZyYW1lKSBEZWxheWVkCi0gICAgU2NyZWVuVG9Sb290VmlldyhXZWJDb3Jl
OjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdpbmRvd1BvaW50
KSBEZWxheWVkCi0gICAgUm9vdFZpZXdUb1NjcmVlbihXZWJDb3JlOjpJbnRSZWN0IHJlY3QpIC0+
IChXZWJDb3JlOjpJbnRSZWN0IHNjcmVlbkZyYW1lKSBEZWxheWVkCi0gICAgQWNjZXNzaWJpbGl0
eVNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpIC0+IChXZWJD
b3JlOjpJbnRQb2ludCB3aW5kb3dQb2ludCkgRGVsYXllZAotICAgIFJvb3RWaWV3VG9BY2Nlc3Np
YmlsaXR5U2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdlYkNvcmU6OkludFJlY3Qg
c2NyZWVuRnJhbWUpIERlbGF5ZWQKKyAgICBHZXRXaW5kb3dGcmFtZSgpIC0+IChXZWJDb3JlOjpG
bG9hdFJlY3Qgd2luZG93RnJhbWUpIFN5bmNocm9ub3VzCisgICAgU2NyZWVuVG9Sb290VmlldyhX
ZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdpbmRv
d1BvaW50KSBTeW5jaHJvbm91cworICAgIFJvb3RWaWV3VG9TY3JlZW4oV2ViQ29yZTo6SW50UmVj
dCByZWN0KSAtPiAoV2ViQ29yZTo6SW50UmVjdCBzY3JlZW5GcmFtZSkgU3luY2hyb25vdXMKKyAg
ICBBY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290VmlldyhXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Q
b2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdpbmRvd1BvaW50KSBTeW5jaHJvbm91cworICAg
IFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4g
KFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUpIFN5bmNocm9ub3VzCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBTaG93VmFsaWRhdGlvbk1lc3NhZ2UoV2ViQ29yZTo6SW50UmVjdCBhbmNo
b3JSZWN0LCBTdHJpbmcgbWVzc2FnZSkKICAgICBIaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogI2Vu
ZGlmCiAKLSAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBT
dHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIERlbGF5ZWQKKyAgICBSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4g
KGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCiAgICAgUGFnZURpZFNjcm9sbCgpCiAgICAg
UnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2Vy
U2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0g
ICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAoKSBEZWxheWVkCisgICAgUHJpbnRG
cmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkK
ICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qg
c2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGlu
dDMyX3QgbmV3U3R5bGUpCkBAIC0xMDQsNyArMTA0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICAjIFBvbGljeSBtZXNzYWdlcwogICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0
aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAo
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5l
d05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdl
YktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBEZWxheWVkCisgICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRp
b25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdl
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJh
bWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQog
ICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKQEAgLTE0Myw3
ICsxNDMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZU1haW5E
b2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKTsKICAgICBEaWREZXN0cm95TmF2aWdhdGlvbih1aW50
NjRfdCBuYXZpZ2F0aW9uSUQpCiAKLSAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIERlbGF5
ZWQKKyAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhhc0lu
c2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIFN5bmNocm9ub3VzCiAKICAgICBNYWlu
RnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFt
ZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQogCkBAIC0xODcsNyArMTg3LDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBBdXRvY29ycmVjdGlvbkRhdGFDYWxsYmFjayhW
ZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMsIFN0cmluZyBmb250TmFtZSwgZG91
YmxlIGZvbnRTaXplLCB1aW50NjRfdCB0cmFpdHMsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIEF1dG9jb3JyZWN0aW9uQ29udGV4dENhbGxiYWNrKHN0cnVjdCBXZWJLaXQ6Oldl
YkF1dG9jb3JyZWN0aW9uQ29udGV4dCBjb250ZXh0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKICAgICBTZWxlY3Rpb25Db250ZXh0Q2FsbGJhY2soU3RyaW5nIHNlbGVjdGVkVGV4dCwg
U3RyaW5nIGJlZm9yZVRleHQsIFN0cmluZyBhZnRlclRleHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotICAgIEludGVycHJldEtleUV2ZW50KHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0
YXRlIHN0YXRlLCBib29sIGlzQ2hhckV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisg
ICAgSW50ZXJwcmV0S2V5RXZlbnQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUgc3RhdGUsIGJv
b2wgaXNDaGFyRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAgICAgRGlkUmVj
ZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pCiAgICAgU2F2ZUltYWdlVG9MaWJyYXJ5KFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKQogICAgIFNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpJbnRSZWN0IGVsZW1l
bnRSZWN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSwg
U3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKQpAQCAtMjIzLDEwICsyMjMsMTAgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMKICAgICBCYWNr
Rm9yd2FyZEFkZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGl0
ZW1TdGF0ZSkKLSAgICBCYWNrRm9yd2FyZEdvVG9JdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCkgLT4gKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpIERlbGF5ZWQKLSAgICBCYWNrRm9yd2FyZEl0
ZW1BdEluZGV4KGludDMyX3QgaXRlbUluZGV4KSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllcj4gaXRlbUlEKSBEZWxheWVkCi0gICAgQmFja0ZvcndhcmRCYWNr
TGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50KSBEZWxheWVkCi0gICAgQmFja0ZvcndhcmRG
b3J3YXJkTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50KSBEZWxheWVkCisgICAgQmFja0Zv
cndhcmRHb1RvSXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBp
dGVtSUQpIC0+IChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKSBTeW5jaHJvbm91cworICAgIEJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaW50MzJf
dCBpdGVtSW5kZXgpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyPiBpdGVtSUQpIFN5bmNocm9ub3VzCisgICAgQmFja0ZvcndhcmRCYWNrTGlzdENvdW50KCkg
LT4gKHVpbnQzMl90IGNvdW50KSBTeW5jaHJvbm91cworICAgIEJhY2tGb3J3YXJkRm9yd2FyZExp
c3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMKICAgICBCYWNrRm9yd2Fy
ZENsZWFyKCkKICAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3RydWN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluUGFnZUNhY2hlKQogCkBA
IC0yMzQsOCArMjM0LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBSZWdpc3Rl
ckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIFN0cmluZyBsYWJlbCkKICAg
ICBDbGVhckFsbEVkaXRDb21tYW5kcygpCiAgICAgUmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBp
bmcoKQotICAgIENhblVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09y
UmVkbykgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCi0gICAgRXhlY3V0ZVVuZG9SZWRvKGVudW06
Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKCkgRGVsYXllZAorICAgIENh
blVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKGJv
b2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIEV4ZWN1dGVVbmRvUmVkbyhlbnVtOmJvb2wgV2Vi
S2l0OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pIC0+ICgpIFN5bmNocm9ub3VzCiAKICAgICAjIERp
YWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZwogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlKFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQpAQCAtMjUyLDcgKzI1Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rp
b24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykKICAgICBTZXRJc1RvdWNoQmFyVXBk
YXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKGJvb2wgaXNUb3VjaEJhclVwZGF0
ZVN1cHJlc3NlZCkKICAgICBTZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29s
IGlzTmV2ZXJSaWNobHlFZGl0YWJsZSkKLSAgICBSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6SW50UmVjdCBlbGVtZW50UmVjdCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkgRGVsYXll
ZAorICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cwogCiAgICAgIyBGaW5kIG1l
c3NhZ2VzCiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIHVpbnQzMl90
IG1hdGNoQ291bnQpCkBAIC0yNzIsMTAgKzI3MiwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogI2VuZGlmCiAKICAgICAjIERhdGFiYXNlIG1lc3NhZ2VzCi0gICAgRXhjZWVkZWREYXRh
YmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJp
bmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVv
dGEpIERlbGF5ZWQKKyAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0cmluZyBkYXRh
YmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRP
cmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVj
dGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAogICAgICMgQXBw
bGljYXRpb24gY2FjaGUgbWVzc2FnZXMKLSAgICBSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgRGVsYXllZAor
ICAgIFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCkg
LT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZW9sb2NhdGlvbiBt
ZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikKQEAgLTI5NiwxNCArMjk2LDE0IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAg
ICAjIFNwZWxsaW5nIGFuZCBncmFtbWFyIG1lc3NhZ2VzCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9D
SEVDS0lORykgIAotICAgIENoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZyB0ZXh0LCBPcHRpb25T
ZXQ8V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZT4gY2hlY2tpbmdUeXBlcywgaW50MzJfdCBpbnNl
cnRpb25Qb2ludCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3Vs
dHMpIERlbGF5ZWQKKyAgICBDaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmcgdGV4dCwgT3B0aW9u
U2V0PFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGludDMyX3QgaW5z
ZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1
bHRzKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgQ2hlY2tTcGVsbGluZ09mU3RyaW5nKFN0cmlu
ZyB0ZXh0KSAtPiAoaW50MzJfdCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQzMl90IG1pc3NwZWxs
aW5nTGVuZ3RoKSBEZWxheWVkCi0gICAgQ2hlY2tHcmFtbWFyT2ZTdHJpbmcoU3RyaW5nIHRleHQp
IC0+IChWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4gcmVzdWx0cywgaW50MzJfdCBiYWRH
cmFtbWFyTG9jYXRpb24sIGludDMyX3QgYmFkR3JhbW1hckxlbmd0aCkgRGVsYXllZAotICAgIFNw
ZWxsaW5nVUlJc1Nob3dpbmcoKSAtPiAoYm9vbCBpc1Nob3dpbmcpIERlbGF5ZWQKKyAgICBDaGVj
a1NwZWxsaW5nT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChpbnQzMl90IG1pc3NwZWxsaW5nTG9j
YXRpb24sIGludDMyX3QgbWlzc3BlbGxpbmdMZW5ndGgpIFN5bmNocm9ub3VzCisgICAgQ2hlY2tH
cmFtbWFyT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRl
dGFpbD4gcmVzdWx0cywgaW50MzJfdCBiYWRHcmFtbWFyTG9jYXRpb24sIGludDMyX3QgYmFkR3Jh
bW1hckxlbmd0aCkgU3luY2hyb25vdXMKKyAgICBTcGVsbGluZ1VJSXNTaG93aW5nKCkgLT4gKGJv
b2wgaXNTaG93aW5nKSBTeW5jaHJvbm91cwogICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3Bl
bGxlZFdvcmQoU3RyaW5nIG1pc3NwZWxsZWRXb3JkKQogICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRo
R3JhbW1hclN0cmluZyhTdHJpbmcgYmFkR3JhbW1hclBocmFzZSwgc3RydWN0IFdlYkNvcmU6Okdy
YW1tYXJEZXRhaWwgZ3JhbW1hckRldGFpbCkKLSAgICBHZXRHdWVzc2VzRm9yV29yZChTdHJpbmcg
d29yZCwgU3RyaW5nIGNvbnRleHQsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8
U3RyaW5nPiBndWVzc2VzKSBEZWxheWVkCisgICAgR2V0R3Vlc3Nlc0ZvcldvcmQoU3RyaW5nIHdv
cmQsIFN0cmluZyBjb250ZXh0LCBpbnQzMl90IGluc2VydGlvblBvaW50KSAtPiAoVmVjdG9yPFN0
cmluZz4gZ3Vlc3NlcykgU3luY2hyb25vdXMKICAgICBMZWFybldvcmQoU3RyaW5nIHdvcmQpCiAg
ICAgSWdub3JlV29yZChTdHJpbmcgd29yZCkKICAgICBSZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh1
aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhIHJlcXVl
c3QsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpCkBAIC0zMzYsNyArMzM2LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChzdHJ1Y3Qg
V2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0aW9uYXJ5UG9wdXBJbmZvKQogCiAgICAg
IyBLZXlib2FyZCBpbnB1dCBzdXBwb3J0IG1lc3NhZ2VzCi0gICAgRXhlY3V0ZVNhdmVkQ29tbWFu
ZEJ5U2VsZWN0b3IoU3RyaW5nIHNlbGVjdG9yKSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxheWVkCisg
ICAgRXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU3RyaW5nIHNlbGVjdG9yKSAtPiAoYm9v
bCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCiAgICAgIyBSZW1vdGUgYWNjZXNzaWJpbGl0eSBtZXNz
YWdlcwogICAgIFJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihJUEM6OkRhdGFS
ZWZlcmVuY2UgZGF0YSkKQEAgLTM0Niw3ICszNDYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIFNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgdWludDY0X3QgY29tcGxleFRleHRJbnB1dFN0YXRl
KQogCiAgICAgIyBTcGVlY2ggbWVzc2FnZXMKLSAgICBHZXRJc1NwZWFraW5nKCkgLT4gKGJvb2wg
aXNTcGVha2luZykgRGVsYXllZAorICAgIEdldElzU3BlYWtpbmcoKSAtPiAoYm9vbCBpc1NwZWFr
aW5nKSBTeW5jaHJvbm91cwogICAgIFNwZWFrKFN0cmluZyBzdHJpbmcpCiAgICAgU3RvcFNwZWFr
aW5nKCkKIApAQCAtMzY0LDcgKzM2NCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAj
ZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgU3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93aW5n
KCkgLT4gKGJvb2wgaXNTaG93aW5nKSBEZWxheWVkCisgICAgU3Vic3RpdHV0aW9uc1BhbmVsSXNT
aG93aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKSBTeW5jaHJvbm91cwogI2VuZGlmCiAjaWYgVVNF
KEFVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5UKQogICAgIHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRl
KCkKQEAgLTM3Nyw3ICszNzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMg
QXV0b2NvcnJlY3Rpb24gbWVzc2FnZXMKICAgICBTaG93Q29ycmVjdGlvblBhbmVsKGludDMyX3Qg
cGFuZWxUeXBlLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5n
LCBTdHJpbmcgcmVwbGFjZWRTdHJpbmcsIFN0cmluZyByZXBsYWNlbWVudFN0cmluZywgVmVjdG9y
PFN0cmluZz4gYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpCiAgICAgRGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbChpbnQzMl90IHJlYXNvbikKLSAgICBEaXNtaXNzQ29ycmVjdGlvblBhbmVsU29v
bihpbnQzMl90IHJlYXNvbikgLT4gKFN0cmluZyByZXN1bHQpIERlbGF5ZWQKKyAgICBEaXNtaXNz
Q29ycmVjdGlvblBhbmVsU29vbihpbnQzMl90IHJlYXNvbikgLT4gKFN0cmluZyByZXN1bHQpIFN5
bmNocm9ub3VzCiAgICAgUmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShpbnQzMl90IHJlc3Bv
bnNlLCBTdHJpbmcgcmVwbGFjZWRTdHJpbmcsIFN0cmluZyByZXBsYWNlbWVudFN0cmluZyk7CiAK
ICAgICBTZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQoYm9vbCBlZGl0YWJsZUVsZW1lbnRJc0Zv
Y3VzZWQpCkBAIC0zODYsMTIgKzM4NiwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgIFNob3dEaWN0YXRpb25BbHRlcm5h
dGl2ZVVJKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCB1aW50
NjRfdCBkaWN0YXRpb25Db250ZXh0KQogICAgIFJlbW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyh1
aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KQotICAgIERpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50
NjRfdCBkaWN0YXRpb25Db250ZXh0KSAtPiAoVmVjdG9yPFN0cmluZz4gYWx0ZXJuYXRpdmVzKSBE
ZWxheWVkCisgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRl
eHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKFgxMSkKICAgICAjIFgxMSB3aW5kb3dlZCBwbHVnaW4gbWVzc2FnZXMK
LSAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAtPiAodWludDY0X3Qgd2luZG93SUQpIERlbGF5
ZWQKKyAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAtPiAodWludDY0X3Qgd2luZG93SUQpIFN5
bmNocm9ub3VzCiAgICAgV2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENoYW5nZShXZWJDb3JlOjpJ
bnRSZWN0IGZyYW1lUmVjdCwgV2ViQ29yZTo6SW50UmVjdCBjbGlwUmVjdCwgdWludDY0X3Qgd2lu
ZG93SUQpCiAgICAgV2luZG93ZWRQbHVnaW5WaXNpYmlsaXR5RGlkQ2hhbmdlKGJvb2wgaXNWaXNp
YmxlLCB1aW50NjRfdCB3aW5kb3dJRCkKICNlbmRpZgpAQCAtNDI5LDcgKzQyOSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIFNlYXJjaCBwb3B1cCBtZW51cwogICAgIFNh
dmVSZWNlbnRTZWFyY2hlcyhTdHJpbmcgbmFtZSwgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4gc2VhcmNoSXRlbXMpCi0gICAgTG9hZFJlY2VudFNlYXJjaGVzKFN0cmluZyBuYW1lKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4gcmVzdWx0KSBEZWxheWVkCisgICAgTG9hZFJl
Y2VudFNlYXJjaGVzKFN0cmluZyBuYW1lKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4gcmVzdWx0KSBTeW5jaHJvbm91cwogCiAgICAgU2F2ZVBERlRvRmlsZUluRG93bmxvYWRzRm9s
ZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgVVJMIG9yaWdpbmF0aW5nVVJMLCBJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSkKIApAQCAtNDM5LDExICs0MzksMTEgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCi0gICAgU2hv
d1BERkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBERkNvbnRleHRNZW51IGNvbnRleHRNZW51
KSAtPiAoT3B0aW9uYWw8aW50MzJfdD4gc2VsZWN0ZWRJdGVtKSBEZWxheWVkCisgICAgU2hvd1BE
RkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBERkNvbnRleHRNZW51IGNvbnRleHRNZW51KSAt
PiAoT3B0aW9uYWw8aW50MzJfdD4gc2VsZWN0ZWRJdGVtKSBTeW5jaHJvbm91cwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBGaW5kUGx1Z2luKFN0cmluZyBt
aW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFN0cmluZyB1cmxTdHJpbmcsIFN0cmluZyBm
cmFtZVVSTFN0cmluZywgU3RyaW5nIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGlj
YXRpb25QbHVnaW5zKSAtPiAodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcgbmV3
TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uLCBib29sIGlzVW5zdXBwb3J0ZWQpIERlbGF5ZWQKKyAgICBGaW5kUGx1Z2lu
KFN0cmluZyBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFN0cmluZyB1cmxTdHJpbmcs
IFN0cmluZyBmcmFtZVVSTFN0cmluZywgU3RyaW5nIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dP
bmx5QXBwbGljYXRpb25QbHVnaW5zKSAtPiAodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBT
dHJpbmcgbmV3TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBib29sIGlzVW5zdXBwb3J0ZWQpIFN5bmNocm9ub3VzCiAj
ZW5kaWYKIAogICAgIERpZFVwZGF0ZUFjdGl2aXR5U3RhdGUoKQpAQCAtNDUxLDggKzQ1MSw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkU2F2ZVRvUGFnZUNhY2hlKCkKIAog
I2lmIEVOQUJMRShXRUJfQ1JZUFRPKQotICAgIFdyYXBDcnlwdG9LZXkoVmVjdG9yPHVpbnQ4X3Q+
IGtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleSkgRGVs
YXllZAotICAgIFVud3JhcENyeXB0b0tleShWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleSkgLT4g
KGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8dWludDhfdD4ga2V5KSBEZWxheWVkCisgICAgV3JhcENy
eXB0b0tleShWZWN0b3I8dWludDhfdD4ga2V5KSAtPiAoYm9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1
aW50OF90PiB3cmFwcGVkS2V5KSBTeW5jaHJvbm91cworICAgIFVud3JhcENyeXB0b0tleShWZWN0
b3I8dWludDhfdD4gd3JhcHBlZEtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8dWludDhf
dD4ga2V5KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRl
c3Qoc3RydWN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgcmVzdWx0LCBib29sIGNvbnRl
bnRQcmV2ZW50c0RlZmF1bHQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAjZW5kaWYKICAg
ICBIYW5kbGVNZXNzYWdlKFN0cmluZyBtZXNzYWdlTmFtZSwgV2ViS2l0OjpVc2VyRGF0YSBtZXNz
YWdlQm9keSkgV2FudHNDb25uZWN0aW9uCi0gICAgSGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKFN0
cmluZyBtZXNzYWdlTmFtZSwgV2ViS2l0OjpVc2VyRGF0YSBtZXNzYWdlQm9keSkgLT4gKFdlYktp
dDo6VXNlckRhdGEgcmV0dXJuRGF0YSkgRGVsYXllZCBXYW50c0Nvbm5lY3Rpb24KKyAgICBIYW5k
bGVTeW5jaHJvbm91c01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRh
IG1lc3NhZ2VCb2R5KSAtPiAoV2ViS2l0OjpVc2VyRGF0YSByZXR1cm5EYXRhKSBTeW5jaHJvbm91
cyBXYW50c0Nvbm5lY3Rpb24KIAogICAgIEhhbmRsZUF1dG9GaWxsQnV0dG9uQ2xpY2soV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKIApAQCAtNTMyLDcgKzUzMiw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAKICAgICBTdGFydFVSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCi0gICAg
TG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpIERlbGF5ZWQKKyAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJL
aXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBJUEM6
OkRhdGFSZWZlcmVuY2UgZGF0YSkgU3luY2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCiAgICAgUmVxdWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwpAQCAtNTQ2LDEzICs1NDYsMTMgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBDbG9uZUF0dGFjaG1lbnREYXRhKFN0cmluZyBmcm9tSWRl
bnRpZmllciwgU3RyaW5nIHRvSWRlbnRpZmllcikKICAgICBEaWRJbnNlcnRBdHRhY2htZW50V2l0
aElkZW50aWZpZXIoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2UsIGJvb2wgaGFzRW5j
bG9zaW5nSW1hZ2UpCiAgICAgRGlkUmVtb3ZlQXR0YWNobWVudFdpdGhJZGVudGlmaWVyKFN0cmlu
ZyBpZGVudGlmaWVyKQotICAgIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YUZvcklkZW50aWZpZXJz
KFZlY3RvcjxTdHJpbmc+IGlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6
ZWRBdHRhY2htZW50RGF0YT4gc2VyYWxpemVkRGF0YSkgRGVsYXllZAorICAgIFNlcmlhbGl6ZWRB
dHRhY2htZW50RGF0YUZvcklkZW50aWZpZXJzKFZlY3RvcjxTdHJpbmc+IGlkZW50aWZpZXJzKSAt
PiAoVmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gc2VyYWxpemVkRGF0
YSkgU3luY2hyb25vdXMKICNlbmRpZgogCi0gICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdl
U3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgVVJM
IHVybCkgLT4gKFN0cmluZyByZXN1bHQpIERlbGF5ZWQKKyAgICBTaWduZWRQdWJsaWNLZXlBbmRD
aGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBTdHJpbmcgY2hhbGxlbmdlU3Ry
aW5nLCBVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKIAogI2lmIEVOQUJM
RShTUEVFQ0hfU1lOVEhFU0lTKQotICAgIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCgpIC0+IChW
ZWN0b3I8V2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNWb2ljZT4gdm9pY2VMaXN0KSBEZWxheWVk
CisgICAgU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlNw
ZWVjaFN5bnRoZXNpc1ZvaWNlPiB2b2ljZUxpc3QpIFN5bmNocm9ub3VzCiAgICAgU3BlZWNoU3lu
dGhlc2lzU3BlYWsoU3RyaW5nIHRleHQsIFN0cmluZyBsYW5nLCBmbG9hdCB2b2x1bWUsIGZsb2F0
IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSwgU3RyaW5nIHZvaWNl
VVJJLCBTdHJpbmcgdm9pY2VOYW1lLCBTdHJpbmcgdm9pY2VMYW5nLCBib29sIGxvY2FsU2Vydmlj
ZSwgYm9vbCBkZWZhdWx0Vm9pY2UpIC0+ICgpIEFzeW5jCiAgICAgU3BlZWNoU3ludGhlc2lzQ2Fu
Y2VsKCkKICAgICBTcGVlY2hTeW50aGVzaXNQYXVzZSgpIC0+ICgpIEFzeW5jCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluCShyZXZpc2lvbiAyNDMzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2LDQ3ICsyNiw0
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJveHkgewogICAgIFdyaXRlV2ViQ29udGVu
dFRvUGFzdGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVu
dCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAgIFdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoc3Ry
dWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSBwYXN0ZWJvYXJkSW1hZ2UsIFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSkKICAgICBXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2Fy
ZFR5cGUsIFN0cmluZyB0ZXh0LCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpCi0gICAgUmVhZFN0cmlu
Z0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyBzdHJpbmcpIERlbGF5ZWQKLSAgICBSZWFk
VVJMRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkg
LT4gKFN0cmluZyB1cmwsIFN0cmluZyB0aXRsZSkgRGVsYXllZAotICAgIFJlYWRCdWZmZXJGcm9t
UGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcg
cGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwg
dWludDY0X3Qgc2l6ZSkgRGVsYXllZAotICAgIEdldFBhc3RlYm9hcmRJdGVtc0NvdW50KFN0cmlu
ZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IGl0ZW1zQ291bnQpIERlbGF5ZWQKLSAgICBB
bGxQYXN0ZWJvYXJkSXRlbUluZm8oU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbz4gYWxsSW5mbykgRGVsYXllZAotICAgIEluZm9ybWF0
aW9uRm9ySXRlbUF0SW5kZXgodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkg
LT4gKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSXRlbUluZm8gaW5mbykgRGVsYXllZAorICAg
IFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJpbmcgc3RyaW5nKSBTeW5jaHJv
bm91cworICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHVybCwgU3RyaW5nIHRpdGxlKSBTeW5jaHJvbm91cwor
ICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3Rl
Ym9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkgU3luY2hyb25vdXMKKyAgICBHZXRQYXN0
ZWJvYXJkSXRlbXNDb3VudChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBpdGVt
c0NvdW50KSBTeW5jaHJvbm91cworICAgIEFsbFBhc3RlYm9hcmRJdGVtSW5mbyhTdHJpbmcgcGFz
dGVib2FyZE5hbWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvPiBhbGxJ
bmZvKSBTeW5jaHJvbm91cworICAgIEluZm9ybWF0aW9uRm9ySXRlbUF0SW5kZXgodWludDY0X3Qg
aW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkSXRlbUluZm8gaW5mbykgU3luY2hyb25vdXMKICAgICBVcGRhdGVTdXBwb3J0ZWRUeXBlSWRl
bnRpZmllcnMoVmVjdG9yPFN0cmluZz4gaWRlbnRpZmllcnMsIFN0cmluZyBwYXN0ZWJvYXJkTmFt
ZSkKICNlbmRpZgogCi0gICAgV3JpdGVDdXN0b21EYXRhKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkQ3VzdG9tRGF0YSBkYXRhLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBj
aGFuZ2VDb3VudCkgRGVsYXllZAotICAgIFR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIG9yaWdpbikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5
cGVzKSBEZWxheWVkCisgICAgV3JpdGVDdXN0b21EYXRhKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkQ3VzdG9tRGF0YSBkYXRhLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBj
aGFuZ2VDb3VudCkgU3luY2hyb25vdXMKKyAgICBUeXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0
ZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBvcmlnaW4pIC0+IChWZWN0b3I8U3RyaW5n
PiB0eXBlcykgU3luY2hyb25vdXMKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICMgUGFzdGVi
b2FyZCBtZXNzYWdlcy4KLSAgICBHZXROdW1iZXJPZkZpbGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFt
ZSkgLT4gKHVpbnQ2NF90IG51bWJlck9mRmlsZXMpIERlbGF5ZWQKLSAgICBHZXRQYXN0ZWJvYXJk
VHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIERl
bGF5ZWQKLSAgICBHZXRQYXN0ZWJvYXJkUGF0aG5hbWVzRm9yVHlwZShTdHJpbmcgcGFzdGVib2Fy
ZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHBhdGhuYW1l
cywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9u
cykgRGVsYXllZCBXYW50c0Nvbm5lY3Rpb24KLSAgICBHZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlw
ZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmlu
ZyBzdHJpbmcpIERlbGF5ZWQKLSAgICBHZXRQYXN0ZWJvYXJkU3RyaW5nc0ZvclR5cGUoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChWZWN0b3I8U3RyaW5n
PiBzdHJpbmdzKSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkgRGVsYXllZAotICAgIFBhc3Rl
Ym9hcmRDb3B5KFN0cmluZyBmcm9tUGFzdGVib2FyZCwgU3RyaW5nIHRvUGFzdGVib2FyZCkgLT4g
KHVpbnQ2NF90IGNoYW5nZUNvdW50KSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZENoYW5nZUNv
dW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBEZWxh
eWVkCi0gICAgR2V0UGFzdGVib2FyZFVuaXF1ZU5hbWUoKSAtPiAoU3RyaW5nIHBhc3RlYm9hcmRO
YW1lKSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZENvbG9yKFN0cmluZyBwYXN0ZWJvYXJkTmFt
ZSkgLT4gKFdlYkNvcmU6OkNvbG9yIGNvbG9yKSBEZWxheWVkCi0gICAgR2V0UGFzdGVib2FyZFVS
TChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJpbmcgdXJsU3RyaW5nKSBEZWxheWVkCi0g
ICAgQWRkUGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgVmVjdG9yPFN0cmlu
Zz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIERlbGF5ZWQKLSAg
ICBTZXRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBWZWN0b3I8U3RyaW5n
PiBwYXN0ZWJvYXJkVHlwZXMpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgRGVsYXllZAotICAg
IFNldFBhc3RlYm9hcmRVUkwoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwgcGFzdGVib2Fy
ZFVSTCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIERl
bGF5ZWQgV2FudHNDb25uZWN0aW9uCi0gICAgU2V0UGFzdGVib2FyZENvbG9yKFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSwgV2ViQ29yZTo6Q29sb3IgY29sb3IpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3Vu
dCkgRGVsYXllZAotICAgIFNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJv
YXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgc3RyaW5nKSAtPiAodWludDY0
X3QgY2hhbmdlQ291bnQpIERlbGF5ZWQKLSAgICBTZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShT
dHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIC0+ICh1aW50NjRfdCBjaGFu
Z2VDb3VudCkgRGVsYXllZAorICAgIEdldE51bWJlck9mRmlsZXMoU3RyaW5nIHBhc3RlYm9hcmRO
YW1lKSAtPiAodWludDY0X3QgbnVtYmVyT2ZGaWxlcykgU3luY2hyb25vdXMKKyAgICBHZXRQYXN0
ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlw
ZXMpIFN5bmNocm9ub3VzCisgICAgR2V0UGFzdGVib2FyZFBhdGhuYW1lc0ZvclR5cGUoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChWZWN0b3I8U3RyaW5n
PiBwYXRobmFtZXMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJv
eEV4dGVuc2lvbnMpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIEdldFBhc3RlYm9h
cmRTdHJpbmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRU
eXBlKSAtPiAoU3RyaW5nIHN0cmluZykgU3luY2hyb25vdXMKKyAgICBHZXRQYXN0ZWJvYXJkU3Ry
aW5nc0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUp
IC0+IChWZWN0b3I8U3RyaW5nPiBzdHJpbmdzKSBTeW5jaHJvbm91cworICAgIEdldFBhc3RlYm9h
cmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRU
eXBlKSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNp
emUpIFN5bmNocm9ub3VzCisgICAgUGFzdGVib2FyZENvcHkoU3RyaW5nIGZyb21QYXN0ZWJvYXJk
LCBTdHJpbmcgdG9QYXN0ZWJvYXJkKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIFN5bmNocm9u
b3VzCisgICAgR2V0UGFzdGVib2FyZENoYW5nZUNvdW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkg
LT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBTeW5jaHJvbm91cworICAgIEdldFBhc3RlYm9hcmRV
bmlxdWVOYW1lKCkgLT4gKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgU3luY2hyb25vdXMKKyAgICBH
ZXRQYXN0ZWJvYXJkQ29sb3IoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoV2ViQ29yZTo6Q29s
b3IgY29sb3IpIFN5bmNocm9ub3VzCisgICAgR2V0UGFzdGVib2FyZFVSTChTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpIC0+IChTdHJpbmcgdXJsU3RyaW5nKSBTeW5jaHJvbm91cworICAgIEFkZFBhc3Rl
Ym9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxTdHJpbmc+IHBhc3RlYm9h
cmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBTeW5jaHJvbm91cworICAgIFNldFBh
c3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxTdHJpbmc+IHBhc3Rl
Ym9hcmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBTeW5jaHJvbm91cworICAgIFNl
dFBhc3RlYm9hcmRVUkwoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwgcGFzdGVib2FyZFVS
TCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIFN5bmNo
cm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIFNldFBhc3RlYm9hcmRDb2xvcihTdHJpbmcgcGFz
dGVib2FyZE5hbWUsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKSAtPiAodWludDY0X3QgY2hhbmdlQ291
bnQpIFN5bmNocm9ub3VzCisgICAgU2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoU3RyaW5nIHBh
c3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBzdHJpbmcpIC0+ICh1
aW50NjRfdCBjaGFuZ2VDb3VudCkgU3luY2hyb25vdXMKKyAgICBTZXRQYXN0ZWJvYXJkQnVmZmVy
Rm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIC0+ICh1aW50
NjRfdCBjaGFuZ2VDb3VudCkgU3luY2hyb25vdXMKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KQogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2Vi
S2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQotICAgIFJlYWRGcm9tQ2xp
cGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVj
dGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpIERlbGF5ZWQKKyAgICBSZWFkRnJvbUNsaXBib2Fy
ZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25E
YXRhIHBhc3RlYm9hcmRDb250ZW50KSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNpZiBVU0UoTElC
V1BFKQotICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykg
RGVsYXllZAotICAgIFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3Ry
aW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykgRGVsYXllZAorICAgIEdldFBh
c3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25vdXMKKyAg
ICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJv
YXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpIFN5bmNocm9ub3VzCiAgICAgV3JpdGVXZWJDb250
ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBjb250
ZW50KQogICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwg
U3RyaW5nIHRleHQpCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAg
ICAgSGFuZGxlTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVz
c2FnZUJvZHkpIFdhbnRzQ29ubmVjdGlvbgotICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShT
dHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJL
aXQ6OlVzZXJEYXRhIHJldHVybkRhdGEpIERlbGF5ZWQgV2FudHNDb25uZWN0aW9uCisgICAgSGFu
ZGxlU3luY2hyb25vdXNNZXNzYWdlKFN0cmluZyBtZXNzYWdlTmFtZSwgV2ViS2l0OjpVc2VyRGF0
YSBtZXNzYWdlQm9keSkgLT4gKFdlYktpdDo6VXNlckRhdGEgcmV0dXJuRGF0YSkgU3luY2hyb25v
dXMgV2FudHNDb25uZWN0aW9uCiAKICAgICBEaWRHZXRTdGF0aXN0aWNzKHN0cnVjdCBXZWJLaXQ6
OlN0YXRpc3RpY3NEYXRhIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2LDE3ICsyNiwx
NyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2CiAKICAgICBEaWRE
ZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVyZVRva2VuSUQpIAogCi0g
ICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hvdWxkVGVybWluYXRlKSBEZWxheWVkCisg
ICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hvdWxkVGVybWluYXRlKSBTeW5jaHJvbm91
cwogCiAgICAgRW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIERpc2FibGVTdWRkZW5UZXJt
aW5hdGlvbigpCiAKICAgICAjIFBsdWdpbiBtZXNzYWdlcy4KICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJD
b3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBw
bGljYXRpb25QbHVnaW5zLCBzdHJ1Y3QgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRl
ZFBsdWdpbklkZW50aWZpZXI+PiBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykgRGVsYXllZAot
ICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tl
bikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5
bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKKyAgICBHZXRQbHVnaW5zKGJvb2wgcmVm
cmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2Vi
Q29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3QgT3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBzdXBwb3J0ZWRQbHVnaW5J
ZGVudGlmaWVycykgU3luY2hyb25vdXMKKyAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1
aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBTeW5jaHJv
bm91cwogI2VuZGlmCi0gICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6
QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAgR2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBTeW5j
aHJvbm91cwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vz
c1N1c3BlbnNpb24oKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDExICsyNCwxMSBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3Nh
Z2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewotICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0
aW5ncykgRGVsYXllZAorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0
cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWlu
dHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgU3luY2hyb25vdXMKICAgICBT
dGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QgaWQpCiAgICAgRW5kKHVpbnQ2NF90IGlkKQotICAgIENhcGFiaWxpdGllcyh1aW50NjRf
dCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJp
bGl0aWVzKSBEZWxheWVkCisgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIFN5bmNocm9u
b3VzCiAgICAgU2V0TXV0ZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCiAgICAgQXBwbHlDb25z
dHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29u
c3RyYWludHMpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjQzMzAwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM0LDE2ICszNCwxNiBAQCBtZXNz
YWdlcyAtPiBQbHVnaW5Qcm9jZXNzUHJveHkgewogICAgIFNldEZ1bGxzY3JlZW5XaW5kb3dJc1No
b3dpbmcoYm9vbCBmdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKQogICAgIAogICAgICMgUmV0dXJu
cyB0cnVlIGlmIHRoZSBVSSBwcm9jZXNzIGxhdW5jaGVkIHRoZSBwcm9jZXNzLgotICAgIExhdW5j
aFByb2Nlc3MoU3RyaW5nIGxhdW5jaFBhdGgsIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cykgLT4g
KGJvb2wgcmVzdWx0KSBEZWxheWVkCisgICAgTGF1bmNoUHJvY2VzcyhTdHJpbmcgbGF1bmNoUGF0
aCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3Vz
CiAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBsYXVuY2hlZCB0aGUgYXBw
bGljYXRpb24uCi0gICAgTGF1bmNoQXBwbGljYXRpb25BdFVSTChTdHJpbmcgdXJsLCBWZWN0b3I8
U3RyaW5nPiBhcmd1bWVudHMpIC0+IChib29sIHJlc3VsdCkgRGVsYXllZAorICAgIExhdW5jaEFw
cGxpY2F0aW9uQXRVUkwoU3RyaW5nIHVybCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAo
Ym9vbCByZXN1bHQpIFN5bmNocm9ub3VzCiAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkg
cHJvY2VzcyBkaWQgb3BlbiB0aGUgVVJMLgotICAgIE9wZW5VUkwoU3RyaW5nIHVybFN0cmluZykg
LT4gKGJvb2wgcmVzdWx0LCBpbnQzMl90IHN0YXR1cywgU3RyaW5nIGxhdW5jaGVkVVJMU3RyaW5n
KSBEZWxheWVkCisgICAgT3BlblVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCByZXN1bHQs
IGludDMyX3Qgc3RhdHVzLCBTdHJpbmcgbGF1bmNoZWRVUkxTdHJpbmcpIFN5bmNocm9ub3VzCiAg
ICAgCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJIHByb2Nlc3MgZGlkIG9wZW4gdGhlIGZp
bGUuCi0gICAgT3BlbkZpbGUoU3RyaW5nIGZ1bGxQYXRoKSAtPiAoYm9vbCByZXN1bHQpIERlbGF5
ZWQKKyAgICBPcGVuRmlsZShTdHJpbmcgZnVsbFBhdGgpIC0+IChib29sIHJlc3VsdCkgU3luY2hy
b25vdXMKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAgbWVz
c2FnZXMgLT4gU3RvcmFnZU1hbmFnZXIgewogICAgIENyZWF0ZVNlc3Npb25TdG9yYWdlTWFwKHVp
bnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSkgV2FudHNDb25u
ZWN0aW9uCiAgICAgRGVzdHJveVN0b3JhZ2VNYXAodWludDY0X3Qgc3RvcmFnZU1hcElEKSBXYW50
c0Nvbm5lY3Rpb24KIAotICAgIEdldFZhbHVlcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgRGVs
YXllZCBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXRWYWx1ZXMoc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwg
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1
ZXMpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogCiAgICAgU2V0SXRlbShzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDY0X3Qgc3Rv
cmFnZU1hcElELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdl
TWFwU2VlZCwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50
c0Nvbm5lY3Rpb24KICAgICBSZW1vdmVJdGVtKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5
LCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAyNDMzMDApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRl
bVNoaW1Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAog
bWVzc2FnZXMgLT4gU2VjSXRlbVNoaW1Qcm94eSB7CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJ
TSkKLSAgICBTZWNJdGVtUmVxdWVzdChXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0
KSAtPiAoV2ViS2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRhIHJlc3BvbnNlKSBEZWxheWVkCisgICAg
U2VjSXRlbVJlcXVlc3QoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVxdWVzdCkgLT4gKFdl
YktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YSByZXNwb25zZSkgU3luY2hyb25vdXMKICNlbmRpZgog
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTc3LDkgKzc3LDkgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWxlYXNlUGFnZUNh
Y2hlKCkKIAotICAgIEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChz
dHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgRGVsYXllZAotICAgIERlbGV0
ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNl
KSAtPiAoKSBEZWxheWVkCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
KSAtPiAoKSBEZWxheWVkCisgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKSBTeW5jaHJvbm91
cworICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBt
b2RpZmllZFNpbmNlKSAtPiAoKSBTeW5jaHJvbm91cworICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gb3JpZ2lucykgLT4gKCkgU3luY2hyb25vdXMKIAogICAgIFNldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkBAIC05NSw3ICs5NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkoU3RyaW5nIHNl
c3Npb25JZGVudGlmaWVyKQogICAgIERlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KCkKIAot
ICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBEZWxh
eWVkCisgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQp
IFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgQ2FuY2VsUHJlcGFyZVRv
U3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKIAogbWVzc2FnZXMgLT4gUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgICMgU2V0IGEgZ2xvYmFsIEphdmFT
Y3JpcHQgZXhjZXB0aW9uLgotICAgIFNldEV4Y2VwdGlvbihTdHJpbmcgZXhjZXB0aW9uU3RyaW5n
KSAtPiAoKSBEZWxheWVkCisgICAgU2V0RXhjZXB0aW9uKFN0cmluZyBleGNlcHRpb25TdHJpbmcp
IC0+ICgpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMiArMzAsMjIgQEAgbWVz
c2FnZXMgLT4gUGx1Z2luUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZShXZWJDb3Jl
OjpJbnRSZWN0IHBhaW50ZWRSZWN0KQogCiAgICAgIyBSZXR1cm5zIGEgUEFDIHN0eWxlIHN0cmlu
ZyB3aXRoIHByb3hpZXMgZm9yIHRoZSBnaXZlbiBVUkwuCi0gICAgUHJveGllc0ZvclVSTChTdHJp
bmcgdXJsU3RyaW5nKSAtPiAoU3RyaW5nIHByb3hpZXNTdHJpbmcpIERlbGF5ZWQKKyAgICBQcm94
aWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+IChTdHJpbmcgcHJveGllc1N0cmluZykgU3lu
Y2hyb25vdXMKIAogICAgICMgUmV0dXJucyB0aGUgY29va2llcyBmb3IgdGhlIGdpdmVuIFVSTC4K
LSAgICBDb29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nKSBEZWxheWVkCisgICAgQ29va2llc0ZvclVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZykgU3luY2hyb25vdXMKIAogICAgICMgU2V0cyB0aGUgY29va2llcyBm
b3IgdGhlIGdpdmVuIFVSTC4KICAgICBTZXRDb29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcs
IFN0cmluZyBjb29raWVTdHJpbmcpCiAKICAgICAjIEdldHMgdGhlIGF1dGhlbnRpY2F0aW9uIGlu
Zm8gZm9yIHRoZSBnaXZlbiBwcm90ZWN0aW9uIHNwYWNlLgotICAgIEdldEF1dGhlbnRpY2F0aW9u
SW5mbyhXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlKSAtPiAoYm9vbCBy
ZXR1cm5WYWx1ZSwgU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIERlbGF5ZWQKKyAg
ICBHZXRBdXRoZW50aWNhdGlvbkluZm8oV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rp
b25TcGFjZSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBh
c3N3b3JkKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZXRzIGEgcmVmZXJlbmNlIHRvIHRoZSBwbHVn
LWluIGVsZW1lbnQgTlBPYmplY3QuCi0gICAgR2V0UGx1Z2luRWxlbWVudE5QT2JqZWN0KCkgLT4g
KHVpbnQ2NF90IHBsdWdpbkVsZW1lbnROUE9iamVjdElEKSBEZWxheWVkCisgICAgR2V0UGx1Z2lu
RWxlbWVudE5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpbkVsZW1lbnROUE9iamVjdElEKSBT
eW5jaHJvbm91cwogCiAgICAgIyBFdmFsdWF0ZXMgdGhlIGdpdmVuIEphdmFTY3JpcHQgc3RyaW5n
LgotICAgIEV2YWx1YXRlKFdlYktpdDo6TlBWYXJpYW50RGF0YSBucE9iamVjdEFzVmFyaWFudERh
dGEsIFN0cmluZyBzY3JpcHRTdHJpbmcsIGJvb2wgYWxsb3dQb3B1cHMpIC0+IChib29sIHJldHVy
blZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkgRGVsYXllZAorICAgIEV2
YWx1YXRlKFdlYktpdDo6TlBWYXJpYW50RGF0YSBucE9iamVjdEFzVmFyaWFudERhdGEsIFN0cmlu
ZyBzY3JpcHRTdHJpbmcsIGJvb2wgYWxsb3dQb3B1cHMpIC0+IChib29sIHJldHVyblZhbHVlLCBX
ZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkgU3luY2hyb25vdXMKIAogICAgICMgQ2Fu
Y2VscyB0aGUgZ2l2ZW4gc3RyZWFtIGxvYWQuCiAgICAgQ2FuY2VsU3RyZWFtTG9hZCh1aW50NjRf
dCBzdHJlYW1JRCkKQEAgLTcyLDcgKzcyLDcgQEAgbWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgTGVn
YWN5UmVjZWl2ZXIgewogCiAjaWYgUExBVEZPUk0oWDExKQogICAgICMgQ3JlYXRlIHRoZSBwbHVn
aW4gY29udGFpbmVyIGZvciB3aW5kb3dlZCBwbHVnaW5zCi0gICAgQ3JlYXRlUGx1Z2luQ29udGFp
bmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKSBEZWxheWVkCisgICAgQ3JlYXRlUGx1Z2luQ29u
dGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKSBTeW5jaHJvbm91cwogCiAgICAgIyBVcGRh
dGUgZ2VvbWV0cnkgb2Ygd2luZG93ZWQgcGx1Z2luIHdpZGdldAogICAgIFdpbmRvd2VkUGx1Z2lu
R2VvbWV0cnlEaWRDaGFuZ2UoV2ViQ29yZTo6SW50UmVjdCBmcmFtZVJlY3QsIFdlYkNvcmU6Oklu
dFJlY3QgY2xpcFJlY3QsIHVpbnQ2NF90IHdpbmRvd0lEKQpAQCAtODIsMTAgKzgyLDEwIEBAIG1l
c3NhZ2VzIC0+IFBsdWdpblByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAgICAgIyBU
ZWxscyB0aGUgV2ViUHJvY2VzcyB0aGF0IHRoZSBwbHVnLWluIHdhcyBzdWNjZXNzZnVsbHkgaW5p
dGlhbGl6ZWQgYXN5bmNocm9ub3VzbHkKLSAgICBEaWRDcmVhdGVQbHVnaW4oYm9vbCB3YW50c1do
ZWVsRXZlbnRzLCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKSAtPiAoKSBEZWxheWVkCisg
ICAgRGlkQ3JlYXRlUGx1Z2luKGJvb2wgd2FudHNXaGVlbEV2ZW50cywgdWludDMyX3QgcmVtb3Rl
TGF5ZXJDbGllbnRJRCkgLT4gKCkgU3luY2hyb25vdXMKICAgICAKICAgICAjIFRlbGxzIHRoZSBX
ZWJQcm9jZXNzIHRoYXQgdGhlIHBsdWctaW4gZmFpbGVkIHRvIGluaXRpYWxpemUuCi0gICAgRGlk
RmFpbFRvQ3JlYXRlUGx1Z2luKCkgLT4gKCkgRGVsYXllZAorICAgIERpZEZhaWxUb0NyZWF0ZVBs
dWdpbigpIC0+ICgpIFN5bmNocm9ub3VzCiAKICAgICAjIFRlbGxzIHRoZSBXZWJQcm9jZXNzIHRo
YXQgdGhlIHBsdWctaW4gaGFzIHN0YXJ0ZWQgb3Igc3RvcHBlZCBwbGF5aW5nIGF1ZGlvLgogICAg
IFNldFBsdWdpbklzUGxheWluZ0F1ZGlvKGJvb2wgcGx1Z2luSXNQbGF5aW5nQXVkaW8pCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI0MzMwMCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29ubmVj
dGlvblRvCiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2Vy
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgc2VuZFN5bmMoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcihpZGVudGlm
aWVyKSwgTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtl
cjo6UmVwbHkoKSk7CisgICAgc2VuZFN5bmMoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlv
bjo6U3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoaWRlbnRpZmllciksIE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXJGcm9tQ2xpZW50OjpSZXBs
eSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjQzMzAwKQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3RpbwogICAgIEZpcmVJbnN0YWxsRXZlbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0
aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVu
dGlmaWVyKQotICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgRGVsYXllZAorICAgIFN5bmNUZXJtaW5hdGVXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3lu
Y2hyb25vdXMKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNs
aWVudElkUmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21w
bGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnRzRGF0YSkKICAgICBDbGFpbUNvbXBsZXRl
ZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKQpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyNDMzMjYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03OCwxMCArNzgsMTAgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVwbGFjZVNlbGVjdGVkVGV4dChTdHJpbmcg
b2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShT
dHJpbmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3Jp
Z2luYWxUZXh0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBTeW5jQXBwbHlB
dXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwgU3RyaW5nIG9yaWdpbmFsVGV4dCkgLT4g
KGJvb2wgYXV0b2NvcnJlY3Rpb25BcHBsaWVkKSBEZWxheWVkCisgICAgU3luY0FwcGx5QXV0b2Nv
cnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmlnaW5hbFRleHQpIC0+IChib29s
IGF1dG9jb3JyZWN0aW9uQXBwbGllZCkgU3luY2hyb25vdXMKICAgICBSZXF1ZXN0QXV0b2NvcnJl
Y3Rpb25Db250ZXh0KCkKICAgICBSZXF1ZXN0RXZhc2lvblJlY3RzQWJvdmVTZWxlY3Rpb24oKSAt
PiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVjdHMpIEFzeW5jCi0gICAgR2V0UG9zaXRp
b25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCByZXF1ZXN0KSAtPiAoc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW5mb3JtYXRpb24pIERlbGF5ZWQKKyAgICBHZXRQb3NpdGlvbkluZm9ybWF0aW9uKHN0
cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpIC0+IChz
dHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlv
bikgU3luY2hyb25vdXMKICAgICBSZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KQogICAgIFN0YXJ0SW50
ZXJhY3Rpb25XaXRoRWxlbWVudEF0UG9zaXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAg
ICAgU3RvcEludGVyYWN0aW9uKCkKQEAgLTEyMyw3ICsxMjMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCi0gICAgVG91Y2hFdmVudFN5bmMoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KSAtPiAo
Ym9vbCBoYW5kbGVkKSBEZWxheWVkCisgICAgVG91Y2hFdmVudFN5bmMoV2ViS2l0OjpXZWJUb3Vj
aEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogI2VuZGlmCiAjaWYg
IUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIFRv
dWNoRXZlbnQoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQpAQCAtMzc3LDcgKzM3Nyw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERyYXdSZWN0VG9JbWFn
ZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBX
ZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBEcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwg
dWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYo
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2Vi
S2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIERlbGF5
ZWQKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3luY2hyb25vdXMKICNlbmRp
ZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtNDA3LDcgKzQwNyw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBQTEFURk9STSAoR1RL
KSAmJiBIQVZFKEdUS19HRVNUVVJFUykKLSAgICBHZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJD
b3JlOjpJbnRQb2ludCBjZW50ZXJJblZpZXdDb29yZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBv
aW50IGNlbnRlcikgRGVsYXllZAorICAgIEdldENlbnRlckZvclpvb21HZXN0dXJlKFdlYkNvcmU6
OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQg
Y2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQx
NywxNiArNDE3LDE2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFt
ZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZUluVW5m
bGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpGbG9hdFBvaW50IGFjY2Vzc2liaWxpdHlWaWV3Q29v
cmRpbmF0ZXMpCiAgICAgU2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxl
KQogICAgIFJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhJUEM6OkRhdGFSZWZl
cmVuY2UgZWxlbWVuVG9rZW4sIElQQzo6RGF0YVJlZmVyZW5jZSB3aW5kb3dUb2tlbikKLSAgICBH
ZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkgLT4gKFN0cmluZyBzdHJpbmdWYWx1ZSkg
RGVsYXllZAotICAgIEdldERhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJv
YXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRf
dCBzaXplKSBEZWxheWVkCi0gICAgUmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFN0cmluZyBw
YXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBEZWxheWVkCisgICAgR2V0U3RyaW5nU2Vs
ZWN0aW9uRm9yUGFzdGVib2FyZCgpIC0+IChTdHJpbmcgc3RyaW5nVmFsdWUpIFN5bmNocm9ub3Vz
CisgICAgR2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBl
KSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUp
IFN5bmNocm9ub3VzCisgICAgUmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCiAgICAgUmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YShW
ZWN0b3I8U3RyaW5nPiB0eXBlcywgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAjZW5kaWYKIAot
ICAgIFNob3VsZERlbGF5V2luZG93T3JkZXJpbmdFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQg
ZXZlbnQpIC0+IChib29sIHJlc3VsdCkgRGVsYXllZAotICAgIEFjY2VwdHNGaXJzdE1vdXNlKGlu
dCBldmVudE51bWJlciwgV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1
bHQpIERlbGF5ZWQKKyAgICBTaG91bGREZWxheVdpbmRvd09yZGVyaW5nRXZlbnQoV2ViS2l0OjpX
ZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgQWNj
ZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZl
bnQpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKIAogICAgIFNldFRleHRBc3luYyhTdHJp
bmcgdGV4dCkKICAgICBJbnNlcnRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6
OkVkaXRpbmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwLCB1
aW50MzJfdCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8sIGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25V
cGRhdGUpCg==
</data>
<flag name="review"
          id="382064"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>