<?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>205076</bug_id>
          
          <creation_ts>2019-12-10 12:23:19 -0800</creation_ts>
          <short_desc>IndexedDB: remove LockHolder parameters</short_desc>
          <delta_ts>2019-12-11 09:58:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1597305</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-10 12:23:19 -0800</bug_when>
    <thetext>Part of https://bugs.webkit.org/show_bug.cgi?id=203690.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597308</commentid>
    <comment_count>1</comment_count>
      <attachid>385294</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-10 12:27:44 -0800</bug_when>
    <thetext>Created attachment 385294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597310</commentid>
    <comment_count>2</comment_count>
      <attachid>385295</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-10 12:30:44 -0800</bug_when>
    <thetext>Created attachment 385295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597662</commentid>
    <comment_count>3</comment_count>
      <attachid>385295</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-11 09:57:01 -0800</bug_when>
    <thetext>Comment on attachment 385295
Patch

Clearing flags on attachment: 385295

Committed r253377: &lt;https://trac.webkit.org/changeset/253377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597663</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-11 09:57:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597664</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-11 09:58:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57841475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385294</attachid>
            <date>2019-12-10 12:27:44 -0800</date>
            <delta_ts>2019-12-10 12:30:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205076-20191210122743.patch</filename>
            <type>text/plain</type>
            <size>84262</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ5MmM2YTkxMzNhMjY5
