<?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>200835</bug_id>
          
          <creation_ts>2019-08-16 15:28:53 -0700</creation_ts>
          <short_desc>Use strongly typed identifiers for StorageArea / StorageAreaImpl</short_desc>
          <delta_ts>2019-08-16 22:43:16 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562244</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 15:28:53 -0700</bug_when>
    <thetext>Use strongly typed identifiers for StorageArea / StorageAreaImpl. They currently both use uint64_t and are used in the same code, it is therefore very easy to confused the 2 types of identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562252</commentid>
    <comment_count>1</comment_count>
      <attachid>376547</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 15:41:15 -0700</bug_when>
    <thetext>Created attachment 376547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562266</commentid>
    <comment_count>2</comment_count>
      <attachid>376554</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 15:59:32 -0700</bug_when>
    <thetext>Created attachment 376554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562349</commentid>
    <comment_count>3</comment_count>
      <attachid>376554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-16 18:22:26 -0700</bug_when>
    <thetext>Comment on attachment 376554
Patch

Rejecting attachment 376554 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 376554, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
torage/StorageArea.cpp
Hunk #1 FAILED at 36.
Hunk #2 succeeded at 89 (offset 1 line).
Hunk #3 succeeded at 106 (offset 1 line).
Hunk #4 succeeded at 125 (offset 1 line).
Hunk #5 succeeded at 141 (offset 1 line).
1 out of 6 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageArea.h
Hunk #2 FAILED at 44.
Hunk #4 succeeded at 72 (offset -2 lines).
Hunk #5 FAILED at 85.
2 out of 5 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageArea.h.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageAreaIdentifier.h
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp
Hunk #2 FAILED at 288.
Hunk #3 FAILED at 317.
Hunk #4 FAILED at 345.
Hunk #5 succeeded at 357 (offset -10 lines).
Hunk #6 succeeded at 368 (offset -10 lines).
Hunk #7 succeeded at 378 (offset -10 lines).
Hunk #8 succeeded at 386 (offset -10 lines).
3 out of 8 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.messages.in
patching file Source/WebKit/Scripts/webkit/messages.py
patching file Source/WebKit/WebKit.xcodeproj/project.pbxproj
patching file Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
patching file Source/WebKit/WebProcess/WebProcess.cpp
patching file Source/WebKit/WebProcess/WebProcess.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImplIdentifier.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.messages.in

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 18 diffs from patch file(s).
patching file Source/WebKit/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp
Hunk #1 FAILED at 36.
Hunk #2 succeeded at 89 (offset 1 line).
Hunk #3 succeeded at 106 (offset 1 line).
Hunk #4 succeeded at 125 (offset 1 line).
Hunk #5 succeeded at 141 (offset 1 line).
1 out of 6 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageArea.h
Hunk #2 FAILED at 44.
Hunk #4 succeeded at 72 (offset -2 lines).
Hunk #5 FAILED at 85.
2 out of 5 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageArea.h.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageAreaIdentifier.h
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp
Hunk #2 FAILED at 288.
Hunk #3 FAILED at 317.
Hunk #4 FAILED at 345.
Hunk #5 succeeded at 357 (offset -10 lines).
Hunk #6 succeeded at 368 (offset -10 lines).
Hunk #7 succeeded at 378 (offset -10 lines).
Hunk #8 succeeded at 386 (offset -10 lines).
3 out of 8 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.cpp.rej
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.h
patching file Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.messages.in
patching file Source/WebKit/Scripts/webkit/messages.py
patching file Source/WebKit/WebKit.xcodeproj/project.pbxproj
patching file Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
patching file Source/WebKit/WebProcess/WebProcess.cpp
patching file Source/WebKit/WebProcess/WebProcess.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaImplIdentifier.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h
patching file Source/WebKit/WebProcess/WebStorage/StorageAreaMap.messages.in

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   2cfc4140242..ba2f1fb62a4  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 248808 = 2cfc4140242316f45765ffc4cf2b9e194bd3da48
r248809 = ba2f1fb62a4f35394085f45ab814d160c05d60f6
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/12928548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562408</commentid>
    <comment_count>4</comment_count>
      <attachid>376591</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 21:58:05 -0700</bug_when>
    <thetext>Created attachment 376591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562426</commentid>
    <comment_count>5</comment_count>
      <attachid>376591</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-16 22:42:44 -0700</bug_when>
    <thetext>Comment on attachment 376591
Patch

Clearing flags on attachment: 376591

Committed r248817: &lt;https://trac.webkit.org/changeset/248817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562427</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-16 22:42:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562428</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 22:43:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/54420552&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376547</attachid>
            <date>2019-08-16 15:41:15 -0700</date>
            <delta_ts>2019-08-16 15:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200835-20190816154114.patch</filename>
            <type>text/plain</type>
            <size>48721</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyMDU3NTJjMTFlMGUyY2M0
MDA3ZjgyMzM1OTAxOTgyNDBhNjA4MTcuLjMwOWVkODYyZjg1OTA3YjU1YmNhZDU3NGYzMzFhMzU4
ZGQ1OTQzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIFN0b3JhZ2VBcmVhIC8gU3RvcmFnZUFyZWFJbXBsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIFN0b3JhZ2VBcmVhIC8gU3RvcmFnZUFyZWFJbXBsLiBUaGV5IGN1cnJlbnRs
eSBib3RoIHVzZSB1aW50NjRfdAorICAgICAgICBhbmQgYXJlIHVzZWQgaW4gdGhlIHNhbWUgY29k
ZSwgaXQgaXMgdGhlcmVmb3JlIHZlcnkgZWFzeSB0byBjb25mdXNlZCB0aGUgMiB0eXBlcyBvZiBp
ZGVudGlmaWVycy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VBcmVhOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6
OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OmRpc3BhdGNoRXZlbnRzIGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmg6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjppZGVudGlmaWVyKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSWRlbnRpZmllci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
aC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2Fs
U3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVj
dFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VN
YW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlTWFuYWdlclNldDo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYSk6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpnZXRWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VN
YW5hZ2VyU2V0OjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJT
ZXQ6OmNsZWFyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJTdG9yYWdlQXJlYU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVucmVnaXN0ZXJTdG9yYWdlQXJlYU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnN0b3JhZ2VBcmVhTWFwIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJl
YUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsSWRlbnRp
Zmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFy
ZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFNYXA6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmxvYWRWYWx1ZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpkaXNwYXRjaFN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
QXJlYU1hcDo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VBcmVhTWFwOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuaDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6Omlk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYU1hcC5tZXNzYWdlcy5pbjoKKwogMjAxOS0wOC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsU3RvcmFnZURhdGFiYXNlIGRvZXMgbm90IG5lZWQg
dG8gc3ViY2xhc3MgVGhyZWFkU2FmZVJlZkNvdW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCmluZGV4IDcxMjU5
ZmVlOTgwYmU0ZTRkOTBhYTVmNDVjMTkxNTA4NzQ4YTM0NmYuLmRjZTUxNzQwYjYwZTJhYjU3NTY2
YzJhNWY2NmU3YWQ3NjEwZjBhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcApAQCAtMzYsMTggKzM2LDEyIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlU3RvcmFnZUFyZWFJZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMg
dWludDY0X3QgaWRlbnRpZmllcjsKLSAgICByZXR1cm4gKytpZGVudGlmaWVyOwotfQotCiBTdG9y
YWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBsb2NhbFN0b3JhZ2VO
YW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIHVuc2ln
bmVkIHF1b3RhSW5CeXRlcykKICAgICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1ha2VXZWFr
UHRyKGxvY2FsU3RvcmFnZU5hbWVzcGFjZSkpCiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3Vy
aXR5T3JpZ2luKQogICAgICwgbV9xdW90YUluQnl0ZXMocXVvdGFJbkJ5dGVzKQogICAgICwgbV9z
dG9yYWdlTWFwKFN0b3JhZ2VNYXA6OmNyZWF0ZShtX3F1b3RhSW5CeXRlcykpCi0gICAgLCBtX2lk
ZW50aWZpZXIoZ2VuZXJhdGVTdG9yYWdlQXJlYUlkZW50aWZpZXIoKSkKKyAgICAsIG1faWRlbnRp
ZmllcihJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogfQpAQCAtOTQsNyArODgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZUFyZWE+
IFN0b3JhZ2VBcmVhOjpjbG9uZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0b3JhZ2VBcmVhOwogfQog
Ci12b2lkIFN0b3JhZ2VBcmVhOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291
cmNlQ29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBib29s
JiBxdW90YUV4Y2VwdGlvbikKK3ZvaWQgU3RvcmFnZUFyZWE6OnNldEl0ZW0oSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVy
IHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG9wZW5EYXRhYmFzZUFuZEltcG9ydEl0
ZW1zSWZOZWVkZWQoKTsKQEAgLTExMSwxMCArMTA1LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWE6OnNl
dEl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRf
dCBzCiAgICAgaWYgKG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UpCiAgICAgICAgIG1fbG9jYWxTdG9y
YWdlRGF0YWJhc2UtPnNldEl0ZW0oa2V5LCB2YWx1ZSk7CiAKLSAgICBkaXNwYXRjaEV2ZW50cyhz
b3VyY2VDb25uZWN0aW9uLCBzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIG9sZFZhbHVlLCB2YWx1
ZSwgdXJsU3RyaW5nKTsKKyAgICBkaXNwYXRjaEV2ZW50cyhzb3VyY2VDb25uZWN0aW9uLCBzdG9y
YWdlQXJlYUltcGxJRCwga2V5LCBvbGRWYWx1ZSwgdmFsdWUsIHVybFN0cmluZyk7CiB9CiAKLXZv
aWQgU3RvcmFnZUFyZWE6OnJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3Vy
Y2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VBcmVhOjpyZW1vdmVJ
dGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIG9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQoKTsKQEAgLTEzMCwxMCAr
MTI0LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWE6OnJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfCiAgICAgaWYgKG1fbG9jYWxTdG9yYWdl
RGF0YWJhc2UpCiAgICAgICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UtPnJlbW92ZUl0ZW0oa2V5
KTsKIAotICAgIGRpc3BhdGNoRXZlbnRzKHNvdXJjZUNvbm5lY3Rpb24sIHNvdXJjZVN0b3JhZ2VB
cmVhSUQsIGtleSwgb2xkVmFsdWUsIFN0cmluZygpLCB1cmxTdHJpbmcpOworICAgIGRpc3BhdGNo
RXZlbnRzKHNvdXJjZUNvbm5lY3Rpb24sIHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIG9sZFZhbHVl
LCBTdHJpbmcoKSwgdXJsU3RyaW5nKTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYTo6Y2xlYXIoSVBD
OjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VT
dG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZUFyZWE6
OmNsZWFyKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFn
ZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgb3BlbkRhdGFi
YXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpOwpAQCAtMTQ2LDcgKzE0MCw3IEBAIHZvaWQgU3Rv
cmFnZUFyZWE6OmNsZWFyKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlv
biwgdWludDY0X3Qgc291CiAgICAgaWYgKG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UpCiAgICAgICAg
IG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UtPmNsZWFyKCk7CiAKLSAgICBkaXNwYXRjaEV2ZW50cyhz
b3VyY2VDb25uZWN0aW9uLCBzb3VyY2VTdG9yYWdlQXJlYUlELCBTdHJpbmcoKSwgU3RyaW5nKCks
IFN0cmluZygpLCB1cmxTdHJpbmcpOworICAgIGRpc3BhdGNoRXZlbnRzKHNvdXJjZUNvbm5lY3Rp
b24sIHN0b3JhZ2VBcmVhSW1wbElELCBTdHJpbmcoKSwgU3RyaW5nKCksIFN0cmluZygpLCB1cmxT
dHJpbmcpOwogfQogCiBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgU3RvcmFnZUFyZWE6
Oml0ZW1zKCkgY29uc3QKQEAgLTE5NCwxNSArMTg4LDE2IEBAIHZvaWQgU3RvcmFnZUFyZWE6Om9w
ZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQoKSBjb25zdAogICAgIG1fZGlkSW1wb3J0
SXRlbXNGcm9tRGF0YWJhc2UgPSB0cnVlOwogfQogCi12b2lkIFN0b3JhZ2VBcmVhOjpkaXNwYXRj
aEV2ZW50cyhJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykgY29uc3QKK3ZvaWQgU3RvcmFnZUFyZWE6OmRpc3BhdGNoRXZlbnRzKElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBz
dG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25z
dAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChzdG9yYWdl
QXJlYUltcGxJRCk7CiAgICAgZm9yIChhdXRvIGl0ID0gbV9ldmVudExpc3RlbmVycy5iZWdpbigp
LCBlbmQgPSBtX2V2ZW50TGlzdGVuZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAg
ICAgc291cmNlU3RvcmFnZUFyZWFJRCA9ICppdCA9PSBzb3VyY2VDb25uZWN0aW9uID8gc291cmNl
U3RvcmFnZUFyZWFJRCA6IDA7CisgICAgICAgIE9wdGlvbmFsPFN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXI+IG9wdGlvbmFsU3RvcmFnZUFyZWFJbXBsSUQgPSAqaXQgPT0gc291cmNlQ29ubmVjdGlv
biA/IG1ha2VPcHRpb25hbChzdG9yYWdlQXJlYUltcGxJRCkgOiBXVEY6Om51bGxvcHQ7CiAKLSAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25uZWN0aW9uSUQgPSAqaXQsIHNvdXJj
ZVN0b3JhZ2VBcmVhSUQsIGRlc3RpbmF0aW9uU3RvcmFnZUFyZWFJRCA9IG1faWRlbnRpZmllciwg
a2V5ID0ga2V5Lmlzb2xhdGVkQ29weSgpLCBvbGRWYWx1ZSA9IG9sZFZhbHVlLmlzb2xhdGVkQ29w
eSgpLCBuZXdWYWx1ZSA9IG5ld1ZhbHVlLmlzb2xhdGVkQ29weSgpLCB1cmxTdHJpbmcgPSB1cmxT
dHJpbmcuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtjb25uZWN0aW9uSUQgPSAqaXQsIGRlc3RpbmF0aW9uU3RvcmFnZUFyZWFJRCA9IG1faWRlbnRp
Zmllciwga2V5ID0ga2V5Lmlzb2xhdGVkQ29weSgpLCBvbGRWYWx1ZSA9IG9sZFZhbHVlLmlzb2xh
dGVkQ29weSgpLCBuZXdWYWx1ZSA9IG5ld1ZhbHVlLmlzb2xhdGVkQ29weSgpLCB1cmxTdHJpbmcg
PSB1cmxTdHJpbmcuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbmFsU3RvcmFnZUFyZWFJbXBsSUQgPSBX
VEZNb3ZlKG9wdGlvbmFsU3RvcmFnZUFyZWFJbXBsSUQpXSB7CiAgICAgICAgICAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbihjb25uZWN0aW9uSUQp
KQotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVh
TWFwOjpEaXNwYXRjaFN0b3JhZ2VFdmVudChzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIG9sZFZh
bHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nKSwgZGVzdGluYXRpb25TdG9yYWdlQXJlYUlEKTsKKyAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6
RGlzcGF0Y2hTdG9yYWdlRXZlbnQob3B0aW9uYWxTdG9yYWdlQXJlYUltcGxJRCwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyksIGRlc3RpbmF0aW9uU3RvcmFnZUFyZWFJRCk7CiAg
ICAgICAgIH0pOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmgKaW5kZXggOWY3YjQ4MjU4YjZhNTQ3NGRhODk5
YTEzZDJlYzUxMzVlNmQxMjU0OS4uMWNhNjlhMDI5N2M3M2FjMmFjMTRhY2Q4MGE3YTVhOTdjMDEy
M2Q0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhLmgKQEAgLTI2LDYgKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTQy
LDExICs0NCwxMyBAQCBjbGFzcyBTdG9yYWdlQXJlYSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU3RvcmFnZUFyZWEpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgor
ICAgIHVzaW5nIElkZW50aWZpZXIgPSBTdG9yYWdlQXJlYUlkZW50aWZpZXI7CisgICAgCiAgICAg
U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKICAgICB+U3RvcmFnZUFyZWEo
KTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luOyB9Ci0gICAgdWludDY0X3QgaWRl
bnRpZmllcigpIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwpAQCAtNTQsOSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZUFyZWE+IGNsb25lKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNl
dEl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKTsKLSAg
ICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0
aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwotICAgIHZvaWQgY2xlYXIoSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBj
b25zdCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBib29sJiBxdW90YUV4Y2VwdGlvbik7CisgICAgdm9pZCByZW1vdmVJdGVtKElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKKyAg
ICB2b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwg
U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwogCiAg
ICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGl0ZW1zKCkgY29uc3Q7CiAgICAgdm9p
ZCBjbGVhcigpOwpAQCAtNzAsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jVG9EYXRh
YmFzZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZGlzcGF0Y2hFdmVudHMoSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJl
YUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3Ry
aW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0OworICAgIHZvaWQg
ZGlzcGF0Y2hFdmVudHMoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9u
LCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcpIGNvbnN0OwogCiAgICAgLy8gV2lsbCBiZSBudWxsIGlmIHRoZSBzdG9yYWdlIGFyZWEg
YmVsb25ncyB0byBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2Ugb3IgdGhlIHN0b3JhZ2UgYXJl
YSBpcyBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi4KICAgICBXZWFrUHRyPExvY2FsU3RvcmFnZU5h
bWVzcGFjZT4gbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2U7CkBAIC04Myw3ICs4Nyw3IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VNYXA+IG1fc3RvcmFnZU1hcDsKICAgICBI
YXNoU2V0PElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQ+IG1fZXZlbnRMaXN0ZW5lcnM7CiAKLSAg
ICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUlkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUlkZW50
aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MTY2ODcwYzQ2OTZlY2UzOTEyNDBiNDdhNWI5NGVkMjczNWQ3
ZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFN0b3JhZ2VBcmVhSWRlbnRpZmllclR5cGUgeyB9
OwordXNpbmcgU3RvcmFnZUFyZWFJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdl
QXJlYUlkZW50aWZpZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKaW5kZXgg
YjBhMzI1MTg1NDA3NGUxZDY3ZjdiMzc3NzE2MGE1YzM1MzU3NTlhZi4uYjYzNzJjZDY3MzNmZmNi
ZjMxYjZiMDNkZjNiNzYxMzYxYzRkYmViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCkBA
IC0zNCw4ICszNCw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jb25zdCB1aW50NjRfdCBp
bnZhbGlkU3RvcmFnZUFyZWFJRCA9IDA7Ci0KIFJlZjxTdG9yYWdlTWFuYWdlclNldD4gU3RvcmFn
ZU1hbmFnZXJTZXQ6OmNyZWF0ZSgpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFn
ZU1hbmFnZXJTZXQpOwpAQCAtMjkwLDEzICsyODgsMTMgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFAKIAogICAgIGF1dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNl
c3Npb25JRCk7CiAgICAgaWYgKCFzdG9yYWdlTWFuYWdlcikgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihpbnZhbGlkU3RvcmFnZUFyZWFJRCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvKiBzdG9y
YWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VO
YW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5EYXRhKSk7CiAgICAgaWYgKCFzdG9yYWdlQXJlYSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnZhbGlkU3RvcmFnZUFyZWFJRCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTMxOSwxMyArMzE3LDEzIEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uCiAKICAg
ICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQp
OwogICAgIGlmICghc3RvcmFnZU1hbmFnZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
aW52YWxpZFN0b3JhZ2VBcmVhSUQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51
bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byogc3RvcmFnZUFyZWEg
PSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShzdG9yYWdl
TmFtZXNwYWNlSUQsIFdURk1vdmUodG9wTGV2ZWxPcmlnaW5EYXRhKSwgV1RGTW92ZShvcmlnaW5E
YXRhKSk7CiAgICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihpbnZhbGlkU3RvcmFnZUFyZWFJRCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6
bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM0NywxMyArMzQ1LDEzIEBA
IHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAKICAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1f
c3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwogICAgIGlmICghc3RvcmFnZU1hbmFnZXIp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlU2Vz
c2lvblN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5EYXRhKSk7
CiAgICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnZh
bGlkU3RvcmFnZUFyZWFJRCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9w
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM2OSw3ICszNjcsNyBAQCB2b2lkIFN0
b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLAogICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihjb25uZWN0aW9u
LnVuaXF1ZUlEKCkpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpkaXNjb25uZWN0RnJv
bVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFn
ZUFyZWFJRCkKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFy
ZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3Rv
cmFnZUFyZWFJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzgw
LDcgKzM3OCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5lY3RGcm9tU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1CiAgICAgc3RvcmFnZUFyZWEtPnJl
bW92ZUxpc3RlbmVyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7CiB9CiAKLXZvaWQgU3RvcmFnZU1h
bmFnZXJTZXQ6OmdldFZhbHVlcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90
IHN0b3JhZ2VBcmVhSUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgR2V0VmFsdWVzQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMzkwLDcgKzM4OCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmdldFZhbHVl
cyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VBCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWEgPyBzdG9yYWdlQXJlYS0+aXRlbXMoKSA6IEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+KCkpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpzZXRJ
dGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwg
dWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZykKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNl
ZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzk4
LDMxICszOTYsMzEgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VBcmUKICAgICBBU1NFUlQoc3RvcmFn
ZUFyZWEpOwogCiAgICAgYm9vbCBxdW90YUVycm9yOwotICAgIHN0b3JhZ2VBcmVhLT5zZXRJdGVt
KGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc291cmNlU3RvcmFnZUFyZWFJRCwga2V5LCB2YWx1ZSwg
dXJsU3RyaW5nLCBxdW90YUVycm9yKTsKKyAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShjb25uZWN0
aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIHZhbHVlLCB1cmxTdHJpbmcs
IHF1b3RhRXJyb3IpOwogCiAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJl
YU1hcDo6RGlkU2V0SXRlbShzdG9yYWdlTWFwU2VlZCwga2V5LCBxdW90YUVycm9yKSwgc3RvcmFn
ZUFyZWFJRCk7CiB9IAogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVtKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qg
c291cmNlU3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6
OnJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50
aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJl
YUltcGxJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJlYXMuZ2V0KHN0b3JhZ2VBcmVh
SUQpOwogICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7CiAKLSAgICBzdG9yYWdlQXJlYS0+cmVtb3Zl
SXRlbShjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGtleSwgdXJs
U3RyaW5nKTsKKyAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlSXRlbShjb25uZWN0aW9uLnVuaXF1ZUlE
KCksIHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIHVybFN0cmluZyk7CiAKICAgICBjb25uZWN0aW9u
LnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRSZW1vdmVJdGVtKHN0b3JhZ2VNYXBT
ZWVkLCBrZXkpLCBzdG9yYWdlQXJlYUlEKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6
Y2xlYXIoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlE
LCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpjbGVhcihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdl
QXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50
NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IG1fc3Rv
cmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlEKTsKICAgICBBU1NFUlQoc3RvcmFnZUFyZWEpOwog
Ci0gICAgc3RvcmFnZUFyZWEtPmNsZWFyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc291cmNlU3Rv
cmFnZUFyZWFJRCwgdXJsU3RyaW5nKTsKKyAgICBzdG9yYWdlQXJlYS0+Y2xlYXIoY29ubmVjdGlv
bi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJRCwgdXJsU3RyaW5nKTsKIAogICAgIGNvbm5l
Y3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZENsZWFyKHN0b3JhZ2VNYXBT
ZWVkKSwgc3RvcmFnZUFyZWFJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCmluZGV4IDQ4NDY5
YTY3ZWJmZTcyNmRlMDFhY2RkOWE0NWVmZDZlNTc4N2MzMTQuLmQ1MzAyYmUwMzJkNGVmODFmOTc3
MGI5NWY2MjQyZWVhN2I0NWQ3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCkBAIC0yNiw2ICsy
Niw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNp
bmNsdWRlICJTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUlt
cGxJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4K
QEAgLTM2LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNhbmRib3hFeHRl
bnNpb247CiAKLXVzaW5nIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHVpbnQ2NF90KT47Cit1c2luZyBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUlk
ZW50aWZpZXI+Jik+OwogdXNpbmcgR2V0VmFsdWVzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Jik+OwogdXNpbmcgR2V0T3JpZ2lu
c0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mJik+OwogdXNpbmcgR2V0T3JpZ2luRGV0YWlsc0NhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpP
cmlnaW5EZXRhaWxzPiYmKT47CkBAIC03NywxNiArNzksMTYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9u
SUQgLCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmLCBD
b25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwogICAgIHZvaWQgY29ubmVjdFRvVHJhbnNp
ZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCAsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIFNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwogICAgIHZvaWQg
Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lv
bklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmLCBD
b25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwotICAgIHZvaWQgZGlzY29ubmVjdEZyb21T
dG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlEKTsKLSAg
ICB2b2lkIGdldFZhbHVlcyhJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlE
LCBHZXRWYWx1ZXNDYWxsYmFjayYmKTsKLSAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9u
JiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwg
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0gICAgdm9pZCByZW1vdmVJdGVtKElQ
Qzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHNvdXJjZVN0
b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwotICAgIHZvaWQgY2xlYXIoSVBDOjpDb25uZWN0aW9u
JiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwg
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKKyAgICB2
b2lkIGRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFy
ZWFJZGVudGlmaWVyKTsKKyAgICB2b2lkIGdldFZhbHVlcyhJUEM6OkNvbm5lY3Rpb24mLCBTdG9y
YWdlQXJlYUlkZW50aWZpZXIsIEdldFZhbHVlc0NhbGxiYWNrJiYpOworICAgIHZvaWQgc2V0SXRl
bShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1w
bElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQg
cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3Jh
Z2VBcmVhSW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgY2xlYXIoSVBDOjpD
b25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwog
ICAgIHZvaWQgY2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNvbm5lY3Rpb24mLCBQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgdWludDY0X3Qg
dG9TdG9yYWdlTmFtZXNwYWNlSUQpOwogCiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3Rk
Ojp1bmlxdWVfcHRyPFN0b3JhZ2VNYW5hZ2VyPj4gbV9zdG9yYWdlTWFuYWdlcnM7CiAgICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgU3RyaW5nPiBtX3N0b3JhZ2VNYW5hZ2VyUGF0aHM7Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgU3RvcmFnZUFyZWEqPiBtX3N0b3JhZ2VBcmVhczsKKyAgICBIYXNo
TWFwPFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWEqPiBtX3N0b3JhZ2VBcmVhczsK
IAogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4gbV9jb25uZWN0aW9uczsK
ICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0
Lm1lc3NhZ2VzLmluCmluZGV4IGUwYzEzYTAwYmMzNWI5MTVmZWFkODQwMDVkYTM0N2QyN2M3ZDE3
ZDYuLjM2MDVjN2Q3MzViM2M0MzM3OTI4NGU4M2Q2ZmQ4Y2NhMTdhMjNhZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNl
dC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4KQEAgLTIxLDE0ICsyMSwxNCBAQAogIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBTdG9yYWdlTWFuYWdlclNldCB7Ci0gICAgQ29ubmVj
dFRvTG9jYWxTdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1
cml0eU9yaWdpbkRhdGEpIC0+ICh1aW50NjRfdCBzdG9yYWdlQXJlYUlEKSBTeW5jaHJvbm91cyBX
YW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsU2VjdXJpdHlPcmlnaW5EYXRh
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSkg
LT4gKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgot
ICAgIENvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIC0+ICh1aW50NjRfdCBzdG9yYWdlQXJlYUlEKSBT
eW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KLSAgICBEaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVh
KHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpIFdhbnRzQ29ubmVjdGlvbgotICAgIEdldFZhbHVlcyh1
aW50NjRfdCBzdG9yYWdlQXJlYUlEKSAtPiAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdmFsdWVz
KSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KKyAgICBDb25uZWN0VG9Mb2NhbFN0b3JhZ2VB
cmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSkg
LT4gKE9wdGlvbmFsPFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBzdG9yYWdlQXJlYUlE
KSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KKyAgICBDb25uZWN0VG9UcmFuc2llbnRMb2Nh
bFN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5h
bWVzcGFjZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsU2Vj
dXJpdHlPcmlnaW5EYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3Vy
aXR5T3JpZ2luRGF0YSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVy
PiBzdG9yYWdlQXJlYUlEKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KKyAgICBDb25uZWN0
VG9TZXNzaW9uU3RvcmFnZUFyZWEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBz
dG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2Vj
dXJpdHlPcmlnaW5EYXRhKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZp
ZXI+IHN0b3JhZ2VBcmVhSUQpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIERpc2Nv
bm5lY3RGcm9tU3RvcmFnZUFyZWEoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFn
ZUFyZWFJRCkgV2FudHNDb25uZWN0aW9uCisgICAgR2V0VmFsdWVzKFdlYktpdDo6U3RvcmFnZUFy
ZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2
YWx1ZXMpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogICAgIENsb25lU2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcm9tU3RvcmFn
ZU5hbWVzcGFjZUlELCB1aW50NjRfdCB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0
aW9uCiAKLSAgICBTZXRJdGVtKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHNvdXJj
ZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJp
bmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIFdhbnRzQ29ubmVjdGlvbgotICAgIFJlbW92ZUl0
ZW0odWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwg
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIFdh
bnRzQ29ubmVjdGlvbgotICAgIENsZWFyKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcgdXJs
U3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXks
IFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCisgICAgUmVt
b3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBXZWJL
aXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90
IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5l
Y3Rpb24KKyAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJl
YUlELCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQs
IHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rp
b24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGMwMWU4
OTU5ZTgwN2ZmNjI0ZWY4NTc3ZWIzNTU2NWU0MmQ5M2EzYjEuLjQzM2VmZGJjOTdiMzc3MTZlMmUy
Nzc1NzM0MmVhOTFkZGQ4OGY3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMjE3LDYgKzIxNyw4IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRf
aGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAg
ICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKKyAgICAgICAgJ1dlYktpdDo6
U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXInLAogICAgIF0pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDdlOWU5ZTI3M2FjNGZjZTQ4MGNmYzAwMmExZmJlZDQzZjlmMWIy
M2UuLjY1ZDc0ZDAxMDQ1YTQ2ZDNhMjEzNjU0YzM5YWZhZGFmY2JmNjZmM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE4OCw2ICsz
MTg4LDggQEAKIAkJNDY1MjUwRTUxRUNGNTJDRDAwMjAyNUNCIC8qIFdlYktpdDJJbml0aWFsaXpl
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjU3RDg4
NzIyNjY0QTE5MDA1REU4MjMgLyogV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3JpZW50YXRpb25BY2Nlc3NBbGVydC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjU3RDg4ODIyNjY0QTFBMDA1REU4MjMgLyogV0tP
cmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjVGNEUwMzIzMDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM4MUZBMjY2QzkwMDJG
QTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjZCQzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01MTUyLDYgKzUxNTQsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUFE
MzMwNkMxNkIxRDk5MTAwNEY2MEU3IC8qIFN0b3JhZ2VBcmVhSW1wbC5jcHAgKi8sCiAJCQkJMUFE
MzMwNkQxNkIxRDk5MTAwNEY2MEU3IC8qIFN0b3JhZ2VBcmVhSW1wbC5oICovLAorCQkJCTQ2NUY0
RTAzMjMwNzYwNEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmggKi8sCiAJ
CQkJMUFDRUNEMjIxNzE2MkRCMTAwMUZDOUVGIC8qIFN0b3JhZ2VBcmVhTWFwLmNwcCAqLywKIAkJ
CQkxQUNFQ0QyMzE3MTYyREIxMDAxRkM5RUYgLyogU3RvcmFnZUFyZWFNYXAuaCAqLywKIAkJCQkx
QTMzNERFQTE2REU4QjY4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4gKi8s
CkBAIC03MzA3LDYgKzczMTAsNyBAQAogCQkJCTQ2QkVCNkREMjJGQkIxNkIwMDI2OTg2NyAvKiBT
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5oICovLAogCQkJCTQ2QkVCNkQ2MjJGQjlCRDcwMDI2OTg2
NyAvKiBTdG9yYWdlQXJlYS5jcHAgKi8sCiAJCQkJNDZCRUI2RDUyMkZCOUJENjAwMjY5ODY3IC8q
IFN0b3JhZ2VBcmVhLmggKi8sCisJCQkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3Jh
Z2VBcmVhSWRlbnRpZmllci5oICovLAogCQkJCTkzQjI2MTRBMjI3RDE0NzIwMEI5N0E3NiAvKiBT
dG9yYWdlTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNCMjYxNDkyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0
b3JhZ2VNYW5hZ2VyLmggKi8sCiAJCQkJOTM2QjA1OTcyMzAzOTAwQjAwMkZDMDZCIC8qIFN0b3Jh
Z2VNYW5hZ2VyU2V0LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGFmZDc0
N2E1Yjk5MTg1NzAzMDgzZmFjNTcwZmM0OGI0ZTVjYmVmN2UuLjhkYTdjOTE0MWVkMzk5ZGQyMmMx
YzNhN2JmZWQ3MjE4YTc5ZDg4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTAw
LDggKzEwMCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpT
dG9yYWdlQXJlYU1hcDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiBzdG9hcmdlQXJlYU1hcCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN0b3JhZ2VBcmVhTWFw
KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkKLSAgICAgICAgICAgIHN0b2FyZ2VBcmVhTWFwLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VBcmVhTWFwID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3RvcmFnZUFyZWFNYXAo
bWFrZU9iamVjdElkZW50aWZpZXI8U3RvcmFnZUFyZWFJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpKSkKKyAgICAgICAgICAgIHN0b3JhZ2VBcmVhTWFwLT5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDc2MDA1NTBjNWNhODg2
MGQ2ZTc2Y2ZlN2JmOTQ2NDY3YjdhZGEyMTMuLjZhNTQ3Nzc3Yzc2ZjhmZWZkYTkxMTMyMzA0NDFi
YTI0Y2Y3ZjJkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTE2NjAsMTggKzE2NjAsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpub25WaXNpYmxlUHJvY2Vzc0Ns
ZWFudXBUaW1lckZpcmVkKCkKIAogdm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlclN0b3JhZ2VBcmVh
TWFwKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1hcCkKIHsKLSAgICBBU1NFUlQoIW1fc3Rv
cmFnZUFyZWFNYXBzLmNvbnRhaW5zKHN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSkpOwotICAg
IG1fc3RvcmFnZUFyZWFNYXBzLnNldChzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVyKCksICZzdG9y
YWdlQXJlYU1hcCk7CisgICAgQVNTRVJUKHN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSk7Cisg
ICAgQVNTRVJUKCFtX3N0b3JhZ2VBcmVhTWFwcy5jb250YWlucygqc3RvcmFnZUFyZWFNYXAuaWRl
bnRpZmllcigpKSk7CisgICAgbV9zdG9yYWdlQXJlYU1hcHMuc2V0KCpzdG9yYWdlQXJlYU1hcC5p
ZGVudGlmaWVyKCksICZzdG9yYWdlQXJlYU1hcCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6dW5y
ZWdpc3RlclN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1hcCkKIHsK
LSAgICBBU1NFUlQobV9zdG9yYWdlQXJlYU1hcHMuY29udGFpbnMoc3RvcmFnZUFyZWFNYXAuaWRl
bnRpZmllcigpKSk7Ci0gICAgQVNTRVJUKG1fc3RvcmFnZUFyZWFNYXBzLmdldChzdG9yYWdlQXJl
YU1hcC5pZGVudGlmaWVyKCkpID09ICZzdG9yYWdlQXJlYU1hcCk7Ci0gICAgbV9zdG9yYWdlQXJl
YU1hcHMucmVtb3ZlKHN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSk7CisgICAgQVNTRVJUKHN0
b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSk7CisgICAgQVNTRVJUKG1fc3RvcmFnZUFyZWFNYXBz
LmNvbnRhaW5zKCpzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVyKCkpKTsKKyAgICBBU1NFUlQobV9z
dG9yYWdlQXJlYU1hcHMuZ2V0KCpzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVyKCkpID09ICZzdG9y
YWdlQXJlYU1hcCk7CisgICAgbV9zdG9yYWdlQXJlYU1hcHMucmVtb3ZlKCpzdG9yYWdlQXJlYU1h
cC5pZGVudGlmaWVyKCkpOwogfQogCi1TdG9yYWdlQXJlYU1hcCogV2ViUHJvY2Vzczo6c3RvcmFn
ZUFyZWFNYXAodWludDY0X3QgaWRlbnRpZmllcikgY29uc3QKK1N0b3JhZ2VBcmVhTWFwKiBXZWJQ
cm9jZXNzOjpzdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllcikg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcHMuZ2V0KGlkZW50aWZpZXIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTUzN2U1OTFkZjdmZDMy
MTJkZjllM2E2ZmMzMTMzOTk3MGQ3OTlkNC4uNTk2ZGRkYTA4MjVkZWZmYjU4ZWZmZmYwNjI4M2Qz
NjZhN2Y2MjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRl
eHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJWaWV3VXBkYXRlRGlzcGF0Y2hlci5oIgogI2lu
Y2x1ZGUgIldlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCIKQEAgLTIxNCw3ICsyMTUs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyU3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFy
ZWFNYXAmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1h
cCYpOwotICAgIFN0b3JhZ2VBcmVhTWFwKiBzdG9yYWdlQXJlYU1hcCh1aW50NjRfdCBpZGVudGlm
aWVyKSBjb25zdDsKKyAgICBTdG9yYWdlQXJlYU1hcCogc3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFy
ZWFJZGVudGlmaWVyKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0
cjxDRkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3Q7CkBAIC01NzIs
NyArNTczLDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2JhY2tsaWdodExldmVsIHsgMCB9Owog
I2VuZGlmCiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdG9yYWdlQXJlYU1hcCo+IG1fc3RvcmFn
ZUFyZWFNYXBzOworICAgIEhhc2hNYXA8U3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJl
YU1hcCo+IG1fc3RvcmFnZUFyZWFNYXBzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcAppbmRleCBlY2QyYjkzNWQ0MzNiZTgzN2M0YzRiYmFkZjNlNTVhYzQ2NmU0MWY1
Li4xMWJjNjIxM2FhZTE3YmY3MDgzNGI0OTNlZjVkNjY3NmZmMjI4OWJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5j
cHAKQEAgLTM4LDE5ICszOCwxMyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlU3RvcmFnZUFyZWFJRCgpCi17
Ci0gICAgc3RhdGljIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQ7Ci0gICAgcmV0dXJuICsrc3RvcmFn
ZUFyZWFJRDsKLX0KLQogUmVmPFN0b3JhZ2VBcmVhSW1wbD4gU3RvcmFnZUFyZWFJbXBsOjpjcmVh
dGUoUmVmPFN0b3JhZ2VBcmVhTWFwPiYmIHN0b3JhZ2VBcmVhTWFwKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFN0b3JhZ2VBcmVhSW1wbChXVEZNb3ZlKHN0b3JhZ2VBcmVhTWFwKSkpOwog
fQogCiBTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChSZWY8U3RvcmFnZUFyZWFNYXA+
JiYgc3RvcmFnZUFyZWFNYXApCi0gICAgOiBtX3N0b3JhZ2VBcmVhSUQoZ2VuZXJhdGVTdG9yYWdl
QXJlYUlEKCkpCisgICAgOiBtX2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAg
ICAsIG1fc3RvcmFnZUFyZWFNYXAobWFrZVdlYWtQdHIoc3RvcmFnZUFyZWFNYXAuZ2V0KCkpKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlQXJlYUltcGwuaAppbmRleCBiMmE4ZDUwYmUxODcwMWQ5MWQzMTExMTY5YzEzMmJmN2ZjOTE5
OTlhLi4wZjA1ZGY3NWI1N2YzNDJmMWNhOWE5NmNhNzQwODVkMzc3MzhhZjY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9TdG9yYWdlQXJlYS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTQwLDEwICs0MSwxMiBAQCBjbGFzcyBTdG9yYWdlQXJl
YU1hcDsKIAogY2xhc3MgU3RvcmFnZUFyZWFJbXBsIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlN0
b3JhZ2VBcmVhIHsKIHB1YmxpYzoKKyAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllcjsKKwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFJbXBsPiBjcmVhdGUo
UmVmPFN0b3JhZ2VBcmVhTWFwPiYmKTsKICAgICB2aXJ0dWFsIH5TdG9yYWdlQXJlYUltcGwoKTsK
IAotICAgIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VB
cmVhSUQ7IH0KKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KIAogcHJpdmF0ZToKICAgICBTdG9yYWdlQXJlYUltcGwoUmVmPFN0b3JhZ2VB
cmVhTWFwPiYmKTsKQEAgLTYyLDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY3JlbWVu
dEFjY2Vzc0NvdW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZURhdGFiYXNlSWZJZGxlKCkg
b3ZlcnJpZGU7CiAKLSAgICB1aW50NjRfdCBtX3N0b3JhZ2VBcmVhSUQ7CisgICAgSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CiAgICAgV2Vha1B0cjxTdG9yYWdlQXJlYU1hcD4gbV9zdG9yYWdlQXJl
YU1hcDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjVh
ZDc0YWMxZmI2OGJjYWYyMWU3NzFiY2UyNzRlZGM4ZmViMjNjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsSWRlbnRp
Zmllci5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2VudW0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllclR5cGUgeyB9
OwordXNpbmcgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllclR5cGU+OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggNjY2NWIz
ZjljZGZkNmZhZmU2YjZkZTIzOWMxNjQ2M2ZiOGY3ODVhYS4uMGMyMWU3MTlmNjJlNDNmNzMwNGQx
MTQyZTg3NTAxYmZkYThmZGNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApAQCAtNTUsNyArNTUsNiBAQCBSZWY8
U3RvcmFnZUFyZWFNYXA+IFN0b3JhZ2VBcmVhTWFwOjpjcmVhdGUoU3RvcmFnZU5hbWVzcGFjZUlt
cGwqIHN0b3JhZ2VOYW1lc3BhYwogCiBTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFyZWFNYXAoU3Rv
cmFnZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdpbikKICAgICA6IG1fc3RvcmFnZU5hbWVzcGFjZShzdG9y
YWdlTmFtZXNwYWNlKQotICAgICwgbV9zdG9yYWdlTWFwSUQoMCkKICAgICAsIG1fc3RvcmFnZVR5
cGUoc3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZVR5cGUoKSkKICAgICAsIG1fcXVvdGFJbkJ5dGVz
KHN0b3JhZ2VOYW1lc3BhY2UtPnF1b3RhSW5CeXRlcygpKQogICAgICwgbV9zZWN1cml0eU9yaWdp
bihXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luKSkKQEAgLTEwOCw3ICsxMDcsNyBAQCB2b2lkIFN0b3Jh
Z2VBcmVhTWFwOjpzZXRJdGVtKEZyYW1lKiBzb3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBsKiBz
b3VyY2VBcmVhLCBjbwogCiAgICAgbV9wZW5kaW5nVmFsdWVDaGFuZ2VzLmFkZChrZXkpOwogCi0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpTZXRJdGVt
KG1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVhLT5zdG9yYWdlQXJlYUlEKCksIG1fY3VycmVudFNl
ZWQsIGtleSwgdmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSksIDApOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6U2V0SXRlbSgq
bV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwgbV9jdXJyZW50U2VlZCwg
a2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIHZv
aWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1l
LCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5KQpAQCAtMTI0
LDcgKzEyMyw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0oV2ViQ29yZTo6RnJh
bWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvCiAKICAgICBtX3BlbmRpbmdWYWx1
ZUNoYW5nZXMuYWRkKGtleSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3Rv
cmFnZU1hbmFnZXJTZXQ6OlJlbW92ZUl0ZW0obV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPnN0
b3JhZ2VBcmVhSUQoKSwgbV9jdXJyZW50U2VlZCwga2V5LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1h
bmFnZXJTZXQ6OlJlbW92ZUl0ZW0oKm1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVhLT5pZGVudGlm
aWVyKCksIG1fY3VycmVudFNlZWQsIGtleSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgp
KSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNsZWFyKFdlYkNvcmU6OkZyYW1lKiBz
b3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VBcmVhKQpAQCAtMTM1LDcgKzEzNCw3
IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNsZWFyKFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFt
ZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VBCiAKICAgICBtX2hhc1BlbmRpbmdDbGVhciA9IHRy
dWU7CiAgICAgbV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJbkJ5dGVz
KTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkNs
ZWFyKG1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVhLT5zdG9yYWdlQXJlYUlEKCksIG1fY3VycmVu
dFNlZWQsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSksIDApOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6Q2xlYXIoKm1fc3RvcmFnZU1h
cElELCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIHNvdXJjZUZyYW1l
LT5kb2N1bWVudCgpLT51cmwoKSksIDApOwogfQogCiBib29sIFN0b3JhZ2VBcmVhTWFwOjpjb250
YWlucyhjb25zdCBTdHJpbmcmIGtleSkKQEAgLTE2NSw3ICsxNjQsNyBAQCB2b2lkIFN0b3JhZ2VB
cmVhTWFwOjpsb2FkVmFsdWVzSWZOZWVkZWQoKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1
c2UgYSBzcGVjaWFsIHNlbmRTeW5jIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCB3ZSBkb24ndCB3YW50
IHRvIHByb2Nlc3MgaW5jb21pbmcgbWVzc2FnZXMgd2hpbGUgd2FpdGluZyBmb3IgYSByZXBseS4K
ICAgICAvLyAoVGhpcyBmbGFnIGRvZXMgbm90IHlldCBleGlzdCkuIFNpbmNlIGxvYWRWYWx1ZXNJ
Zk5lZWRlZCgpIGVuZHMgdXAgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIEphdmFTY3JpcHQgY29k
ZSwgcHJvY2Vzc2luZyBpbmNvbWluZyBzeW5jaHJvbm91cyBtZXNzYWdlcwogICAgIC8vIGNvdWxk
IGxlYWQgdG8gd2VpcmQgcmVlbnRyZW5jeSBidWdzIG90aGVyd2lzZS4KLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpHZXRWYWx1ZXMobV9zdG9y
YWdlTWFwSUQpLCBNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkdldFZhbHVlczo6UmVwbHko
dmFsdWVzKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlclNldDo6R2V0VmFsdWVzKCptX3N0b3JhZ2VNYXBJRCksIE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlclNldDo6R2V0VmFsdWVzOjpSZXBseSh2YWx1ZXMpLCAwKTsKIAogICAgIG1fc3RvcmFn
ZU1hcCA9IFN0b3JhZ2VNYXA6OmNyZWF0ZShtX3F1b3RhSW5CeXRlcyk7CiAgICAgbV9zdG9yYWdl
TWFwLT5pbXBvcnRJdGVtcyhXVEZNb3ZlKHZhbHVlcykpOwpAQCAtMjYyLDE3ICsyNjEsMTcgQEAg
dm9pZCBTdG9yYWdlQXJlYU1hcDo6YXBwbHlDaGFuZ2UoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUpCiAgICAgbV9zdG9yYWdlTWFwLT5zZXRJdGVtSWdub3JpbmdRdW90
YShrZXksIG5ld1ZhbHVlKTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hTdG9y
YWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hTdG9yYWdlRXZl
bnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4mIHN0b3JhZ2VBcmVh
SW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
U3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgaWYgKCFz
b3VyY2VTdG9yYWdlQXJlYUlEKSB7CisgICAgaWYgKCFzdG9yYWdlQXJlYUltcGxJRCkgewogICAg
ICAgICAvLyBUaGlzIHN0b3JhZ2UgZXZlbnQgb3JpZ2luYXRlcyBmcm9tIGFub3RoZXIgcHJvY2Vz
cyBzbyB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBjaGFuZ2UgdG8gb3VyIHN0b3JhZ2UgYXJlYSBtYXAu
CiAgICAgICAgIGFwcGx5Q2hhbmdlKGtleSwgbmV3VmFsdWUpOwogICAgIH0KIAogICAgIGlmIChz
dG9yYWdlVHlwZSgpID09IFN0b3JhZ2VUeXBlOjpTZXNzaW9uKQotICAgICAgICBkaXNwYXRjaFNl
c3Npb25TdG9yYWdlRXZlbnQoc291cmNlU3RvcmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwgbmV3
VmFsdWUsIHVybFN0cmluZyk7CisgICAgICAgIGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChz
dG9yYWdlQXJlYUltcGxJRCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyk7CiAg
ICAgZWxzZQotICAgICAgICBkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KHNvdXJjZVN0b3JhZ2VB
cmVhSUQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmxTdHJpbmcpOworICAgICAgICBkaXNw
YXRjaExvY2FsU3RvcmFnZUV2ZW50KHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIG9sZFZhbHVlLCBu
ZXdWYWx1ZSwgdXJsU3RyaW5nKTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXJDYWNo
ZSgpCkBAIC0yODAsNyArMjc5LDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXJDYWNoZSgp
CiAgICAgcmVzZXRWYWx1ZXMoKTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hT
ZXNzaW9uU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVl
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNo
U2Vzc2lvblN0b3JhZ2VFdmVudChjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyPiYgc3RvcmFnZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKIHsKICAgICAvLyBOYW1lc3BhY2UgSURzIGZvciBzZXNzaW9uIHN0b3JhZ2UgbmFtZXNwYWNl
cyBhcmUgZXF1aXZhbGVudCB0byB3ZWIgcGFnZSBJRHMKICAgICAvLyBzbyB3ZSBjYW4gZ2V0IHRo
ZSByaWdodCBwYWdlIGhlcmUuCkBAIC0zMDEsNyArMzAwLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1h
cDo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVh
SUQsIGMKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIFN0b3JhZ2VBcmVhSW1wbCYg
c3RvcmFnZUFyZWEgPSBzdGF0aWNfY2FzdDxTdG9yYWdlQXJlYUltcGwmPihzdG9yYWdlLT5hcmVh
KCkpOwotICAgICAgICBpZiAoc3RvcmFnZUFyZWEuc3RvcmFnZUFyZWFJRCgpID09IHNvdXJjZVN0
b3JhZ2VBcmVhSUQpIHsKKyAgICAgICAgaWYgKHN0b3JhZ2VBcmVhLmlkZW50aWZpZXIoKSA9PSBz
dG9yYWdlQXJlYUltcGxJRCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc3RvcmFnZSBh
cmVhIHRoYXQgY2F1c2VkIHRoZSBldmVudCB0byBiZSBkaXNwYXRjaGVkLgogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KQEAgLTMxMiw3ICszMTEsNyBAQCB2b2lkIFN0b3JhZ2VBcmVh
TWFwOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFy
ZWFJRCwgYwogICAgIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2Vzc2lvblN0b3Jh
Z2VFdmVudHNUb0ZyYW1lcygqcGFnZSwgZnJhbWVzLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwg
dXJsU3RyaW5nLCBtX3NlY3VyaXR5T3JpZ2luLT5kYXRhKCkpOwogfQogCi12b2lkIFN0b3JhZ2VB
cmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VB
cmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBT
dHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZUFy
ZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllcj4mIHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGlzTG9jYWxTdG9yYWdlKHN0b3JhZ2VUeXBl
KCkpKTsKIApAQCAtMzMyLDcgKzMzMSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNo
TG9jYWxTdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIFN0b3JhZ2VBcmVhSW1wbCYgc3Rv
cmFnZUFyZWEgPSBzdGF0aWNfY2FzdDxTdG9yYWdlQXJlYUltcGwmPihzdG9yYWdlLT5hcmVhKCkp
OwotICAgICAgICAgICAgaWYgKHN0b3JhZ2VBcmVhLnN0b3JhZ2VBcmVhSUQoKSA9PSBzb3VyY2VT
dG9yYWdlQXJlYUlEKSB7CisgICAgICAgICAgICBpZiAoc3RvcmFnZUFyZWEuaWRlbnRpZmllcigp
ID09IHN0b3JhZ2VBcmVhSW1wbElEKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUg
c3RvcmFnZSBhcmVhIHRoYXQgY2F1c2VkIHRoZSBldmVudCB0byBiZSBkaXNwYXRjaGVkLgogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtMzc0LDkgKzM3Myw5IEBA
IHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc2Nvbm5lY3QoKQogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVucmVnaXN0ZXJTdG9yYWdlQXJlYU1hcCgqdGhpcyk7CiAKICAgICBpZiAoYXV0byBu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGlu
Z05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6RGlz
Y29ubmVjdEZyb21TdG9yYWdlQXJlYShtX3N0b3JhZ2VNYXBJRCksIDApOworICAgICAgICBuZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlclNldDo6RGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYSgqbV9zdG9yYWdlTWFwSUQpLCAw
KTsKIAotICAgIG1fc3RvcmFnZU1hcElEID0gMDsKKyAgICBtX3N0b3JhZ2VNYXBJRCA9IHsgfTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAppbmRleCA0NGFkMDZmOTFiNTVjN2Y0
MWU2ZDBmMjg4N2M5ZWMxN2Q1MmE3NDFkLi42NjU1MTEzYzE3ZjI0OWY4YzAwN2M0NmMzZTI3NjM0
ZjNhMmNhY2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhTWFwLmgKQEAgLTI2LDYgKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VBcmVh
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTY2LDcgKzY4LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBjb25uZWN0KCk7CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7Ci0gICAgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZU1hcElEOyB9CisgICAgY29u
c3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJZGVudGlmaWVyPiYgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc3RvcmFnZU1hcElEOyB9CiAKIHByaXZhdGU6CiAgICAgU3RvcmFnZUFyZWFNYXAo
U3RvcmFnZU5hbWVzcGFjZUltcGwqLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwpA
QCAtNzUsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlSXRlbSh1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXkpOwogICAgIHZvaWQgZGlkQ2xlYXIo
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpOwogCi0gICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVu
dCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpOworICAgIHZvaWQgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8
U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4mIHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVl
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CiAgICAgdm9pZCBjbGVhckNhY2hlKCk7CiAKICAg
ICB2b2lkIHJlc2V0VmFsdWVzKCk7CkBAIC04NCwxMiArODYsMTIgQEAgcHJpdmF0ZToKICAgICBi
b29sIHNob3VsZEFwcGx5Q2hhbmdlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKICAg
ICB2b2lkIGFwcGx5Q2hhbmdlKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG5ld1Zh
bHVlKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNv
dXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0g
ICAgdm9pZCBkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VB
cmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBT
dHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBkaXNw
YXRjaFNlc3Npb25TdG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQg
ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CiAKICAgICBT
dG9yYWdlTmFtZXNwYWNlSW1wbCogbV9zdG9yYWdlTmFtZXNwYWNlOwogCi0gICAgdWludDY0X3Qg
bV9zdG9yYWdlTWFwSUQ7CisgICAgT3B0aW9uYWw8U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBtX3N0
b3JhZ2VNYXBJRDsKIAogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CiAg
ICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluCmlu
ZGV4IDdhNzVkMjEwZmQ4MzI1ZjJiNTFhODljZTNlNTQyZDQ4MDM5MDk2YTkuLmRkY2I4NTU0NjZm
ZjVmNzJjN2E2MDJmN2JlMmFlNTFhZDRkOTc1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2Vz
LmluCkBAIC0yNSw2ICsyNSw2IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VBcmVhTWFwIHsKICAgICBE
aWRSZW1vdmVJdGVtKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5KQogICAgIERp
ZENsZWFyKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkKQogCi0gICAgRGlzcGF0Y2hTdG9yYWdlRXZl
bnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgU3RyaW5nIGtleSwgU3RyaW5nIG9sZFZh
bHVlLCBTdHJpbmcgbmV3VmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpCisgICAgRGlzcGF0Y2hTdG9y
YWdlRXZlbnQoT3B0aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiBzdG9y
YWdlQXJlYUltcGxJRCwgU3RyaW5nIGtleSwgU3RyaW5nIG9sZFZhbHVlLCBTdHJpbmcgbmV3VmFs
dWUsIFN0cmluZyB1cmxTdHJpbmcpCiAgICAgQ2xlYXJDYWNoZSgpCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376554</attachid>
            <date>2019-08-16 15:59:32 -0700</date>
            <delta_ts>2019-08-16 21:58:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200835-20190816155931.patch</filename>
            <type>text/plain</type>
            <size>48783</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY2N2QzNzhkMDk3YjRmMDkz