YzRlOWZkYjAwZWIxYzEzNjI1NDM4YmI5MC4uZTc2MDI0OTM5OTBiMmUyOWE0NmEwMzFmN2RiMGI5
ZWIxZWMxYTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxOS0xMi0xMCAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVEQjogcmVtb3Zl
IExvY2tIb2xkZXIgcGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1MDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIExvY2tIb2xkZXIgcGFyYW1ldGVycyB3ZXJlIHVzZWQgdG8gb25s
eSBlbnN1cmUgd2UgaGF2ZSBhY3F1aXJlZCBhIGxvY2sgYmVmb3JlIHVzaW5nIElEQkJhY2tpbmdT
dG9yZS4gVG8gd29yaworICAgICAgICB0b3dhcmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MCB3ZSB3aWxsIG5vdCBuZWVkIHRoZXNlIGFueSBtb3JlLgorCisg
ICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3Jl
Ojpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6a2V5
RXhpc3RzSW5PYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRBbGxSZWNvcmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpn
ZXRJbmRleFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJh
Y2tpbmdTdG9yZTo6Z2V0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1i
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6
Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjppbmZvRm9y
T2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERh
dGFiYXNlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNy
ZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNsZWFyT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRl
bGV0ZVJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjphZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0SW5kZXhSZWNvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldENvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpn
ZW5lcmF0ZUtleU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVy
YXRvck51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6aXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cHJlZmV0Y2hDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5n
U3RvcmU6Omhhc1RyYW5zYWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtVW5jb25kaXRp
b25hbERlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bkZvckNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1TdGFydFZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpvcGVuQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bVJlbmFtZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1DbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRl
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybVJlbmFtZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1HZXRJbmRleFJlY29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3Jt
R2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpwZXJmb3JtR2V0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtT3BlbkN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtSXRlcmF0
ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtUHJlZmV0Y2hDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbk9uTWFpblRo
cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpj
b21taXRUcmFuc2FjdGlvbk9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKwogMjAxOS0xMi0xMCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGJlaGF2aW9yIHRoYXQg
bWFrZXMgPGJyPiBib3hlcyAwLWhlaWdodCBpbiBxdWlya3MgbW9kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5o
CmluZGV4IGU0OWIzNmYyMWNkZjllYjc2NDg3NjA1ZGY0YTRlZWNiNGIyYjVlMzYuLmM0MjY0MGIz
YmY2YzYwYjA4N2YyNDVlZmQzYWYwMWMzNjYyZmEyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAg
LTYwLDQ0ICs2MCw0MiBAQCBjbGFzcyBJREJCYWNraW5nU3RvcmUgewogcHVibGljOgogICAgIHZp
cnR1YWwgfklEQkJhY2tpbmdTdG9yZSgpIHsgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsgfQogCi0gICAgLy8gQWxsIGZ1bmN0aW9ucyBzaG91bGQgdGFrZSBhIExvY2tIb2xkZXIgdG8g
bWFrZSBzdXJlIHRoZXkgaGF2ZSBhY3F1aXJlZCBsb2NrIHdoZW4gYmVpbmcgY2FsbGVkLgotICAg
IC8vIFRoaXMgaXMgdXNlZCB0byBtYWtlIHN1cmUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB3b3VsZCBu
b3QgYmUgcGVyZm9ybWVkIHdoZW4gcHJvY2VzcyBpcyBzdXNwZW5kZWQuCi0gICAgdmlydHVhbCBJ
REJFcnJvciBnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mLCBjb25z
dCBMb2NrSG9sZGVyJikgPSAwOwotCi0gICAgdmlydHVhbCBJREJFcnJvciBiZWdpblRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0g
ICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwot
ICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7
Ci0KLSAgICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRl
ciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIHJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgY29uc3QgTG9ja0hvbGRl
ciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElE
QkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgPSAw
OwotICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwot
ICAgIHZpcnR1YWwgSURCRXJyb3IgcmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0
IExvY2tIb2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlzdHNJbk9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBib29s
JiBrZXlFeGlzdHMsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJv
ciBkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5n
ZURhdGEmLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgYWRk
UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURC
VmFsdWUmLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0
UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYs
IElEQkdldFJlY29yZERhdGFUeXBlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlLCBjb25zdCBMb2Nr
SG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0QWxsUmVjb3Jkcyhjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCR2V0
QWxsUmVjb3Jkc0RhdGEmLCBJREJHZXRBbGxSZXN1bHQmIG91dFZhbHVlLCBjb25zdCBMb2NrSG9s
ZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6Oklu
ZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGdldENv
dW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3QmIG91dENvdW50LCBjb25zdCBMb2NrSG9s
ZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZ2VuZXJhdGVLZXlOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QmIGtleU51bWJlciwgY29uc3QgTG9ja0hvbGRl
ciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIHJldmVydEdlbmVyYXRlZEtleU51bWJlcihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBrZXlOdW1iZXIsIGNvbnN0IExvY2tI
b2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVyYXRv
ck51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyLCBj
b25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3Igb3BlbkN1cnNvcihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCQ3Vyc29ySW5mbyYsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0LCBjb25zdCBMb2NrSG9sZGVy
JikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYs
IElEQkdldFJlc3VsdCYgb3V0UmVzdWx0LCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJ
ZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotCi0gICAgdmlydHVhbCBJREJPYmpl
Y3RTdG9yZUluZm8qIGluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJh
Y2tpbmdTdG9yZShjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotCi0gICAgdmlydHVhbCBib29sIHN1
cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zKGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0g
ICAgdmlydHVhbCBib29sIGlzRXBoZW1lcmFsKGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLQotICAgIHZpcnR1
YWwgYm9vbCBoYXNUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25z
dCBMb2NrSG9sZGVyJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0T3JFc3Rh
Ymxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJikgPSAwOworCisgICAgdmlydHVhbCBJ
REJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpID0gMDsK
KyAgICB2aXJ0dWFsIElEQkVycm9yIGFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVy
cm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBk
ZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CisgICAgdmly
dHVhbCBJREJFcnJvciByZW5hbWVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGNsZWFy
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwg
SURCRXJyb3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIElE
QkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlu
ZGV4SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgcmVuYW1lSW5kZXgoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0c0luT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJv
b2wmIGtleUV4aXN0cykgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAwOworICAg
IHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJ
REJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBn
ZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiwgSURCR2V0UmVjb3JkRGF0YVR5cGUsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpID0gMDsKKyAg
ICB2aXJ0dWFsIElEQkVycm9yIGdldEFsbFJlY29yZHMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiwg
SURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0
SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVu
dGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0
Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
LCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYgb3V0Q291bnQpID0gMDsKKyAgICB2
aXJ0dWFsIElEQkVycm9yIGdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIHVpbnQ2NF90JiBrZXlOdW1iZXIpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIHJldmVy
dEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBr
ZXlOdW1iZXIpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2VuZXJh
dG9yTnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIp
ID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJ
REJHZXRSZXN1bHQmIG91dFJlc3VsdCkgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgaXRlcmF0
ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJ
REJJdGVyYXRlQ3Vyc29yRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSA9IDA7CisgICAg
dmlydHVhbCBib29sIHByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNv
cklkZW50aWZpZXIpID0gMDsKKworICAgIHZpcnR1YWwgSURCT2JqZWN0U3RvcmVJbmZvKiBpbmZv
Rm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUJhY2tpbmdTdG9yZSgpID0gMDsKKworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucygpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNFcGhlbWVyYWwoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisK
KyAgICB2aXJ0dWFsIGJvb2wgaGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJikgY29uc3QgPSAwOwogcHJvdGVjdGVkOgogICAgIElEQkJhY2tpbmdTdG9yZSgpIHsgUkVM
RUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tp
bmdTdG9yZS5jcHAKaW5kZXggNTlkZDQxMDczZDhiZDRlYTRmYzUzM2Y5NzJlNmRlYTE4MDUyNTVm
Yy4uNGYyNzBjYjNkMGFkNDEzZDNhMWY0NTdjMDBmMDkyYjEwNjAzZmVmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTU5LDExICs1OSw2IEBAIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6TWVtb3J5SURCQmFja2luZ1N0b3JlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgSURCCiAKIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6fk1lbW9yeUlEQkJhY2tpbmdTdG9y
ZSgpID0gZGVmYXVsdDsKIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRPckVz
dGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8sIGNvbnN0IExvY2tIb2xk
ZXImKQotewotICAgIHJldHVybiBnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhpbmZvKTsKLX0K
LQogSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNl
SW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8pCiB7CiAgICAgaWYgKCFtX2RhdGFiYXNlSW5mbykK
QEAgLTgxLDcgKzc2LDcgQEAgdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnNldERhdGFiYXNl
SW5mbyhjb25zdCBJREJEYXRhYmFzZUluZm8mIGluZm8pCiAgICAgbV9kYXRhYmFzZUluZm8gPSBt
YWtlVW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oaW5mbyk7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
IGluZm8sIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKIHsKICAg
ICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9u
Iik7CiAKQEAgLTEwNiw3ICsxMDEsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvLAogICAgIHJl
dHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbiAtICVzIiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTE5LDcgKzExNCw3IEBAIElEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYp
CitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogewogICAgIExP
RyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uIC0g
JXMiLCB0cmFuc2FjdGlvbklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwogCkBAIC0xMzIsNyArMTI3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
b21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICByZXR1
cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNy
ZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8sIGNvbnN0IExvY2tIb2xk
ZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlIC0gYWRkaW5nIE9TICVzIHdpdGggSUQg
JSIgUFJJdTY0LCBpbmZvLm5hbWUoKS51dGY4KCkuZGF0YSgpLCBpbmZvLmlkZW50aWZpZXIoKSk7
CiAKQEAgLTE1NSw3ICsxNTAsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNy
ZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgIHJldHVy
biBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRl
ciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsKIApAQCAtMTc4LDcgKzE3Myw3IEBA
IElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAot
SURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExvY2tIb2xk
ZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0U3RvcmUi
KTsKIApAQCAtMjA3LDcgKzIwMiw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
cmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0
dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
bGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xk
ZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjbGVhck9iamVjdFN0b3JlKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZSIpOwogICAgIEFTU0VSVChvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwpAQCAtMjI4LDcgKzIyMyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBjb25zdCBMb2NrSG9sZGVy
JikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4
SW5mbyYgaW5mbykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpjcmVhdGVJbmRleCIpOwogCkBAIC0yNTIsNyArMjQ3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURC
QmFja2luZ1N0b3JlOjpjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWMKICAgICByZXR1cm4gZXJyb3I7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6ZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qg
aW5kZXhJZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZUluZGV4Iik7CiAKQEAgLTI4MCw3ICsyNzUsNyBAQCBJREJFcnJvciBNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhYwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgY29uc3QgTG9ja0hvbGRl
ciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuZXdOYW1lKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6
OnJlbmFtZUluZGV4Iik7CiAKQEAgLTMzMyw3ICszMjgsNyBAQCB2b2lkIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6cmVzdG9yZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFib3J0KFJlZjxNZW1v
cnlPYgogICAgIHJlZ2lzdGVyT2JqZWN0U3RvcmUoV1RGTW92ZShvYmplY3RTdG9yZSkpOwogfQog
Ci1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBib29sJiBrZXlFeGlzdHMsIGNvbnN0IExv
Y2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgYm9vbCYga2V5RXhpc3Rz
KQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0
c0luT2JqZWN0U3RvcmUiKTsKIApAQCAtMzQ2LDcgKzM0MSw3IEBAIElEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURC
QmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAi
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZSIpOwogCkBAIC0zNjMsNyArMzU4LDcg
QEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZShjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWMKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQog
Ci1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3Rv
cmVJbmZvJiBvYmplY3RTdG9yZUluZm8sIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0
IElEQlZhbHVlJiB2YWx1ZSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBNZW1vcnlJREJC
YWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBvYmplY3RTdG9yZUlu
Zm8sIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSkKIHsK
ICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQiKTsK
IApAQCAtMzgwLDcgKzM3NSw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWRk
UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpCiAgICAgcmV0dXJu
IG9iamVjdFN0b3JlLT5hZGRSZWNvcmQoKnRyYW5zYWN0aW9uLCBrZXlEYXRhLCB2YWx1ZSk7CiB9
CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UsIElEQkdldFJlY29y
ZERhdGFUeXBlIHR5cGUsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUsIGNvbnN0IExvY2tIb2xkZXIm
KQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgSURCR2V0UmVjb3Jk
RGF0YVR5cGUgdHlwZSwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkKIHsKICAgICBMT0coSW5kZXhl
ZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQiKTsKIApAQCAtNDA3LDcgKzQw
Miw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsK
IH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRBbGxSZWNvcmRzKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJH
ZXRBbGxSZWNvcmRzRGF0YSYgZ2V0QWxsUmVjb3Jkc0RhdGEsIElEQkdldEFsbFJlc3VsdCYgcmVz
dWx0LCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCR2V0QWxsUmVjb3Jkc0RhdGEmIGdldEFsbFJlY29yZHNEYXRhLCBJ
REJHZXRBbGxSZXN1bHQmIHJlc3VsdCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURC
QmFja2luZ1N0b3JlOjpnZXRBbGxSZWNvcmRzIik7CiAKQEAgLTQzMiw3ICs0MjcsNyBAQCBJREJF
cnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFucwogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVj
b3JkVHlwZSByZWNvcmRUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCBJREJHZXRS
ZXN1bHQmIG91dFZhbHVlLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJh
Y2tpbmdTdG9yZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSByZWNvcmRU
eXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVl
KQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldEluZGV4
UmVjb3JkIik7CiAKQEAgLTQ0OSw3ICs0NDQsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbgog
ICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Z2V0Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJ
ZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCB1aW50NjRfdCYgb3V0Q291
bnQsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpn
ZXRDb3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZp
ZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UsIHVpbnQ2NF90JiBvdXRDb3VudCkKIHsK
ICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRDb3VudCIpOwog
CkBAIC00NjcsNyArNDYyLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRD
b3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW8KICAgICByZXR1cm4g
SURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdlbmVy
YXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90JiBrZXlOdW1i
ZXIsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpn
ZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5
TnVtYmVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6Omdl
bmVyYXRlS2V5TnVtYmVyIik7CiAgICAgQVNTRVJUKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CkBA
IC00ODYsNyArNDgxLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0
ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICByZXR1cm4gSURC
RXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJldmVydEdl
bmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBrZXlO
dW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3Qga2V5TnVtYmVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5n
U3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlciIpOwogICAgIEFTU0VSVChvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwpAQCAtNTAxLDcgKzQ5Niw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9y
IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlcikKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRv
ck51bWJlciIpOwogICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwpAQCAtNTMwLDcg
KzUyNSw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlH
ZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJCiAgICAgcmV0dXJuIElEQkVycm9yIHsg
fTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJD
dXJzb3JJbmZvJiBpbmZvLCBJREJHZXRSZXN1bHQmIG91dERhdGEsIGNvbnN0IExvY2tIb2xkZXIm
KQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJ
bmZvJiBpbmZvLCBJREJHZXRSZXN1bHQmIG91dERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
Ik1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvciIpOwogCkBAIC01NzIsNyArNTY3LDcg
QEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3QKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQog
Ci1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRh
dGEmIGRhdGEsIElEQkdldFJlc3VsdCYgb3V0RGF0YSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJF
cnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmIGRh
dGEsIElEQkdldFJlc3VsdCYgb3V0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5
SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yIik7CiAKQEAgLTYxOSwxOCArNjE0LDE4IEBA
IFJlZlB0cjxNZW1vcnlPYmplY3RTdG9yZT4gTWVtb3J5SURCQmFja2luZ1N0b3JlOjp0YWtlT2Jq
ZWN0U3RvcmVCeUlkZW50aWZpZXIodWluCiAgICAgcmV0dXJuIG9iamVjdFN0b3JlQnlJZGVudGlm
aWVyOwogfQogCi1JREJPYmplY3RTdG9yZUluZm8qIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6aW5m
b0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgTG9j
a0hvbGRlciYpCitJREJPYmplY3RTdG9yZUluZm8qIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6aW5m
b0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKICAgICBB
U1NFUlQobV9kYXRhYmFzZUluZm8pOwogICAgIHJldHVybiBtX2RhdGFiYXNlSW5mby0+aW5mb0Zv
ckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdTdG9yZShjb25zdCBMb2NrSG9sZGVy
JikKK3ZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVCYWNraW5nU3RvcmUoKQogewog
ICAgIC8vIFRoZSBpbi1tZW1vcnkgSURCIGJhY2tpbmcgc3RvcmUgZG9lc24ndCBuZWVkIHRvIGRv
IGFueSBjbGVhbnVwIHdoZW4gaXQgaXMgZGVsZXRlZC4KIH0KIAotdm9pZCBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmNsb3NlKGNvbnN0IExvY2tIb2xkZXImKQordm9pZCBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmNsb3NlKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4
IDg1ZTQxOTY0NTg5ZjYxZTQwNjJlMjQwMjFjMTFjYjkxYTM1YTcwODkuLmNmMjFkOTg2MGJkMWMw
MzA1ZWFiMjdkYzkyNzczOTQxMjdiNGY0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmgKQEAgLTQ3LDQ5ICs0Nyw0OCBAQCBwdWJsaWM6CiAgICAgTWVtb3J5SURCQmFja2luZ1N0b3Jl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB+TWVt
b3J5SURCQmFja2luZ1N0b3JlKCkgZmluYWw7CiAKLSAgICBJREJFcnJvciBnZXRPckVzdGFibGlz
aERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7
Ci0gICAgSURCRXJyb3IgZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZv
Jik7CisgICAgSURCRXJyb3IgZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJ
bmZvJikgZmluYWw7CiAgICAgdm9pZCBzZXREYXRhYmFzZUluZm8oY29uc3QgSURCRGF0YWJhc2VJ
bmZvJik7CiAKLSAgICBJREJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0
aW9uSW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBhYm9ydFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY29tbWl0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9y
ZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElE
QkVycm9yIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciByZW5hbWVPYmplY3RTdG9yZShjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExvY2tI
b2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBj
cmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCSW5kZXhJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAg
IElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGluZGV4SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9y
IHJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7
Ci0gICAgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYga2V5RXhpc3RzLCBjb25zdCBMb2NrSG9s
ZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURC
S2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAg
IElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmLCBJREJHZXRSZWNvcmREYXRhVHlwZSwgSURCR2V0UmVzdWx0JiBvdXRWYWx1
ZSwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGdldEFsbFJlY29yZHMo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkdldEFsbFJlY29yZHNEYXRhJiwgSURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1ZSwgY29uc3Qg
TG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJ
bmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0
VmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRDb3VudChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRDb3VudCwgY29uc3QgTG9ja0hvbGRlciYp
IGZpbmFsOwotICAgIElEQkVycm9yIGdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIHVpbnQ2NF90JiBrZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsK
LSAgICBJREJFcnJvciByZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgdWludDY0X3Qga2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0g
ICAgSURCRXJyb3IgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJREJHZXRSZXN1bHQm
IG91dFJlc3VsdCwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGl0ZXJh
dGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3Qg
SURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCwgY29uc3QgTG9j
a0hvbGRlciYpIGZpbmFsOwotICAgIGJvb2wgcHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgTG9ja0hv
bGRlciYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICBJREJPYmplY3RTdG9yZUluZm8q
IGluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICB2b2lkIGRlbGV0ZUJhY2tpbmdTdG9yZShjb25zdCBM
b2NrSG9sZGVyJikgZmluYWw7Ci0KLSAgICBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNh
Y3Rpb25zKGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9v
bCBpc0VwaGVtZXJhbChjb25zdCBMb2NrSG9sZGVyJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikg
ZmluYWw7CisgICAgSURCRXJyb3IgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgZmluYWw7CisgICAgSURCRXJyb3IgY29t
bWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmpl
Y3RTdG9yZUluZm8mKSBmaW5hbDsKKyAgICBJREJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBJREJFcnJvciByZW5hbWVPYmplY3RT
dG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpIGZp
bmFsOworICAgIElEQkVycm9yIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllcikgZmluYWw7CisgICAgSURCRXJyb3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpIGZp
bmFsOworICAgIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGluZGV4SWRlbnRpZmllcikgZmluYWw7CisgICAgSURCRXJyb3IgcmVuYW1lSW5k
ZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUpIGZpbmFsOworICAgIElEQkVycm9yIGtleUV4aXN0c0luT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJv
b2wmIGtleUV4aXN0cykgZmluYWw7CisgICAgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgZmluYWw7CisgICAgSURC
RXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRhJiwg
Y29uc3QgSURCVmFsdWUmKSBmaW5hbDsKKyAgICBJREJFcnJvciBnZXRSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVjb3JkRGF0
YVR5cGUsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpIGZpbmFsOworICAgIElEQkVycm9yIGdldEFs
bFJlY29yZHMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiwgSURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1
ZSkgZmluYWw7CisgICAgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3Jk
VHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgZmlu
YWw7CisgICAgSURCRXJyb3IgZ2V0Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYg
b3V0Q291bnQpIGZpbmFsOworICAgIElEQkVycm9yIGdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90JiBrZXlOdW1iZXIpIGZpbmFsOworICAgIElEQkVy
cm9yIHJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
aW50NjRfdCBrZXlOdW1iZXIpIGZpbmFsOworICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2Vu
ZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1i
ZXIpIGZpbmFsOworICAgIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJREJH
ZXRSZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7CisgICAgSURCRXJyb3IgaXRlcmF0ZUN1cnNvcihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJJdGVyYXRl
Q3Vyc29yRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSBmaW5hbDsKKyAgICBib29sIHBy
ZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBJREJPYmplY3RT
dG9yZUluZm8qIGluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIpIGZpbmFsOworICAgIHZvaWQgZGVsZXRlQmFja2luZ1N0b3JlKCkgZmluYWw7CisKKyAgICBi
b29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zKCkgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICB2b2lkIHJlbW92ZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFib3J0KE1lbW9yeU9iamVj
dFN0b3JlJik7CiAgICAgdm9pZCByZXN0b3JlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJv
cnQoUmVmPE1lbW9yeU9iamVjdFN0b3JlPiYmKTsKIAotICAgIGJvb2wgaGFzVHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVy
JikgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFuc2FjdGlvbnMuY29udGFpbnMoaWRlbnRpZmll
cik7IH0KKyAgICBib29sIGhhc1RyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgaWRlbnRpZmllcikgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFuc2FjdGlvbnMuY29udGFp
bnMoaWRlbnRpZmllcik7IH0KIAogcHJpdmF0ZToKICAgICBSZWZQdHI8TWVtb3J5T2JqZWN0U3Rv
cmU+IHRha2VPYmplY3RTdG9yZUJ5SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKTsKIAot
ICAgIHZvaWQgY2xvc2UoY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOworICAgIHZvaWQgY2xvc2Uo
KSBmaW5hbDsKIAogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IDMyZGY1ODcxMTRkYWVjMGEwZGFlZWIzMWE0YjlhNWEwYTcwMWRjNDQuLjMzM2M4
ZjI2ZWM4MzA3ODEwNjlkOTIzYjUxMDZhOGEyYjY1OWJmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC03ODEsNyArNzgxLDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUoKQogICAgIHJldHVybiBu
ZXdEYXRhYmFzZURpcmVjdG9yeTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8sIGNvbnN0
IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFi
bGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8g
LSBkYXRhYmFzZSAlcyIsIG1faWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKS51dGY4KCkuZGF0YSgp
KTsKIApAQCAtODU0LDcgKzg1NCw3IEBAIHVpbnQ2NF90IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yCiAgICAgcmV0
dXJuIGRpc2tVc2FnZTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpiZWdp
blRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywgY29uc3QgTG9ja0hv
bGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24gLSAlcyIsIGluZm8uaWRlbnRp
ZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtODg1LDcgKzg4NSw3
IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25z
dCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8sCiAgICAgcmV0dXJuIGVycm9yOwogfQogCi1JREJF
cnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9y
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbiAtICVzIiwgaWRlbnRpZmllci5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTkwNCw3ICs5MDQsNyBAQCBJREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiBpZAogICAgIHJldHVybiB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKIH0KIAotSURC
RXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24gLSAlcyIsIGlkZW50aWZpZXIubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC05MjksNyArOTI5LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIGkKICAgICByZXR1cm4gZXJyb3I7CiB9CiAKLUlEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYg
aW5mbywgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUgLSBh
ZGRpbmcgT1MgJXMgd2l0aCBJRCAlIiBQUkl1NjQsIGluZm8ubmFtZSgpLnV0ZjgoKS5kYXRhKCks
IGluZm8uaWRlbnRpZmllcigpKTsKIApAQCAtOTgwLDcgKzk4MCw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZSAtIG9i
amVjdCBzdG9yZSAlIiBQUkl1NjQsIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAKQEAgLTEwNzEs
NyArMTA3MSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0dXJuIElEQkVycm9y
IHsgfTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVPYmplY3RT
dG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNv
bnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVP
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1l
T2JqZWN0U3RvcmUgLSBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIpOwogCkBAIC0xMTAzLDcgKzExMDMsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAg
IHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgTG9ja0hvbGRlciYp
CitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSUQpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Y2xlYXJPYmplY3RTdG9yZSAtIG9iamVjdCBzdG9yZSAlIiBQUkl1NjQsIG9iamVjdFN0b3Jl
SUQpOwogCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogICAg
IHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgY29uc3QgTG9ja0hvbGRlciYpCitJ
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8m
IGluZm8pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y3Jl
YXRlSW5kZXggLSBPYmplY3RTdG9yZSAlIiBQUkl1NjQgIiwgSW5kZXggJSIgUFJJdTY0LCBpbmZv
Lm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBpbmZvLmlkZW50aWZpZXIoKSk7CiAgICAgQVNTRVJU
KG1fc3FsaXRlREIpOwpAQCAtMTMzMSw3ICsxMzMxLDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjp1bmNoZWNrZWRQdXRJbmRleFJlY29yZChpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGkKIH0KIAogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3Qg
TG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllcikKIHsK
ICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleCAt
IG9iamVjdCBzdG9yZSAlIiBQUkl1NjQsIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAKQEAgLTEz
NzYsNyArMTM3Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5k
ZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAgICAgcmV0dXJuIElEQkVy
cm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRl
eChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmV3TmFtZSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQogewogICAgIExP
RyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4IC0gb2JqZWN0
IHN0b3JlICUiIFBSSXU2NCAiLCBpbmRleCAlIiBQUkl1NjQsIG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgaW5kZXhJZGVudGlmaWVyKTsKIApAQCAtMTQxNyw3ICsxNDE3LDcgQEAgSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWMKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SUQsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGJvb2wmIGtleUV4aXN0cywgY29uc3QgTG9j
a0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGJv
b2wmIGtleUV4aXN0cykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0
b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlIC0ga2V5ICVzLCBvYmplY3Qgc3RvcmUgJSIgUFJJ
dTY0LCBrZXlEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBvYmplY3RTdG9yZUlE
KTsKIApAQCAtMTU5Miw3ICsxNTkyLDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLAogICAgIHJl
dHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5
UmFuZ2UsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBr
ZXlSYW5nZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWxldGVSYW5nZSAtIHJhbmdlICVzLCBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBrZXlSYW5nZS5s
b2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb2JqZWN0U3RvcmVJRCk7CiAKQEAgLTE3MTIs
NyArMTcxMiw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5k
ZXhlc0ZvckFkZFJlY29yZChjb25zdCBJREJPYmplY3RTdG9yCiAgICAgcmV0dXJuIGVycm9yOwog
fQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0
U3RvcmVJbmZvJiBvYmplY3RTdG9yZUluZm8sIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNv
bnN0IElEQlZhbHVlJiB2YWx1ZSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBvYmplY3RTdG9y
ZUluZm8sIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSkK
IHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQg
LSBrZXkgJXMsIG9iamVjdCBzdG9yZSAlIiBQUkl1NjQsIGtleURhdGEubG9nZ2luZ1N0cmluZygp
LnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3JlSW5mby5pZGVudGlmaWVyKCkpOwogCkBAIC0xODc0
LDcgKzE4NzQsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEJsb2JSZWNv
cmRzRm9yT2JqZWN0U3RvcmVSZWNvcmQoaW50NjRfdCBvYmplYwogICAgIHJldHVybiBJREJFcnJv
ciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJREJHZXRS
ZWNvcmREYXRhVHlwZSB0eXBlLCBJREJHZXRSZXN1bHQmIHJlc3VsdFZhbHVlLCBjb25zdCBMb2Nr
SG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJREJHZXRSZWNv
cmREYXRhVHlwZSB0eXBlLCBJREJHZXRSZXN1bHQmIHJlc3VsdFZhbHVlKQogewogICAgIExPRyhJ
bmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZCAtIGtleSByYW5nZSAl
cywgb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwga2V5UmFuZ2UubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIG9iamVjdFN0b3JlSUQpOwogCkBAIC0yMDA5LDcgKzIwMDksNyBAQCBJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aQogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9y
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCR2V0QWxsUmVjb3Jkc0Rh
dGEmIGdldEFsbFJlY29yZHNEYXRhLCBJREJHZXRBbGxSZXN1bHQmIHJlc3VsdCwgY29uc3QgTG9j
a0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbFJlY29yZHMo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkdldEFsbFJlY29yZHNEYXRhJiBnZXRBbGxSZWNvcmRzRGF0YSwgSURCR2V0QWxsUmVzdWx0
JiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIGdldEFsbFJlY29yZHNEYXRhLmluZGV4SWRlbnRpZmll
ciA/IGdldEFsbEluZGV4UmVjb3Jkcyh0cmFuc2FjdGlvbklkZW50aWZpZXIsIGdldEFsbFJlY29y
ZHNEYXRhLCByZXN1bHQpIDogZ2V0QWxsT2JqZWN0U3RvcmVSZWNvcmRzKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgZ2V0QWxsUmVjb3Jkc0RhdGEsIHJlc3VsdCk7CiB9CkBAIC0yMTg5LDcgKzIxODks
NyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbEluZGV4UmVjb3Jkcyhj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0K
IAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRJbmRleFJlY29yZChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJRCwgdWludDY0X3QgaW5kZXhJRCwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUg
dHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgSURCR2V0UmVzdWx0JiBnZXRSZXN1
bHQsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpn
ZXRJbmRleFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgdWludDY0X3QgaW5kZXhJRCwgSW5kZXhl
ZERCOjpJbmRleFJlY29yZFR5cGUgdHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwg
SURCR2V0UmVzdWx0JiBnZXRSZXN1bHQpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6Z2V0SW5kZXhSZWNvcmQgLSAlcyIsIHJhbmdlLmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMjI5MSw3ICsyMjkxLDcgQEAgSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRJbmRleFJlY29yZEZvck9uZUtleShpbnQ2NF90
IGluZGV4SUQKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgdWludDY0
X3QmIG91dENvdW50LCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6Z2V0Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCB1aW50NjRfdCYgb3V0
Q291bnQpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0
Q291bnQgLSBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwog
ICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKQEAgLTI0MDgsNyArMjQwOCw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRf
dCBvYmplY3RTdG9yCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwg
dWludDY0X3QmIGdlbmVyYXRlZEtleSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlELCB1
aW50NjRfdCYgZ2VuZXJhdGVkS2V5KQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyIik7CiAKQEAgLTI0MzYsNyArMjQzNiw3IEBA
IElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVy
YXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CiB9CiAKLUlEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlELCB1aW50NjRfdCBuZXdLZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSUQsIHVpbnQ2NF90IG5ld0tleU51bWJlcikKIHsKICAgICBMT0coSW5kZXhlZERC
LCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIgLSBvYmpl
Y3Qgc3RvcmUgJSIgUFJJdTY0ICIsIHJldmVydGVkIG51bWJlciAlIiBQUkl1NjQsIG9iamVjdFN0
b3JlSUQsIG5ld0tleU51bWJlcik7CiAKQEAgLTI0NTYsNyArMjQ1Niw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpCiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9i
amVjdFN0b3JlSUQsIG5ld0tleU51bWJlciAtIDEpOwogfQogCi1JREJFcnJvciBTUUxpdGVJREJC
YWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlELCBkb3VibGUgbmV3S2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSUQsIGRvdWJsZSBuZXdLZXlOdW1iZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
IlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIiKTsK
IApAQCAtMjQ4Myw3ICsyNDgzLDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpt
YXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJREJSZXNvdXJjZUkKICAgICByZXR1
cm4gdW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUob2JqZWN0U3RvcmVJRCwgc3RkOjptaW4o
bmV3S2V5TnVtYmVyLCAoZG91YmxlKW1heEdlbmVyYXRvclZhbHVlKSk7CiB9CiAKLUlEQkVycm9y
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCQ3Vyc29ySW5mbyYgaW5mbywg
SURCR2V0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvLCBJREJHZXRS
ZXN1bHQmIHJlc3VsdCkKIHsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1f
c3FsaXRlREItPmlzT3BlbigpKTsKQEAgLTI1MDYsNyArMjUwNiw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1
cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhLCBJREJHZXRS
ZXN1bHQmIHJlc3VsdCwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRl
bnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmIGRhdGEsIElEQkdldFJlc3VsdCYg
cmVzdWx0KQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0
ZXJhdGVDdXJzb3IiKTsKIApAQCAtMjU0OSw3ICsyNTQ5LDcgQEAgSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnMKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1ib29sIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6cHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRl
bnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpCitib29sIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
cHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllcikK
IHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpwcmVmZXRjaEN1
cnNvciIpOwogCkBAIC0yNTY1LDE4ICsyNTY1LDEzIEBAIGJvb2wgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
CiAgICAgcmV0dXJuIGN1cnNvci0+cHJlZmV0Y2goKTsKIH0KIAotSURCT2JqZWN0U3RvcmVJbmZv
KiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKQotewotICAgIHJldHVybiBpbmZv
Rm9yT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKLX0KLQogSURCT2JqZWN0U3Rv
cmVJbmZvKiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsK
ICAgICByZXR1cm4gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9i
amVjdFN0b3JlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWxldGVCYWNraW5nU3RvcmUoY29uc3QgTG9ja0hvbGRlciYpCit2b2lkIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZGVsZXRlQmFja2luZ1N0b3JlKCkKIHsKICAgICBTdHJpbmcgZGJGaWxlbmFtZSA9
IGZ1bGxEYXRhYmFzZVBhdGgoKTsKIApAQCAtMjY0Niw3ICsyNjQxLDcgQEAgU1FMaXRlU3RhdGVt
ZW50KiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNhY2hlZFN0YXRlbWVudChTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OlMKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZW1lbnRzW3N0YXRpY19jYXN0PHNp
emVfdD4oc3FsKV0uZ2V0KCk7CiB9CiAKLXZvaWQgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjbG9z
ZShjb25zdCBMb2NrSG9sZGVyJikKK3ZvaWQgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjbG9zZSgp
CiB7CiAgICAgY2xvc2VTUUxpdGVEQigpOwogfQpAQCAtMjY2Miw3ICsyNjU3LDcgQEAgdm9pZCBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmNsb3NlU1FMaXRlREIoKQogICAgIG1fc3FsaXRlREIgPSBu
dWxscHRyOwogfQogCi1ib29sIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6aGFzVHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IExvY2tIb2xkZXImKSBjb25zdAorYm9vbCBTUUxpdGVJREJCYWNraW5nU3RvcmU6Omhhc1RyYW5z
YWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgcmV0dXJuIG1fdHJh
bnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmgKaW5kZXggMmE0YTEyMjI4NTE0MjVhZWMyZDc3MWMxZmExNjk1NjEzNjQ0
MzE0Zi4uNmJlY2E2MWFiZDZmN2ViZTdhYjgyYWZjOGMyZTM0YTNmMTFiZjg4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuaApAQCAtNTQsNDQgKzU0LDQzIEBAIHB1YmxpYzoKICAgICAK
ICAgICB+U1FMaXRlSURCQmFja2luZ1N0b3JlKCkgZmluYWw7CiAKLSAgICBJREJFcnJvciBnZXRP
ckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mLCBjb25zdCBMb2NrSG9sZGVy
JikgZmluYWw7Ci0KLSAgICBJREJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBhYm9y
dFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBjcmVhdGVPYmplY3RT
dG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAg
IElEQkVycm9yIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciByZW5hbWVPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExv
Y2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJv
ciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwot
ICAgIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVy
cm9yIHJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25zdCBMb2NrSG9sZGVyJikgZmlu
YWw7Ci0gICAgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYga2V5RXhpc3RzLCBjb25zdCBMb2Nr
SG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgY29uc3QgTG9ja0hvbGRlciYpIGZp
bmFsOwotICAgIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3Qg
SURCS2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwot
ICAgIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJ
REJLZXlSYW5nZURhdGEmLCBJREJHZXRSZWNvcmREYXRhVHlwZSwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGdldEFsbFJlY29y
ZHMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiwgSURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1ZSwgY29u
c3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERC
OjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYg
b3V0VmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRDb3Vu
dChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRDb3VudCwgY29uc3QgTG9ja0hvbGRl
ciYpIGZpbmFsOwotICAgIElEQkVycm9yIGdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIHVpbnQ2NF90JiBrZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5h
bDsKLSAgICBJREJFcnJvciByZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3Qga2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7
Ci0gICAgSURCRXJyb3IgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpIGZp
bmFsOwotICAgIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJREJHZXRSZXN1
bHQmIG91dFJlc3VsdCwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGl0
ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29u
c3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCwgY29uc3Qg
TG9ja0hvbGRlciYpIGZpbmFsOwotICAgIGJvb2wgcHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgTG9j
a0hvbGRlciYpIGZpbmFsOwotCi0gICAgSURCT2JqZWN0U3RvcmVJbmZvKiBpbmZvRm9yT2JqZWN0
U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikg
ZmluYWw7Ci0gICAgdm9pZCBkZWxldGVCYWNraW5nU3RvcmUoY29uc3QgTG9ja0hvbGRlciYpIGZp
bmFsOwotCi0gICAgYm9vbCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucyhjb25zdCBM
b2NrSG9sZGVyJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGlzRXBoZW1lcmFs
KGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgYm9vbCBo
YXNUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBMb2NrSG9s
ZGVyJikgY29uc3QgZmluYWw7CisgICAgSURCRXJyb3IgZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUlu
Zm8oSURCRGF0YWJhc2VJbmZvJikgZmluYWw7CisKKyAgICBJREJFcnJvciBiZWdpblRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpIGZpbmFsOworICAgIElEQkVycm9yIGFib3J0
VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICBJREJF
cnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikgZmluYWw7CisgICAg
SURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgZmlu
YWw7CisgICAgSURCRXJyb3IgcmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSBmaW5hbDsKKyAgICBJREJFcnJvciBjbGVhck9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9y
IGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSBmaW5hbDsKKyAgICBJREJFcnJvciBkZWxldGVJ
bmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIp
IGZpbmFsOworICAgIElEQkVycm9yIHJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSBmaW5h
bDsKKyAgICBJREJFcnJvciBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBib29sJiBrZXlFeGlzdHMpIGZpbmFsOworICAg
IElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYpIGZpbmFsOworICAgIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0
U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJikgZmluYWw7Cisg
ICAgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYsIElEQkdldFJlY29yZERhdGFUeXBlLCBJREJHZXRSZXN1bHQmIG91dFZh
bHVlKSBmaW5hbDsKKyAgICBJREJFcnJvciBnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJHZXRBbGxSZWNvcmRz
RGF0YSYsIElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUpIGZpbmFsOworICAgIElEQkVycm9yIGdl
dEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRl
bnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpIGZpbmFsOworICAgIElEQkVycm9yIGdldENvdW50
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29u
c3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3QmIG91dENvdW50KSBmaW5hbDsKKyAgICBJREJF
cnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCYga2V5TnVtYmVyKSBmaW5hbDsKKyAgICBJREJFcnJvciByZXZlcnRHZW5lcmF0ZWRLZXlOdW1i
ZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qga2V5TnVtYmVyKSBmaW5hbDsK
KyAgICBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyKSBmaW5hbDsKKyAgICBJREJFcnJvciBv
cGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQpIGZpbmFs
OworICAgIElEQkVycm9yIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vy
c29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQm
IG91dFJlc3VsdCkgZmluYWw7CisgICAgYm9vbCBwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBmaW5hbDsKKwor
ICAgIElEQk9iamVjdFN0b3JlSW5mbyogaW5mb0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBkZWxldGVCYWNraW5nU3RvcmUoKSBm
aW5hbDsKKworICAgIGJvb2wgc3VwcG9ydHNTaW11bHRhbmVvdXNUcmFuc2FjdGlvbnMoKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgYm9vbCBoYXNUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdW5yZWdpc3RlckN1cnNvcihTUUxp
dGVJREJDdXJzb3ImKTsKIAogICAgIElEQkVycm9yIGdldEJsb2JSZWNvcmRzRm9yT2JqZWN0U3Rv
cmVSZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZVJlY29yZCwgVmVjdG9yPFN0cmluZz4mIGJsb2JV
UkxzLCBWZWN0b3I8U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7Ci0gICAgSURCT2JqZWN0U3RvcmVJ
bmZvKiBpbmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsK
IAogICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VOYW1lRnJvbUVuY29kZWRGaWxlbmFtZShjb25z
dCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdWludDY0X3QgZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9y
eShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSk7CkBAIC0xMzMsNyArMTMyLDcgQEAgcHJpdmF0ZToK
ICAgICBJREJFcnJvciBnZXRBbGxJbmRleFJlY29yZHMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiwg
SURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1ZSk7CiAKICAgICB2b2lkIGNsb3NlU1FMaXRlREIoKTsK
LSAgICB2b2lkIGNsb3NlKGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKKyAgICB2b2lkIGNsb3Nl
KCkgZmluYWw7CiAKICAgICBlbnVtIGNsYXNzIFNRTCA6IHNpemVfdCB7CiAgICAgICAgIENyZWF0
ZU9iamVjdFN0b3JlSW5mbywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IGE2MDAwNmQ3
YzVmZmQyYWI0Mzk2ZGQxYmM3OGQzOWIwMmQ4YTFmMjYuLjcyNjYzMmJhMDU0ZGIzNzUwODkxYzFm
MGExZDZmY2RmMDhlZjA4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzExLDcg
KzMxMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZShjb25z
dCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpCiAgICAgewogICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwogICAgICAgICBpZiAobV9iYWNraW5nU3Rv
cmUpIHsKLSAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kZWxldGVCYWNraW5nU3RvcmUobG9j
a2VyKTsKKyAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kZWxldGVCYWNraW5nU3RvcmUoKTsK
ICAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fYmFj
a2luZ1N0b3JlU3VwcG9ydHNTaW11bHRhbmVvdXNUcmFuc2FjdGlvbnMgPSBmYWxzZTsKICAgICAg
ICAgICAgIG1fYmFja2luZ1N0b3JlSXNFcGhlbWVyYWwgPSBmYWxzZTsKQEAgLTMxOSwxMiArMzE5
LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZShjb25zdCBJ
REJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpCiAgICAgICAgICAgICBhdXRvIGJhY2tpbmdT
dG9yZSA9IG1fc2VydmVyLT5jcmVhdGVCYWNraW5nU3RvcmUoaWRlbnRpZmllcik7CiAKICAgICAg
ICAgICAgIElEQkRhdGFiYXNlSW5mbyBkYXRhYmFzZUluZm87Ci0gICAgICAgICAgICBhdXRvIGVy
cm9yID0gYmFja2luZ1N0b3JlLT5nZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhkYXRhYmFzZUlu
Zm8sIGxvY2tlcik7CisgICAgICAgICAgICBhdXRvIGVycm9yID0gYmFja2luZ1N0b3JlLT5nZXRP
ckVzdGFibGlzaERhdGFiYXNlSW5mbyhkYXRhYmFzZUluZm8pOwogICAgICAgICAgICAgaWYgKCFl
cnJvci5pc051bGwoKSkKICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkVycm9yIGdldHRpbmcg
ZGF0YWJhc2UgaW5mbyBmcm9tIGRhdGFiYXNlICVzIHRoYXQgd2UgYXJlIHRyeWluZyB0byBkZWxl
dGUiLCBpZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgICAg
ICAgICAgZGVsZXRlZFZlcnNpb24gPSBkYXRhYmFzZUluZm8udmVyc2lvbigpOwotICAgICAgICAg
ICAgYmFja2luZ1N0b3JlLT5kZWxldGVCYWNraW5nU3RvcmUobG9ja2VyKTsKKyAgICAgICAgICAg
IGJhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtVW5jb25k
aXRpb25hbERlbGV0ZUJhY2tpbmdTdG9yZSgpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwogICAgICAgICBpZiAobV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKGxvY2tlcik7Cisg
ICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgfQog
CiAgICAgc2h1dGRvd25Gb3JDbG9zZSgpOwpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duRm9yQ2xvc2UoKQogCiAgICAgaWYgKG1fYmFja2luZ1N0b3Jl
KSB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAg
ICAgIG1fYmFja2luZ1N0b3JlLT5jbG9zZShsb2NrZXIpOworICAgICAgICBtX2JhY2tpbmdTdG9y
ZS0+Y2xvc2UoKTsKICAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBudWxscHRyOwogICAgIH0KICAg
ICBtX2JhY2tpbmdTdG9yZVN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zID0gZmFsc2U7
CkBAIC02MTAsNyArNjEwLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVN0YXJ0
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW8KICAgICBJREJFcnJv
ciBlcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3Jl
TG9jayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmJlZ2luVHJhbnNhY3Rpb24o
aW5mbywgbG9ja2VyKTsKKyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+YmVnaW5UcmFu
c2FjdGlvbihpbmZvKTsKICAgICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRl
Q3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1TdGFy
dFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiwgZXJyb3IpKTsKQEAgLTc4Miw5ICs3ODIsOSBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNl
SWRlbnRpZmllciYgaWRlbnRpZmllcgogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9iYWNraW5nU3RvcmVMb2NrKTsKICAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBtX3NlcnZlci0+
Y3JlYXRlQmFja2luZ1N0b3JlKGlkZW50aWZpZXIpOwotICAgICAgICBtX2JhY2tpbmdTdG9yZVN1
cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zID0gbV9iYWNraW5nU3RvcmUtPnN1cHBvcnRz
U2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zKGxvY2tlcik7Ci0gICAgICAgIG1fYmFja2luZ1N0b3Jl
SXNFcGhlbWVyYWwgPSBtX2JhY2tpbmdTdG9yZS0+aXNFcGhlbWVyYWwobG9ja2VyKTsKLSAgICAg
ICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oZGF0
YWJhc2VJbmZvLCBsb2NrZXIpOworICAgICAgICBtX2JhY2tpbmdTdG9yZVN1cHBvcnRzU2ltdWx0
YW5lb3VzVHJhbnNhY3Rpb25zID0gbV9iYWNraW5nU3RvcmUtPnN1cHBvcnRzU2ltdWx0YW5lb3Vz
VHJhbnNhY3Rpb25zKCk7CisgICAgICAgIG1fYmFja2luZ1N0b3JlSXNFcGhlbWVyYWwgPSBtX2Jh
Y2tpbmdTdG9yZS0+aXNFcGhlbWVyYWwoKTsKKyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9y
ZS0+Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oZGF0YWJhc2VJbmZvKTsKICAgICB9CiAKICAg
ICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5p
cXVlSURCRGF0YWJhc2U6OmRpZE9wZW5CYWNraW5nU3RvcmUsIGRhdGFiYXNlSW5mbywgZXJyb3Ip
KTsKQEAgLTgzNSw3ICs4MzUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3Jl
YXRlT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjbwogICAgIElEQkVy
cm9yIGVycm9yOwogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3Rv
cmVMb2NrKTsKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3Rv
cmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbmZvLCBsb2NrZXIpOworICAgICAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGluZm8pOwogICAgIH0KIAogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUNyZWF0ZU9iamVj
dFN0b3JlLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCBpbmZvKSk7CkBAIC04NzksNyArODc5
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY28KICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAg
IGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBsb2NrZXIpOworICAgICAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIs
IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1Jl
cGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQ
ZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVj
dFN0b3JlSWRlbnRpZmllcikpOwpAQCAtOTI4LDcgKzkyOCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OnBlcmZvcm1SZW5hbWVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvCiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKICAgICB7CiAgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIG1fYmFja2luZ1N0b3Jl
LT5yZW5hbWVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRl
bnRpZmllciwgbmV3TmFtZSwgbG9ja2VyKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUtPnJlbmFt
ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBuZXdOYW1lKTsKICAgICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1SZW5hbWVP
YmplY3RTdG9yZSwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBuZXdOYW1lKSk7CkBAIC05NjUsNyArOTY1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybUNsZWFyT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b24KICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmNs
ZWFyT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGxvY2tlcik7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmNsZWFyT2JqZWN0
U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAg
IH0KIAogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRo
aXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUNsZWFyT2JqZWN0U3RvcmUsIGNhbGxi
YWNrSWRlbnRpZmllciwgZXJyb3IpKTsKQEAgLTEwMTIsNyArMTAxMiw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElECiAgICAgICAgICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1DcmVhdGVJ
bmRleCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgaW5mbykpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZUlu
ZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW5mbywgbG9ja2VyKTsKKyAgICAgICAgZXJyb3Ig
PSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbmZv
KTsKICAgICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1DcmVhdGVJbmRleCwgY2Fs
bGJhY2tJZGVudGlmaWVyLCBlcnJvciwgaW5mbykpOwpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNr
SWRlbnRpZmllciwgY29uc3QgSUQKICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmRlbGV0ZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIGxvY2tlcik7CisgICAgICAgIGVycm9y
ID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIpOwogICAgIH0KIAogICAgIHBvc3RE
YXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZUluZGV4LCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9y
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllcikpOwpAQCAtMTEyOCw3ICsx
MTI4LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVJlbmFtZUluZGV4KHVpbnQ2
NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSUQKICAgICBJREJFcnJvciBiYWNraW5nU3Rv
cmVFcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3Jl
TG9jayk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUVycm9yID0gbV9iYWNraW5nU3RvcmUtPnJlbmFt
ZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRl
eElkZW50aWZpZXIsIG5ld05hbWUsIGxvY2tlcik7CisgICAgICAgIGJhY2tpbmdTdG9yZUVycm9y
ID0gbV9iYWNraW5nU3RvcmUtPnJlbmFtZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpOwogICAgIH0KIAog
ICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVJlbmFtZUluZGV4LCBjYWxsYmFja0lkZW50aWZp
ZXIsIGJhY2tpbmdTdG9yZUVycm9yLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRp
ZmllciwgbmV3TmFtZSkpOwpAQCAtMTE5NCw3ICsxMTk0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3Qg
SURCUmUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8qIG9i
amVjdFN0b3JlSW5mbyA9IG1fYmFja2luZ1N0b3JlLT5pbmZvRm9yT2JqZWN0U3RvcmUob2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBsb2NrZXIpOworICAgICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8g
PSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmll
cik7CiAgICAgICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7CiAgICAgICAgICAgICBlcnJvciA9
IElEQkVycm9yKEludmFsaWRTdGF0ZUVycm9yLCAiT2JqZWN0IHN0b3JlIGNhbm5vdCBiZSBmb3Vu
ZCBpbiB0aGUgYmFja2luZyBzdG9yZSJfcyk7CiAgICAgICAgICAgICBwb3N0RGF0YWJhc2VUYXNr
UmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtleSkpOwpA
QCAtMTIwMywxMiArMTIwMywxMiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0
T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogCiAgICAgICAg
IGJvb2wgdXNlZEtleUlzR2VuZXJhdGVkID0gZmFsc2U7CiAgICAgICAgIHVpbnQ2NF90IGtleU51
bWJlcjsKLSAgICAgICAgYXV0byBnZW5lcmF0ZWRLZXlSZXNldHRlciA9IFdURjo6bWFrZVNjb3Bl
RXhpdChbdGhpcywgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
ICZrZXlOdW1iZXIsICZ1c2VkS2V5SXNHZW5lcmF0ZWQsICZsb2NrZXJdKCkgeworICAgICAgICBh
dXRvIGdlbmVyYXRlZEtleVJlc2V0dGVyID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgJmtleU51bWJlciwgJnVz
ZWRLZXlJc0dlbmVyYXRlZF0oKSB7CiAgICAgICAgICAgICBpZiAodXNlZEtleUlzR2VuZXJhdGVk
KQotICAgICAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5yZXZlcnRHZW5lcmF0ZWRLZXlOdW1i
ZXIodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleU51bWJl
ciwgbG9ja2VyKTsKKyAgICAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJh
dGVkS2V5TnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBrZXlOdW1iZXIpOwogICAgICAgICB9KTsKICAgICAgICAgaWYgKG9iamVjdFN0b3JlSW5mby0+
YXV0b0luY3JlbWVudCgpICYmICFrZXlEYXRhLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgZXJy
b3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2VuZXJhdGVLZXlOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleU51bWJlciwgbG9ja2VyKTsKKyAgICAgICAg
ICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdlbmVyYXRlS2V5TnVtYmVyKHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIpOwogICAgICAgICAg
ICAgaWYgKCFlcnJvci5pc051bGwoKSkgewogICAgICAgICAgICAgICAgIHBvc3REYXRhYmFzZVRh
c2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6
ZGlkUGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTIyMSw3ICsxMjIxLDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwgY29uc3QgSURCUmUKIAogICAgICAgICBpZiAob3ZlcndyaXRlTW9kZSA9PSBJbmRleGVkREI6
Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6Tm9PdmVyd3JpdGUpIHsKICAgICAgICAgICAgIGJv
b2wga2V5RXhpc3RzOwotICAgICAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+a2V5RXhp
c3RzSW5PYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgdXNlZEtleSwga2V5RXhpc3RzLCBsb2NrZXIpOworICAgICAgICAgICAgZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+a2V5RXhpc3RzSW5PYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgdXNlZEtleSwga2V5RXhpc3RzKTsKICAgICAgICAg
ICAgIGlmIChlcnJvci5pc051bGwoKSAmJiBrZXlFeGlzdHMpCiAgICAgICAgICAgICAgICAgZXJy
b3IgPSBJREJFcnJvcihDb25zdHJhaW50RXJyb3IsICJLZXkgYWxyZWFkeSBleGlzdHMgaW4gdGhl
IG9iamVjdCBzdG9yZSJfcyk7CiAKQEAgLTEyMzUsMTMgKzEyMzUsMTMgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Y29uc3QgSURCUmUKICAgICAgICAgLy8gLi4uSWYgYSByZWNvcmQgYWxyZWFkeSBleGlzdHMgaW4g
c3RvcmUgLi4uCiAgICAgICAgIC8vIHRoZW4gcmVtb3ZlIHRoZSByZWNvcmQgZnJvbSBzdG9yZSB1
c2luZyB0aGUgc3RlcHMgZm9yIGRlbGV0aW5nIHJlY29yZHMgZnJvbSBhbiBvYmplY3Qgc3RvcmUu
Li4KICAgICAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBmb3JtYWxseSBkZWxldGlu
ZyBpdCBmcm9tIGZyb20gdGhlIG9iamVjdCBzdG9yZSBhbHNvIHJlbW92ZXMgaXQgZnJvbSB0aGUg
YXBwcm9wcmlhdGUgaW5kZXhlcy4KLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVs
ZXRlUmFuZ2UodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVz
ZWRLZXksIGxvY2tlcik7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZVJh
bmdlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1c2VkS2V5
KTsKICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkgewogICAgICAgICAgICAgcG9zdERhdGFi
YXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFi
YXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRL
ZXkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmFkZFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsICpvYmplY3RT
dG9yZUluZm8sIHVzZWRLZXksIG9yaWdpbmFsUmVjb3JkVmFsdWUsIGxvY2tlcik7CisgICAgICAg
IGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFkZFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIs
ICpvYmplY3RTdG9yZUluZm8sIHVzZWRLZXksIG9yaWdpbmFsUmVjb3JkVmFsdWUpOwogCiAgICAg
ICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIHBvc3REYXRhYmFzZVRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlk
UGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5KSk7CkBA
IC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JB
ZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKG92ZXJ3cml0ZU1vZGUgIT0gSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3
cml0ZU1vZGU6Ok92ZXJ3cml0ZUZvckN1cnNvciAmJiBvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNy
ZW1lbnQoKSAmJiBrZXlEYXRhLnR5cGUoKSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikK
LSAgICAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJh
dG9yTnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBr
ZXlEYXRhLm51bWJlcigpLCBsb2NrZXIpOworICAgICAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdT
dG9yZS0+bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleURhdGEubnVtYmVyKCkpOwogCiAgICAgICAgIGdl
bmVyYXRlZEtleVJlc2V0dGVyLnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMzAxLDcgKzEzMDEsNyBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCUgogICAgIElEQkVycm9yIGVycm9yOwogICAgIHsKICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAgICAgZXJy
b3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0UmVjb3JkKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlSYW5nZURhdGEsIHR5cGUsIHJlc3VsdCwgbG9ja2VyKTsK
KyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0UmVjb3JkKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlSYW5nZURhdGEsIHR5cGUsIHJlc3Vs
dCk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtR2V0UmVjb3JkLCBjYWxs
YmFja0lkZW50aWZpZXIsIGVycm9yLCByZXN1bHQpKTsKQEAgLTEzMTcsNyArMTMxNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1HZXRJbmRleFJlY29yZCh1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0CiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgewogICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5nZXRJbmRleFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCByZWNvcmRUeXBlLCByYW5nZSwg
cmVzdWx0LCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRJbmRl
eFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5k
ZXhJZGVudGlmaWVyLCByZWNvcmRUeXBlLCByYW5nZSwgcmVzdWx0KTsKICAgICB9CiAKICAgICBw
b3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6OmRpZFBlcmZvcm1HZXRSZWNvcmQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJy
b3IsIHJlc3VsdCkpOwpAQCAtMTM0MSw3ICsxMzQxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybUdldEFsbFJlY29yZHModWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25z
dAogICAgIElEQkVycm9yIGVycm9yOwogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0
QWxsUmVjb3Jkcyh0cmFuc2FjdGlvbklkZW50aWZpZXIsIGdldEFsbFJlY29yZHNEYXRhLCByZXN1
bHQsIGxvY2tlcik7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldEFsbFJlY29y
ZHModHJhbnNhY3Rpb25JZGVudGlmaWVyLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0KTsKICAg
ICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1HZXRBbGxSZWNvcmRzLCBjYWxsYmFj
a0lkZW50aWZpZXIsIGVycm9yLCBXVEZNb3ZlKHJlc3VsdCkpKTsKQEAgLTEzNzgsNyArMTM3OCw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1HZXRDb3VudCh1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgewog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAgICBl
cnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRDb3VudCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBrZXlSYW5nZURhdGEsIGNvdW50
LCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRDb3VudCh0cmFu
c2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVy
LCBrZXlSYW5nZURhdGEsIGNvdW50KTsKICAgICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVw
bHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBl
cmZvcm1HZXRDb3VudCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgY291bnQpKTsKQEAgLTE0
MTEsNyArMTQxMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVSZWNv
cmQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJCiAgICAgSURCRXJyb3IgZXJy
b3I7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2sp
OwotICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZSh0cmFuc2FjdGlv
bklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgcmFuZ2UsIGxvY2tlcik7CisgICAg
ICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZVJhbmdlKHRyYW5zYWN0aW9uSWRlbnRp
Zmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCByYW5nZSk7CiAgICAgfQogCiAgICAgcG9zdERh
dGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlUmVjb3JkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9y
KSk7CkBAIC0xNDQ1LDcgKzE0NDUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3Jt
T3BlbkN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQgogICAgIElE
QkVycm9yIGVycm9yOwogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5n
U3RvcmVMb2NrKTsKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkN1cnNvcih0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGluZm8sIHJlc3VsdCwgbG9ja2VyKTsKKyAgICAgICAgZXJy
b3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkN1cnNvcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGlu
Zm8sIHJlc3VsdCk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNy
b3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtT3BlbkN1
cnNvciwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgcmVzdWx0KSk7CkBAIC0xNDc5LDcgKzE0
NzksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtSXRlcmF0ZUN1cnNvcih1aW50
NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0CiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAg
ewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAg
ICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5pdGVyYXRlQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY3Vyc29ySWRlbnRpZmllciwgZGF0YSwgcmVzdWx0LCBsb2NrZXIpOworICAgICAgICBl
cnJvciA9IG1fYmFja2luZ1N0b3JlLT5pdGVyYXRlQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY3Vyc29ySWRlbnRpZmllciwgZGF0YSwgcmVzdWx0KTsKICAgICB9CiAKICAgICBpZiAoZXJy
b3IuaXNOdWxsKCkpIHsKQEAgLTE1MDQsNyArMTUwNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1QcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zCiAKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9j
ayk7Ci0gICAgICAgIGlmICghbV9iYWNraW5nU3RvcmUtPnByZWZldGNoQ3Vyc29yKHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY3Vyc29ySWRlbnRpZmllciwgbG9ja2VyKSkgeworICAgICAgICBpZiAo
IW1fYmFja2luZ1N0b3JlLT5wcmVmZXRjaEN1cnNvcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGN1
cnNvcklkZW50aWZpZXIpKSB7CiAgICAgICAgICAgICBtX2N1cnNvclByZWZldGNoZXMucmVtb3Zl
KGN1cnNvcklkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0x
NTY3LDcgKzE1NjcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJh
bnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjbwogICAgIElEQkVycm9yIGVy
cm9yOwogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2Nr
KTsKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0
b3JlLT5jb21taXRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIH0KICAg
ICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVu
dGlmaWVyLCBlcnJvciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSk7CiB9CkBAIC0xNjUwLDcgKzE2
NTAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbgogICAgIElEQkVycm9yIGVycm9yOwogICAg
IHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAg
ICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+YWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGxvY2tlcik7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0
VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICB9CiAgICAgcG9zdERhdGFi
YXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFi
YXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJv
ciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSk7CiB9CkBAIC0xODY0LDcgKzE4NjQsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0
b3JlKHVpbnQ2NF90IGNhbGxiYQogICAgIElEQkVycm9yIGVycm9yOwogICAgIHsKICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAgICAgZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+YmVnaW5UcmFuc2FjdGlvbihpbmZvLCBsb2NrZXIpOworICAgICAgICBl
cnJvciA9IG1fYmFja2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9uKGluZm8pOwogICAgIH0KIAog
ICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdT
dG9yZSwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcikpOwpAQCAtMjE5OSwxNSArMjE5OSwxNSBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpmb3JnZXRFcnJvckNhbGxiYWNrKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllcikKICAgICBtX2Vycm9yQ2FsbGJhY2tzLnJlbW92ZShjYWxsYmFja0lk
ZW50aWZpZXIpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9u
T25NYWluVGhyZWFkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBj
b25zdCBMb2NrSG9sZGVyJiBsb2NrZXIpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRy
YW5zYWN0aW9uT25NYWluVGhyZWFkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogewotICAgIHRyYW5zYWN0aW9uLnNldFJlc3VsdChtX2JhY2tpbmdTdG9yZS0+YWJv
cnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBsb2NrZXIpKTsK
KyAgICB0cmFuc2FjdGlvbi5zZXRSZXN1bHQobV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rp
b24odHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwogICAgIHRyYW5zYWN0aW9uLnNl
dFN0YXRlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OlN0YXRlOjpBYm9ydGVkKTsKIH0K
IAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb25Pbk1haW5UaHJlYWQo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGNvbnN0IExvY2tIb2xk
ZXImIGxvY2tlcikKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uT25N
YWluVGhyZWFkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewot
ICAgIHRyYW5zYWN0aW9uLnNldFJlc3VsdChtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rp
b24odHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgbG9ja2VyKSk7CisgICAgdHJhbnNh
Y3Rpb24uc2V0UmVzdWx0KG1fYmFja2luZ1N0b3JlLT5jb21taXRUcmFuc2FjdGlvbih0cmFuc2Fj
dGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7CiAgICAgdHJhbnNhY3Rpb24uc2V0U3RhdGUoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6U3RhdGU6OkNvbW1pdHRlZCk7CiB9CiAKQEAgLTIy
MjMsMjAgKzIyMjMsMjAgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c3VzcGVuZCgpCiAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7CiAgICAgICAgIGZvciAo
YXV0byYgaWRlbnRpZmllciA6IGNvcHlUb1ZlY3RvcihtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMu
a2V5cygpKSkgewogICAgICAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1faW5Qcm9ncmVzc1Ry
YW5zYWN0aW9ucy5nZXQoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9u
T25NYWluVGhyZWFkKCp0cmFuc2FjdGlvbiwgbG9ja2VyKTsKKyAgICAgICAgICAgIGFib3J0VHJh
bnNhY3Rpb25Pbk1haW5UaHJlYWQoKnRyYW5zYWN0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAg
IGZvciAoYXV0byYgaWRlbnRpZmllciA6IGNvcHlUb1ZlY3RvcihtX2ZpbmlzaGluZ1RyYW5zYWN0
aW9ucy5rZXlzKCkpKSB7Ci0gICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLT5oYXNUcmFu
c2FjdGlvbihpZGVudGlmaWVyLCBsb2NrZXIpKQorICAgICAgICAgICAgaWYgKCFtX2JhY2tpbmdT
dG9yZS0+aGFzVHJhbnNhY3Rpb24oaWRlbnRpZmllcikpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX2ZpbmlzaGluZ1RyYW5zYWN0
aW9ucy5nZXQoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBzd2l0Y2ggKHRyYW5zYWN0aW9uLT5z
dGF0ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246
OlN0YXRlOjpBYm9ydGluZzoKLSAgICAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9uT25NYWlu
VGhyZWFkKCp0cmFuc2FjdGlvbiwgbG9ja2VyKTsKKyAgICAgICAgICAgICAgICBhYm9ydFRyYW5z
YWN0aW9uT25NYWluVGhyZWFkKCp0cmFuc2FjdGlvbik7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OlN0YXRlOjpD
b21taXR0aW5nOgotICAgICAgICAgICAgICAgIGNvbW1pdFRyYW5zYWN0aW9uT25NYWluVGhyZWFk
KCp0cmFuc2FjdGlvbiwgbG9ja2VyKTsKKyAgICAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlv
bk9uTWFpblRocmVhZCgqdHJhbnNhY3Rpb24pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpTdGF0ZTo6UnVubmlu
ZzoKICAgICAgICAgICAgIGNhc2UgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6U3RhdGU6
OkFib3J0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGViZmMxYzUwZjdhODgwODllZTZi
ZjI0Y2I2OTU3NDQ5OTg4MDkzODAuLmM1ZDdjYTkwMTNhMjBkMjYyMDg1NTIxN2QwY2Q0ZDQ0OGUy
NjE4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC0yMTUsOCArMjE1LDggQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbj4gdGFrZU5leHRSdW5u
YWJsZVRyYW5zYWN0aW9uKGJvb2wmIGhhZERlZmVycmVkVHJhbnNhY3Rpb25zKTsKIAogICAgIGJv
b2wgcHJlcGFyZVRvRmluaXNoVHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYsIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OlN0YXRlKTsKLSAgICB2b2lkIGFib3J0
VHJhbnNhY3Rpb25Pbk1haW5UaHJlYWQoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIGNv
bnN0IExvY2tIb2xkZXImKTsKLSAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uT25NYWluVGhyZWFk
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBMb2NrSG9sZGVyJik7CisgICAg
dm9pZCBhYm9ydFRyYW5zYWN0aW9uT25NYWluVGhyZWFkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mKTsKKyAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uT25NYWluVGhyZWFkKFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsKIAogICAgIHZvaWQgY2xlYXJTdGFsZVBlbmRpbmdPcGVu
REJSZXF1ZXN0cygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385295</attachid>
            <date>2019-12-10 12:30:44 -0800</date>
            <delta_ts>2019-12-11 09:57:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205076-20191210123043.patch</filename>
            <type>text/plain</type>
            <size>84263</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ5MmM2YTkxMzNhMjY5