ZmE2OWQ0MjhiMzNkZDIxZGU4NjQ1NDIuLmIxNDVhZjUxOWUyZTYyNzcxNmYzNDE0MDEzMzllZWY2
OWZhMzRmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIFN0b3JhZ2VBcmVhIC8gU3RvcmFnZUFyZWFJbXBsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIFN0b3JhZ2VBcmVhIC8gU3RvcmFnZUFyZWFJbXBsLiBUaGV5IGN1cnJlbnRs
eSBib3RoIHVzZSB1aW50NjRfdAorICAgICAgICBhbmQgYXJlIHVzZWQgaW4gdGhlIHNhbWUgY29k
ZSwgaXQgaXMgdGhlcmVmb3JlIHZlcnkgZWFzeSB0byBjb25mdXNlZCB0aGUgMiB0eXBlcyBvZiBp
ZGVudGlmaWVycy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VBcmVhOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6
OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OmRpc3BhdGNoRXZlbnRzIGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmg6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjppZGVudGlmaWVyKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSWRlbnRpZmllci5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
aC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2Fs
U3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVj
dFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VN
YW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlTWFuYWdlclNldDo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYSk6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpnZXRWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VN
YW5hZ2VyU2V0OjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJT
ZXQ6OmNsZWFyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJTdG9yYWdlQXJlYU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVucmVnaXN0ZXJTdG9yYWdlQXJlYU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnN0b3JhZ2VBcmVhTWFwIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJl
YUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsSWRlbnRp
Zmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFy
ZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFNYXA6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmxvYWRWYWx1ZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpkaXNwYXRjaFN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
QXJlYU1hcDo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VBcmVhTWFwOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuaDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6Omlk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYU1hcC5tZXNzYWdlcy5pbjoKKwogMjAxOS0wOC0xNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJp
bmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBGdW5jdGlvbnMgd2l0aCBubyBwYXJhbWV0
ZXJzIGluIFdlYktpdC9TaGFyZWQvQVBJL2MgYW5kIFdlYktpdC9VSVByb2Nlc3MvQVBJL0MgYXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VBcmVhLmNwcAppbmRleCA3MTI1OWZlZTk4MGJlNGU0ZDkwYWE1ZjQ1YzE5MTUwODc0OGEz
NDZmLi5kY2U1MTc0MGI2MGUyYWI1NzU2NmMyYTVmNjZlN2FkNzYxMGYwYWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YS5jcHAKQEAgLTM2LDE4ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVN0b3JhZ2VBcmVhSWRl
bnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgcmV0dXJu
ICsraWRlbnRpZmllcjsKLX0KLQogU3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKExvY2FsU3RvcmFn
ZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFtZXNwYWNlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpCiAgICAgOiBtX2xvY2Fs
U3RvcmFnZU5hbWVzcGFjZShtYWtlV2Vha1B0cihsb2NhbFN0b3JhZ2VOYW1lc3BhY2UpKQogICAg
ICwgbV9zZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbikKICAgICAsIG1fcXVvdGFJbkJ5dGVz
KHF1b3RhSW5CeXRlcykKICAgICAsIG1fc3RvcmFnZU1hcChTdG9yYWdlTWFwOjpjcmVhdGUobV9x
dW90YUluQnl0ZXMpKQotICAgICwgbV9pZGVudGlmaWVyKGdlbmVyYXRlU3RvcmFnZUFyZWFJZGVu
dGlmaWVyKCkpCisgICAgLCBtX2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KQEAgLTk0LDcgKzg4LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFN0b3JhZ2VBcmVhPiBTdG9yYWdlQXJlYTo6Y2xvbmUoKSBjb25zdAogICAg
IHJldHVybiBzdG9yYWdlQXJlYTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYTo6c2V0SXRlbShJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJjZVN0
b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgYm9vbCYgcXVvdGFFeGNlcHRpb24pCit2b2lkIFN0b3JhZ2VB
cmVhOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwg
U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBib29s
JiBxdW90YUV4Y2VwdGlvbikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICBvcGVuRGF0YWJhc2VBbmRJbXBvcnRJdGVtc0lmTmVlZGVkKCk7CkBAIC0xMTEsMTAgKzEwNSwx
MCBAQCB2b2lkIFN0b3JhZ2VBcmVhOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQg
c291cmNlQ29ubmVjdGlvbiwgdWludDY0X3QgcwogICAgIGlmIChtX2xvY2FsU3RvcmFnZURhdGFi
YXNlKQogICAgICAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlLT5zZXRJdGVtKGtleSwgdmFsdWUp
OwogCi0gICAgZGlzcGF0Y2hFdmVudHMoc291cmNlQ29ubmVjdGlvbiwgc291cmNlU3RvcmFnZUFy
ZWFJRCwga2V5LCBvbGRWYWx1ZSwgdmFsdWUsIHVybFN0cmluZyk7CisgICAgZGlzcGF0Y2hFdmVu
dHMoc291cmNlQ29ubmVjdGlvbiwgc3RvcmFnZUFyZWFJbXBsSUQsIGtleSwgb2xkVmFsdWUsIHZh
bHVlLCB1cmxTdHJpbmcpOwogfQogCi12b2lkIFN0b3JhZ2VBcmVhOjpyZW1vdmVJdGVtKElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3Rv
cmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQor
dm9pZCBTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNv
dXJjZUNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBs
SUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRJbXBvcnRJdGVt
c0lmTmVlZGVkKCk7CkBAIC0xMzAsMTAgKzEyNCwxMCBAQCB2b2lkIFN0b3JhZ2VBcmVhOjpyZW1v
dmVJdGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgdWludDY0
XwogICAgIGlmIChtX2xvY2FsU3RvcmFnZURhdGFiYXNlKQogICAgICAgICBtX2xvY2FsU3RvcmFn
ZURhdGFiYXNlLT5yZW1vdmVJdGVtKGtleSk7CiAKLSAgICBkaXNwYXRjaEV2ZW50cyhzb3VyY2VD
b25uZWN0aW9uLCBzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIG9sZFZhbHVlLCBTdHJpbmcoKSwg
dXJsU3RyaW5nKTsKKyAgICBkaXNwYXRjaEV2ZW50cyhzb3VyY2VDb25uZWN0aW9uLCBzdG9yYWdl
QXJlYUltcGxJRCwga2V5LCBvbGRWYWx1ZSwgU3RyaW5nKCksIHVybFN0cmluZyk7CiB9CiAKLXZv
aWQgU3RvcmFnZUFyZWE6OmNsZWFyKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29u
bmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcpCit2b2lkIFN0b3JhZ2VBcmVhOjpjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
IHNvdXJjZUNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJ
bXBsSUQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogICAgIG9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQoKTsKQEAg
LTE0Niw3ICsxNDAsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhOjpjbGVhcihJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdQogICAgIGlmIChtX2xvY2Fs
U3RvcmFnZURhdGFiYXNlKQogICAgICAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlLT5jbGVhcigp
OwogCi0gICAgZGlzcGF0Y2hFdmVudHMoc291cmNlQ29ubmVjdGlvbiwgc291cmNlU3RvcmFnZUFy
ZWFJRCwgU3RyaW5nKCksIFN0cmluZygpLCBTdHJpbmcoKSwgdXJsU3RyaW5nKTsKKyAgICBkaXNw
YXRjaEV2ZW50cyhzb3VyY2VDb25uZWN0aW9uLCBzdG9yYWdlQXJlYUltcGxJRCwgU3RyaW5nKCks
IFN0cmluZygpLCBTdHJpbmcoKSwgdXJsU3RyaW5nKTsKIH0KIAogY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIFN0b3JhZ2VBcmVhOjppdGVtcygpIGNvbnN0CkBAIC0xOTQsMTUgKzE4OCwx
NiBAQCB2b2lkIFN0b3JhZ2VBcmVhOjpvcGVuRGF0YWJhc2VBbmRJbXBvcnRJdGVtc0lmTmVlZGVk
KCkgY29uc3QKICAgICBtX2RpZEltcG9ydEl0ZW1zRnJvbURhdGFiYXNlID0gdHJ1ZTsKIH0KIAot
dm9pZCBTdG9yYWdlQXJlYTo6ZGlzcGF0Y2hFdmVudHMoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJ
RCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1
ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0Cit2b2lkIFN0b3JhZ2VBcmVhOjpkaXNw
YXRjaEV2ZW50cyhJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIFN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZykgY29uc3QKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKKyAgICBBU1NFUlQoc3RvcmFnZUFyZWFJbXBsSUQpOwogICAgIGZvciAoYXV0byBpdCA9
IG1fZXZlbnRMaXN0ZW5lcnMuYmVnaW4oKSwgZW5kID0gbV9ldmVudExpc3RlbmVycy5lbmQoKTsg
aXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIHNvdXJjZVN0b3JhZ2VBcmVhSUQgPSAqaXQgPT0g
c291cmNlQ29ubmVjdGlvbiA/IHNvdXJjZVN0b3JhZ2VBcmVhSUQgOiAwOworICAgICAgICBPcHRp
b25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiBvcHRpb25hbFN0b3JhZ2VBcmVhSW1wbElE
ID0gKml0ID09IHNvdXJjZUNvbm5lY3Rpb24gPyBtYWtlT3B0aW9uYWwoc3RvcmFnZUFyZWFJbXBs
SUQpIDogV1RGOjpudWxsb3B0OwogCi0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
Y29ubmVjdGlvbklEID0gKml0LCBzb3VyY2VTdG9yYWdlQXJlYUlELCBkZXN0aW5hdGlvblN0b3Jh
Z2VBcmVhSUQgPSBtX2lkZW50aWZpZXIsIGtleSA9IGtleS5pc29sYXRlZENvcHkoKSwgb2xkVmFs
dWUgPSBvbGRWYWx1ZS5pc29sYXRlZENvcHkoKSwgbmV3VmFsdWUgPSBuZXdWYWx1ZS5pc29sYXRl
ZENvcHkoKSwgdXJsU3RyaW5nID0gdXJsU3RyaW5nLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29ubmVjdGlvbklEID0gKml0LCBkZXN0aW5hdGlv
blN0b3JhZ2VBcmVhSUQgPSBtX2lkZW50aWZpZXIsIGtleSA9IGtleS5pc29sYXRlZENvcHkoKSwg
b2xkVmFsdWUgPSBvbGRWYWx1ZS5pc29sYXRlZENvcHkoKSwgbmV3VmFsdWUgPSBuZXdWYWx1ZS5p
c29sYXRlZENvcHkoKSwgdXJsU3RyaW5nID0gdXJsU3RyaW5nLmlzb2xhdGVkQ29weSgpLCBvcHRp
b25hbFN0b3JhZ2VBcmVhSW1wbElEID0gV1RGTW92ZShvcHRpb25hbFN0b3JhZ2VBcmVhSW1wbElE
KV0gewogICAgICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246
OmNvbm5lY3Rpb24oY29ubmVjdGlvbklEKSkKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6RGlzcGF0Y2hTdG9yYWdlRXZlbnQoc291cmNl
U3RvcmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyksIGRlc3Rp
bmF0aW9uU3RvcmFnZUFyZWFJRCk7CisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpc3BhdGNoU3RvcmFnZUV2ZW50KG9wdGlvbmFsU3Rv
cmFnZUFyZWFJbXBsSUQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmxTdHJpbmcpLCBkZXN0
aW5hdGlvblN0b3JhZ2VBcmVhSUQpOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5oCmlu
ZGV4IDlmN2I0ODI1OGI2YTU0NzRkYTg5OWExM2QyZWM1MTM1ZTZkMTI1NDkuLjFjYTY5YTAyOTdj
NzNhYzJhYzE0YWNkODBhN2E1YTk3YzAxMjNkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5oCkBAIC0yNiw2ICsyNiw4
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
dG9yYWdlQXJlYUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCkBAIC00MiwxMSArNDQsMTMgQEAgY2xhc3MgU3RvcmFnZUFyZWEg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VBcmVhKTsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZUFy
ZWFJZGVudGlmaWVyOworICAgIAogICAgIFN0b3JhZ2VBcmVhKExvY2FsU3RvcmFnZU5hbWVzcGFj
ZSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIHF1b3RhSW5C
eXRlcyk7CiAgICAgflN0b3JhZ2VBcmVhKCk7CiAKICAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9y
aWdpbjsgfQotICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
IAogICAgIHZvaWQgYWRkTGlzdGVuZXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAg
dm9pZCByZW1vdmVMaXN0ZW5lcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKQEAgLTU0LDkg
KzU4LDkgQEAgcHVibGljOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFN0b3JhZ2VBcmVhPiBjbG9u
ZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQg
c291cmNlQ29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBi
b29sJiBxdW90YUV4Y2VwdGlvbik7Ci0gICAgdm9pZCByZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJ
RCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKLSAgICB2b2lk
IGNsZWFyKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgdWludDY0
X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZv
aWQgc2V0SXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIFN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgYm9vbCYgcXVvdGFFeGNlcHRpb24pOwor
ICAgIHZvaWQgcmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5l
Y3Rpb24sIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nKTsKIAogICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
JiBpdGVtcygpIGNvbnN0OwogICAgIHZvaWQgY2xlYXIoKTsKQEAgLTcwLDcgKzc0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc3luY1RvRGF0YWJhc2UoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRp
c3BhdGNoRXZlbnRzKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwg
dWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoRXZlbnRzKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdDsKIAogICAgIC8vIFdpbGwgYmUg
bnVsbCBpZiB0aGUgc3RvcmFnZSBhcmVhIGJlbG9uZ3MgdG8gYSBzZXNzaW9uIHN0b3JhZ2UgbmFt
ZXNwYWNlIG9yIHRoZSBzdG9yYWdlIGFyZWEgaXMgaW4gYW4gZXBoZW1lcmFsIHNlc3Npb24uCiAg
ICAgV2Vha1B0cjxMb2NhbFN0b3JhZ2VOYW1lc3BhY2U+IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNl
OwpAQCAtODMsNyArODcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdl
TWFwPiBtX3N0b3JhZ2VNYXA7CiAgICAgSGFzaFNldDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
PiBtX2V2ZW50TGlzdGVuZXJzOwogCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIElk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWFJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE2Njg3MGM0Njk2
ZWNlMzkxMjQwYjQ3YTViOTRlZDI3MzVkN2RmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUlkZW50aWZpZXIuaApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBTdG9y
YWdlQXJlYUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFN0b3JhZ2VBcmVhSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8U3RvcmFnZUFyZWFJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlclNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwCmluZGV4IGIwYTMyNTE4NTQwNzRlMWQ2N2Y3YjM3NzcxNjBhNWMz
NTM1NzU5YWYuLmI2MzcyY2Q2NzMzZmZjYmYzMWI2YjAzZGYzYjc2MTM2MWM0ZGJlYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlclNldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApAQCAtMzQsOCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY29uc3QgdWludDY0X3QgaW52YWxpZFN0b3JhZ2VBcmVhSUQgPSAwOwotCiBSZWY8
U3RvcmFnZU1hbmFnZXJTZXQ+IFN0b3JhZ2VNYW5hZ2VyU2V0OjpjcmVhdGUoKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VNYW5hZ2VyU2V0KTsKQEAgLTI5MCwxMyArMjg4LDEz
IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiAKICAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9
IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwogICAgIGlmICghc3RvcmFnZU1hbmFn
ZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRl
TG9jYWxTdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSkp
OwogICAgIGlmICghc3RvcmFnZUFyZWEpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52
YWxpZFN0b3JhZ2VBcmVhSUQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMTksMTMgKzMxNywxMyBAQCB2b2lk
IFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubgogCiAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3Jh
Z2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKICAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGludmFsaWRTdG9yYWdlQXJlYUlEKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVRyYW5zaWVu
dExvY2FsU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3Jp
Z2luRGF0YSksIFdURk1vdmUob3JpZ2luRGF0YSkpOwogICAgIGlmICghc3RvcmFnZUFyZWEpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0zNDcsMTMgKzM0NSwxMyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0
VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogCiAgICAg
YXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsK
ICAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGlu
dmFsaWRTdG9yYWdlQXJlYUlEKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxs
b3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0g
c3RvcmFnZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNl
SUQsIFdURk1vdmUob3JpZ2luRGF0YSkpOwogICAgIGlmICghc3RvcmFnZUFyZWEpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0zNjksNyArMzY3LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lv
blN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICBzdG9yYWdlQXJl
YS0+YWRkTGlzdGVuZXIoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKIH0KIAotdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTM4MCw3ICszNzgsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2Vy
U2V0OjpkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgdQogICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlE
KCkpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpnZXRWYWx1ZXMoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlELCBHZXRWYWx1ZXNDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Z2V0VmFsdWVz
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3Jh
Z2VBcmVhSUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTM5MCw3ICszODgsNyBAQCB2b2lkIFN0
b3JhZ2VNYW5hZ2VyU2V0OjpnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1
aW50NjRfdCBzdG9yYWdlQQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhID8gc3Rv
cmFnZUFyZWEtPml0ZW1zKCkgOiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsKIH0KIAotdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpz
ZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVy
IHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBs
SUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTM5OCwzMSArMzk2LDMxIEBAIHZvaWQgU3RvcmFnZU1hbmFn
ZXJTZXQ6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9y
YWdlQXJlCiAgICAgQVNTRVJUKHN0b3JhZ2VBcmVhKTsKIAogICAgIGJvb2wgcXVvdGFFcnJvcjsK
LSAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHNvdXJjZVN0
b3JhZ2VBcmVhSUQsIGtleSwgdmFsdWUsIHVybFN0cmluZywgcXVvdGFFcnJvcik7CisgICAgc3Rv
cmFnZUFyZWEtPnNldEl0ZW0oY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJ
RCwga2V5LCB2YWx1ZSwgdXJsU3RyaW5nLCBxdW90YUVycm9yKTsKIAogICAgIGNvbm5lY3Rpb24u
c2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZFNldEl0ZW0oc3RvcmFnZU1hcFNlZWQs
IGtleSwgcXVvdGFFcnJvciksIHN0b3JhZ2VBcmVhSUQpOwogfSAKIAotdm9pZCBTdG9yYWdlTWFu
YWdlclNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90
IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0
b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
Cit2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVk
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IG1fc3Rv
cmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlEKTsKICAgICBBU1NFUlQoc3RvcmFnZUFyZWEpOwog
Ci0gICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0oY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzb3Vy
Y2VTdG9yYWdlQXJlYUlELCBrZXksIHVybFN0cmluZyk7CisgICAgc3RvcmFnZUFyZWEtPnJlbW92
ZUl0ZW0oY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJRCwga2V5LCB1cmxT
dHJpbmcpOwogCiAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6
RGlkUmVtb3ZlSXRlbShzdG9yYWdlTWFwU2VlZCwga2V5KSwgc3RvcmFnZUFyZWFJRCk7CiB9CiAK
LXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwg
dWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBT
dG9yYWdlTWFuYWdlclNldDo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9y
YWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
YXV0byogc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhcy5nZXQoc3RvcmFnZUFyZWFJRCk7CiAg
ICAgQVNTRVJUKHN0b3JhZ2VBcmVhKTsKIAotICAgIHN0b3JhZ2VBcmVhLT5jbGVhcihjb25uZWN0
aW9uLnVuaXF1ZUlEKCksIHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVybFN0cmluZyk7CisgICAgc3Rv
cmFnZUFyZWEtPmNsZWFyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc3RvcmFnZUFyZWFJbXBsSUQs
IHVybFN0cmluZyk7CiAKICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVh
TWFwOjpEaWRDbGVhcihzdG9yYWdlTWFwU2VlZCksIHN0b3JhZ2VBcmVhSUQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyU2V0LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXJTZXQuaAppbmRleCA0ODQ2OWE2N2ViZmU3MjZkZTAxYWNkZDlhNDVlZmQ2ZTU3ODdj
MzE0Li5kNTMwMmJlMDMyZDRlZjgxZjk3NzBiOTVmNjI0MmVlYTdiNDVkN2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJT
ZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXJTZXQuaApAQCAtMjYsNiArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkBAIC0zNiw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwogCi11c2luZyBDb25uZWN0VG9TdG9yYWdl
QXJlYUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+OwordXNpbmcg
Q29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJZGVudGlmaWVyPiYpPjsKIHVzaW5nIEdldFZhbHVlc0Nh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYpPjsKIHVzaW5nIEdldE9yaWdpbnNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiYpPjsKIHVzaW5nIEdldE9y
aWdpbkRldGFpbHNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPExvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4mJik+OwpAQCAtNzcsMTYgKzc5
LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKElQQzo6
Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklEICwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlE
LCBTZWN1cml0eU9yaWdpbkRhdGEmJiwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmKTsK
ICAgICB2b2lkIGNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0
aW9uJiwgUEFMOjpTZXNzaW9uSUQgLCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3Vy
aXR5T3JpZ2luRGF0YSYmLCBTZWN1cml0eU9yaWdpbkRhdGEmJiwgQ29ubmVjdFRvU3RvcmFnZUFy
ZWFDYWxsYmFjayYmKTsKICAgICB2b2lkIGNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6
OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlE
LCBTZWN1cml0eU9yaWdpbkRhdGEmJiwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmKTsK
LSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgdWlu
dDY0X3Qgc3RvcmFnZUFyZWFJRCk7Ci0gICAgdm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9u
JiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgR2V0VmFsdWVzQ2FsbGJhY2smJik7Ci0gICAgdm9p
ZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
OwotICAgIHZvaWQgcmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzdG9yYWdl
QXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFw
U2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKLSAgICB2
b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQ
Qzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7CisgICAgdm9pZCBnZXRWYWx1
ZXMoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBHZXRWYWx1ZXNDYWxs
YmFjayYmKTsKKyAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFw
U2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKTsKKyAgICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3Rv
cmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBz
dG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KTsKKyAgICB2b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKICAgICB2b2lkIGNsb25lU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyb21TdG9y
YWdlTmFtZXNwYWNlSUQsIHVpbnQ2NF90IHRvU3RvcmFnZU5hbWVzcGFjZUlEKTsKIAogICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTdG9yYWdlTWFuYWdlcj4+IG1f
c3RvcmFnZU1hbmFnZXJzOwogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFN0cmluZz4gbV9z
dG9yYWdlTWFuYWdlclBhdGhzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0b3JhZ2VBcmVhKj4g
bV9zdG9yYWdlQXJlYXM7CisgICAgSGFzaE1hcDxTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3Jh
Z2VBcmVhKj4gbV9zdG9yYWdlQXJlYXM7CiAKICAgICBIYXNoU2V0PElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQ+IG1fY29ubmVjdGlvbnM7CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlclNldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgppbmRleCBlMGMxM2EwMGJjMzVi
OTE1ZmVhZDg0MDA1ZGEzNDdkMjdjN2QxN2Q2Li4zNjA1YzdkNzM1YjNjNDMzNzkyODRlODNkNmZk
OGNjYTE3YTIzYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmlu
CkBAIC0yMSwxNCArMjEsMTQgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gU3RvcmFn
ZU1hbmFnZXJTZXQgewotICAgIENvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAodWludDY0X3Qgc3Rv
cmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgQ29ubmVjdFRvVHJh
bnNpZW50TG9jYWxTdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90
IHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0
b3BMZXZlbFNlY3VyaXR5T3JpZ2luRGF0YSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIC0+ICh1aW50NjRfdCBzdG9yYWdlQXJlYUlEKSBTeW5j
aHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAo
dWludDY0X3Qgc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAg
RGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlQXJlYUlEKSBXYW50c0Nv
bm5lY3Rpb24KLSAgICBHZXRWYWx1ZXModWludDY0X3Qgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCisg
ICAgQ29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIC0+IChPcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVh
SWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCisg
ICAgQ29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSB0b3BMZXZlbFNlY3VyaXR5T3JpZ2luRGF0YSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIC0+IChPcHRpb25hbDxXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2Fu
dHNDb25uZWN0aW9uCisgICAgQ29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSkgLT4gKE9wdGlvbmFsPFdl
YktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBzdG9yYWdlQXJlYUlEKSBTeW5jaHJvbm91cyBX
YW50c0Nvbm5lY3Rpb24KKyAgICBEaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKFdlYktpdDo6U3Rv
cmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQpIFdhbnRzQ29ubmVjdGlvbgorICAgIEdl
dFZhbHVlcyhXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlEKSAtPiAo
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdmFsdWVzKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rp
b24KICAgICBDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgdWludDY0X3QgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgdWludDY0X3QgdG9TdG9yYWdl
TmFtZXNwYWNlSUQpIFdhbnRzQ29ubmVjdGlvbgogCi0gICAgU2V0SXRlbSh1aW50NjRfdCBzdG9y
YWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdl
TWFwU2VlZCwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50
c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVJdGVtKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcg
a2V5LCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBDbGVhcih1aW50NjRf
dCBzdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBz
dG9yYWdlTWFwU2VlZCwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCisgICAgU2V0
SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBXZWJLaXQ6
OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0
b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcp
IFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXIgc3RvcmFnZUFyZWFJRCwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0
b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwgU3Ry
aW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCisgICAgQ2xlYXIoV2ViS2l0OjpTdG9yYWdl
QXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5n
IHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCBjMDFlODk1OWU4MDdmZjYyNGVmODU3N2ViMzU1NjVlNDJkOTNh
M2IxLi40MzNlZmRiYzk3YjM3NzE2ZTJlMjc3NTczNDJlYTkxZGRkODhmN2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxNyw2ICsyMTcsOCBAQCBkZWYg
Zm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFj
dGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRCcsCisgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCisgICAgICAg
ICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyJywKICAgICBdKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZTllOWUyNzNhYzRm
Y2U0ODBjZmMwMDJhMWZiZWQ0M2Y5ZjFiMjNlLi42NWQ3NGQwMTA0NWE0NmQzYTIxMzY1NGMzOWFm
YWRhZmNiZjY2ZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTMxODgsNiArMzE4OCw4IEBACiAJCTQ2NTI1MEU1MUVDRjUyQ0QwMDIw
MjVDQiAvKiBXZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY1N0Q4ODcyMjY2NEExOTAwNURFODIzIC8qIFdLT3JpZW50YXRp
b25BY2Nlc3NBbGVydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09yaWVu
dGF0aW9uQWNjZXNzQWxlcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1N0Q4
ODgyMjY2NEExQTAwNURFODIzIC8qIFdLT3JpZW50YXRpb25BY2Nlc3NBbGVydC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLT3JpZW50YXRpb25BY2Nlc3NBbGVy
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RjRFMDIyMzA3NTlENTAwM0NF
REI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJl
YUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RjRFMDMyMzA3
NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwM0ExRkEyNjZD
OTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE1Miw2ICs1MTU0LDcgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTFBRDMzMDZDMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdl
QXJlYUltcGwuY3BwICovLAogCQkJCTFBRDMzMDZEMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdl
QXJlYUltcGwuaCAqLywKKwkJCQk0NjVGNEUwMzIzMDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllci5oICovLAogCQkJCTFBQ0VDRDIyMTcxNjJEQjEwMDFGQzlFRiAvKiBT
dG9yYWdlQXJlYU1hcC5jcHAgKi8sCiAJCQkJMUFDRUNEMjMxNzE2MkRCMTAwMUZDOUVGIC8qIFN0
b3JhZ2VBcmVhTWFwLmggKi8sCiAJCQkJMUEzMzRERUExNkRFOEI2ODAwNkE4RTM4IC8qIFN0b3Jh
Z2VBcmVhTWFwLm1lc3NhZ2VzLmluICovLApAQCAtNzMwNyw2ICs3MzEwLDcgQEAKIAkJCQk0NkJF
QjZERDIyRkJCMTZCMDAyNjk4NjcgLyogU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuaCAqLywKIAkJ
CQk0NkJFQjZENjIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuY3BwICovLAogCQkJCTQ2
QkVCNkQ1MjJGQjlCRDYwMDI2OTg2NyAvKiBTdG9yYWdlQXJlYS5oICovLAorCQkJCTQ2NUY0RTAy
MjMwNzU5RDUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAqLywKIAkJCQk5M0Iy
NjE0QTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuY3BwICovLAogCQkJCTkzQjI2
MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovLAogCQkJCTkzNkIwNTk3
MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdlTWFuYWdlclNldC5jcHAgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcAppbmRleCBhZmQ3NDdhNWI5OTE4NTcwMzA4M2ZhYzU3MGZjNDhiNGU1Y2Jl
ZjdlLi44ZGE3YzkxNDFlZDM5OWRkMjJjMWMzYTdiZmVkNzIxOGE3OWQ4OGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEwMCw4ICsxMDAsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgewotICAgICAgICBpZiAoYXV0byogc3RvYXJnZUFyZWFNYXAgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5zdG9yYWdlQXJlYU1hcChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpCi0gICAg
ICAgICAgICBzdG9hcmdlQXJlYU1hcC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlQXJlYU1hcCA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN0b3JhZ2VBcmVhTWFwKG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VBcmVh
SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkpCisgICAgICAgICAgICBz
dG9yYWdlQXJlYU1hcC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCA3NjAwNTUwYzVjYTg4NjBkNmU3NmNmZTdiZjk0NjQ2N2I3YWRhMjEzLi42YTU0
Nzc3N2M3NmY4ZmVmZGE5MTEzMjMwNDQxYmEyNGNmN2YyZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNjYwLDE4ICsxNjYwLDIwIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJGaXJlZCgpCiAKIHZvaWQgV2ViUHJv
Y2Vzczo6cmVnaXN0ZXJTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYgc3RvcmFnZUFyZWFN
YXApCiB7Ci0gICAgQVNTRVJUKCFtX3N0b3JhZ2VBcmVhTWFwcy5jb250YWlucyhzdG9yYWdlQXJl
YU1hcC5pZGVudGlmaWVyKCkpKTsKLSAgICBtX3N0b3JhZ2VBcmVhTWFwcy5zZXQoc3RvcmFnZUFy
ZWFNYXAuaWRlbnRpZmllcigpLCAmc3RvcmFnZUFyZWFNYXApOworICAgIEFTU0VSVChzdG9yYWdl
QXJlYU1hcC5pZGVudGlmaWVyKCkpOworICAgIEFTU0VSVCghbV9zdG9yYWdlQXJlYU1hcHMuY29u
dGFpbnMoKnN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSkpOworICAgIG1fc3RvcmFnZUFyZWFN
YXBzLnNldCgqc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpLCAmc3RvcmFnZUFyZWFNYXApOwog
fQogCiB2b2lkIFdlYlByb2Nlc3M6OnVucmVnaXN0ZXJTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJl
YU1hcCYgc3RvcmFnZUFyZWFNYXApCiB7Ci0gICAgQVNTRVJUKG1fc3RvcmFnZUFyZWFNYXBzLmNv
bnRhaW5zKHN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSkpOwotICAgIEFTU0VSVChtX3N0b3Jh
Z2VBcmVhTWFwcy5nZXQoc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpKSA9PSAmc3RvcmFnZUFy
ZWFNYXApOwotICAgIG1fc3RvcmFnZUFyZWFNYXBzLnJlbW92ZShzdG9yYWdlQXJlYU1hcC5pZGVu
dGlmaWVyKCkpOworICAgIEFTU0VSVChzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVyKCkpOworICAg
IEFTU0VSVChtX3N0b3JhZ2VBcmVhTWFwcy5jb250YWlucygqc3RvcmFnZUFyZWFNYXAuaWRlbnRp
ZmllcigpKSk7CisgICAgQVNTRVJUKG1fc3RvcmFnZUFyZWFNYXBzLmdldCgqc3RvcmFnZUFyZWFN
YXAuaWRlbnRpZmllcigpKSA9PSAmc3RvcmFnZUFyZWFNYXApOworICAgIG1fc3RvcmFnZUFyZWFN
YXBzLnJlbW92ZSgqc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpKTsKIH0KIAotU3RvcmFnZUFy
ZWFNYXAqIFdlYlByb2Nlc3M6OnN0b3JhZ2VBcmVhTWFwKHVpbnQ2NF90IGlkZW50aWZpZXIpIGNv
bnN0CitTdG9yYWdlQXJlYU1hcCogV2ViUHJvY2Vzczo6c3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFy
ZWFJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RvcmFnZUFy
ZWFNYXBzLmdldChpZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IGU1MzdlNTkxZGY3ZmQzMjEyZGY5ZTNhNmZjMzEzMzk5NzBkNzk5ZDQuLjU5NmRk
ZGEwODI1ZGVmZmI1OGVmZmZmMDYyODNkMzY2YTdmNjI2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlc291cmNlQ2FjaGVzVG9DbGVhci5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVmll
d1VwZGF0ZURpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLmgiCkBAIC0yMTQsNyArMjE1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3Rl
clN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3Rv
cmFnZUFyZWFNYXAoU3RvcmFnZUFyZWFNYXAmKTsKLSAgICBTdG9yYWdlQXJlYU1hcCogc3RvcmFn
ZUFyZWFNYXAodWludDY0X3QgaWRlbnRpZmllcikgY29uc3Q7CisgICAgU3RvcmFnZUFyZWFNYXAq
IHN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhSWRlbnRpZmllcikgY29uc3Q7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBzb3VyY2VBcHBsaWNhdGlvbkF1
ZGl0RGF0YSgpIGNvbnN0OwpAQCAtNTcyLDcgKzU3Myw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQg
bV9iYWNrbGlnaHRMZXZlbCB7IDAgfTsKICNlbmRpZgogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwg
U3RvcmFnZUFyZWFNYXAqPiBtX3N0b3JhZ2VBcmVhTWFwczsKKyAgICBIYXNoTWFwPFN0b3JhZ2VB
cmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFNYXAqPiBtX3N0b3JhZ2VBcmVhTWFwczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggZWNkMmI5MzVkNDMzYmU4
MzdjNGM0YmJhZGYzZTU1YWM0NjZlNDFmNS4uMTFiYzYyMTNhYWUxN2JmNzA4MzRiNDkzZWY1ZDY2
NzZmZjIyODliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC0zOCwxOSArMzgsMTMgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZVN0b3JhZ2VBcmVhSUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCBzdG9yYWdlQXJl
YUlEOwotICAgIHJldHVybiArK3N0b3JhZ2VBcmVhSUQ7Ci19Ci0KIFJlZjxTdG9yYWdlQXJlYUlt
cGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFJlZjxTdG9yYWdlQXJlYU1hcD4mJiBzdG9yYWdl
QXJlYU1hcCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlQXJlYUltcGwoV1RG
TW92ZShzdG9yYWdlQXJlYU1hcCkpKTsKIH0KIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJl
YUltcGwoUmVmPFN0b3JhZ2VBcmVhTWFwPiYmIHN0b3JhZ2VBcmVhTWFwKQotICAgIDogbV9zdG9y
YWdlQXJlYUlEKGdlbmVyYXRlU3RvcmFnZUFyZWFJRCgpKQorICAgIDogbV9pZGVudGlmaWVyKElk
ZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRy
KHN0b3JhZ2VBcmVhTWFwLmdldCgpKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKaW5kZXggYjJhOGQ1MGJlMTg3
MDFkOTFkMzExMTE2OWMxMzJiZjdmYzkxOTk5YS4uMGYwNWRmNzViNTdmMzQyZjFjYTlhOTZjYTc0
MDg1ZDM3NzM4YWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZUFyZWEuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00MCwxMCAr
NDEsMTIgQEAgY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiAKIGNsYXNzIFN0b3JhZ2VBcmVhSW1wbCBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlQXJlYSB7CiBwdWJsaWM6CisgICAgdXNpbmcg
SWRlbnRpZmllciA9IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXI7CisKICAgICBzdGF0aWMgUmVm
PFN0b3JhZ2VBcmVhSW1wbD4gY3JlYXRlKFJlZjxTdG9yYWdlQXJlYU1hcD4mJik7CiAgICAgdmly
dHVhbCB+U3RvcmFnZUFyZWFJbXBsKCk7CiAKLSAgICB1aW50NjRfdCBzdG9yYWdlQXJlYUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQXJlYUlEOyB9CisgICAgSWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6CiAgICAgU3Rv
cmFnZUFyZWFJbXBsKFJlZjxTdG9yYWdlQXJlYU1hcD4mJik7CkBAIC02Miw3ICs2NSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIG92ZXJyaWRlOwogCi0gICAgdWludDY0X3QgbV9zdG9y
YWdlQXJlYUlEOworICAgIElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYWtQdHI8U3Rv
cmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFNYXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTE4ZTFlZGFkNjhjOTM4NTllMGZkZTdjZmIyODgxMzg2
ODk5ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyVHlw
ZSB7IH07Cit1c2luZyBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCA2
NjY1YjNmOWNkZmQ2ZmFmZTZiNmRlMjM5YzE2NDYzZmI4Zjc4NWFhLi4wYzIxZTcxOWY2MmU0M2Y3
MzA0ZDExNDJlODc1MDFiZmRhOGZkY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC01NSw3ICs1NSw2IEBA
IFJlZjxTdG9yYWdlQXJlYU1hcD4gU3RvcmFnZUFyZWFNYXA6OmNyZWF0ZShTdG9yYWdlTmFtZXNw
YWNlSW1wbCogc3RvcmFnZU5hbWVzcGFjCiAKIFN0b3JhZ2VBcmVhTWFwOjpTdG9yYWdlQXJlYU1h
cChTdG9yYWdlTmFtZXNwYWNlSW1wbCogc3RvcmFnZU5hbWVzcGFjZSwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5T3JpZ2luKQogICAgIDogbV9zdG9yYWdlTmFtZXNwYWNl
KHN0b3JhZ2VOYW1lc3BhY2UpCi0gICAgLCBtX3N0b3JhZ2VNYXBJRCgwKQogICAgICwgbV9zdG9y
YWdlVHlwZShzdG9yYWdlTmFtZXNwYWNlLT5zdG9yYWdlVHlwZSgpKQogICAgICwgbV9xdW90YUlu
Qnl0ZXMoc3RvcmFnZU5hbWVzcGFjZS0+cXVvdGFJbkJ5dGVzKCkpCiAgICAgLCBtX3NlY3VyaXR5
T3JpZ2luKFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pKQpAQCAtMTA4LDcgKzEwNyw3IEBAIHZvaWQg
U3RvcmFnZUFyZWFNYXA6OnNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUlt
cGwqIHNvdXJjZUFyZWEsIGNvCiAKICAgICBtX3BlbmRpbmdWYWx1ZUNoYW5nZXMuYWRkKGtleSk7
CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OlNl
dEl0ZW0obV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwgbV9jdXJy
ZW50U2VlZCwga2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpTZXRJ
dGVtKCptX3N0b3JhZ2VNYXBJRCwgc291cmNlQXJlYS0+aWRlbnRpZmllcigpLCBtX2N1cnJlbnRT
ZWVkLCBrZXksIHZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLCAwKTsKIH0K
IAogdm9pZCBTdG9yYWdlQXJlYU1hcDo6cmVtb3ZlSXRlbShXZWJDb3JlOjpGcmFtZSogc291cmNl
RnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSwgY29uc3QgU3RyaW5nJiBrZXkpCkBA
IC0xMjQsNyArMTIzLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6cmVtb3ZlSXRlbShXZWJDb3Jl
OjpGcmFtZSogc291cmNlRnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc28KIAogICAgIG1fcGVuZGlu
Z1ZhbHVlQ2hhbmdlcy5hZGQoa2V5KTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlTWFuYWdlclNldDo6UmVtb3ZlSXRlbShtX3N0b3JhZ2VNYXBJRCwgc291cmNlQXJl
YS0+c3RvcmFnZUFyZWFJRCgpLCBtX2N1cnJlbnRTZWVkLCBrZXksIHNvdXJjZUZyYW1lLT5kb2N1
bWVudCgpLT51cmwoKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9y
YWdlTWFuYWdlclNldDo6UmVtb3ZlSXRlbSgqbV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPmlk
ZW50aWZpZXIoKSwgbV9jdXJyZW50U2VlZCwga2V5LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCkpLCAwKTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXIoV2ViQ29yZTo6RnJh
bWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEpCkBAIC0xMzUsNyAr
MTM0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXIoV2ViQ29yZTo6RnJhbWUqIHNvdXJj
ZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUEKIAogICAgIG1faGFzUGVuZGluZ0NsZWFy
ID0gdHJ1ZTsKICAgICBtX3N0b3JhZ2VNYXAgPSBTdG9yYWdlTWFwOjpjcmVhdGUobV9xdW90YUlu
Qnl0ZXMpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNl
dDo6Q2xlYXIobV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwgbV9j
dXJyZW50U2VlZCwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDbGVhcigqbV9zdG9y
YWdlTWFwSUQsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwgbV9jdXJyZW50U2VlZCwgc291cmNl
RnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIGJvb2wgU3RvcmFnZUFyZWFNYXA6
OmNvbnRhaW5zKGNvbnN0IFN0cmluZyYga2V5KQpAQCAtMTY1LDcgKzE2NCw3IEBAIHZvaWQgU3Rv
cmFnZUFyZWFNYXA6OmxvYWRWYWx1ZXNJZk5lZWRlZCgpCiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHVzZSBhIHNwZWNpYWwgc2VuZFN5bmMgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHdlIGRvbid0
IHdhbnQgdG8gcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlcyB3aGlsZSB3YWl0aW5nIGZvciBhIHJl
cGx5LgogICAgIC8vIChUaGlzIGZsYWcgZG9lcyBub3QgeWV0IGV4aXN0KS4gU2luY2UgbG9hZFZh
bHVlc0lmTmVlZGVkKCkgZW5kcyB1cCBiZWluZyBjYWxsZWQgZnJvbSB3aXRoaW4gSmF2YVNjcmlw
dCBjb2RlLCBwcm9jZXNzaW5nIGluY29taW5nIHN5bmNocm9ub3VzIG1lc3NhZ2VzCiAgICAgLy8g
Y291bGQgbGVhZCB0byB3ZWlyZCByZWVudHJlbmN5IGJ1Z3Mgb3RoZXJ3aXNlLgotICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkdldFZhbHVlcyht
X3N0b3JhZ2VNYXBJRCksIE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6R2V0VmFsdWVzOjpS
ZXBseSh2YWx1ZXMpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0
b3JhZ2VNYW5hZ2VyU2V0OjpHZXRWYWx1ZXMoKm1fc3RvcmFnZU1hcElEKSwgTWVzc2FnZXM6OlN0
b3JhZ2VNYW5hZ2VyU2V0OjpHZXRWYWx1ZXM6OlJlcGx5KHZhbHVlcyksIDApOwogCiAgICAgbV9z
dG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJbkJ5dGVzKTsKICAgICBtX3N0
b3JhZ2VNYXAtPmltcG9ydEl0ZW1zKFdURk1vdmUodmFsdWVzKSk7CkBAIC0yNjIsMTcgKzI2MSwx
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjphcHBseUNoYW5nZShjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBuZXdWYWx1ZSkKICAgICBtX3N0b3JhZ2VNYXAtPnNldEl0ZW1JZ25vcmlu
Z1F1b3RhKGtleSwgbmV3VmFsdWUpOwogfQogCi12b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRj
aFN0b3JhZ2VFdmVudCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaFN0b3Jh
Z2VFdmVudChjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiYgc3RvcmFn
ZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICBp
ZiAoIXNvdXJjZVN0b3JhZ2VBcmVhSUQpIHsKKyAgICBpZiAoIXN0b3JhZ2VBcmVhSW1wbElEKSB7
CiAgICAgICAgIC8vIFRoaXMgc3RvcmFnZSBldmVudCBvcmlnaW5hdGVzIGZyb20gYW5vdGhlciBw
cm9jZXNzIHNvIHdlIG5lZWQgdG8gYXBwbHkgdGhlIGNoYW5nZSB0byBvdXIgc3RvcmFnZSBhcmVh
IG1hcC4KICAgICAgICAgYXBwbHlDaGFuZ2Uoa2V5LCBuZXdWYWx1ZSk7CiAgICAgfQogCiAgICAg
aWYgKHN0b3JhZ2VUeXBlKCkgPT0gU3RvcmFnZVR5cGU6OlNlc3Npb24pCi0gICAgICAgIGRpc3Bh
dGNoU2Vzc2lvblN0b3JhZ2VFdmVudChzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIG9sZFZhbHVl
LCBuZXdWYWx1ZSwgdXJsU3RyaW5nKTsKKyAgICAgICAgZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2
ZW50KHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5n
KTsKICAgICBlbHNlCi0gICAgICAgIGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQoc291cmNlU3Rv
cmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyk7CisgICAgICAg
IGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQoc3RvcmFnZUFyZWFJbXBsSUQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCB1cmxTdHJpbmcpOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpjbGVh
ckNhY2hlKCkKQEAgLTI4MCw3ICsyNzksNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpjbGVhckNh
Y2hlKCkKICAgICByZXNldFZhbHVlcygpOwogfQogCi12b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNw
YXRjaFNlc3Npb25TdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlz
cGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50KGNvbnN0IE9wdGlvbmFsPFN0b3JhZ2VBcmVhSW1wbElk
ZW50aWZpZXI+JiBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nKQogewogICAgIC8vIE5hbWVzcGFjZSBJRHMgZm9yIHNlc3Npb24gc3RvcmFnZSBuYW1l
c3BhY2VzIGFyZSBlcXVpdmFsZW50IHRvIHdlYiBwYWdlIElEcwogICAgIC8vIHNvIHdlIGNhbiBn
ZXQgdGhlIHJpZ2h0IHBhZ2UgaGVyZS4KQEAgLTMwMSw3ICszMDAsNyBAQCB2b2lkIFN0b3JhZ2VB
cmVhTWFwOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFn
ZUFyZWFJRCwgYwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgU3RvcmFnZUFyZWFJ
bXBsJiBzdG9yYWdlQXJlYSA9IHN0YXRpY19jYXN0PFN0b3JhZ2VBcmVhSW1wbCY+KHN0b3JhZ2Ut
PmFyZWEoKSk7Ci0gICAgICAgIGlmIChzdG9yYWdlQXJlYS5zdG9yYWdlQXJlYUlEKCkgPT0gc291
cmNlU3RvcmFnZUFyZWFJRCkgeworICAgICAgICBpZiAoc3RvcmFnZUFyZWEuaWRlbnRpZmllcigp
ID09IHN0b3JhZ2VBcmVhSW1wbElEKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBzdG9y
YWdlIGFyZWEgdGhhdCBjYXVzZWQgdGhlIGV2ZW50IHRvIGJlIGRpc3BhdGNoZWQuCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzEyLDcgKzMxMSw3IEBAIHZvaWQgU3RvcmFn
ZUFyZWFNYXA6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudCh1aW50NjRfdCBzb3VyY2VTdG9y
YWdlQXJlYUlELCBjCiAgICAgU3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9u
U3RvcmFnZUV2ZW50c1RvRnJhbWVzKCpwYWdlLCBmcmFtZXMsIGtleSwgb2xkVmFsdWUsIG5ld1Zh
bHVlLCB1cmxTdHJpbmcsIG1fc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSk7CiB9CiAKLXZvaWQgU3Rv
cmFnZUFyZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3Rv
cmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9y
YWdlQXJlYU1hcDo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChjb25zdCBPcHRpb25hbDxTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyPiYgc3RvcmFnZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICBBU1NFUlQoaXNMb2NhbFN0b3JhZ2Uoc3RvcmFn
ZVR5cGUoKSkpOwogCkBAIC0zMzIsNyArMzMxLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlz
cGF0Y2hMb2NhbFN0b3JhZ2VFdmVudCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb24K
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgU3RvcmFnZUFyZWFJbXBs
JiBzdG9yYWdlQXJlYSA9IHN0YXRpY19jYXN0PFN0b3JhZ2VBcmVhSW1wbCY+KHN0b3JhZ2UtPmFy
ZWEoKSk7Ci0gICAgICAgICAgICBpZiAoc3RvcmFnZUFyZWEuc3RvcmFnZUFyZWFJRCgpID09IHNv
dXJjZVN0b3JhZ2VBcmVhSUQpIHsKKyAgICAgICAgICAgIGlmIChzdG9yYWdlQXJlYS5pZGVudGlm
aWVyKCkgPT0gc3RvcmFnZUFyZWFJbXBsSUQpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBzdG9yYWdlIGFyZWEgdGhhdCBjYXVzZWQgdGhlIGV2ZW50IHRvIGJlIGRpc3BhdGNoZWQu
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC0zNzQsOSArMzcz
LDkgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzY29ubmVjdCgpCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkudW5yZWdpc3RlclN0b3JhZ2VBcmVhTWFwKCp0aGlzKTsKIAogICAgIGlmIChh
dXRvIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4
aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkpCi0gICAgICAgIG5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0
OjpEaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKG1fc3RvcmFnZU1hcElEKSwgMCk7CisgICAgICAg
IG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0
b3JhZ2VNYW5hZ2VyU2V0OjpEaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKCptX3N0b3JhZ2VNYXBJ
RCksIDApOwogCi0gICAgbV9zdG9yYWdlTWFwSUQgPSAwOworICAgIG1fc3RvcmFnZU1hcElEID0g
eyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCmluZGV4IDQ0YWQwNmY5MWI1
NWM3ZjQxZTZkMGYyODg3YzllYzE3ZDUyYTc0MWQuLjY2NTUxMTNjMTdmMjQ5ZjhjMDA3YzQ2YzNl
Mjc2MzRmM2EyY2FjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaApAQCAtMjYsNiArMjYsOCBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFn
ZUFyZWEuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjYsNyArNjgsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGNvbm5lY3QoKTsKICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKLSAgICB1
aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlTWFwSUQ7IH0KKyAg
ICBjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUlkZW50aWZpZXI+JiBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9zdG9yYWdlTWFwSUQ7IH0KIAogcHJpdmF0ZToKICAgICBTdG9yYWdlQXJl
YU1hcChTdG9yYWdlTmFtZXNwYWNlSW1wbCosIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
Jik7CkBAIC03NSw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVJdGVtKHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgdm9pZCBkaWRD
bGVhcih1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoU3RvcmFn
ZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBPcHRp
b25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiYgc291cmNlU3RvcmFnZUFyZWFJRCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKICAgICB2b2lkIGNsZWFyQ2FjaGUoKTsK
IAogICAgIHZvaWQgcmVzZXRWYWx1ZXMoKTsKQEAgLTg0LDEyICs4NiwxMiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgc2hvdWxkQXBwbHlDaGFuZ2VGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0
OwogICAgIHZvaWQgYXBwbHlDaGFuZ2UoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
bmV3VmFsdWUpOwogCi0gICAgdm9pZCBkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQodWludDY0
X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KTsKLSAgICB2b2lkIGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3Rv
cmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKKyAgICB2b2lk
IGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChjb25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUlt
cGxJZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAg
dm9pZCBkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KGNvbnN0IE9wdGlvbmFsPFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKIAog
ICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiBtX3N0b3JhZ2VOYW1lc3BhY2U7CiAKLSAgICB1aW50
NjRfdCBtX3N0b3JhZ2VNYXBJRDsKKyAgICBPcHRpb25hbDxTdG9yYWdlQXJlYUlkZW50aWZpZXI+
IG1fc3RvcmFnZU1hcElEOwogCiAgICAgV2ViQ29yZTo6U3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlw
ZTsKICAgICB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMu
aW4KaW5kZXggN2E3NWQyMTBmZDgzMjVmMmI1MWE4OWNlM2U1NDJkNDgwMzkwOTZhOS4uZGRjYjg1
NTQ2NmZmNWY3MmM3YTYwMmY3YmUyYWU1MWFkNGQ5NzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVz
c2FnZXMuaW4KQEAgLTI1LDYgKzI1LDYgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZUFyZWFNYXAgewog
ICAgIERpZFJlbW92ZUl0ZW0odWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXkpCiAg
ICAgRGlkQ2xlYXIodWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpCiAKLSAgICBEaXNwYXRjaFN0b3Jh
Z2VFdmVudCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBTdHJpbmcga2V5LCBTdHJpbmcg
b2xkVmFsdWUsIFN0cmluZyBuZXdWYWx1ZSwgU3RyaW5nIHVybFN0cmluZykKKyAgICBEaXNwYXRj
aFN0b3JhZ2VFdmVudChPcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXI+
IHN0b3JhZ2VBcmVhSW1wbElELCBTdHJpbmcga2V5LCBTdHJpbmcgb2xkVmFsdWUsIFN0cmluZyBu
ZXdWYWx1ZSwgU3RyaW5nIHVybFN0cmluZykKICAgICBDbGVhckNhY2hlKCkKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376591</attachid>
            <date>2019-08-16 21:58:05 -0700</date>
            <delta_ts>2019-08-16 22:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200835-20190816215803.patch</filename>
            <type>text/plain</type>
            <size>48865</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyZTQ1Nzg0OTY4MzNkMWQ5