YzRlOWZkYjAwZWIxYzEzNjI1NDM4YmI5MC4uZDg2ZGEwNjE3ZTc1MTE0YjJmODhkZTQxNDc4NGM5
ZGY1NDkwNGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxOS0xMi0xMCAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREI6IHJlbW92
ZSBMb2NrSG9sZGVyIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTA3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBMb2NrSG9sZGVyIHBhcmFtZXRlcnMgd2VyZSB1c2VkIHRvIG9u
bHkgZW5zdXJlIHdlIGhhdmUgYWNxdWlyZWQgYSBsb2NrIGJlZm9yZSB1c2luZyBJREJCYWNraW5n
U3RvcmUuIFRvIHdvcmsKKyAgICAgICAgdG93YXJkIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM2OTAgd2Ugd2lsbCBub3QgbmVlZCB0aGVzZSBhbnkgbW9yZS4KKwor
ICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6Y29tbWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1l
T2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmNsZWFyT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6Omtl
eUV4aXN0c0luT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3Jk
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Z2V0SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJC
YWNraW5nU3RvcmU6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3Jl
OjptYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6aXRlcmF0ZUN1cnNvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6aW5mb0Zv
ck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpkZWxldGVCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hE
YXRhYmFzZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpj
cmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnJlbmFtZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpjbGVhck9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWxldGVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6YWRkUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRl
SURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbFJlY29yZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEluZGV4UmVjb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRDb3Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5l
cmF0b3JOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNr
aW5nU3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnByZWZldGNoQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVCYWNraW5n
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjpoYXNUcmFuc2FjdGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVVuY29uZGl0
aW9uYWxEZWxldGVCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6c2h1dGRvd25Gb3JDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtU3RhcnRWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6b3BlbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZv
cm1SZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3JlYXRlSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1SZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0SW5kZXhSZWNvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bUdldEFsbFJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybUdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU9wZW5DdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUl0ZXJh
dGVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybVByZWZldGNoQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWJvcnRUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpw
ZXJmb3JtQWN0aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb25Pbk1haW5U
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y29tbWl0VHJhbnNhY3Rpb25Pbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisKIDIwMTktMTItMTAgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBiZWhhdmlvciB0aGF0
IG1ha2VzIDxicj4gYm94ZXMgMC1oZWlnaHQgaW4gcXVpcmtzIG1vZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUu
aAppbmRleCBlNDliMzZmMjFjZGY5ZWI3NjQ4NzYwNWRmNGE0ZWVjYjRiMmI1ZTM2Li5jNDI2NDBi
M2JmNmM2MGIwODdmMjQ1ZWZkM2FmMDFjMzY2MmZhMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCkBA
IC02MCw0NCArNjAsNDIgQEAgY2xhc3MgSURCQmFja2luZ1N0b3JlIHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJCYWNraW5nU3RvcmUoKSB7IFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7IH0KIAotICAgIC8vIEFsbCBmdW5jdGlvbnMgc2hvdWxkIHRha2UgYSBMb2NrSG9sZGVyIHRv
IG1ha2Ugc3VyZSB0aGV5IGhhdmUgYWNxdWlyZWQgbG9jayB3aGVuIGJlaW5nIGNhbGxlZC4KLSAg
ICAvLyBUaGlzIGlzIHVzZWQgdG8gbWFrZSBzdXJlIGRhdGFiYXNlIG9wZXJhdGlvbnMgd291bGQg
bm90IGJlIHBlcmZvcm1lZCB3aGVuIHByb2Nlc3MgaXMgc3VzcGVuZGVkLgotICAgIHZpcnR1YWwg
SURCRXJyb3IgZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiwgY29u
c3QgTG9ja0hvbGRlciYpID0gMDsKLQotICAgIHZpcnR1YWwgSURCRXJyb3IgYmVnaW5UcmFuc2Fj
dGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwot
ICAgIHZpcnR1YWwgSURCRXJyb3IgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsK
LSAgICB2aXJ0dWFsIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgPSAw
OwotCi0gICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3Rv
cmVJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGRl
bGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xk
ZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciByZW5hbWVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExvY2tIb2xk
ZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJ
REJFcnJvciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpID0g
MDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsK
LSAgICB2aXJ0dWFsIElEQkVycm9yIHJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25z
dCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmpl
Y3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9v
bCYga2V5RXhpc3RzLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJy
b3IgZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGFk
ZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElE
QlZhbHVlJiwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGdl
dFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
LCBJREJHZXRSZWNvcmREYXRhVHlwZSwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSwgY29uc3QgTG9j
a0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGdldEFsbFJlY29yZHMoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkdl
dEFsbFJlY29yZHNEYXRhJiwgSURCR2V0QWxsUmVzdWx0JiBvdXRWYWx1ZSwgY29uc3QgTG9ja0hv
bGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJ
bmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0
VmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciBnZXRD
b3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIs
IGNvbnN0IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRDb3VudCwgY29uc3QgTG9ja0hv
bGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90JiBrZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xk
ZXImKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciByZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qga2V5TnVtYmVyLCBjb25zdCBMb2Nr
SG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgbWF5YmVVcGRhdGVLZXlHZW5lcmF0
b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlciwg
Y29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIG9wZW5DdXJzb3Io
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkN1cnNvckluZm8mLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCwgY29uc3QgTG9ja0hvbGRl
ciYpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEm
LCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgcHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29y
SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLQotICAgIHZpcnR1YWwgSURCT2Jq
ZWN0U3RvcmVJbmZvKiBpbmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVC
YWNraW5nU3RvcmUoY29uc3QgTG9ja0hvbGRlciYpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucyhjb25zdCBMb2NrSG9sZGVyJikgPSAwOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0VwaGVtZXJhbChjb25zdCBMb2NrSG9sZGVyJikgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIGNsb3NlKGNvbnN0IExvY2tIb2xkZXImKSA9IDA7Ci0KLSAgICB2aXJ0
dWFsIGJvb2wgaGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29u
c3QgTG9ja0hvbGRlciYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGdldE9yRXN0
YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5mbyYpID0gMDsKKworICAgIHZpcnR1YWwg
SURCRXJyb3IgYmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSA9IDA7
CisgICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBJREJF
cnJvciBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllcikgPSAwOworCisgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmpl
Y3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3Ig
ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOworICAgIHZp
cnR1YWwgSURCRXJyb3IgcmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBjbGVh
ck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFs
IElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSA9IDA7CisgICAgdmlydHVhbCBJ
REJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBp
bmRleElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIHJlbmFtZUluZGV4KGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlzdHNJbk9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBi
b29sJiBrZXlFeGlzdHMpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKKyAg
ICB2aXJ0dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3Qg
SURCS2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3Ig
Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIElEQkdldFJlY29yZERhdGFUeXBlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSA9IDA7Cisg
ICAgdmlydHVhbCBJREJFcnJvciBnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYs
IElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGdl
dEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRl
bnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGdl
dENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmll
ciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3QmIG91dENvdW50KSA9IDA7CisgICAg
dmlydHVhbCBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciByZXZl
cnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qg
a2V5TnVtYmVyKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVy
YXRvck51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVy
KSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwg
SURCR2V0UmVzdWx0JiBvdXRSZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGl0ZXJh
dGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3Qg
SURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJz
b3JJZGVudGlmaWVyKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQk9iamVjdFN0b3JlSW5mbyogaW5m
b0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVCYWNraW5nU3RvcmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNTaW11bHRhbmVvdXNUcmFuc2FjdGlvbnMoKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGlzRXBoZW1lcmFsKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwor
CisgICAgdmlydHVhbCBib29sIGhhc1RyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpIGNvbnN0ID0gMDsKIHByb3RlY3RlZDoKICAgICBJREJCYWNraW5nU3RvcmUoKSB7IFJF
TEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuY3BwCmluZGV4IDU5ZGQ0MTA3M2Q4YmQ0ZWE0ZmM1MzNmOTcyZTZkZWExODA1MjU1
ZmMuLjRmMjcwY2IzZDBhZDQxM2QzYTFmNDU3YzAwZjA5MmIxMDYwM2ZlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5n
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC01OSwxMSArNTksNiBAQCBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IElEQgogCiBNZW1vcnlJREJCYWNraW5nU3RvcmU6On5NZW1vcnlJREJCYWNraW5nU3Rv
cmUoKSA9IGRlZmF1bHQ7CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvLCBjb25zdCBMb2NrSG9s
ZGVyJikKLXsKLSAgICByZXR1cm4gZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oaW5mbyk7Ci19
Ci0KIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFz
ZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvKQogewogICAgIGlmICghbV9kYXRhYmFzZUluZm8p
CkBAIC04MSw3ICs3Niw3IEBAIHZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpzZXREYXRhYmFz
ZUluZm8oY29uc3QgSURCRGF0YWJhc2VJbmZvJiBpbmZvKQogICAgIG1fZGF0YWJhc2VJbmZvID0g
bWFrZVVuaXF1ZTxJREJEYXRhYmFzZUluZm8+KGluZm8pOwogfQogCi1JREJFcnJvciBNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZv
JiBpbmZvLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlv
biIpOwogCkBAIC0xMDYsNyArMTAxLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywKICAgICBy
ZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24gLSAlcyIsIHRyYW5zYWN0aW9uSWRlbnRpZmllci5s
b2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTExOSw3ICsxMTQsNyBAQCBJREJF
cnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cgogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXIm
KQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBM
T0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbiAt
ICVzIiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKIApAQCAtMTMyLDcgKzEyNyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0
dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvLCBjb25zdCBMb2NrSG9s
ZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5
SURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSAtIGFkZGluZyBPUyAlcyB3aXRoIElE
ICUiIFBSSXU2NCwgaW5mby5uYW1lKCkudXRmOCgpLmRhdGEoKSwgaW5mby5pZGVudGlmaWVyKCkp
OwogCkBAIC0xNTUsNyArMTUwLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICByZXR1
cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRl
bGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xk
ZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlIik7CiAKQEAgLTE3OCw3ICsxNzMsNyBA
QCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAK
LUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25zdCBMb2NrSG9s
ZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQogewogICAg
IExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbmFtZU9iamVjdFN0b3Jl
Iik7CiAKQEAgLTIwNyw3ICsyMDIsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgIHJl
dHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9s
ZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmNsZWFyT2JqZWN0U3RvcmUiKTsKICAgICBBU1NFUlQob2JqZWN0U3Rv
cmVJZGVudGlmaWVyKTsKQEAgLTIyOCw3ICsyMjMsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cgogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgY29uc3QgTG9ja0hvbGRl
ciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4KGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRl
eEluZm8mIGluZm8pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6Y3JlYXRlSW5kZXgiKTsKIApAQCAtMjUyLDcgKzI0Nyw3IEBAIElEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjCiAgICAgcmV0dXJuIGVycm9yOwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlu
ZGV4SWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGluZGV4SWRlbnRpZmllcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpkZWxldGVJbmRleCIpOwogCkBAIC0yODAsNyArMjc1LDcgQEAgSURCRXJyb3IgTWVt
b3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWMKICAgICByZXR1cm4gZXJyb3I7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJh
Y2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExvY2tIb2xk
ZXImKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmV3TmFtZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpyZW5hbWVJbmRleCIpOwogCkBAIC0zMzMsNyArMzI4LDcgQEAgdm9pZCBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OnJlc3RvcmVPYmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydChSZWY8TWVt
b3J5T2IKICAgICByZWdpc3Rlck9iamVjdFN0b3JlKFdURk1vdmUob2JqZWN0U3RvcmUpKTsKIH0K
IAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3Jl
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgYm9vbCYga2V5RXhpc3RzLCBjb25zdCBM
b2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5P
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGJvb2wmIGtleUV4aXN0
cykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjprZXlFeGlz
dHNJbk9iamVjdFN0b3JlIik7CiAKQEAgLTM0Niw3ICszNDEsNyBAQCBJREJFcnJvciBNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaQogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29u
c3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
Ik1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UiKTsKIApAQCAtMzYzLDcgKzM1OCw3
IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0K
IAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0
b3JlSW5mbyYgb2JqZWN0U3RvcmVJbmZvLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25z
dCBJREJWYWx1ZSYgdmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgTWVtb3J5SURC
QmFja2luZ1N0b3JlOjphZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgb2JqZWN0U3RvcmVJ
bmZvLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBJREJWYWx1ZSYgdmFsdWUpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3JkIik7
CiAKQEAgLTM4MCw3ICszNzUsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFk
ZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgIHJldHVy
biBvYmplY3RTdG9yZS0+YWRkUmVjb3JkKCp0cmFuc2FjdGlvbiwga2V5RGF0YSwgdmFsdWUpOwog
fQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCBJREJHZXRSZWNv
cmREYXRhVHlwZSB0eXBlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlLCBjb25zdCBMb2NrSG9sZGVy
JikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UsIElEQkdldFJlY29y
ZERhdGFUeXBlIHR5cGUsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkIik7CiAKQEAgLTQwNyw3ICs0
MDIsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgIHJldHVybiBJREJFcnJvciB7IH07
CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3Jkcyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
R2V0QWxsUmVjb3Jkc0RhdGEmIGdldEFsbFJlY29yZHNEYXRhLCBJREJHZXRBbGxSZXN1bHQmIHJl
c3VsdCwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiBnZXRBbGxSZWNvcmRzRGF0YSwg
SURCR2V0QWxsUmVzdWx0JiByZXN1bHQpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3JkcyIpOwogCkBAIC00MzIsNyArNDI3LDcgQEAgSURC
RXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnMKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJF
cnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJl
Y29yZFR5cGUgcmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgSURCR2V0
UmVzdWx0JiBvdXRWYWx1ZSwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBNZW1vcnlJREJC
YWNraW5nU3RvcmU6OmdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVjb3Jk
VHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgSURCR2V0UmVzdWx0JiBvdXRWYWx1
ZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRJbmRl
eFJlY29yZCIpOwogCkBAIC00NDksNyArNDQ0LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpnZXRJbmRleFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW4K
ICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4
SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgdWludDY0X3QmIG91dENv
dW50LCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Z2V0Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlm
aWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCB1aW50NjRfdCYgb3V0Q291bnQpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0Q291bnQiKTsK
IApAQCAtNDY3LDcgKzQ2Miw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0
Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvCiAgICAgcmV0dXJu
IElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5l
cmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVt
YmVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QmIGtl
eU51bWJlcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpn
ZW5lcmF0ZUtleU51bWJlciIpOwogICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwpA
QCAtNDg2LDcgKzQ4MSw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgcmV0dXJuIElE
QkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZXZlcnRH
ZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qga2V5
TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGtleU51bWJlcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIiKTsKICAgICBBU1NFUlQob2JqZWN0U3Rv
cmVJZGVudGlmaWVyKTsKQEAgLTUwMSw3ICs0OTYsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aQogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJv
ciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIpCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0
b3JOdW1iZXIiKTsKICAgICBBU1NFUlQob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKQEAgLTUzMCw3
ICs1MjUsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5
R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291cmNlSQogICAgIHJldHVybiBJREJFcnJvciB7
IH07CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
Q3Vyc29ySW5mbyYgaW5mbywgSURCR2V0UmVzdWx0JiBvdXREYXRhLCBjb25zdCBMb2NrSG9sZGVy
JikKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCQ3Vyc29y
SW5mbyYgaW5mbywgSURCR2V0UmVzdWx0JiBvdXREYXRhKQogewogICAgIExPRyhJbmRleGVkREIs
ICJNZW1vcnlJREJCYWNraW5nU3RvcmU6Om9wZW5DdXJzb3IiKTsKIApAQCAtNTcyLDcgKzU2Nyw3
IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0K
IAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JE
YXRhJiBkYXRhLCBJREJHZXRSZXN1bHQmIG91dERhdGEsIGNvbnN0IExvY2tIb2xkZXImKQorSURC
RXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBk
YXRhLCBJREJHZXRSZXN1bHQmIG91dERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9y
eUlEQkJhY2tpbmdTdG9yZTo6aXRlcmF0ZUN1cnNvciIpOwogCkBAIC02MTksMTggKzYxNCwxOCBA
QCBSZWZQdHI8TWVtb3J5T2JqZWN0U3RvcmU+IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6dGFrZU9i
amVjdFN0b3JlQnlJZGVudGlmaWVyKHVpbgogICAgIHJldHVybiBvYmplY3RTdG9yZUJ5SWRlbnRp
ZmllcjsKIH0KIAotSURCT2JqZWN0U3RvcmVJbmZvKiBNZW1vcnlJREJCYWNraW5nU3RvcmU6Omlu
Zm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IExv
Y2tIb2xkZXImKQorSURCT2JqZWN0U3RvcmVJbmZvKiBNZW1vcnlJREJCYWNraW5nU3RvcmU6Omlu
Zm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAg
QVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKICAgICByZXR1cm4gbV9kYXRhYmFzZUluZm8tPmluZm9G
b3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVCYWNraW5nU3RvcmUoY29uc3QgTG9ja0hvbGRl
ciYpCit2b2lkIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlQmFja2luZ1N0b3JlKCkKIHsK
ICAgICAvLyBUaGUgaW4tbWVtb3J5IElEQiBiYWNraW5nIHN0b3JlIGRvZXNuJ3QgbmVlZCB0byBk
byBhbnkgY2xlYW51cCB3aGVuIGl0IGlzIGRlbGV0ZWQuCiB9CiAKLXZvaWQgTWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpjbG9zZShjb25zdCBMb2NrSG9sZGVyJikKK3ZvaWQgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpjbG9zZSgpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRl
eCA4NWU0MTk2NDU4OWY2MWU0MDYyZTI0MDIxYzExY2I5MWEzNWE3MDg5Li5jZjIxZDk4NjBiZDFj
MDMwNWVhYjI3ZGM5Mjc3Mzk0MTI3YjRmNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9y
ZS5oCkBAIC00Nyw0OSArNDcsNDggQEAgcHVibGljOgogICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgfk1l
bW9yeUlEQkJhY2tpbmdTdG9yZSgpIGZpbmFsOwogCi0gICAgSURCRXJyb3IgZ2V0T3JFc3RhYmxp
c2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIElEQkVycm9yIGdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5m
byYpOworICAgIElEQkVycm9yIGdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNl
SW5mbyYpIGZpbmFsOwogICAgIHZvaWQgc2V0RGF0YWJhc2VJbmZvKGNvbnN0IElEQkRhdGFiYXNl
SW5mbyYpOwogCi0gICAgSURCRXJyb3IgYmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2Fj
dGlvbkluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgYWJvcnRU
cmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGNvbW1pdFRyYW5z
YWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY3JlYXRlT2JqZWN0U3Rv
cmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJ
REJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgcmVuYW1lT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25zdCBMb2Nr
SG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3Ig
Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAg
ICBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCBpbmRleElkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJv
ciByZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0cywgY29uc3QgTG9ja0hv
bGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5h
bDsKLSAgICBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAg
ICBJREJFcnJvciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURC
S2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVjb3JkRGF0YVR5cGUsIElEQkdldFJlc3VsdCYgb3V0VmFs
dWUsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRBbGxSZWNvcmRz
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJHZXRBbGxSZWNvcmRzRGF0YSYsIElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUsIGNvbnN0
IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRJbmRleFJlY29yZChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIEluZGV4ZWREQjo6
SW5kZXhSZWNvcmRUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBJREJHZXRSZXN1bHQmIG91
dFZhbHVlLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgZ2V0Q291bnQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYgb3V0Q291bnQsIGNvbnN0IExvY2tIb2xkZXIm
KSBmaW5hbDsKLSAgICBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7
Ci0gICAgSURCRXJyb3IgcmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGtleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwot
ICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5h
bDsKLSAgICBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVzdWx0
JiBvdXRSZXN1bHQsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBpdGVy
YXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0
IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQsIGNvbnN0IExv
Y2tIb2xkZXImKSBmaW5hbDsKLSAgICBib29sIHByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IExvY2tI
b2xkZXImKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgSURCT2JqZWN0U3RvcmVJbmZv
KiBpbmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgdm9pZCBkZWxldGVCYWNraW5nU3RvcmUoY29uc3Qg
TG9ja0hvbGRlciYpIGZpbmFsOwotCi0gICAgYm9vbCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5z
YWN0aW9ucyhjb25zdCBMb2NrSG9sZGVyJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJv
b2wgaXNFcGhlbWVyYWwoY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICBJREJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYp
IGZpbmFsOworICAgIElEQkVycm9yIGFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIGNv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2Jq
ZWN0U3RvcmVJbmZvJikgZmluYWw7CisgICAgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllcikgZmluYWw7CisgICAgSURCRXJyb3IgcmVuYW1lT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSBm
aW5hbDsKKyAgICBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSBm
aW5hbDsKKyAgICBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIHJlbmFtZUlu
ZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuZXdOYW1lKSBmaW5hbDsKKyAgICBJREJFcnJvciBrZXlFeGlzdHNJbk9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBi
b29sJiBrZXlFeGlzdHMpIGZpbmFsOworICAgIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGZpbmFsOworICAgIElE
QkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0YSYs
IGNvbnN0IElEQlZhbHVlJikgZmluYWw7CisgICAgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlY29yZERh
dGFUeXBlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSBmaW5hbDsKKyAgICBJREJFcnJvciBnZXRB
bGxSZWNvcmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYsIElEQkdldEFsbFJlc3VsdCYgb3V0VmFs
dWUpIGZpbmFsOworICAgIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29y
ZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpIGZp
bmFsOworICAgIElEQkVycm9yIGdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3Qm
IG91dENvdW50KSBmaW5hbDsKKyAgICBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKSBmaW5hbDsKKyAgICBJREJF
cnJvciByZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwg
dWludDY0X3Qga2V5TnVtYmVyKSBmaW5hbDsKKyAgICBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdl
bmVyYXRvck51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVt
YmVyKSBmaW5hbDsKKyAgICBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURC
R2V0UmVzdWx0JiBvdXRSZXN1bHQpIGZpbmFsOworICAgIElEQkVycm9yIGl0ZXJhdGVDdXJzb3Io
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0
ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7CisgICAgYm9vbCBw
cmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgSURCT2JqZWN0
U3RvcmVJbmZvKiBpbmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIGRlbGV0ZUJhY2tpbmdTdG9yZSgpIGZpbmFsOworCisgICAg
Ym9vbCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucygpIGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICBib29sIGlzRXBoZW1lcmFsKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgdm9pZCByZW1vdmVPYmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydChNZW1vcnlPYmpl
Y3RTdG9yZSYpOwogICAgIHZvaWQgcmVzdG9yZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFi
b3J0KFJlZjxNZW1vcnlPYmplY3RTdG9yZT4mJik7CiAKLSAgICBib29sIGhhc1RyYW5zYWN0aW9u
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRl
ciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZp
ZXIpOyB9CisgICAgYm9vbCBoYXNUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIGlkZW50aWZpZXIpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25zLmNvbnRh
aW5zKGlkZW50aWZpZXIpOyB9CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lbW9yeU9iamVjdFN0
b3JlPiB0YWtlT2JqZWN0U3RvcmVCeUlkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcik7CiAK
LSAgICB2b2lkIGNsb3NlKGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKKyAgICB2b2lkIGNsb3Nl
KCkgZmluYWw7CiAKICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAg
IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCAzMmRmNTg3MTE0ZGFlYzBhMGRhZWViMzFhNGI5YTVhMGE3MDFkYzQ0Li4zMzNj
OGYyNmVjODMwNzgxMDY5ZDkyM2I1MTA2YThhMmI2NTliZmExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcApAQCAtNzgxLDcgKzc4MSw3IEBAIFN0cmluZyBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmZ1bGxEYXRhYmFzZURpcmVjdG9yeVdpdGhVcGdyYWRlKCkKICAgICByZXR1cm4g
bmV3RGF0YWJhc2VEaXJlY3Rvcnk7CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvLCBjb25z
dCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3Rh
Ymxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRl
eGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZv
IC0gZGF0YWJhc2UgJXMiLCBtX2lkZW50aWZpZXIuZGF0YWJhc2VOYW1lKCkudXRmOCgpLmRhdGEo
KSk7CiAKQEAgLTg1NCw3ICs4NTQsNyBAQCB1aW50NjRfdCBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcgogICAgIHJl
dHVybiBkaXNrVXNhZ2U7CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YmVn
aW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8sIGNvbnN0IExvY2tI
b2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9u
KGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKIHsKICAgICBMT0coSW5kZXhlZERCLCAi
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIC0gJXMiLCBpbmZvLmlkZW50
aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTg4NSw3ICs4ODUs
NyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvLAogICAgIHJldHVybiBlcnJvcjsKIH0KIAotSURC
RXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24gLSAlcyIsIGlkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC05MDQsNyArOTA0LDcgQEAgSURCRXJyb3Ig
U1FMaXRlSURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgaWQKICAgICByZXR1cm4gdHJhbnNhY3Rpb24tPmFib3J0KCk7CiB9CiAKLUlE
QkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uIC0gJXMiLCBpZGVudGlmaWVyLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtOTI5LDcgKzkyOSw3IEBAIElEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiBpCiAgICAgcmV0dXJuIGVycm9yOwogfQogCi1JREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8m
IGluZm8sIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogewogICAgIExP
RyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlIC0g
YWRkaW5nIE9TICVzIHdpdGggSUQgJSIgUFJJdTY0LCBpbmZvLm5hbWUoKS51dGY4KCkuZGF0YSgp
LCBpbmZvLmlkZW50aWZpZXIoKSk7CiAKQEAgLTk4MCw3ICs5ODAsNyBAQCBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdAogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUgLSBv
YmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCkBAIC0xMDcx
LDcgKzEwNzEsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgIHJldHVybiBJREJFcnJv
ciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBj
b25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1l
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdO
YW1lKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OnJlbmFt
ZU9iamVjdFN0b3JlIC0gb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyKTsKIApAQCAtMTEwMyw3ICsxMTAzLDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpyZW5hbWVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAg
ICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IExvY2tIb2xkZXIm
KQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlEKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNsZWFyT2JqZWN0U3RvcmUgLSBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBvYmplY3RTdG9y
ZUlEKTsKIApAQCAtMTE0NCw3ICsxMTQ0LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKICAg
ICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mIGluZm8sIGNvbnN0IExvY2tIb2xkZXImKQor
SURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjcmVhdGVJbmRleChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZv
JiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNy
ZWF0ZUluZGV4IC0gT2JqZWN0U3RvcmUgJSIgUFJJdTY0ICIsIEluZGV4ICUiIFBSSXU2NCwgaW5m
by5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwgaW5mby5pZGVudGlmaWVyKCkpOwogICAgIEFTU0VS
VChtX3NxbGl0ZURCKTsKQEAgLTEzMzEsNyArMTMzMSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6dW5jaGVja2VkUHV0SW5kZXhSZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZUlE
LCBpCiB9CiAKIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0
IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRl
eChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgg
LSBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCkBAIC0x
Mzc2LDcgKzEzNzYsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUlu
ZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwogICAgIHJldHVybiBJREJF
cnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5k
ZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKIHsKICAgICBM
T0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleCAtIG9iamVj
dCBzdG9yZSAlIiBQUkl1NjQgIiwgaW5kZXggJSIgUFJJdTY0LCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGluZGV4SWRlbnRpZmllcik7CiAKQEAgLTE0MTcsNyArMTQxNyw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlELCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBib29sJiBrZXlFeGlzdHMsIGNvbnN0IExv
Y2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBi
b29sJiBrZXlFeGlzdHMpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSAtIGtleSAlcywgb2JqZWN0IHN0b3JlICUiIFBS
SXU2NCwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb2JqZWN0U3RvcmVJ
RCk7CiAKQEAgLTE1OTIsNyArMTU5Miw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6ZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwKICAgICBy
ZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtl
eVJhbmdlLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQktleVJhbmdlRGF0YSYg
a2V5UmFuZ2UpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlUmFuZ2UgLSByYW5nZSAlcywgb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwga2V5UmFuZ2Uu
bG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3JlSUQpOwogCkBAIC0xNzEy
LDcgKzE3MTIsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVwZGF0ZUFsbElu
ZGV4ZXNGb3JBZGRSZWNvcmQoY29uc3QgSURCT2JqZWN0U3RvcgogICAgIHJldHVybiBlcnJvcjsK
IH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVj
dFN0b3JlSW5mbyYgb2JqZWN0U3RvcmVJbmZvLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBj
b25zdCBJREJWYWx1ZSYgdmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgb2JqZWN0U3Rv
cmVJbmZvLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBJREJWYWx1ZSYgdmFsdWUp
CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3Jk
IC0ga2V5ICVzLCBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBrZXlEYXRhLmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpKTsKIApAQCAtMTg3
NCw3ICsxODc0LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRCbG9iUmVj
b3Jkc0Zvck9iamVjdFN0b3JlUmVjb3JkKGludDY0X3Qgb2JqZWMKICAgICByZXR1cm4gSURCRXJy
b3IgeyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSURCR2V0
UmVjb3JkRGF0YVR5cGUgdHlwZSwgSURCR2V0UmVzdWx0JiByZXN1bHRWYWx1ZSwgY29uc3QgTG9j
a0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSURCR2V0UmVj
b3JkRGF0YVR5cGUgdHlwZSwgSURCR2V0UmVzdWx0JiByZXN1bHRWYWx1ZSkKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQgLSBrZXkgcmFuZ2Ug
JXMsIG9iamVjdCBzdG9yZSAlIiBQUkl1NjQsIGtleVJhbmdlLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBvYmplY3RTdG9yZUlEKTsKIApAQCAtMjAwOSw3ICsyMDA5LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGkKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCi1JREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkdldEFsbFJlY29yZHNE
YXRhJiBnZXRBbGxSZWNvcmRzRGF0YSwgSURCR2V0QWxsUmVzdWx0JiByZXN1bHQsIGNvbnN0IExv
Y2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRBbGxSZWNvcmRz
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJHZXRBbGxSZWNvcmRzRGF0YSYgZ2V0QWxsUmVjb3Jkc0RhdGEsIElEQkdldEFsbFJlc3Vs
dCYgcmVzdWx0KQogewogICAgIHJldHVybiBnZXRBbGxSZWNvcmRzRGF0YS5pbmRleElkZW50aWZp
ZXIgPyBnZXRBbGxJbmRleFJlY29yZHModHJhbnNhY3Rpb25JZGVudGlmaWVyLCBnZXRBbGxSZWNv
cmRzRGF0YSwgcmVzdWx0KSA6IGdldEFsbE9iamVjdFN0b3JlUmVjb3Jkcyh0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGdldEFsbFJlY29yZHNEYXRhLCByZXN1bHQpOwogfQpAQCAtMjE4OSw3ICsyMTg5
LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRBbGxJbmRleFJlY29yZHMo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJgogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9
CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSUQsIHVpbnQ2NF90IGluZGV4SUQsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBl
IHR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UsIElEQkdldFJlc3VsdCYgZ2V0UmVz
dWx0LCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHVpbnQ2NF90IGluZGV4SUQsIEluZGV4
ZWREQjo6SW5kZXhSZWNvcmRUeXBlIHR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2Us
IElEQkdldFJlc3VsdCYgZ2V0UmVzdWx0KQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmdldEluZGV4UmVjb3JkIC0gJXMiLCByYW5nZS5sb2dnaW5nU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTIyOTEsNyArMjI5MSw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0SW5kZXhSZWNvcmRGb3JPbmVLZXkoaW50NjRf
dCBpbmRleElECiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpnZXRDb3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50
NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UsIHVpbnQ2
NF90JiBvdXRDb3VudCwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlu
ZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgdWludDY0X3QmIG91
dENvdW50KQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6Omdl
dENvdW50IC0gb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsK
ICAgICBBU1NFUlQobV9zcWxpdGVEQik7CkBAIC0yNDA4LDcgKzI0MDgsNyBAQCBJREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKGludDY0
X3Qgb2JqZWN0U3RvcgogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IHVpbnQ2NF90JiBnZW5lcmF0ZWRLZXksIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwg
dWludDY0X3QmIGdlbmVyYXRlZEtleSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlciIpOwogCkBAIC0yNDM2LDcgKzI0MzYsNyBA
QCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlHZW5l
cmF0b3JWYWx1ZShvYmplY3RTdG9yZUlELCBnZW5lcmF0ZWRLZXkpOwogfQogCi1JREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJRCwgdWludDY0X3QgbmV3S2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlELCB1aW50NjRfdCBuZXdLZXlOdW1iZXIpCiB7CiAgICAgTE9HKEluZGV4ZWRE
QiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyIC0gb2Jq
ZWN0IHN0b3JlICUiIFBSSXU2NCAiLCByZXZlcnRlZCBudW1iZXIgJSIgUFJJdTY0LCBvYmplY3RT
dG9yZUlELCBuZXdLZXlOdW1iZXIpOwogCkBAIC0yNDU2LDcgKzI0NTYsNyBAQCBJREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aQogICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZShv
YmplY3RTdG9yZUlELCBuZXdLZXlOdW1iZXIgLSAxKTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJRCwgZG91YmxlIG5ld0tleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpCitJREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlELCBkb3VibGUgbmV3S2V5TnVtYmVyKQogewogICAgIExPRyhJbmRleGVkREIs
ICJTUUxpdGVJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyIik7
CiAKQEAgLTI0ODMsNyArMjQ4Myw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJCiAgICAgcmV0
dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIHN0ZDo6bWlu
KG5ld0tleU51bWJlciwgKGRvdWJsZSltYXhHZW5lcmF0b3JWYWx1ZSkpOwogfQogCi1JREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8s
IElEQkdldFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMb2NrSG9sZGVyJikKK0lEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCQ3Vyc29ySW5mbyYgaW5mbywgSURCR2V0
UmVzdWx0JiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VSVCht
X3NxbGl0ZURCLT5pc09wZW4oKSk7CkBAIC0yNTA2LDcgKzI1MDYsNyBAQCBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdAogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBj
dXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYgZGF0YSwgSURCR2V0
UmVzdWx0JiByZXN1bHQsIGNvbnN0IExvY2tIb2xkZXImKQorSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklk
ZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhLCBJREJHZXRSZXN1bHQm
IHJlc3VsdCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpp
dGVyYXRlQ3Vyc29yIik7CiAKQEAgLTI1NDksNyArMjU0OSw3IEBAIElEQkVycm9yIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotYm9vbCBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OnByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklk
ZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKQorYm9vbCBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OnByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIp
CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cHJlZmV0Y2hD
dXJzb3IiKTsKIApAQCAtMjU2NSwxOCArMjU2NSwxMyBAQCBib29sIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6cHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dAogICAgIHJldHVybiBjdXJzb3ItPnByZWZldGNoKCk7CiB9CiAKLUlEQk9iamVjdFN0b3JlSW5m
byogU1FMaXRlSURCQmFja2luZ1N0b3JlOjppbmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikKLXsKLSAgICByZXR1cm4gaW5m
b0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7Ci19Ci0KIElEQk9iamVjdFN0
b3JlSW5mbyogU1FMaXRlSURCQmFja2luZ1N0b3JlOjppbmZvRm9yT2JqZWN0U3RvcmUodWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7
CiAgICAgcmV0dXJuIG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShv
YmplY3RTdG9yZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlQmFja2luZ1N0b3JlKGNvbnN0IExvY2tIb2xkZXImKQordm9pZCBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdTdG9yZSgpCiB7CiAgICAgU3RyaW5nIGRiRmlsZW5hbWUg
PSBmdWxsRGF0YWJhc2VQYXRoKCk7CiAKQEAgLTI2NDYsNyArMjY0MSw3IEBAIFNRTGl0ZVN0YXRl
bWVudCogU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjYWNoZWRTdGF0ZW1lbnQoU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpTCiAgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGVtZW50c1tzdGF0aWNfY2FzdDxz
aXplX3Q+KHNxbCldLmdldCgpOwogfQogCi12b2lkIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y2xv
c2UoY29uc3QgTG9ja0hvbGRlciYpCit2b2lkIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y2xvc2Uo
KQogewogICAgIGNsb3NlU1FMaXRlREIoKTsKIH0KQEAgLTI2NjIsNyArMjY1Nyw3IEBAIHZvaWQg
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpjbG9zZVNRTGl0ZURCKCkKICAgICBtX3NxbGl0ZURCID0g
bnVsbHB0cjsKIH0KIAotYm9vbCBTUUxpdGVJREJCYWNraW5nU3RvcmU6Omhhc1RyYW5zYWN0aW9u
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBMb2NrSG9sZGVyJikgY29uc3QKK2Jvb2wgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpoYXNUcmFu
c2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cikgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIHJldHVybiBtX3Ry
YW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5oCmluZGV4IDJhNGExMjIyODUxNDI1YWVjMmQ3NzFjMWZhMTY5NTYxMzY0
NDMxNGYuLjZiZWNhNjFhYmQ2ZjdlYmU3YWI4MmFmYzhjMmUzNGEzZjExYmY4OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTU0LDQ0ICs1NCw0MyBAQCBwdWJsaWM6CiAgICAg
CiAgICAgflNRTGl0ZUlEQkJhY2tpbmdTdG9yZSgpIGZpbmFsOwogCi0gICAgSURCRXJyb3IgZ2V0
T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiwgY29uc3QgTG9ja0hvbGRl
ciYpIGZpbmFsOwotCi0gICAgSURCRXJyb3IgYmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFu
c2FjdGlvbkluZm8mLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgYWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGNvbW1pdFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY3JlYXRlT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAg
ICBJREJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgcmVuYW1lT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBjb25zdCBM
b2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJy
b3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsK
LSAgICBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50
NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJF
cnJvciByZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRl
eElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgY29uc3QgTG9ja0hvbGRlciYpIGZp
bmFsOwotICAgIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0cywgY29uc3QgTG9j
a0hvbGRlciYpIGZpbmFsOwotICAgIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIGNvbnN0IExvY2tIb2xkZXImKSBm
aW5hbDsKLSAgICBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0
IElEQktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsK
LSAgICBJREJFcnJvciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVjb3JkRGF0YVR5cGUsIElEQkdldFJlc3VsdCYgb3V0
VmFsdWUsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRBbGxSZWNv
cmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYsIElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUsIGNv
bnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRJbmRleFJlY29yZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIEluZGV4ZWRE
Qjo6SW5kZXhSZWNvcmRUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBJREJHZXRSZXN1bHQm
IG91dFZhbHVlLCBjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgSURCRXJyb3IgZ2V0Q291
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYgb3V0Q291bnQsIGNvbnN0IExvY2tIb2xk
ZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyLCBjb25zdCBMb2NrSG9sZGVyJikgZmlu
YWw7Ci0gICAgSURCRXJyb3IgcmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGtleU51bWJlciwgY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIsIGNvbnN0IExvY2tIb2xkZXImKSBm
aW5hbDsKLSAgICBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVz
dWx0JiBvdXRSZXN1bHQsIGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBJREJFcnJvciBp
dGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNv
bnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQsIGNvbnN0
IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICBib29sIHByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IExv
Y2tIb2xkZXImKSBmaW5hbDsKLQotICAgIElEQk9iamVjdFN0b3JlSW5mbyogaW5mb0Zvck9iamVj
dFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgTG9ja0hvbGRlciYp
IGZpbmFsOwotICAgIHZvaWQgZGVsZXRlQmFja2luZ1N0b3JlKGNvbnN0IExvY2tIb2xkZXImKSBm
aW5hbDsKLQotICAgIGJvb2wgc3VwcG9ydHNTaW11bHRhbmVvdXNUcmFuc2FjdGlvbnMoY29uc3Qg
TG9ja0hvbGRlciYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc0VwaGVtZXJh
bChjb25zdCBMb2NrSG9sZGVyJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIGJvb2wg
aGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgTG9ja0hv
bGRlciYpIGNvbnN0IGZpbmFsOworICAgIElEQkVycm9yIGdldE9yRXN0YWJsaXNoRGF0YWJhc2VJ
bmZvKElEQkRhdGFiYXNlSW5mbyYpIGZpbmFsOworCisgICAgSURCRXJyb3IgYmVnaW5UcmFuc2Fj
dGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSBmaW5hbDsKKyAgICBJREJFcnJvciBhYm9y
dFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgZmluYWw7CisgICAgSURC
RXJyb3IgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpIGZpbmFsOworICAg
IElEQkVycm9yIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIGZp
bmFsOworICAgIElEQkVycm9yIHJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkgZmluYWw7CisgICAgSURCRXJyb3IgY2xlYXJP
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBJREJFcnJv
ciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJikgZmluYWw7CisgICAgSURCRXJyb3IgZGVsZXRl
SW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
KSBmaW5hbDsKKyAgICBJREJFcnJvciByZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkgZmlu
YWw7CisgICAgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYga2V5RXhpc3RzKSBmaW5hbDsKKyAg
ICBJREJFcnJvciBkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJ
REJLZXlSYW5nZURhdGEmKSBmaW5hbDsKKyAgICBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVj
dFN0b3JlSW5mbyYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYpIGZpbmFsOwor
ICAgIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJ
REJLZXlSYW5nZURhdGEmLCBJREJHZXRSZWNvcmREYXRhVHlwZSwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSkgZmluYWw7CisgICAgSURCRXJyb3IgZ2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCR2V0QWxsUmVjb3Jk
c0RhdGEmLCBJREJHZXRBbGxSZXN1bHQmIG91dFZhbHVlKSBmaW5hbDsKKyAgICBJREJFcnJvciBn
ZXRJbmRleFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElk
ZW50aWZpZXIsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSBmaW5hbDsKKyAgICBJREJFcnJvciBnZXRDb3Vu
dChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRDb3VudCkgZmluYWw7CisgICAgSURC
RXJyb3IgZ2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QmIGtleU51bWJlcikgZmluYWw7CisgICAgSURCRXJyb3IgcmV2ZXJ0R2VuZXJhdGVkS2V5TnVt
YmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGtleU51bWJlcikgZmluYWw7
CisgICAgSURCRXJyb3IgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlcikgZmluYWw7CisgICAgSURCRXJyb3Ig
b3BlbkN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCQ3Vyc29ySW5mbyYsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSBmaW5h
bDsKKyAgICBJREJFcnJvciBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1
cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiwgSURCR2V0UmVzdWx0
JiBvdXRSZXN1bHQpIGZpbmFsOworICAgIGJvb2wgcHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikgZmluYWw7CisK
KyAgICBJREJPYmplY3RTdG9yZUluZm8qIGluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGVsZXRlQmFja2luZ1N0b3JlKCkg
ZmluYWw7CisKKyAgICBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zKCkgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzRXBoZW1lcmFsKCkgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KKworICAgIGJvb2wgaGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVucmVnaXN0ZXJDdXJzb3IoU1FM
aXRlSURCQ3Vyc29yJik7CiAKICAgICBJREJFcnJvciBnZXRCbG9iUmVjb3Jkc0Zvck9iamVjdFN0
b3JlUmVjb3JkKGludDY0X3Qgb2JqZWN0U3RvcmVSZWNvcmQsIFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcywgVmVjdG9yPFN0cmluZz4mIGJsb2JGaWxlUGF0aHMpOwotICAgIElEQk9iamVjdFN0b3Jl
SW5mbyogaW5mb0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7
CiAKICAgICBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlTmFtZUZyb21FbmNvZGVkRmlsZW5hbWUoY29u
c3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHVpbnQ2NF90IGRhdGFiYXNlc1NpemVGb3JEaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnkpOwpAQCAtMTMzLDcgKzEzMiw3IEBAIHByaXZhdGU6
CiAgICAgSURCRXJyb3IgZ2V0QWxsSW5kZXhSZWNvcmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYs
IElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUpOwogCiAgICAgdm9pZCBjbG9zZVNRTGl0ZURCKCk7
Ci0gICAgdm9pZCBjbG9zZShjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7CisgICAgdm9pZCBjbG9z
ZSgpIGZpbmFsOwogCiAgICAgZW51bSBjbGFzcyBTUUwgOiBzaXplX3QgewogICAgICAgICBDcmVh
dGVPYmplY3RTdG9yZUluZm8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBhNjAwMDZk
N2M1ZmZkMmFiNDM5NmRkMWJjNzhkMzliMDJkOGExZjI2Li43MjY2MzJiYTA1NGRiMzc1MDg5MWMx
ZjBhMWQ2ZmNkZjA4ZWYwODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMxMSw3
ICszMTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUoY29u
c3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaQogICAgIHsKICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKICAgICAgICAgaWYgKG1fYmFja2luZ1N0
b3JlKSB7Ci0gICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKGxv
Y2tlcik7CisgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7
CiAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBtX2Jh
Y2tpbmdTdG9yZVN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zID0gZmFsc2U7CiAgICAg
ICAgICAgICBtX2JhY2tpbmdTdG9yZUlzRXBoZW1lcmFsID0gZmFsc2U7CkBAIC0zMTksMTIgKzMx
OSwxMiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUoY29uc3Qg
SURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaQogICAgICAgICAgICAgYXV0byBiYWNraW5n
U3RvcmUgPSBtX3NlcnZlci0+Y3JlYXRlQmFja2luZ1N0b3JlKGlkZW50aWZpZXIpOwogCiAgICAg
ICAgICAgICBJREJEYXRhYmFzZUluZm8gZGF0YWJhc2VJbmZvOwotICAgICAgICAgICAgYXV0byBl
cnJvciA9IGJhY2tpbmdTdG9yZS0+Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oZGF0YWJhc2VJ
bmZvLCBsb2NrZXIpOworICAgICAgICAgICAgYXV0byBlcnJvciA9IGJhY2tpbmdTdG9yZS0+Z2V0
T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oZGF0YWJhc2VJbmZvKTsKICAgICAgICAgICAgIGlmICgh
ZXJyb3IuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJFcnJvciBnZXR0aW5n
IGRhdGFiYXNlIGluZm8gZnJvbSBkYXRhYmFzZSAlcyB0aGF0IHdlIGFyZSB0cnlpbmcgdG8gZGVs
ZXRlIiwgaWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICAg
ICAgICAgIGRlbGV0ZWRWZXJzaW9uID0gZGF0YWJhc2VJbmZvLnZlcnNpb24oKTsKLSAgICAgICAg
ICAgIGJhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKGxvY2tlcik7CisgICAgICAgICAg
ICBiYWNraW5nU3RvcmUtPmRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgICAgICB9CiAgICAgfQog
CkBAIC0zMzksNyArMzM5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVVuY29u
ZGl0aW9uYWxEZWxldGVCYWNraW5nU3RvcmUoKQogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKICAgICAgICAgaWYgKG1fYmFja2luZ1N0b3JlKQot
ICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUJhY2tpbmdTdG9yZShsb2NrZXIpOwor
ICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgIH0K
IAogICAgIHNodXRkb3duRm9yQ2xvc2UoKTsKQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bkZvckNsb3NlKCkKIAogICAgIGlmIChtX2JhY2tpbmdTdG9y
ZSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAg
ICAgICBtX2JhY2tpbmdTdG9yZS0+Y2xvc2UobG9ja2VyKTsKKyAgICAgICAgbV9iYWNraW5nU3Rv
cmUtPmNsb3NlKCk7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgbV9iYWNraW5nU3RvcmVTdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucyA9IGZhbHNl
OwpAQCAtNjEwLDcgKzYxMCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1TdGFy
dFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvCiAgICAgSURCRXJy
b3IgZXJyb3I7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9y
ZUxvY2spOwotICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9u
KGluZm8sIGxvY2tlcik7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmJlZ2luVHJh
bnNhY3Rpb24oaW5mbyk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtU3Rh
cnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24sIGVycm9yKSk7CkBAIC03ODIsOSArNzgyLDkgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFz
ZUlkZW50aWZpZXImIGlkZW50aWZpZXIKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fYmFja2luZ1N0b3JlTG9jayk7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlID0gbV9zZXJ2ZXIt
PmNyZWF0ZUJhY2tpbmdTdG9yZShpZGVudGlmaWVyKTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmVT
dXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucyA9IG1fYmFja2luZ1N0b3JlLT5zdXBwb3J0
c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucyhsb2NrZXIpOwotICAgICAgICBtX2JhY2tpbmdTdG9y
ZUlzRXBoZW1lcmFsID0gbV9iYWNraW5nU3RvcmUtPmlzRXBoZW1lcmFsKGxvY2tlcik7Ci0gICAg
ICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKGRh
dGFiYXNlSW5mbywgbG9ja2VyKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmVTdXBwb3J0c1NpbXVs
dGFuZW91c1RyYW5zYWN0aW9ucyA9IG1fYmFja2luZ1N0b3JlLT5zdXBwb3J0c1NpbXVsdGFuZW91
c1RyYW5zYWN0aW9ucygpOworICAgICAgICBtX2JhY2tpbmdTdG9yZUlzRXBoZW1lcmFsID0gbV9i
YWNraW5nU3RvcmUtPmlzRXBoZW1lcmFsKCk7CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3Rv
cmUtPmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKGRhdGFiYXNlSW5mbyk7CiAgICAgfQogCiAg
ICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlLCBkYXRhYmFzZUluZm8sIGVycm9y
KSk7CkBAIC04MzUsNyArODM1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNy
ZWF0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY28KICAgICBJREJF
cnJvciBlcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0
b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZU9iamVjdFN0
b3JlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW5mbywgbG9ja2VyKTsKKyAgICAgICAgZXJyb3Ig
PSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBpbmZvKTsKICAgICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NU
aHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1DcmVhdGVPYmpl
Y3RTdG9yZSwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgaW5mbykpOwpAQCAtODc5LDcgKzg3
OSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAg
ewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAg
ICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbG9ja2VyKTsKKyAgICAgICAgZXJyb3Ig
PSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIHBvc3REYXRhYmFzZVRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlk
UGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIpKTsKQEAgLTkyOCw3ICs5MjgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpwZXJmb3JtUmVuYW1lT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjbwogICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CiAgICAgewogICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAgICBtX2JhY2tpbmdTdG9y
ZS0+cmVuYW1lT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIG5ld05hbWUsIGxvY2tlcik7CisgICAgICAgIG1fYmFja2luZ1N0b3JlLT5yZW5h
bWVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgbmV3TmFtZSk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNy
b3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUmVuYW1l
T2JqZWN0U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgbmV3TmFtZSkpOwpAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1DbGVhck9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Y29uCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5j
bGVhck9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAg
ICB9CiAKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1DbGVhck9iamVjdFN0b3JlLCBjYWxs
YmFja0lkZW50aWZpZXIsIGVycm9yKSk7CkBAIC0xMDEyLDcgKzEwMTIsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3JlYXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJRAogICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNy
b3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ3JlYXRl
SW5kZXgsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIGluZm8pKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVJ
bmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIGluZm8sIGxvY2tlcik7CisgICAgICAgIGVycm9y
ID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW5m
byk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ3JlYXRlSW5kZXgsIGNh
bGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIGluZm8pKTsKQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVJbmRleCh1aW50NjRfdCBjYWxsYmFj
a0lkZW50aWZpZXIsIGNvbnN0IElECiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgewogICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwotICAgICAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5kZWxldGVJbmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBsb2NrZXIpOworICAgICAgICBlcnJv
ciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVJbmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBwb3N0
RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OmRpZFBlcmZvcm1EZWxldGVJbmRleCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJv
ciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIpKTsKQEAgLTExMjgsNyAr
MTEyOCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1SZW5hbWVJbmRleCh1aW50
NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElECiAgICAgSURCRXJyb3IgYmFja2luZ1N0
b3JlRXJyb3I7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9y
ZUxvY2spOwotICAgICAgICBiYWNraW5nU3RvcmVFcnJvciA9IG1fYmFja2luZ1N0b3JlLT5yZW5h
bWVJbmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5k
ZXhJZGVudGlmaWVyLCBuZXdOYW1lLCBsb2NrZXIpOworICAgICAgICBiYWNraW5nU3RvcmVFcnJv
ciA9IG1fYmFja2luZ1N0b3JlLT5yZW5hbWVJbmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKTsKICAgICB9CiAK
ICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAm
VW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1SZW5hbWVJbmRleCwgY2FsbGJhY2tJZGVudGlm
aWVyLCBiYWNraW5nU3RvcmVFcnJvciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50
aWZpZXIsIG5ld05hbWUpKTsKQEAgLTExOTQsNyArMTE5NCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlJlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvKiBv
YmplY3RTdG9yZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbG9ja2VyKTsKKyAgICAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZv
ID0gbV9iYWNraW5nU3RvcmUtPmluZm9Gb3JPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZp
ZXIpOwogICAgICAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykgewogICAgICAgICAgICAgZXJyb3Ig
PSBJREJFcnJvcihJbnZhbGlkU3RhdGVFcnJvciwgIk9iamVjdCBzdG9yZSBjYW5ub3QgYmUgZm91
bmQgaW4gdGhlIGJhY2tpbmcgc3RvcmUiX3MpOwogICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFz
a1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsK
QEAgLTEyMDMsMTIgKzEyMDMsMTIgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1
dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmUKIAogICAgICAg
ICBib29sIHVzZWRLZXlJc0dlbmVyYXRlZCA9IGZhbHNlOwogICAgICAgICB1aW50NjRfdCBrZXlO
dW1iZXI7Ci0gICAgICAgIGF1dG8gZ2VuZXJhdGVkS2V5UmVzZXR0ZXIgPSBXVEY6Om1ha2VTY29w
ZUV4aXQoW3RoaXMsIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCAma2V5TnVtYmVyLCAmdXNlZEtleUlzR2VuZXJhdGVkLCAmbG9ja2VyXSgpIHsKKyAgICAgICAg
YXV0byBnZW5lcmF0ZWRLZXlSZXNldHRlciA9IFdURjo6bWFrZVNjb3BlRXhpdChbdGhpcywgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsICZrZXlOdW1iZXIsICZ1
c2VkS2V5SXNHZW5lcmF0ZWRdKCkgewogICAgICAgICAgICAgaWYgKHVzZWRLZXlJc0dlbmVyYXRl
ZCkKLSAgICAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJhdGVkS2V5TnVt
YmVyKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1i
ZXIsIGxvY2tlcik7CisgICAgICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPnJldmVydEdlbmVy
YXRlZEtleU51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmll
ciwga2V5TnVtYmVyKTsKICAgICAgICAgfSk7CiAgICAgICAgIGlmIChvYmplY3RTdG9yZUluZm8t
PmF1dG9JbmNyZW1lbnQoKSAmJiAha2V5RGF0YS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPmdlbmVyYXRlS2V5TnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRp
Zmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIsIGxvY2tlcik7CisgICAgICAg
ICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2FjdGlv
bklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKICAgICAgICAg
ICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgICAgICAgICBwb3N0RGF0YWJhc2VU
YXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6
OmRpZFBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtleSkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyMjEsNyArMTIyMSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQlJlCiAKICAgICAgICAgaWYgKG92ZXJ3cml0ZU1vZGUgPT0gSW5kZXhlZERC
OjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok5vT3ZlcndyaXRlKSB7CiAgICAgICAgICAgICBi
b29sIGtleUV4aXN0czsKLSAgICAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmtleUV4
aXN0c0luT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVzZWRLZXksIGtleUV4aXN0cywgbG9ja2VyKTsKKyAgICAgICAgICAgIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmtleUV4aXN0c0luT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVzZWRLZXksIGtleUV4aXN0cyk7CiAgICAgICAg
ICAgICBpZiAoZXJyb3IuaXNOdWxsKCkgJiYga2V5RXhpc3RzKQogICAgICAgICAgICAgICAgIGVy
cm9yID0gSURCRXJyb3IoQ29uc3RyYWludEVycm9yLCAiS2V5IGFscmVhZHkgZXhpc3RzIGluIHRo
ZSBvYmplY3Qgc3RvcmUiX3MpOwogCkBAIC0xMjM1LDEzICsxMjM1LDEzIEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IGNvbnN0IElEQlJlCiAgICAgICAgIC8vIC4uLklmIGEgcmVjb3JkIGFscmVhZHkgZXhpc3RzIGlu
IHN0b3JlIC4uLgogICAgICAgICAvLyB0aGVuIHJlbW92ZSB0aGUgcmVjb3JkIGZyb20gc3RvcmUg
dXNpbmcgdGhlIHN0ZXBzIGZvciBkZWxldGluZyByZWNvcmRzIGZyb20gYW4gb2JqZWN0IHN0b3Jl
Li4uCiAgICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgZm9ybWFsbHkgZGVsZXRp
bmcgaXQgZnJvbSBmcm9tIHRoZSBvYmplY3Qgc3RvcmUgYWxzbyByZW1vdmVzIGl0IGZyb20gdGhl
IGFwcHJvcHJpYXRlIGluZGV4ZXMuCi0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRl
bGV0ZVJhbmdlKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
c2VkS2V5LCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVS
YW5nZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgdXNlZEtl
eSk7CiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIHBvc3REYXRh
YmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRh
YmFzZTo6ZGlkUGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2Vk
S2V5KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5hZGRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCAqb2JqZWN0
U3RvcmVJbmZvLCB1c2VkS2V5LCBvcmlnaW5hbFJlY29yZFZhbHVlLCBsb2NrZXIpOworICAgICAg
ICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hZGRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVy
LCAqb2JqZWN0U3RvcmVJbmZvLCB1c2VkS2V5LCBvcmlnaW5hbFJlY29yZFZhbHVlKTsKIAogICAg
ICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBwb3N0RGF0YWJhc2VUYXNr
UmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtleSkpOwpA
QCAtMTI0OSw3ICsxMjQ5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1dE9y
QWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmUKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChvdmVyd3JpdGVNb2RlICE9IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVy
d3JpdGVNb2RlOjpPdmVyd3JpdGVGb3JDdXJzb3IgJiYgb2JqZWN0U3RvcmVJbmZvLT5hdXRvSW5j
cmVtZW50KCkgJiYga2V5RGF0YS50eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIp
Ci0gICAgICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5tYXliZVVwZGF0ZUtleUdlbmVy
YXRvck51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwg
a2V5RGF0YS5udW1iZXIoKSwgbG9ja2VyKTsKKyAgICAgICAgICAgIGVycm9yID0gbV9iYWNraW5n
U3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlEYXRhLm51bWJlcigpKTsKIAogICAgICAgICBn
ZW5lcmF0ZWRLZXlSZXNldHRlci5yZWxlYXNlKCk7CiAgICAgfQpAQCAtMTMwMSw3ICsxMzAxLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlIKICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7CiAg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSWRlbnRpZmllciwga2V5UmFuZ2VEYXRhLCB0eXBlLCByZXN1bHQsIGxvY2tlcik7
CisgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29yZCh0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5UmFuZ2VEYXRhLCB0eXBlLCByZXN1
bHQpOwogICAgIH0KIAogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVh
ZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUdldFJlY29yZCwgY2Fs
bGJhY2tJZGVudGlmaWVyLCBlcnJvciwgcmVzdWx0KSk7CkBAIC0xMzE3LDcgKzEzMTcsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0SW5kZXhSZWNvcmQodWludDY0X3QgY2Fs
bGJhY2tJZGVudGlmaWVyLCBjb25zdAogICAgIElEQkVycm9yIGVycm9yOwogICAgIHsKICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAgICAgZXJyb3Ig
PSBtX2JhY2tpbmdTdG9yZS0+Z2V0SW5kZXhSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgcmVjb3JkVHlwZSwgcmFuZ2Us
IHJlc3VsdCwgbG9ja2VyKTsKKyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0SW5k
ZXhSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGlu
ZGV4SWRlbnRpZmllciwgcmVjb3JkVHlwZSwgcmFuZ2UsIHJlc3VsdCk7CiAgICAgfQogCiAgICAg
cG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtR2V0UmVjb3JkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVy
cm9yLCByZXN1bHQpKTsKQEAgLTEzNDEsNyArMTM0MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1HZXRBbGxSZWNvcmRzKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QKICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdl
dEFsbFJlY29yZHModHJhbnNhY3Rpb25JZGVudGlmaWVyLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVz
dWx0LCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNv
cmRzKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgZ2V0QWxsUmVjb3Jkc0RhdGEsIHJlc3VsdCk7CiAg
ICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygq
dGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtR2V0QWxsUmVjb3JkcywgY2FsbGJh
Y2tJZGVudGlmaWVyLCBlcnJvciwgV1RGTW92ZShyZXN1bHQpKSk7CkBAIC0xMzc4LDcgKzEzNzgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0Q291bnQodWludDY0X3QgY2Fs
bGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIElEQkVycm9yIGVycm9yOwogICAgIHsK
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAgICAg
ZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwga2V5UmFuZ2VEYXRhLCBjb3Vu
dCwgbG9ja2VyKTsKKyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQodHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmll
ciwga2V5UmFuZ2VEYXRhLCBjb3VudCk7CiAgICAgfQogCiAgICAgcG9zdERhdGFiYXNlVGFza1Jl
cGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQ
ZXJmb3JtR2V0Q291bnQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIGNvdW50KSk7CkBAIC0x
NDExLDcgKzE0MTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlUmVj
b3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSQogICAgIElEQkVycm9yIGVy
cm9yOwogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2Nr
KTsKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlUmFuZ2UodHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHJhbmdlLCBsb2NrZXIpOworICAg
ICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZSh0cmFuc2FjdGlvbklkZW50
aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgcmFuZ2UpOwogICAgIH0KIAogICAgIHBvc3RE
YXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZVJlY29yZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJv
cikpOwpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bU9wZW5DdXJzb3IodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREIKICAgICBJ
REJFcnJvciBlcnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2lu
Z1N0b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3Io
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbmZvLCByZXN1bHQsIGxvY2tlcik7CisgICAgICAgIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBp
bmZvLCByZXN1bHQpOwogICAgIH0KIAogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVD
cm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybU9wZW5D
dXJzb3IsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHJlc3VsdCkpOwpAQCAtMTQ3OSw3ICsx
NDc5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUl0ZXJhdGVDdXJzb3IodWlu
dDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdAogICAgIElEQkVycm9yIGVycm9yOwogICAg
IHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9iYWNraW5nU3RvcmVMb2NrKTsKLSAgICAg
ICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+aXRlcmF0ZUN1cnNvcih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGN1cnNvcklkZW50aWZpZXIsIGRhdGEsIHJlc3VsdCwgbG9ja2VyKTsKKyAgICAgICAg
ZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+aXRlcmF0ZUN1cnNvcih0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGN1cnNvcklkZW50aWZpZXIsIGRhdGEsIHJlc3VsdCk7CiAgICAgfQogCiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKSB7CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpwZXJmb3JtUHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFucwogCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxv
Y2spOwotICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLT5wcmVmZXRjaEN1cnNvcih0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGN1cnNvcklkZW50aWZpZXIsIGxvY2tlcikpIHsKKyAgICAgICAgaWYg
KCFtX2JhY2tpbmdTdG9yZS0+cHJlZmV0Y2hDdXJzb3IodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
dXJzb3JJZGVudGlmaWVyKSkgewogICAgICAgICAgICAgbV9jdXJzb3JQcmVmZXRjaGVzLnJlbW92
ZShjdXJzb3JJZGVudGlmaWVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MTU2Nyw3ICsxNTY3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRy
YW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY28KICAgICBJREJFcnJvciBl
cnJvcjsKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9j
ayk7Ci0gICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmNvbW1pdFRyYW5zYWN0aW9uKHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgbG9ja2VyKTsKKyAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdT
dG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICB9CiAg
ICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24sIGNhbGxiYWNrSWRl
bnRpZmllciwgZXJyb3IsIHRyYW5zYWN0aW9uSWRlbnRpZmllcikpOwogfQpAQCAtMTY1MCw3ICsx
NjUwLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24o
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb24KICAgICBJREJFcnJvciBlcnJvcjsKICAg
ICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAg
ICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBsb2NrZXIpOworICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9y
dFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgfQogICAgIHBvc3REYXRh
YmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRh
YmFzZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24sIGNhbGxiYWNrSWRlbnRpZmllciwgZXJy
b3IsIHRyYW5zYWN0aW9uSWRlbnRpZmllcikpOwogfQpAQCAtMTg2NCw3ICsxODY0LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdT
dG9yZSh1aW50NjRfdCBjYWxsYmEKICAgICBJREJFcnJvciBlcnJvcjsKICAgICB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fYmFja2luZ1N0b3JlTG9jayk7Ci0gICAgICAgIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmJlZ2luVHJhbnNhY3Rpb24oaW5mbywgbG9ja2VyKTsKKyAgICAgICAg
ZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+YmVnaW5UcmFuc2FjdGlvbihpbmZvKTsKICAgICB9CiAK
ICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAm
VW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5n
U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpKTsKQEAgLTIxOTksMTUgKzIxOTksMTUg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Zm9yZ2V0RXJyb3JDYWxsYmFjayh1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIpCiAgICAgbV9lcnJvckNhbGxiYWNrcy5yZW1vdmUoY2FsbGJhY2tJ
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlv
bk9uTWFpblRocmVhZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwg
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRU
cmFuc2FjdGlvbk9uTWFpblRocmVhZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdGlvbikKIHsKLSAgICB0cmFuc2FjdGlvbi5zZXRSZXN1bHQobV9iYWNraW5nU3RvcmUtPmFi
b3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgbG9ja2VyKSk7
CisgICAgdHJhbnNhY3Rpb24uc2V0UmVzdWx0KG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKICAgICB0cmFuc2FjdGlvbi5z
ZXRTdGF0ZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpTdGF0ZTo6QWJvcnRlZCk7CiB9
CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uT25NYWluVGhyZWFk
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBMb2NrSG9s
ZGVyJiBsb2NrZXIpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbk9u
TWFpblRocmVhZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsK
LSAgICB0cmFuc2FjdGlvbi5zZXRSZXN1bHQobV9iYWNraW5nU3RvcmUtPmNvbW1pdFRyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGxvY2tlcikpOworICAgIHRyYW5z
YWN0aW9uLnNldFJlc3VsdChtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJhbnNh
Y3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwogICAgIHRyYW5zYWN0aW9uLnNldFN0YXRlKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OlN0YXRlOjpDb21taXR0ZWQpOwogfQogCkBAIC0y
MjIzLDIwICsyMjIzLDIwIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnN1c3BlbmQoKQogICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2JhY2tpbmdTdG9yZUxvY2spOwogICAgICAgICBmb3Ig
KGF1dG8mIGlkZW50aWZpZXIgOiBjb3B5VG9WZWN0b3IobV9pblByb2dyZXNzVHJhbnNhY3Rpb25z
LmtleXMoKSkpIHsKICAgICAgICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NU
cmFuc2FjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOwotICAgICAgICAgICAgYWJvcnRUcmFuc2FjdGlv
bk9uTWFpblRocmVhZCgqdHJhbnNhY3Rpb24sIGxvY2tlcik7CisgICAgICAgICAgICBhYm9ydFRy
YW5zYWN0aW9uT25NYWluVGhyZWFkKCp0cmFuc2FjdGlvbik7CiAgICAgICAgIH0KIAogICAgICAg
ICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBjb3B5VG9WZWN0b3IobV9maW5pc2hpbmdUcmFuc2Fj
dGlvbnMua2V5cygpKSkgewotICAgICAgICAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZS0+aGFzVHJh
bnNhY3Rpb24oaWRlbnRpZmllciwgbG9ja2VyKSkKKyAgICAgICAgICAgIGlmICghbV9iYWNraW5n
U3RvcmUtPmhhc1RyYW5zYWN0aW9uKGlkZW50aWZpZXIpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9maW5pc2hpbmdUcmFuc2Fj
dGlvbnMuZ2V0KGlkZW50aWZpZXIpOwogICAgICAgICAgICAgc3dpdGNoICh0cmFuc2FjdGlvbi0+
c3RhdGUoKSkgewogICAgICAgICAgICAgY2FzZSBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
OjpTdGF0ZTo6QWJvcnRpbmc6Ci0gICAgICAgICAgICAgICAgYWJvcnRUcmFuc2FjdGlvbk9uTWFp
blRocmVhZCgqdHJhbnNhY3Rpb24sIGxvY2tlcik7CisgICAgICAgICAgICAgICAgYWJvcnRUcmFu
c2FjdGlvbk9uTWFpblRocmVhZCgqdHJhbnNhY3Rpb24pOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpTdGF0ZTo6
Q29tbWl0dGluZzoKLSAgICAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbk9uTWFpblRocmVh
ZCgqdHJhbnNhY3Rpb24sIGxvY2tlcik7CisgICAgICAgICAgICAgICAgY29tbWl0VHJhbnNhY3Rp
b25Pbk1haW5UaHJlYWQoKnRyYW5zYWN0aW9uKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6U3RhdGU6OlJ1bm5p
bmc6CiAgICAgICAgICAgICBjYXNlIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OlN0YXRl
OjpBYm9ydGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBlYmZjMWM1MGY3YTg4MDg5ZWU2
YmYyNGNiNjk1NzQ0OTk4ODA5MzgwLi5jNWQ3Y2E5MDEzYTIwZDI2MjA4NTUyMTdkMGNkNGQ0NDhl
MjYxODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMjE1LDggKzIxNSw4IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IHRha2VOZXh0UnVu
bmFibGVUcmFuc2FjdGlvbihib29sJiBoYWREZWZlcnJlZFRyYW5zYWN0aW9ucyk7CiAKICAgICBi
b29sIHByZXBhcmVUb0ZpbmlzaFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mLCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpTdGF0ZSk7Ci0gICAgdm9pZCBhYm9y
dFRyYW5zYWN0aW9uT25NYWluVGhyZWFkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBj
b25zdCBMb2NrSG9sZGVyJik7Ci0gICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbk9uTWFpblRocmVh
ZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgY29uc3QgTG9ja0hvbGRlciYpOworICAg
IHZvaWQgYWJvcnRUcmFuc2FjdGlvbk9uTWFpblRocmVhZChVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJik7CisgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbk9uTWFpblRocmVhZChVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAKICAgICB2b2lkIGNsZWFyU3RhbGVQZW5kaW5nT3Bl
bkRCUmVxdWVzdHMoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>