OTZkZWVkMjY2M2M0MzVkYTFjN2Y0ZjYuLjgzN2I1NThiMDhkYjU0MjFkNzZhZDllZDQxMzEwYjVi
MTAyY2JkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIFN0b3JhZ2VBcmVhIC8gU3RvcmFnZUFyZWFJbXBsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4MzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFVzZSBzdHJvbmdseSB0eXBlZCBp
ZGVudGlmaWVycyBmb3IgU3RvcmFnZUFyZWEgLyBTdG9yYWdlQXJlYUltcGwuIFRoZXkgY3VycmVu
dGx5IGJvdGggdXNlIHVpbnQ2NF90CisgICAgICAgIGFuZCBhcmUgdXNlZCBpbiB0aGUgc2FtZSBj
b2RlLCBpdCBpcyB0aGVyZWZvcmUgdmVyeSBlYXN5IHRvIGNvbmZ1c2VkIHRoZSAyIHR5cGVzIG9m
IGlkZW50aWZpZXJzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjpTdG9yYWdlQXJlYSk6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjpzZXRJdGVtKToKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWE6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YTo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6ZGlzcGF0Y2hFdmVudHMg
Y29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEu
aDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OmlkZW50aWZpZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJZGVudGlmaWVyLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1w
bC5oLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJT
ZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvTG9j
YWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25u
ZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKToKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmdldFZhbHVlcyk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpzZXRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU1hbmFnZXJTZXQ6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdl
clNldDo6Y2xlYXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXJTZXQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpyZWdpc3RlclN0b3JhZ2VBcmVhTWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6dW5yZWdpc3RlclN0b3JhZ2VBcmVhTWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6c3RvcmFnZUFyZWFNYXAgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VB
cmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1w
bC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpTdG9yYWdl
QXJlYU1hcCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpzZXRJdGVtKToKKyAg
ICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2Vi
S2l0OjpTdG9yYWdlQXJlYU1hcDo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6bG9hZFZhbHVlc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmRpc3BhdGNoU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZUFyZWFNYXA6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5oOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA4LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBTdG9yYWdlQXJlYTo6c2V0V29ya1F1ZXVlKCkg
bWVtYmVyIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAppbmRleCAxMjM1MDc3NjBkYWU1NzQ4NDY0ZjNl
MzIyMDlkZGFmOTUxMzk0YTFiLi5mMWI1YTJiMjZmZjE1NWViODM2NTg5MzY1ZDllYjIwMGIxZDY5
NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYS5jcHAKQEAgLTM2LDE4ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZVN0b3JhZ2VBcmVhSWRlbnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZp
ZXI7Ci0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0KLQogU3RvcmFnZUFyZWE6OlN0b3JhZ2VB
cmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFtZXNwYWNlLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMs
IFJlZjxXb3JrUXVldWU+JiYgcXVldWUpCiAgICAgOiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZSht
YWtlV2Vha1B0cihsb2NhbFN0b3JhZ2VOYW1lc3BhY2UpKQogICAgICwgbV9zZWN1cml0eU9yaWdp
bihzZWN1cml0eU9yaWdpbikKICAgICAsIG1fcXVvdGFJbkJ5dGVzKHF1b3RhSW5CeXRlcykKICAg
ICAsIG1fc3RvcmFnZU1hcChTdG9yYWdlTWFwOjpjcmVhdGUobV9xdW90YUluQnl0ZXMpKQotICAg
ICwgbV9pZGVudGlmaWVyKGdlbmVyYXRlU3RvcmFnZUFyZWFJZGVudGlmaWVyKCkpCisgICAgLCBt
X2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fcXVldWUoV1RGTW92
ZShxdWV1ZSkpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC05NSw3ICs4
OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZUFyZWE6OmNsb25lKCkg
Y29uc3QKICAgICByZXR1cm4gc3RvcmFnZUFyZWE7CiB9CiAKLXZvaWQgU3RvcmFnZUFyZWE6OnNl
dEl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKQordm9p
ZCBTdG9yYWdlQXJlYTo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNv
bm5lY3Rpb24sIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZywgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgb3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpOwpAQCAtMTEy
LDEwICsxMDYsMTAgQEAgdm9pZCBTdG9yYWdlQXJlYTo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHMKICAgICBpZiAobV9sb2NhbFN0
b3JhZ2VEYXRhYmFzZSkKICAgICAgICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZS0+c2V0SXRlbShr
ZXksIHZhbHVlKTsKIAotICAgIGRpc3BhdGNoRXZlbnRzKHNvdXJjZUNvbm5lY3Rpb24sIHNvdXJj
ZVN0b3JhZ2VBcmVhSUQsIGtleSwgb2xkVmFsdWUsIHZhbHVlLCB1cmxTdHJpbmcpOworICAgIGRp
c3BhdGNoRXZlbnRzKHNvdXJjZUNvbm5lY3Rpb24sIHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIG9s
ZFZhbHVlLCB2YWx1ZSwgdXJsU3RyaW5nKTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYTo6cmVtb3Zl
SXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVy
bFN0cmluZykKK3ZvaWQgU3RvcmFnZUFyZWE6OnJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3Jh
Z2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgb3BlbkRhdGFiYXNlQW5k
SW1wb3J0SXRlbXNJZk5lZWRlZCgpOwpAQCAtMTMxLDEwICsxMjUsMTAgQEAgdm9pZCBTdG9yYWdl
QXJlYTo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rp
b24sIHVpbnQ2NF8KICAgICBpZiAobV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSkKICAgICAgICAgbV9s
b2NhbFN0b3JhZ2VEYXRhYmFzZS0+cmVtb3ZlSXRlbShrZXkpOwogCi0gICAgZGlzcGF0Y2hFdmVu
dHMoc291cmNlQ29ubmVjdGlvbiwgc291cmNlU3RvcmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwg
U3RyaW5nKCksIHVybFN0cmluZyk7CisgICAgZGlzcGF0Y2hFdmVudHMoc291cmNlQ29ubmVjdGlv
biwgc3RvcmFnZUFyZWFJbXBsSUQsIGtleSwgb2xkVmFsdWUsIFN0cmluZygpLCB1cmxTdHJpbmcp
OwogfQogCi12b2lkIFN0b3JhZ2VBcmVhOjpjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
IHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlQXJlYTo6Y2xlYXIoSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0
b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRJbXBvcnRJdGVtc0lmTmVl
ZGVkKCk7CkBAIC0xNDcsNyArMTQxLDcgQEAgdm9pZCBTdG9yYWdlQXJlYTo6Y2xlYXIoSVBDOjpD
b25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3UKICAgICBp
ZiAobV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSkKICAgICAgICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFz
ZS0+Y2xlYXIoKTsKIAotICAgIGRpc3BhdGNoRXZlbnRzKHNvdXJjZUNvbm5lY3Rpb24sIHNvdXJj
ZVN0b3JhZ2VBcmVhSUQsIFN0cmluZygpLCBTdHJpbmcoKSwgU3RyaW5nKCksIHVybFN0cmluZyk7
CisgICAgZGlzcGF0Y2hFdmVudHMoc291cmNlQ29ubmVjdGlvbiwgc3RvcmFnZUFyZWFJbXBsSUQs
IFN0cmluZygpLCBTdHJpbmcoKSwgU3RyaW5nKCksIHVybFN0cmluZyk7CiB9CiAKIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBTdG9yYWdlQXJlYTo6aXRlbXMoKSBjb25zdApAQCAtMTk0
LDE1ICsxODgsMTYgQEAgdm9pZCBTdG9yYWdlQXJlYTo6b3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRl
bXNJZk5lZWRlZCgpIGNvbnN0CiAgICAgbV9kaWRJbXBvcnRJdGVtc0Zyb21EYXRhYmFzZSA9IHRy
dWU7CiB9CiAKLXZvaWQgU3RvcmFnZUFyZWE6OmRpc3BhdGNoRXZlbnRzKElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQgc291cmNlQ29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJ
RCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmlu
ZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdAordm9pZCBTdG9yYWdl
QXJlYTo6ZGlzcGF0Y2hFdmVudHMoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25u
ZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCBjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdW
YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CisgICAgQVNTRVJUKHN0b3JhZ2VBcmVhSW1wbElEKTsKICAgICBmb3Ig
KGF1dG8gaXQgPSBtX2V2ZW50TGlzdGVuZXJzLmJlZ2luKCksIGVuZCA9IG1fZXZlbnRMaXN0ZW5l
cnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBzb3VyY2VTdG9yYWdlQXJlYUlE
ID0gKml0ID09IHNvdXJjZUNvbm5lY3Rpb24gPyBzb3VyY2VTdG9yYWdlQXJlYUlEIDogMDsKKyAg
ICAgICAgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4gb3B0aW9uYWxTdG9yYWdl
QXJlYUltcGxJRCA9ICppdCA9PSBzb3VyY2VDb25uZWN0aW9uID8gbWFrZU9wdGlvbmFsKHN0b3Jh
Z2VBcmVhSW1wbElEKSA6IFdURjo6bnVsbG9wdDsKIAotICAgICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW2Nvbm5lY3Rpb25JRCA9ICppdCwgc291cmNlU3RvcmFnZUFyZWFJRCwgZGVzdGlu
YXRpb25TdG9yYWdlQXJlYUlEID0gbV9pZGVudGlmaWVyLCBrZXkgPSBrZXkuaXNvbGF0ZWRDb3B5
KCksIG9sZFZhbHVlID0gb2xkVmFsdWUuaXNvbGF0ZWRDb3B5KCksIG5ld1ZhbHVlID0gbmV3VmFs
dWUuaXNvbGF0ZWRDb3B5KCksIHVybFN0cmluZyA9IHVybFN0cmluZy5pc29sYXRlZENvcHkoKV0g
eworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2Nvbm5lY3Rpb25JRCA9ICppdCwg
ZGVzdGluYXRpb25TdG9yYWdlQXJlYUlEID0gbV9pZGVudGlmaWVyLCBrZXkgPSBrZXkuaXNvbGF0
ZWRDb3B5KCksIG9sZFZhbHVlID0gb2xkVmFsdWUuaXNvbGF0ZWRDb3B5KCksIG5ld1ZhbHVlID0g
bmV3VmFsdWUuaXNvbGF0ZWRDb3B5KCksIHVybFN0cmluZyA9IHVybFN0cmluZy5pc29sYXRlZENv
cHkoKSwgb3B0aW9uYWxTdG9yYWdlQXJlYUltcGxJRCA9IFdURk1vdmUob3B0aW9uYWxTdG9yYWdl
QXJlYUltcGxJRCldIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gSVBDOjpD
b25uZWN0aW9uOjpjb25uZWN0aW9uKGNvbm5lY3Rpb25JRCkpCi0gICAgICAgICAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpc3BhdGNoU3RvcmFnZUV2
ZW50KHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmxTdHJp
bmcpLCBkZXN0aW5hdGlvblN0b3JhZ2VBcmVhSUQpOworICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaXNwYXRjaFN0b3JhZ2VFdmVudChv
cHRpb25hbFN0b3JhZ2VBcmVhSW1wbElELCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3Ry
aW5nKSwgZGVzdGluYXRpb25TdG9yYWdlQXJlYUlEKTsKICAgICAgICAgfSk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWEuaAppbmRleCAzMzFlMjM2MjU5ODRhNGVhOTgyNTVjNDEyMjc4ZTBiOTNhODdhYWU4Li5l
MGY4ZWFiZTc0M2QzNTRjZjIxNzA5ZmIwYzI3MDA3NDQyMjI1MjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaApAQCAt
MjYsNiArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNDIsMTEgKzQ0LDEzIEBAIGNsYXNzIFN0
b3JhZ2VBcmVhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdG9yYWdlQXJlYSk7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgdXNpbmcgSWRlbnRpZmllciA9
IFN0b3JhZ2VBcmVhSWRlbnRpZmllcjsKKyAgICAKICAgICBTdG9yYWdlQXJlYShMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2UqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCB1bnNpZ25l
ZCBxdW90YUluQnl0ZXMsIFJlZjxXb3JrUXVldWU+JiYpOwogICAgIH5TdG9yYWdlQXJlYSgpOwog
CiAgICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbigp
IGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW47IH0KLSAgICB1aW50NjRfdCBpZGVudGlm
aWVyKCkgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgSWRlbnRpZmllciBpZGVudGlmaWVy
KCkgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIGFkZExpc3RlbmVyKElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCk7CkBAIC01NCw5ICs1OCw5IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxTdG9yYWdlQXJlYT4gY2xvbmUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0SXRl
bShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNv
dXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgYm9vbCYgcXVvdGFFeGNlcHRpb24pOwotICAgIHZv
aWQgcmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24s
IHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7Ci0gICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nKTsKKyAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKTsKKyAgICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZv
aWQgY2xlYXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCBTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CiAKICAgICBj
b25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaXRlbXMoKSBjb25zdDsKICAgICB2b2lkIGNs
ZWFyKCk7CkBAIC02OCw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNUb0RhdGFiYXNl
KCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaXNwYXRjaEV2ZW50cyhJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcm
IG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykgY29uc3Q7CisgICAgdm9pZCBkaXNw
YXRjaEV2ZW50cyhJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIFN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykgY29uc3Q7CiAKICAgICAvLyBXaWxsIGJlIG51bGwgaWYgdGhlIHN0b3JhZ2UgYXJlYSBiZWxv
bmdzIHRvIGEgc2Vzc2lvbiBzdG9yYWdlIG5hbWVzcGFjZSBvciB0aGUgc3RvcmFnZSBhcmVhIGlz
IGluIGFuIGVwaGVtZXJhbCBzZXNzaW9uLgogICAgIFdlYWtQdHI8TG9jYWxTdG9yYWdlTmFtZXNw
YWNlPiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTgxLDcgKzg1LDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZU1hcD4gbV9zdG9yYWdlTWFwOwogICAgIEhhc2hT
ZXQ8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4gbV9ldmVudExpc3RlbmVyczsKIAotICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBS
ZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSWRlbnRpZmllci5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSWRlbnRpZmllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUxNjY4NzBjNDY5NmVjZTM5MTI0MGI0N2E1Yjk0ZWQyNzM1ZDdkZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWFJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2VudW0gU3RvcmFnZUFyZWFJZGVudGlmaWVyVHlwZSB7IH07Cit1c2lu
ZyBTdG9yYWdlQXJlYUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VBcmVhSWRl
bnRpZmllclR5cGU+OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcAppbmRleCA3YTY1Njk1
ODVlZTk5OWQ0ZTMzYWE1ZTZkZGI2YmNkZDY3MGZlMGIxLi5jOWY0NTE2ZDdmOTMzNGUzYzc4N2I4
MDI1YjQxOWU3NWY1ODhmOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKQEAgLTM0LDgg
KzM0LDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNvbnN0IHVpbnQ2NF90IGludmFsaWRT
dG9yYWdlQXJlYUlEID0gMDsKLQogUmVmPFN0b3JhZ2VNYW5hZ2VyU2V0PiBTdG9yYWdlTWFuYWdl
clNldDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTWFuYWdl
clNldCk7CkBAIC0yOTAsMTMgKzI4OCwxMyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25u
ZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUAogCiAg
ICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklE
KTsKICAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGludmFsaWRTdG9yYWdlQXJlYUlEKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpu
dWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8qIHN0b3JhZ2VBcmVh
ID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZUxvY2FsU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFj
ZUlELCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBtX3F1ZXVlLmNvcHlSZWYoKSk7CiAgICAgaWYgKCFz
dG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnZhbGlkU3RvcmFnZUFy
ZWFJRCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTMxNSwxMyArMzEzLDEzIEBAIHZvaWQgU3RvcmFnZU1hbmFn
ZXJTZXQ6OmNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9u
JiBjb25uCiAKICAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdl
dChzZXNzaW9uSUQpOwogICAgIGlmICghc3RvcmFnZU1hbmFnZXIpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byog
c3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdl
QXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUodG9wTGV2ZWxPcmlnaW5EYXRhKSwgV1RG
TW92ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwogICAgIGlmICghc3RvcmFnZUFy
ZWEpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0zNDAsMTMgKzMzOCwxMyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpj
b25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAog
CiAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lv
bklEKTsKICAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGludmFsaWRTdG9yYWdlQXJlYUlEKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
OjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8qIHN0b3JhZ2VB
cmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYShzdG9yYWdlTmFt
ZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigpKTsKICAgICBp
ZiAoIXN0b3JhZ2VBcmVhKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGludmFsaWRTdG9y
YWdlQXJlYUlEKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzU5LDcgKzM1Nyw3IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sCiAgICAgc3RvcmFnZUFyZWEtPmFkZExpc3RlbmVyKGNvbm5lY3Rpb24udW5pcXVl
SUQoKSk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5lY3RGcm9tU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlE
KQordm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJl
YUlEKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zNzAsNyArMzY4
LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHUKICAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlTGlz
dGVuZXIoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFn
ZUFyZWFJRCwgR2V0VmFsdWVzQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU3Rv
cmFnZU1hbmFnZXJTZXQ6OmdldFZhbHVlcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0
b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBHZXRWYWx1ZXNDYWxsYmFjayYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC0zODAsNyArMzc4LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Z2V0VmFsdWVzKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZUEKICAgICBjb21wbGV0aW9u
SGFuZGxlcihzdG9yYWdlQXJlYSA/IHN0b3JhZ2VBcmVhLT5pdGVtcygpIDogSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4oKSk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OnNldEl0ZW0oSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlELCB1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQor
dm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zODgsMzEgKzM4
NiwzMSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZUFyZQogICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7
CiAKICAgICBib29sIHF1b3RhRXJyb3I7Ci0gICAgc3RvcmFnZUFyZWEtPnNldEl0ZW0oY29ubmVj
dGlvbi51bmlxdWVJRCgpLCBzb3VyY2VTdG9yYWdlQXJlYUlELCBrZXksIHZhbHVlLCB1cmxTdHJp
bmcsIHF1b3RhRXJyb3IpOworICAgIHN0b3JhZ2VBcmVhLT5zZXRJdGVtKGNvbm5lY3Rpb24udW5p
cXVlSUQoKSwgc3RvcmFnZUFyZWFJbXBsSUQsIGtleSwgdmFsdWUsIHVybFN0cmluZywgcXVvdGFF
cnJvcik7CiAKICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpE
aWRTZXRJdGVtKHN0b3JhZ2VNYXBTZWVkLCBrZXksIHF1b3RhRXJyb3IpLCBzdG9yYWdlQXJlYUlE
KTsKIH0gCiAKLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OnJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VT
dG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlTWFuYWdlclNldDo6cmVtb3Zl
SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBz
dG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElE
LCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
YXV0byogc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhcy5nZXQoc3RvcmFnZUFyZWFJRCk7CiAg
ICAgQVNTRVJUKHN0b3JhZ2VBcmVhKTsKIAotICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGNv
bm5lY3Rpb24udW5pcXVlSUQoKSwgc291cmNlU3RvcmFnZUFyZWFJRCwga2V5LCB1cmxTdHJpbmcp
OworICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc3Rv
cmFnZUFyZWFJbXBsSUQsIGtleSwgdXJsU3RyaW5nKTsKIAogICAgIGNvbm5lY3Rpb24uc2VuZChN
ZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZFJlbW92ZUl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtl
eSksIHN0b3JhZ2VBcmVhSUQpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpjbGVhcihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIHVpbnQ2
NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQs
IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0
b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJl
YXMuZ2V0KHN0b3JhZ2VBcmVhSUQpOwogICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7CiAKLSAgICBz
dG9yYWdlQXJlYS0+Y2xlYXIoY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzb3VyY2VTdG9yYWdlQXJl
YUlELCB1cmxTdHJpbmcpOworICAgIHN0b3JhZ2VBcmVhLT5jbGVhcihjb25uZWN0aW9uLnVuaXF1
ZUlEKCksIHN0b3JhZ2VBcmVhSW1wbElELCB1cmxTdHJpbmcpOwogCiAgICAgY29ubmVjdGlvbi5z
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6RGlkQ2xlYXIoc3RvcmFnZU1hcFNlZWQpLCBz
dG9yYWdlQXJlYUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmgKaW5kZXggNDg0NjlhNjdlYmZl
NzI2ZGUwMWFjZGQ5YTQ1ZWZkNmU1Nzg3YzMxNC4uZDUzMDJiZTAzMmQ0ZWY4MWY5NzcwYjk1ZjYy
NDJlZWE3YjQ1ZDdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmgKQEAgLTI2LDYgKzI2LDggQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VBcmVhSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMzYs
NyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2FuZGJveEV4dGVuc2lvbjsK
IAotdXNpbmcgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQodWludDY0X3QpPjsKK3VzaW5nIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE9wdGlvbmFsPFN0b3JhZ2VBcmVhSWRlbnRpZmll
cj4mKT47CiB1c2luZyBHZXRWYWx1ZXNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKT47CiB1c2luZyBHZXRPcmlnaW5zQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiYmKT47CiB1c2luZyBHZXRPcmlnaW5EZXRhaWxzQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRl
dGFpbHM+JiYpPjsKQEAgLTc3LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY29ubmVj
dFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCAsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIENvbm5lY3RU
b1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7CiAgICAgdm9pZCBjb25uZWN0VG9UcmFuc2llbnRMb2Nh
bFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklEICwgdWludDY0X3Qg
c3RvcmFnZU5hbWVzcGFjZUlELCBTZWN1cml0eU9yaWdpbkRhdGEmJiwgU2VjdXJpdHlPcmlnaW5E
YXRhJiYsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7CiAgICAgdm9pZCBjb25uZWN0
VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIENvbm5lY3RU
b1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VB
cmVhKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpOwotICAgIHZvaWQg
Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQsIEdldFZh
bHVlc0NhbGxiYWNrJiYpOwotICAgIHZvaWQgc2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mLCB1aW50
NjRfdCBzdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUs
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKLSAgICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25u
ZWN0aW9uJiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFy
ZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7Ci0gICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb24mLCB1aW50
NjRfdCBzdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgZGlz
Y29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50
aWZpZXIpOworICAgIHZvaWQgZ2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVh
SWRlbnRpZmllciwgR2V0VmFsdWVzQ2FsbGJhY2smJik7CisgICAgdm9pZCBzZXRJdGVtKElQQzo6
Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRp
ZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCByZW1vdmVJ
dGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rp
b24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CiAgICAgdm9p
ZCBjbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBmcm9tU3RvcmFnZU5hbWVzcGFjZUlELCB1aW50NjRfdCB0b1N0b3Jh
Z2VOYW1lc3BhY2VJRCk7CiAKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8U3RvcmFnZU1hbmFnZXI+PiBtX3N0b3JhZ2VNYW5hZ2VyczsKICAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBTdHJpbmc+IG1fc3RvcmFnZU1hbmFnZXJQYXRoczsKLSAgICBIYXNoTWFw
PHVpbnQ2NF90LCBTdG9yYWdlQXJlYSo+IG1fc3RvcmFnZUFyZWFzOworICAgIEhhc2hNYXA8U3Rv
cmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYSo+IG1fc3RvcmFnZUFyZWFzOwogCiAgICAg
SGFzaFNldDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2Nvbm5lY3Rpb25zOwogICAgIFJl
ZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2Fn
ZXMuaW4KaW5kZXggZTBjMTNhMDBiYzM1YjkxNWZlYWQ4NDAwNWRhMzQ3ZDI3YzdkMTdkNi4uMzYw
NWM3ZDczNWIzYzQzMzc5Mjg0ZTgzZDZmZDhjY2ExN2EyM2FlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgpAQCAtMjEsMTQgKzIxLDE0IEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIG1lc3NhZ2VzIC0+IFN0b3JhZ2VNYW5hZ2VyU2V0IHsKLSAgICBDb25uZWN0VG9Mb2Nh
bFN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qgc3RvcmFnZU5h
bWVzcGFjZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3Jp
Z2luRGF0YSkgLT4gKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpIFN5bmNocm9ub3VzIFdhbnRzQ29u
bmVjdGlvbgotICAgIENvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxTZWN1cml0eU9yaWdpbkRhdGEsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAodWlu
dDY0X3Qgc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgQ29u
bmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IHNlY3VyaXR5T3JpZ2luRGF0YSkgLT4gKHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpIFN5bmNocm9u
b3VzIFdhbnRzQ29ubmVjdGlvbgotICAgIERpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEodWludDY0
X3Qgc3RvcmFnZUFyZWFJRCkgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0VmFsdWVzKHVpbnQ2NF90
IHN0b3JhZ2VBcmVhSUQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMpIFN5bmNo
cm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIENvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAoT3B0
aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXI+IHN0b3JhZ2VBcmVhSUQpIFN5bmNo
cm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIENvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFn
ZUFyZWEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNl
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxTZWN1cml0eU9y
aWdpbkRhdGEsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmln
aW5EYXRhKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXI+IHN0b3Jh
Z2VBcmVhSUQpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgorICAgIENvbm5lY3RUb1Nlc3Np
b25TdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHN0b3JhZ2VO
YW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9y
aWdpbkRhdGEpIC0+IChPcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3Rv
cmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCisgICAgRGlzY29ubmVjdEZy
b21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlE
KSBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXRWYWx1ZXMoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykg
U3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyb21TdG9yYWdlTmFtZXNw
YWNlSUQsIHVpbnQ2NF90IHRvU3RvcmFnZU5hbWVzcGFjZUlEKSBXYW50c0Nvbm5lY3Rpb24KIAot
ICAgIFNldEl0ZW0odWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFn
ZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1
ZSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbSh1aW50
NjRfdCBzdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25u
ZWN0aW9uCi0gICAgQ2xlYXIodWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNl
U3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyB1cmxTdHJpbmcp
IFdhbnRzQ29ubmVjdGlvbgorICAgIFNldEl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZp
ZXIgc3RvcmFnZUFyZWFJRCwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3Jh
Z2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwgU3RyaW5n
IHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBSZW1vdmVJdGVt
KFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFdlYktpdDo6U3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFn
ZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIFdhbnRzQ29ubmVjdGlvbgor
ICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFdl
YktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0
X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyB1cmxTdHJpbmcpIFdhbnRzQ29ubmVjdGlvbgogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYzAxZTg5NTllODA3
ZmY2MjRlZjg1NzdlYjM1NTY1ZTQyZDkzYTNiMS4uNDMzZWZkYmM5N2IzNzcxNmUyZTI3NzU3MzQy
ZWE5MWRkZDg4ZjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMTcsNiArMjE3LDggQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAn
V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAorICAgICAgICAnV2ViS2l0OjpTdG9yYWdl
QXJlYUlkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcics
CiAgICAgXSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggN2U5ZTllMjczYWM0ZmNlNDgwY2ZjMDAyYTFmYmVkNDNmOWYxYjIzZS4uNjVk
NzRkMDEwNDVhNDZkM2EyMTM2NTRjMzlhZmFkYWZjYmY2NmYzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTg4LDYgKzMxODgsOCBA
QAogCQk0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2ViS2l0MkluaXRpYWxpemVDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdDJJbml0aWFs
aXplQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NTdEODg3MjI2NjRB
MTkwMDVERTgyMyAvKiBXS09yaWVudGF0aW9uQWNjZXNzQWxlcnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2NTdEODg4MjI2NjRBMUEwMDVERTgyMyAvKiBXS09yaWVudGF0
aW9uQWNjZXNzQWxlcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS09yaWVudGF0aW9uQWNjZXNzQWxlcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NUY0RTAyMjMwNzU5RDUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ2NUY0RTAzMjMwNzYwNEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8q
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUxNTIsNiArNTE1NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUQzMzA2QzE2
QjFEOTkxMDA0RjYwRTcgLyogU3RvcmFnZUFyZWFJbXBsLmNwcCAqLywKIAkJCQkxQUQzMzA2RDE2
QjFEOTkxMDA0RjYwRTcgLyogU3RvcmFnZUFyZWFJbXBsLmggKi8sCisJCQkJNDY1RjRFMDMyMzA3
NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCAqLywKIAkJCQkxQUNF
Q0QyMjE3MTYyREIxMDAxRkM5RUYgLyogU3RvcmFnZUFyZWFNYXAuY3BwICovLAogCQkJCTFBQ0VD
RDIzMTcxNjJEQjEwMDFGQzlFRiAvKiBTdG9yYWdlQXJlYU1hcC5oICovLAogCQkJCTFBMzM0REVB
MTZERThCNjgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5pbiAqLywKQEAgLTcz
MDcsNiArNzMxMCw3IEBACiAJCQkJNDZCRUI2REQyMkZCQjE2QjAwMjY5ODY3IC8qIFNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlLmggKi8sCiAJCQkJNDZCRUI2RDYyMkZCOUJENzAwMjY5ODY3IC8qIFN0
b3JhZ2VBcmVhLmNwcCAqLywKIAkJCQk0NkJFQjZENTIyRkI5QkQ2MDAyNjk4NjcgLyogU3RvcmFn
ZUFyZWEuaCAqLywKKwkJCQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJOTNCMjYxNEEyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLywKIAkJCQk5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1h
bmFnZXIuaCAqLywKIAkJCQk5MzZCMDU5NzIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFnZU1hbmFn
ZXJTZXQuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYWZkNzQ3YTViOTkx
ODU3MDMwODNmYWM1NzBmYzQ4YjRlNWNiZWY3ZS4uOGRhN2M5MTQxZWQzOTlkZDIyYzFjM2E3YmZl
ZDcyMThhNzlkODhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMDAsOCArMTAw
LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVAKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlN0b3JhZ2VB
cmVhTWFwOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHN0b2Fy
Z2VBcmVhTWFwID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3RvcmFnZUFyZWFNYXAoZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpKQotICAgICAgICAgICAgc3RvYXJnZUFyZWFNYXAtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBpZiAoYXV0byogc3RvcmFn
ZUFyZWFNYXAgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdG9yYWdlQXJlYU1hcChtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxTdG9yYWdlQXJlYUlkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSkpKQorICAgICAgICAgICAgc3RvcmFnZUFyZWFNYXAtPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzYwMDU1MGM1Y2E4ODYwZDZlNzZj
ZmU3YmY5NDY0NjdiN2FkYTIxMy4uNmE1NDc3NzdjNzZmOGZlZmRhOTExMzIzMDQ0MWJhMjRjZjdm
MmRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTY2MCwx
OCArMTY2MCwyMCBAQCB2b2lkIFdlYlByb2Nlc3M6Om5vblZpc2libGVQcm9jZXNzQ2xlYW51cFRp
bWVyRmlyZWQoKQogCiB2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyU3RvcmFnZUFyZWFNYXAoU3Rv
cmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQogewotICAgIEFTU0VSVCghbV9zdG9yYWdlQXJl
YU1hcHMuY29udGFpbnMoc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpKSk7Ci0gICAgbV9zdG9y
YWdlQXJlYU1hcHMuc2V0KHN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSwgJnN0b3JhZ2VBcmVh
TWFwKTsKKyAgICBBU1NFUlQoc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpKTsKKyAgICBBU1NF
UlQoIW1fc3RvcmFnZUFyZWFNYXBzLmNvbnRhaW5zKCpzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVy
KCkpKTsKKyAgICBtX3N0b3JhZ2VBcmVhTWFwcy5zZXQoKnN0b3JhZ2VBcmVhTWFwLmlkZW50aWZp
ZXIoKSwgJnN0b3JhZ2VBcmVhTWFwKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjp1bnJlZ2lzdGVy
U3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQogewotICAgIEFT
U0VSVChtX3N0b3JhZ2VBcmVhTWFwcy5jb250YWlucyhzdG9yYWdlQXJlYU1hcC5pZGVudGlmaWVy
KCkpKTsKLSAgICBBU1NFUlQobV9zdG9yYWdlQXJlYU1hcHMuZ2V0KHN0b3JhZ2VBcmVhTWFwLmlk
ZW50aWZpZXIoKSkgPT0gJnN0b3JhZ2VBcmVhTWFwKTsKLSAgICBtX3N0b3JhZ2VBcmVhTWFwcy5y
ZW1vdmUoc3RvcmFnZUFyZWFNYXAuaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoc3RvcmFnZUFy
ZWFNYXAuaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQobV9zdG9yYWdlQXJlYU1hcHMuY29udGFp
bnMoKnN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSkpOworICAgIEFTU0VSVChtX3N0b3JhZ2VB
cmVhTWFwcy5nZXQoKnN0b3JhZ2VBcmVhTWFwLmlkZW50aWZpZXIoKSkgPT0gJnN0b3JhZ2VBcmVh
TWFwKTsKKyAgICBtX3N0b3JhZ2VBcmVhTWFwcy5yZW1vdmUoKnN0b3JhZ2VBcmVhTWFwLmlkZW50
aWZpZXIoKSk7CiB9CiAKLVN0b3JhZ2VBcmVhTWFwKiBXZWJQcm9jZXNzOjpzdG9yYWdlQXJlYU1h
cCh1aW50NjRfdCBpZGVudGlmaWVyKSBjb25zdAorU3RvcmFnZUFyZWFNYXAqIFdlYlByb2Nlc3M6
OnN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdAog
ewogICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwcy5nZXQoaWRlbnRpZmllcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlNTM3ZTU5MWRmN2ZkMzIxMmRmOWUz
YTZmYzMxMzM5OTcwZDc5OWQ0Li41OTZkZGRhMDgyNWRlZmZiNThlZmZmZjA2MjgzZDM2NmE3ZjYy
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpZXdVcGRhdGVEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oIgpAQCAtMjE0LDcgKzIxNSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVnaXN0ZXJTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYp
OwogICAgIHZvaWQgdW5yZWdpc3RlclN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJik7Ci0g
ICAgU3RvcmFnZUFyZWFNYXAqIHN0b3JhZ2VBcmVhTWFwKHVpbnQ2NF90IGlkZW50aWZpZXIpIGNv
bnN0OworICAgIFN0b3JhZ2VBcmVhTWFwKiBzdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYUlkZW50
aWZpZXIpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gc291cmNlQXBwbGljYXRpb25BdWRpdERhdGEoKSBjb25zdDsKQEAgLTU3Miw3ICs1NzMs
NyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fYmFja2xpZ2h0TGV2ZWwgeyAwIH07CiAjZW5kaWYK
IAotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0b3JhZ2VBcmVhTWFwKj4gbV9zdG9yYWdlQXJlYU1h
cHM7CisgICAgSGFzaE1hcDxTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhTWFwKj4g
bV9zdG9yYWdlQXJlYU1hcHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
Y3BwCmluZGV4IGVjZDJiOTM1ZDQzM2JlODM3YzRjNGJiYWRmM2U1NWFjNDY2ZTQxZjUuLjExYmM2
MjEzYWFlMTdiZjcwODM0YjQ5M2VmNWQ2Njc2ZmYyMjg5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcApAQCAt
MzgsMTkgKzM4LDEzIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVTdG9yYWdlQXJlYUlEKCkKLXsKLSAgICBz
dGF0aWMgdWludDY0X3Qgc3RvcmFnZUFyZWFJRDsKLSAgICByZXR1cm4gKytzdG9yYWdlQXJlYUlE
OwotfQotCiBSZWY8U3RvcmFnZUFyZWFJbXBsPiBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZShSZWY8
U3RvcmFnZUFyZWFNYXA+JiYgc3RvcmFnZUFyZWFNYXApCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU3RvcmFnZUFyZWFJbXBsKFdURk1vdmUoc3RvcmFnZUFyZWFNYXApKSk7CiB9CiAKIFN0
b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFJlZjxTdG9yYWdlQXJlYU1hcD4mJiBzdG9y
YWdlQXJlYU1hcCkKLSAgICA6IG1fc3RvcmFnZUFyZWFJRChnZW5lcmF0ZVN0b3JhZ2VBcmVhSUQo
KSkKKyAgICA6IG1faWRlbnRpZmllcihJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAgICwgbV9z
dG9yYWdlQXJlYU1hcChtYWtlV2Vha1B0cihzdG9yYWdlQXJlYU1hcC5nZXQoKSkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5oCmluZGV4IGIyYThkNTBiZTE4NzAxZDkxZDMxMTExNjljMTMyYmY3ZmM5MTk5OWEuLjBm
MDVkZjc1YjU3ZjM0MmYxY2E5YTk2Y2E3NDA4NWQzNzczOGFmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1N0b3JhZ2VBcmVhLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgpAQCAtNDAsMTAgKzQxLDEyIEBAIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwog
CiBjbGFzcyBTdG9yYWdlQXJlYUltcGwgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3RvcmFnZUFy
ZWEgewogcHVibGljOgorICAgIHVzaW5nIElkZW50aWZpZXIgPSBTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyOworCiAgICAgc3RhdGljIFJlZjxTdG9yYWdlQXJlYUltcGw+IGNyZWF0ZShSZWY8U3Rv
cmFnZUFyZWFNYXA+JiYpOwogICAgIHZpcnR1YWwgflN0b3JhZ2VBcmVhSW1wbCgpOwogCi0gICAg
dWludDY0X3Qgc3RvcmFnZUFyZWFJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUFyZWFJRDsg
fQorICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQogCiBwcml2YXRlOgogICAgIFN0b3JhZ2VBcmVhSW1wbChSZWY8U3RvcmFnZUFyZWFNYXA+
JiYpOwpAQCAtNjIsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjcmVtZW50QWNjZXNz
Q291bnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSBvdmVycmlk
ZTsKIAotICAgIHVpbnQ2NF90IG1fc3RvcmFnZUFyZWFJRDsKKyAgICBJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKICAgICBXZWFrUHRyPFN0b3JhZ2VBcmVhTWFwPiBtX3N0b3JhZ2VBcmVhTWFwOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZTExOGUxZWRh
ZDY4YzkzODU5ZTBmZGU3Y2ZiMjg4MTM4Njg5OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gU3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllclR5cGU+
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggNjY2NWIzZjljZGZkNmZhZmU2YjZkZTIzOWMxNjQ2M2Zi
OGY3ODVhYS4uMGMyMWU3MTlmNjJlNDNmNzMwNGQxMTQyZTg3NTAxYmZkYThmZGNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmNwcApAQCAtNTUsNyArNTUsNiBAQCBSZWY8U3RvcmFnZUFyZWFNYXA+IFN0b3JhZ2VBcmVh
TWFwOjpjcmVhdGUoU3RvcmFnZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VOYW1lc3BhYwogCiBTdG9y
YWdlQXJlYU1hcDo6U3RvcmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VO
YW1lc3BhY2UsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdpbikK
ICAgICA6IG1fc3RvcmFnZU5hbWVzcGFjZShzdG9yYWdlTmFtZXNwYWNlKQotICAgICwgbV9zdG9y
YWdlTWFwSUQoMCkKICAgICAsIG1fc3RvcmFnZVR5cGUoc3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFn
ZVR5cGUoKSkKICAgICAsIG1fcXVvdGFJbkJ5dGVzKHN0b3JhZ2VOYW1lc3BhY2UtPnF1b3RhSW5C
eXRlcygpKQogICAgICwgbV9zZWN1cml0eU9yaWdpbihXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luKSkK
QEAgLTEwOCw3ICsxMDcsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpzZXRJdGVtKEZyYW1lKiBz
b3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VBcmVhLCBjbwogCiAgICAgbV9wZW5k
aW5nVmFsdWVDaGFuZ2VzLmFkZChrZXkpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpTZXRJdGVtKG1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVh
LT5zdG9yYWdlQXJlYUlEKCksIG1fY3VycmVudFNlZWQsIGtleSwgdmFsdWUsIHNvdXJjZUZyYW1l
LT5kb2N1bWVudCgpLT51cmwoKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlTWFuYWdlclNldDo6U2V0SXRlbSgqbV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEt
PmlkZW50aWZpZXIoKSwgbV9jdXJyZW50U2VlZCwga2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0
ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFy
ZWEsIGNvbnN0IFN0cmluZyYga2V5KQpAQCAtMTI0LDcgKzEyMyw3IEBAIHZvaWQgU3RvcmFnZUFy
ZWFNYXA6OnJlbW92ZUl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJl
YUltcGwqIHNvCiAKICAgICBtX3BlbmRpbmdWYWx1ZUNoYW5nZXMuYWRkKGtleSk7CiAKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OlJlbW92ZUl0ZW0o
bV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwgbV9jdXJyZW50U2Vl
ZCwga2V5LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLCAwKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OlJlbW92ZUl0ZW0oKm1fc3Rv
cmFnZU1hcElELCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIGtleSwg
c291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZUFy
ZWFNYXA6OmNsZWFyKFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBs
KiBzb3VyY2VBcmVhKQpAQCAtMTM1LDcgKzEzNCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNs
ZWFyKFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VB
CiAKICAgICBtX2hhc1BlbmRpbmdDbGVhciA9IHRydWU7CiAgICAgbV9zdG9yYWdlTWFwID0gU3Rv
cmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJbkJ5dGVzKTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkNsZWFyKG1fc3RvcmFnZU1hcElELCBzb3VyY2VB
cmVhLT5zdG9yYWdlQXJlYUlEKCksIG1fY3VycmVudFNlZWQsIHNvdXJjZUZyYW1lLT5kb2N1bWVu
dCgpLT51cmwoKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlclNldDo6Q2xlYXIoKm1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVhLT5pZGVudGlmaWVy
KCksIG1fY3VycmVudFNlZWQsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSksIDApOwog
fQogCiBib29sIFN0b3JhZ2VBcmVhTWFwOjpjb250YWlucyhjb25zdCBTdHJpbmcmIGtleSkKQEAg
LTE2NSw3ICsxNjQsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpsb2FkVmFsdWVzSWZOZWVkZWQo
KQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYSBzcGVjaWFsIHNlbmRTeW5jIGZsYWcg
dG8gaW5kaWNhdGUgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHByb2Nlc3MgaW5jb21pbmcgbWVzc2Fn
ZXMgd2hpbGUgd2FpdGluZyBmb3IgYSByZXBseS4KICAgICAvLyAoVGhpcyBmbGFnIGRvZXMgbm90
IHlldCBleGlzdCkuIFNpbmNlIGxvYWRWYWx1ZXNJZk5lZWRlZCgpIGVuZHMgdXAgYmVpbmcgY2Fs
bGVkIGZyb20gd2l0aGluIEphdmFTY3JpcHQgY29kZSwgcHJvY2Vzc2luZyBpbmNvbWluZyBzeW5j
aHJvbm91cyBtZXNzYWdlcwogICAgIC8vIGNvdWxkIGxlYWQgdG8gd2VpcmQgcmVlbnRyZW5jeSBi
dWdzIG90aGVyd2lzZS4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0b3Jh
Z2VNYW5hZ2VyU2V0OjpHZXRWYWx1ZXMobV9zdG9yYWdlTWFwSUQpLCBNZXNzYWdlczo6U3RvcmFn
ZU1hbmFnZXJTZXQ6OkdldFZhbHVlczo6UmVwbHkodmFsdWVzKSwgMCk7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6R2V0VmFsdWVzKCptX3N0
b3JhZ2VNYXBJRCksIE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6R2V0VmFsdWVzOjpSZXBs
eSh2YWx1ZXMpLCAwKTsKIAogICAgIG1fc3RvcmFnZU1hcCA9IFN0b3JhZ2VNYXA6OmNyZWF0ZSht
X3F1b3RhSW5CeXRlcyk7CiAgICAgbV9zdG9yYWdlTWFwLT5pbXBvcnRJdGVtcyhXVEZNb3ZlKHZh
bHVlcykpOwpAQCAtMjYyLDE3ICsyNjEsMTcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6YXBwbHlD
aGFuZ2UoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUpCiAgICAgbV9z
dG9yYWdlTWFwLT5zZXRJdGVtSWdub3JpbmdRdW90YShrZXksIG5ld1ZhbHVlKTsKIH0KIAotdm9p
ZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hTdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3Rv
cmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9y
YWdlQXJlYU1hcDo6ZGlzcGF0Y2hTdG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllcj4mIHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgaWYgKCFzb3VyY2VTdG9yYWdlQXJlYUlEKSB7CisgICAg
aWYgKCFzdG9yYWdlQXJlYUltcGxJRCkgewogICAgICAgICAvLyBUaGlzIHN0b3JhZ2UgZXZlbnQg
b3JpZ2luYXRlcyBmcm9tIGFub3RoZXIgcHJvY2VzcyBzbyB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBj
aGFuZ2UgdG8gb3VyIHN0b3JhZ2UgYXJlYSBtYXAuCiAgICAgICAgIGFwcGx5Q2hhbmdlKGtleSwg
bmV3VmFsdWUpOwogICAgIH0KIAogICAgIGlmIChzdG9yYWdlVHlwZSgpID09IFN0b3JhZ2VUeXBl
OjpTZXNzaW9uKQotICAgICAgICBkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQoc291cmNlU3Rv
cmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyk7CisgICAgICAg
IGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChzdG9yYWdlQXJlYUltcGxJRCwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyk7CiAgICAgZWxzZQotICAgICAgICBkaXNwYXRjaExv
Y2FsU3RvcmFnZUV2ZW50KHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGtleSwgb2xkVmFsdWUsIG5ld1Zh
bHVlLCB1cmxTdHJpbmcpOworICAgICAgICBkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KHN0b3Jh
Z2VBcmVhSW1wbElELCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nKTsKIH0KIAog
dm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXJDYWNoZSgpCkBAIC0yODAsNyArMjc5LDcgQEAgdm9p
ZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXJDYWNoZSgpCiAgICAgcmVzZXRWYWx1ZXMoKTsKIH0KIAot
dm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50KHVpbnQ2NF90
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykK
K3ZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChjb25zdCBP
cHRpb25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiYgc3RvcmFnZUFyZWFJbXBsSUQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5l
d1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKICAgICAvLyBOYW1lc3BhY2UgSURz
IGZvciBzZXNzaW9uIHN0b3JhZ2UgbmFtZXNwYWNlcyBhcmUgZXF1aXZhbGVudCB0byB3ZWIgcGFn
ZSBJRHMKICAgICAvLyBzbyB3ZSBjYW4gZ2V0IHRoZSByaWdodCBwYWdlIGhlcmUuCkBAIC0zMDEs
NyArMzAwLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2
ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGMKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIFN0b3JhZ2VBcmVhSW1wbCYgc3RvcmFnZUFyZWEgPSBzdGF0aWNfY2FzdDxT
dG9yYWdlQXJlYUltcGwmPihzdG9yYWdlLT5hcmVhKCkpOwotICAgICAgICBpZiAoc3RvcmFnZUFy
ZWEuc3RvcmFnZUFyZWFJRCgpID09IHNvdXJjZVN0b3JhZ2VBcmVhSUQpIHsKKyAgICAgICAgaWYg
KHN0b3JhZ2VBcmVhLmlkZW50aWZpZXIoKSA9PSBzdG9yYWdlQXJlYUltcGxJRCkgewogICAgICAg
ICAgICAgLy8gVGhpcyBpcyB0aGUgc3RvcmFnZSBhcmVhIHRoYXQgY2F1c2VkIHRoZSBldmVudCB0
byBiZSBkaXNwYXRjaGVkLgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTMx
Miw3ICszMTEsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdl
RXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgYwogICAgIFN0b3JhZ2VFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb0ZyYW1lcygqcGFnZSwgZnJh
bWVzLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nLCBtX3NlY3VyaXR5T3JpZ2lu
LT5kYXRhKCkpOwogfQogCi12b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFn
ZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZykKK3ZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdl
RXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4mIHN0b3JhZ2VB
cmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgQVNT
RVJUKGlzTG9jYWxTdG9yYWdlKHN0b3JhZ2VUeXBlKCkpKTsKIApAQCAtMzMyLDcgKzMzMSw3IEBA
IHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQodWludDY0X3Qg
c291cmNlU3RvcmFnZUFyZWFJRCwgY29uCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgICAgIFN0b3JhZ2VBcmVhSW1wbCYgc3RvcmFnZUFyZWEgPSBzdGF0aWNfY2FzdDxTdG9y
YWdlQXJlYUltcGwmPihzdG9yYWdlLT5hcmVhKCkpOwotICAgICAgICAgICAgaWYgKHN0b3JhZ2VB
cmVhLnN0b3JhZ2VBcmVhSUQoKSA9PSBzb3VyY2VTdG9yYWdlQXJlYUlEKSB7CisgICAgICAgICAg
ICBpZiAoc3RvcmFnZUFyZWEuaWRlbnRpZmllcigpID09IHN0b3JhZ2VBcmVhSW1wbElEKSB7CiAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc3RvcmFnZSBhcmVhIHRoYXQgY2F1c2VkIHRo
ZSBldmVudCB0byBiZSBkaXNwYXRjaGVkLgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgfQpAQCAtMzc0LDkgKzM3Myw5IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpc2Nv
bm5lY3QoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVucmVnaXN0ZXJTdG9yYWdlQXJl
YU1hcCgqdGhpcyk7CiAKICAgICBpZiAoYXV0byBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
KQotICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6RGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShtX3N0
b3JhZ2VNYXBJRCksIDApOworICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6RGlzY29ubmVjdEZyb21T
dG9yYWdlQXJlYSgqbV9zdG9yYWdlTWFwSUQpLCAwKTsKIAotICAgIG1fc3RvcmFnZU1hcElEID0g
MDsKKyAgICBtX3N0b3JhZ2VNYXBJRCA9IHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYU1hcC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWFNYXAuaAppbmRleCA0NGFkMDZmOTFiNTVjN2Y0MWU2ZDBmMjg4N2M5ZWMxN2Q1MmE3NDFkLi42
NjU1MTEzYzE3ZjI0OWY4YzAwN2M0NmMzZTI3NjM0ZjNhMmNhY2UwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKQEAgLTI2
LDYgKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VBcmVhLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KQEAgLTY2LDcgKzY4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0KCk7CiAgICAg
dm9pZCBkaXNjb25uZWN0KCk7Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fc3RvcmFnZU1hcElEOyB9CisgICAgY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJZGVu
dGlmaWVyPiYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZU1hcElEOyB9CiAK
IHByaXZhdGU6CiAgICAgU3RvcmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVzcGFjZUltcGwqLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwpAQCAtNzUsNyArNzcsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkUmVtb3ZlSXRlbSh1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3Ry
aW5nJiBrZXkpOwogICAgIHZvaWQgZGlkQ2xlYXIodWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpOwog
Ci0gICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJl
YUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3Ry
aW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgZGlzcGF0
Y2hTdG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4m
IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7
CiAgICAgdm9pZCBjbGVhckNhY2hlKCk7CiAKICAgICB2b2lkIHJlc2V0VmFsdWVzKCk7CkBAIC04
NCwxMiArODYsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZEFwcGx5Q2hhbmdlRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKICAgICB2b2lkIGFwcGx5Q2hhbmdlKGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hT
ZXNzaW9uU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVl
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0gICAgdm9pZCBkaXNwYXRjaExvY2FsU3RvcmFn
ZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQoY29u
c3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChj
b25zdCBPcHRpb25hbDxTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZyk7CiAKICAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbCogbV9zdG9y
YWdlTmFtZXNwYWNlOwogCi0gICAgdWludDY0X3QgbV9zdG9yYWdlTWFwSUQ7CisgICAgT3B0aW9u
YWw8U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBtX3N0b3JhZ2VNYXBJRDsKIAogICAgIFdlYkNvcmU6
OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CiAgICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYU1hcC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluCmluZGV4IDdhNzVkMjEwZmQ4MzI1ZjJiNTFhODlj
ZTNlNTQyZDQ4MDM5MDk2YTkuLmRkY2I4NTU0NjZmZjVmNzJjN2E2MDJmN2JlMmFlNTFhZDRkOTc1
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw2IEBAIG1lc3Nh
Z2VzIC0+IFN0b3JhZ2VBcmVhTWFwIHsKICAgICBEaWRSZW1vdmVJdGVtKHVpbnQ2NF90IHN0b3Jh
Z2VNYXBTZWVkLCBTdHJpbmcga2V5KQogICAgIERpZENsZWFyKHVpbnQ2NF90IHN0b3JhZ2VNYXBT
ZWVkKQogCi0gICAgRGlzcGF0Y2hTdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFy
ZWFJRCwgU3RyaW5nIGtleSwgU3RyaW5nIG9sZFZhbHVlLCBTdHJpbmcgbmV3VmFsdWUsIFN0cmlu
ZyB1cmxTdHJpbmcpCisgICAgRGlzcGF0Y2hTdG9yYWdlRXZlbnQoT3B0aW9uYWw8V2ViS2l0OjpT
dG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiBzdG9yYWdlQXJlYUltcGxJRCwgU3RyaW5nIGtleSwg
U3RyaW5nIG9sZFZhbHVlLCBTdHJpbmcgbmV3VmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpCiAgICAg
Q2xlYXJDYWNoZSgpCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>