<?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>199817</bug_id>
          
          <creation_ts>2019-07-15 17:31:30 -0700</creation_ts>
          <short_desc>Move NetworkCache ownership from NetworkProcess to NetworkSession</short_desc>
          <delta_ts>2020-02-19 13:41: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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=207959</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1553048</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-15 17:31:30 -0700</bug_when>
    <thetext>Move NetworkCache ownership from NetworkProcess to NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553050</commentid>
    <comment_count>1</comment_count>
      <attachid>374171</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-15 17:34:50 -0700</bug_when>
    <thetext>Created attachment 374171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553071</commentid>
    <comment_count>2</comment_count>
      <attachid>374179</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-15 19:02:56 -0700</bug_when>
    <thetext>Created attachment 374179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553126</commentid>
    <comment_count>3</comment_count>
      <attachid>374193</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-15 22:52:52 -0700</bug_when>
    <thetext>Created attachment 374193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553213</commentid>
    <comment_count>4</comment_count>
      <attachid>374215</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-16 10:10:19 -0700</bug_when>
    <thetext>Created attachment 374215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553956</commentid>
    <comment_count>5</comment_count>
      <attachid>374215</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-18 11:11:10 -0700</bug_when>
    <thetext>Comment on attachment 374215
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553970</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-18 11:41:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/r247567</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553971</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-18 11:42:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/53265029&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374171</attachid>
            <date>2019-07-15 17:34:50 -0700</date>
            <delta_ts>2019-07-15 19:02:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199817-20190715173448.patch</filename>
            <type>text/plain</type>
            <size>40968</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNmOGRlNmNlMmZiMmI0Njgy
YWE0NGI1YjM0YWNkZWZhZGU3Mjc4ODMuLjcyODUwODQ5ZGVmMmJhNDcyMTdlYmE0NDI1ZTllZTgy
N2ZkYTIwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdv
cmtDYWNoZSBvd25lcnNoaXAgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhbHNvIGFk
ZGVkIFNQSSB0byBzZXQgdGhlIHBhdGggb2YgdGhlIE5ldHdvcmtDYWNoZSB3aXRoIGFuIEFQSSB0
ZXN0LgorICAgICAgICBJZiB0aGlzIG5ldyBTUEkgaXMgbm90IHVzZWQsIGl0IGZhbGxzIGJhY2sg
dG8gZ2V0dGluZyB0aGUgY2FjaGUgbG9jYXRpb24gZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8g
bWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgV2Ugc3RpbGwgZ2V0IG9wdGlvbnMsIGNh
Y2hlIHNpemUsIGFuZCBjYWNoZSBtb2RlbCBmcm9tIHRoZSBOZXR3b3JrUHJvY2Vzcy4gIFRob3Nl
IHNob3VsZCBiZSBtaWdyYXRlZCB3aXRoIG5ldyBTUEkgbGF0ZXIuCisgICAgICAgIENsZWFyaW5n
IHRoZSBjYWNoZSBhbmQgb3RoZXIgb3BlcmF0aW9ucyBub3cgaXRlcmF0ZSB0aGUgTmV0d29ya1Nl
c3Npb25zIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlcmUgaXMgb25seSBvbmUgY2FjaGUuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9t
YWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFp
bnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
Q2FjaGVNb2RlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpc2tDYWNoZURpcmVjdG9yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZU9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNh
Y2hlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNo
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2Fj
aGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lv
bkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lv
blNvdXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gbmV0d29ya0NhY2hlRGlyZWN0b3J5XSk6CisgICAgICAgICgtW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldE5ldHdvcmtDYWNoZURpcmVjdG9yeTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZE5ldHdvcmtD
YWNoZURpcmVjdG9yeSBjb25zdCk6CisKIDIwMTktMDctMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKG1hY09TIENhdGFsaW5hKTogQ2Fubm90
IHF1aWNrIGxvb2sgaHRtbCBkb2N1bWVudHMgaW4gTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlZjllMGM5Y2QzMjZlMWVjMzQy
NmE2M2MwZGRjZDVjY2FhNWJjYzllLi4yNGJkNzE2OTlhYWZmNGQyYjI4MzUzMzA0OTAwZjY0OWUz
ZTBiODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMTM1NywxMSArMTM1NywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAog
ICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKLQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewotICAgICAgICBmZXRjaERpc2tD
YWNoZUVudHJpZXMoY2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvcildKGF1dG8gZW50cmllcykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fd2Vic2l0ZURhdGEuZW50
cmllcy5hcHBlbmRWZWN0b3IoZW50cmllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBmb3IgKGF1
dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0b3Ip
XShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNTE2LDggKzE1MTcsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAjZW5kaWYKIAotICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSAmJiAhc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhjYWNoZSgp
LCBvcmlnaW5EYXRhcywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFu
ZGxlcildIHsgfSk7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAgICAg
ICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkKKyAgICAg
ICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBvcmlnaW5EYXRh
cywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxlcildIHsgfSk7
CisgICAgfQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpDcmVkZW50aWFscykpIHsKICAgICAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC0xNzQ4LDE5ICsxNzUxLDIxIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgotICAgIAorCiAgICAgaWYg
KHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7
Ci0gICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhjYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNo
T3B0aW9ucywgW3RoaXMsIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNr
QWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldKGF1dG8gZW50cmllcykg
bXV0YWJsZSB7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5ldHdvcmtTZXNzaW9ucygp
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+
Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtkb21haW5zVG9EZWxldGVBbGxCdXRD
b29raWVzRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJl
ZigpLCBzZXNzaW9uID0gc2Vzc2lvbi5jb3B5UmVmKCldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7
CiAKLSAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0
ZTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLmNvbnRhaW5zKFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkp
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBlbnRyaWVz
VG9EZWxldGUuYXBwZW5kKGVudHJ5Lm9yaWdpbik7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tB
Z2dyZWdhdG9yLT5tX2RvbWFpbnMuYWRkKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKGNhY2hlKCksIGVudHJpZXNUb0RlbGV0ZSwgW2NhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJp
ZXNUb0RlbGV0ZTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNG
b3IuY29udGFpbnMoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVu
dHJ5Lm9yaWdpbi5ob3N0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgZW50cmllc1RvRGVsZXRlLmFwcGVuZChlbnRyeS5vcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fZG9tYWlucy5hZGQoUmVn
aXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVudHJ5Lm9yaWdpbi5ob3N0
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNsZWFyRGlza0NhY2hlRW50
cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBlbnRyaWVzVG9EZWxldGUsIFtjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIGRhdGFUeXBlc0ZvclVJUHJvY2VzcyA9IFdl
YnNpdGVEYXRhOjpmaWx0ZXIod2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6VUkpOwpAQCAtMTg4Miw5ICsxODg3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlZ2lz
dHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAj
ZW5kaWYKICAgICAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkpIHsKLSAgICAgICAgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKGNhY2hl
KCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJh
Y2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3Rv
cihlbnRyaWVzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5l
dHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXShhdXRvIGVudHJpZXMp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRl
RGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CiAgICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCkBAIC0xOTc2LDkgKzE5ODMsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVN
b2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGRpc2tGcmVlU2l6ZSAvPSBLQiAq
IDEwMDA7CiAgICAgICAgIGNhbGN1bGF0ZVVSTENhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgZGlza0Zy
ZWVTaXplLCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAg
ICAgfQotCi0gICAgaWYgKG1fY2FjaGUpCi0gICAgICAgIG1fY2FjaGUtPnNldENhcGFjaXR5KHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3
b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNz
aW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldENhcGFjaXR5KHVybENhY2hlRGlz
a0NhcGFjaXR5KTsKKyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGI4NmYyNDlkNDJhMDQ5ZWZm
MzI1NGRjNzlmMWM3ZDJkOTAwNWJmZC4uNjlmM2Q0ZjY3OTJjMGI5Y2M3YTEwMjg2YTgyYWM1M2Q4
YjEyOTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTExLDEyICsxMTEsMTIgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOwogY2xhc3MgV2ViU1dPcmlnaW5TdG9yZTsKICNlbmRpZgogCi1uYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKLWNsYXNzIEVuZ2luZTsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworZW51bSBj
bGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3Q7CiB9CiAKLW5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUg
ewotY2xhc3MgQ2FjaGU7CituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKK2NsYXNzIEVuZ2luZTsK
IH0KIAogY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHJp
dmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE5ldHdvcmtQcm9jZXNzPgpAQCAtMTYxLDggKzE2MSw2IEBAIHB1YmxpYzoKICAgICBBdXRoZW50
aWNhdGlvbk1hbmFnZXImIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAKLSAgICBOZXR3b3JrQ2FjaGU6OkNhY2hlKiBjYWNo
ZSgpIHsgcmV0dXJuIG1fY2FjaGUuZ2V0KCk7IH0KLQogICAgIHZvaWQgc2V0U2Vzc2lvbihjb25z
dCBQQUw6OlNlc3Npb25JRCYsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29ya1Nl
c3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7
CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYpIGNvbnN0OwpAQCAtMzQzLDYgKzM0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgY29uc3Qg
U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rpc2tDYWNoZURp
cmVjdG9yeTsgfQorICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
PiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KKyAgICAK
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CkBAIC00ODksOCArNDkwLDYgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxDYWNoZVN0b3JhZ2U6OkVuZ2luZT4+IG1fY2Fj
aGVFbmdpbmVzOwogCi0gICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6Q2FjaGU+IG1fY2FjaGU7Ci0K
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50TWFwOwogICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1l
bnRzOwogCkBAIC01NjYsNiArNTY1LDggQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2Rvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEgfTsKIAogICAgIEhhc2hNYXA8SVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsK
KworICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhNTFkNTM5
OGViYTQ2MTNhNTE5MmRmNWY1OTVmYmQwNGJlOGYzOWEuLjVjYTQ2ZGY1YmQwZDZjZTE1NGQ5Y2Zk
NWNiZjk0MzU5MGZkMjM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk4LDEwICs5OCwxMyBAQCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIHBhcgogICAgICwgbV9maWxlUmVmZXJlbmNlcyhjb25uZWN0aW9uLnJl
c29sdmVCbG9iUmVmZXJlbmNlcyhtX3BhcmFtZXRlcnMpKQogICAgICwgbV9pc0FsbG93ZWRUb0Fz
a1VzZXJGb3JDcmVkZW50aWFscyB7IG1fcGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzIH0K
ICAgICAsIG1fYnVmZmVyaW5nVGltZXIgeyAqdGhpcywgJk5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
YnVmZmVyaW5nVGltZXJGaXJlZCB9Ci0gICAgLCBtX2NhY2hlIHsgc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSA/IG51bGxwdHIgOiBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkuY2FjaGUoKSB9
CiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhtX2Nvbm5lY3Rp
b24tPmNhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoKSkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBjb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKQorICAgICAg
ICBtX2NhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBleGlzdGVuY2Ugb2YgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCBpbiBXZWJDb3JlLgogICAgIC8vICAgICAgICBPbmNlIGJ1ZyAxMTYyMzMgaXMgcmVzb2x2ZWQs
IHRoaXMgQVNTRVJUIGNhbiBqdXN0IGJlICJtX3dlYlBhZ2VJRCAmJiBtX3dlYkZyYW1lSUQiCiAg
ICAgQVNTRVJUKChtX3BhcmFtZXRlcnMud2ViUGFnZUlEICYmIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlEKSB8fCBtX3BhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGM3ZmFmMDQz
ZTM5ZGNlZDczNzU3YjJlNzRmYjJhOTA5ODU2ZmMyOGIuLjJhMTE2MmQ3NWVhYThkZGZkOGRkMDE3
YTBiNmE1Nzk4MGEzMGFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oIgpAQCAtNzcsMTMgKzc4LDI1IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyYmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiBoYW5kbGUpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fc2Vzc2lv
bklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3Jr
UHJvY2VzcykKLSAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcj4oc2Vzc2lvbklEKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFnZXIo
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpKQot
ewotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOworICAg
ICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyPihwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoU3RyaW5nKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkpCit7CisgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKKyAgICAgICAgaWYgKG5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc051bGwoKSkKKyAg
ICAgICAgICAgIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IG5ldHdvcmtQcm9jZXNzLmRpc2tDYWNo
ZURpcmVjdG9yeSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworCisgICAgICAgIG1fY2FjaGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpv
cGVuKG5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtQcm9jZXNz
LmNhY2hlT3B0aW9ucygpKTsKKyAgICAgICAgaWYgKCFtX2NhY2hlKQorICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdl
YktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKKyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwogICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRQaW5nTG9hZEZ1bmN0
aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAppbmRleCA0ZDQ4NzMyZTI2MTZmNWNkMjU4OWUyZDIyOTQ2MDhjN2JmZDllYWM1
Li5iM2U0MTJlYmYzMDM1ZDgxOWNlZDI3NGFmMDBkNmFjNjkyOTdlNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC01OSw3ICs1OSwxMSBA
QCBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOwogCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKLSAgICAKKworbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZSB7CitjbGFzcyBDYWNoZTsKK30KKwogY2xhc3MgTmV0d29ya1Nlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0
QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgTmV0d29ya0NhY2hlOjpD
YWNoZSogY2FjaGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9CisKICAgICBQcmVmZXRjaENh
Y2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9CiAgICAgdm9p
ZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAKQEAg
LTEwOCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRh
c2soV2ViU29ja2V0VGFzayYpIHsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICBOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CkBAIC0xMzAsNiArMTM2LDcgQEAgcHJvdGVjdGVkOgogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1faXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKyAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA5MGRlZGE0MjEwOTU5N2IzOTAxZDI2MjBjZDUyZmEwMmZlMzRmMDhkLi44OWUwZjNjOTE0ODYz
Yjg5YmZhN2NkZTZkYzdkMDdhZTZjZGYyM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODUsNiArODUsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwogCiAgICAg
ZW5jb2RlciA8PCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgbmV0d29ya0NhY2hlRGlyZWN0b3J5IDw8
IG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKIAogICAgIGVuY29kZXIgPDwg
ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBhbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOwpAQCAt
MjExLDYgKzIxMiwxNiBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghbG9jYWxT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCisgICAgT3B0aW9uYWw8U3RyaW5nPiBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CisgICAg
ZGVjb2RlciA+PiBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CisgICAgaWYgKCFuZXR3b3JrQ2FjaGVE
aXJlY3RvcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgaWYgKCFuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBPcHRpb25hbDxib29sPiBkZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKICAgICBkZWNvZGVyID4+IGRldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIGlmICghZGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQpCkBAIC0yNTMsNiArMjY0LDggQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWMKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFs
ZW50UmVzb3VyY2UpCiAgICAgICAgICwgV1RGTW92ZSgqbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQog
ICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkK
KyAgICAgICAgLCBXVEZNb3ZlKCpuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpCisgICAgICAgICwgV1RG
TW92ZSgqbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgIH19OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNjU1OTk0N2YwMGRiNTc2ZmE0MTg0
YTU2OTc1ODZhM2Q1YWQyODAyMS4uMDU4MmVhNDYxMmRjZTRiNWE0NTVlNDRkOGYyM2ZmMzg1Njcz
YmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtOTIsNiArOTIsOCBAQCBz
dHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgU3RyaW5nIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbG9jYWxT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVE
aXJlY3Rvcnk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG5ldHdvcmtDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmlu
ZGV4IDIwZTA3NThmODQ1OWE4ZGE4ZmE0NTNhMDk3YjMxZjZhZGI3ZDU3YWYuLjU0NzcxMTQ1MWE1
MzY3ZTc4M2ZjNmFhYjI2MGZiNWJlZWI5YmZhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAg
c3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHJlc291cmNlVHlwZSgpCiAgICAgcmV0dXJuIHJlc291
cmNlOwogfQogCi1SZWZQdHI8Q2FjaGU+IENhY2hlOjpvcGVuKE5ldHdvcmtQcm9jZXNzJiBuZXR3
b3JrUHJvY2VzcywgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxPcHRpb24+IG9w
dGlvbnMpCitSZWZQdHI8Q2FjaGU+IENhY2hlOjpvcGVuKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxDYWNoZU9wdGlvbj4g
b3B0aW9ucykKIHsKLSAgICBhdXRvIHN0b3JhZ2UgPSBTdG9yYWdlOjpvcGVuKGNhY2hlUGF0aCwg
b3B0aW9ucy5jb250YWlucyhPcHRpb246OlRlc3RpbmdNb2RlKSA/IFN0b3JhZ2U6Ok1vZGU6OkF2
b2lkUmFuZG9tbmVzcyA6IFN0b3JhZ2U6Ok1vZGU6Ok5vcm1hbCk7CisgICAgYXV0byBzdG9yYWdl
ID0gU3RvcmFnZTo6b3BlbihjYWNoZVBhdGgsIG9wdGlvbnMuY29udGFpbnMoQ2FjaGVPcHRpb246
OlRlc3RpbmdNb2RlKSA/IFN0b3JhZ2U6Ok1vZGU6OkF2b2lkUmFuZG9tbmVzcyA6IFN0b3JhZ2U6
Ok1vZGU6Ok5vcm1hbCk7CiAKICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNz
KSBvcGVuZWQgY2FjaGUgc3RvcmFnZSwgc3VjY2VzcyAlZCIsICEhc3RvcmFnZSk7CiAKQEAgLTc4
LDEyICs3OCwxMiBAQCBzdGF0aWMgdm9pZCBkdW1wRmlsZUNoYW5nZWQoQ2FjaGUqIGNhY2hlKQog
fQogI2VuZGlmCiAKLUNhY2hlOjpDYWNoZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IFJlZjxTdG9yYWdlPiYmIHN0b3JhZ2UsIE9wdGlvblNldDxPcHRpb24+IG9wdGlvbnMpCitDYWNo
ZTo6Q2FjaGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBSZWY8U3RvcmFnZT4mJiBz
dG9yYWdlLCBPcHRpb25TZXQ8Q2FjaGVPcHRpb24+IG9wdGlvbnMpCiAgICAgOiBtX3N0b3JhZ2Uo
V1RGTW92ZShzdG9yYWdlKSkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3Mp
CiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQot
ICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24p
KSB7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoQ2FjaGVPcHRpb246OlNwZWN1bGF0aXZlUmV2
YWxpZGF0aW9uKSkgewogICAgICAgICBtX2xvd1Bvd2VyTW9kZU5vdGlmaWVyID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcj4oW3RoaXNdKGJvb2wgaXNMb3dQ
b3dlck1vZGVFbmFibGVkKSB7CiAgICAgICAgICAgICBBU1NFUlQoV1RGOjpSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgICAgICBpZiAoaXNMb3dQb3dlck1vZGVFbmFibGVkKQpAQCAtOTgsNyAr
OTgsNyBAQCBDYWNoZTo6Q2FjaGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBSZWY8
U3RvcmFnZT4mJiBzdG9yYWdlLCBPcHRpb25TZXQ8TwogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KG9wdGlvbnMuY29udGFpbnMoT3B0aW9uOjpSZWdpc3Rlck5vdGlmeSkpIHsKKyAgICBpZiAob3B0
aW9ucy5jb250YWlucyhDYWNoZU9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkpKSB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgICAgIC8vIFRyaWdnZXJzIHdpdGggIm5vdGlmeXV0aWwgLXAgY29tLmFw
cGxlLldlYktpdC5DYWNoZS5kdW1wIi4KICAgICAgICAgaW50IHRva2VuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggOGJiYzE2
OTc4NTYwZTQ0NjMyMjFkZjczYWNiMTA4NzYyYWI3NjlhOS4uZDk0ZmM3MzgwZjE5YTVmNWY1Yjc4
ZWEzOWVmMWQ2NWE5MjExZWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC04NywxNyArODcsMTggQEAgZW51bSBjbGFzcyBV
c2VEZWNpc2lvbiB7CiAKIHVzaW5nIEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IC8qd2ViRnJhbWVJRCovPjsKIAotY2xhc3MgQ2FjaGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZT4gewotcHVibGljOgotICAgIGVudW0gY2xhc3MgT3B0
aW9uIHsKLSAgICAgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291
cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBu
byByZWFkIHRpbWVvdXRzLgotICAgICAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKLSAgICAgICAg
UmVnaXN0ZXJOb3RpZnkgPSAxIDw8IDEsCitlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhf
dCB7CisgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291cmNlcyBv
ZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBubyByZWFk
IHRpbWVvdXRzLgorICAgIFRlc3RpbmdNb2RlID0gMSA8PCAwLAorICAgIFJlZ2lzdGVyTm90aWZ5
ID0gMSA8PCAxLAogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURB
VElPTikKLSAgICAgICAgU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24gPSAxIDw8IDIsCisgICAgU3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24gPSAxIDw8IDIsCiAjZW5kaWYKLSAgICB9OwotICAgIHN0YXRp
YyBSZWZQdHI8Q2FjaGU+IG9wZW4oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGNhY2hl
UGF0aCwgT3B0aW9uU2V0PE9wdGlvbj4pOworfTsKKworY2xhc3MgQ2FjaGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxDYWNoZT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8Q2FjaGU+IG9wZW4o
TmV0d29ya1Byb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGNhY2hlUGF0aCwgT3B0aW9uU2V0PENhY2hl
T3B0aW9uPik7CiAKICAgICB2b2lkIHNldENhcGFjaXR5KHNpemVfdCk7CiAKQEAgLTE0OCw3ICsx
NDksNyBAQCBwdWJsaWM6CiAgICAgfkNhY2hlKCk7CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGUoTmV0
d29ya1Byb2Nlc3MmLCBSZWY8U3RvcmFnZT4mJiwgT3B0aW9uU2V0PE9wdGlvbj4gb3B0aW9ucyk7
CisgICAgQ2FjaGUoTmV0d29ya1Byb2Nlc3MmLCBSZWY8U3RvcmFnZT4mJiwgT3B0aW9uU2V0PENh
Y2hlT3B0aW9uPik7CiAKICAgICBLZXkgbWFrZUNhY2hlS2V5KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggNWI1MmNhYmMwZDk5N2VjNTg5
YTM3YTUwODljOTE0NWIyOGFlYWQzYS4uMjc1OWI1MzhkOTUwODQxMTI2YjBjYTFmZjJiMjAxYzQz
NTE5YjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMTE3LDE4ICsxMTcsMTQgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYShjb25z
dCBOZXR3b3JrUHJvY2Vzc0MKICAgICAgICAgcmV0dXJuOwogCiAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKLSAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uPiBj
YWNoZU9wdGlvbnMgeyBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246OlJlZ2lzdGVyTm90aWZ5
IH07CisgICAgbV9jYWNoZU9wdGlvbnMgPSB7IE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRpb246OlJl
Z2lzdGVyTm90aWZ5IH07CiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdv
cmtTZXNzaW9uKQotICAgICAgICBjYWNoZU9wdGlvbnMuYWRkKE5ldHdvcmtDYWNoZTo6Q2FjaGU6
Ok9wdGlvbjo6VGVzdGluZ01vZGUpOworICAgICAgICBtX2NhY2hlT3B0aW9ucy5hZGQoTmV0d29y
a0NhY2hlOjpDYWNoZU9wdGlvbjo6VGVzdGluZ01vZGUpOwogI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRF
bmFibGVOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbikKLSAgICAgICAgY2FjaGVP
cHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxp
ZGF0aW9uKTsKKyAgICAgICAgbV9jYWNoZU9wdGlvbnMuYWRkKE5ldHdvcmtDYWNoZTo6Q2FjaGVP
cHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKTsKICNlbmRpZgogCi0gICAgbV9jYWNoZSA9
IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Om9wZW4oKnRoaXMsIG1fZGlza0NhY2hlRGlyZWN0b3J5LCBj
YWNoZU9wdGlvbnMpOwotICAgIGlmICghbV9jYWNoZSkKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdlYktpdCBuZXR3b3Jr
IGRpc2sgY2FjaGUiKTsKLQogICAgIC8vIERpc2FibGUgTlNVUkxDYWNoZS4KICAgICBhdXRvIHVy
bENhY2hlKGFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXSBpbml0V2l0aE1lbW9yeUNhcGFjaXR5
OjAgZGlza0NhcGFjaXR5OjAgZGlza1BhdGg6bmlsXSkpOwogICAgIFtOU1VSTENhY2hlIHNldFNo
YXJlZFVSTENhY2hlOnVybENhY2hlLmdldCgpXTsKQEAgLTIwMCwxNiArMTk2LDE1IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvCiAgICAgaWYgKCFtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwKQog
ICAgICAgICBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRl
KCk7CiAKLSAgICBhdXRvKiBjYWNoZSA9IHRoaXMtPmNhY2hlKCk7Ci0gICAgaWYgKCFjYWNoZSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
CiAgICAgYXV0byBncm91cCA9IG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXA7Ci0gICAgZGlzcGF0
Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG1ha2VCbG9j
a1B0cihbY2FjaGUsIG1vZGlmaWVkU2luY2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICBjYWNoZS0+Y2xlYXIobW9k
aWZpZWRTaW5jZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGRpc3BhdGNoX2dy
b3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtlQmxvY2tQdHIo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZpZWRTaW5jZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7
CisgICAgICAgIGF1dG8gYWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZm9yIChhdXRvJiBzZXNzaW9uIDog
bmV0d29ya1Nlc3Npb25zKCkudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBjYWNo
ZSA9IHNlc3Npb24tPmNhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPmNsZWFyKG1vZGlm
aWVkU2luY2UsIFthZ2dyZWdhdG9yID0gYWdncmVnYXRvci5jb3B5UmVmKCldICgpIHsgfSk7Cisg
ICAgICAgIH0KICAgICB9KS5nZXQoKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAog
I2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAwMTg4ODlhMjg2NmVlYjcz
MzMxMDA3MTJiMWVhOWQwNzk5ZDNlMzNkLi40ZGM0ZjIyMzQzMWMzNzgzNjljN2MyZTc4NzkwYjhm
ODhlOWZiZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC05MjQsNyArOTI0LDcgQEAgc3RhdGlj
IE5TRGljdGlvbmFyeSAqcHJveHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYgaHR0cFByb3h5LCBjb25z
dCBVUkwmIGh0dHBzUHJveHkKIH0KIAogTmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Np
b25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdv
cmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2Fs
U3RvcmFnZURpcmVjdG9yeSksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKQorICAgIDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRl
cnMpCiAgICAgLCBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcihwYXJhbWV0ZXJzLmJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllcikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKHBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAgICwg
bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIocGFyYW1ldGVycy5zb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDE4MzQ4
YThkNTU3ODNhN2EwYjFkMmZkYmRhNDFhMDY3ZmYwNjcwMDcuLmJjMjg4M2FlMTNlNWIwMjkzYzUx
Njg3NTljNTg1YzNkNGQ2YzRmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwCkBAIC0zOCw3ICszOCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE5ldHdvcmtT
ZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Npb25DdXJsKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAg
IDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklELCBX
VEZNb3ZlKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5KSwgcGFyYW1ldGVycy5sb2Nh
bFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgOiBOZXR3b3JrU2Vzc2lvbihu
ZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAgICBpZiAoIXBhcmFtZXRlcnMuY29va2ll
UGVyc2lzdGVudFN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkKICAgICAgICAgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCktPnNldENvb2tpZURhdGFiYXNlKG1ha2VVbmlxdWVSZWY8Q29va2llSmFyREI+KHBh
cmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmlu
ZGV4IGY3YmJmYTVjOGE2NzY2MWY3OTQ0MjVlMTRmNWJiZjJmNTg2YzIwM2YuLmY3ZGVjNzA0OGQx
NGZjMzQxZmVlYzE3OWQ3NjJjOTgyZDQ4ZWVkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC00MCw3
ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IE5ldHdvcmtTZXNzaW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQotICAgIDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vz
c2lvbklELCBXVEZNb3ZlKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5KSwgcGFyYW1l
dGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgOiBOZXR3b3Jr
U2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAgICBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKS0+c2V0Q29va2llT2JzZXJ2ZXJIYW5kbGVyKFt0aGlzXSB7CiAgICAgICAgIHRo
aXMtPm5ldHdvcmtQcm9jZXNzKCkuc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5ub3Rp
ZnlDb29raWVzRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUxNzhk
Y2Q2Zjc3YmU4OWRmZmQ4NmU3YjE1MGMwMjIyYjBmYzlhYTguLjFjOTE4ODE5NzE2YzZkN2I4OGE0
Y2JlOGMzMTg2MjRjNTRlYjBiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMjQ4LDYgKzI0OCw4IEBA
IHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJl
Y29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgICAgICAgICBjb25maWctPnNldENhY2hlU3Rv
cmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkucGF0aCk7
CiAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KQogICAgICAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rv
cnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURpcmVjdG9y
eSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0TmV0d29ya0NhY2hlRGlyZWN0b3J5KGNvbmZpZ3Vy
YXRpb24ubmV0d29ya0NhY2hlRGlyZWN0b3J5LnBhdGgpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5KTsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5KTsKQEAgLTI1Niw2ICsyNTgsNyBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURh
dGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgICAg
ICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl9jYWNoZVN0
b3JhZ2VEaXJlY3RvcnkpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5f
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSk7CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUKCFjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURpcmVjdG9yeSk7CiAgICAgfQogCiAgICAg
aWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCAwNmE3MGVlNjRjMmQ4Nzgy
ZWFmMzNhMjc5NWIxZjg1YzczNzk0MDhiLi5iOTlmZmUzNDZkMDAzY2FiODBkZDYxNzBkY2I1Mzcx
ZThkOGZjMWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
NTMsNiArNTMsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqbmV0
d29ya0NhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Rpbmcgb25seS4KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCAyNjdhM2Y1
NGMyNjRkMmZhOGI3NTNiZWY1MWQ2ZGViZjdjM2E1YjA2Li5iNjNmNDQ3NGJhOWEzYzY5YjA3NGJm
ZGY5MzhlODRjYjU5N2ZjN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLm1tCkBAIC04OSw2ICs4OSwxOSBAQCBzdGF0aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5T
VVJMICp1cmwpCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5KHVybC5wYXRoKTsKIH0KIAorLSAoTlNVUkwgKiluZXR3b3JrQ2FjaGVEaXJlY3RvcnkKK3sK
KyAgICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfY29uZmlndXJhdGlvbi0+bmV0d29y
a0NhY2hlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKK30KKworLSAodm9pZClzZXROZXR3
b3JrQ2FjaGVEaXJlY3Rvcnk6KE5TVVJMICopdXJsCit7CisgICAgaWYgKCFfY29uZmlndXJhdGlv
bi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRB
cmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IG5ldHdvcmtDYWNoZURpcmVjdG9y
eSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLiJd
OworICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0TmV0
d29ya0NhY2hlRGlyZWN0b3J5KHVybC5wYXRoKTsKK30KKwogLSAoTlNVUkwgKilfd2ViU1FMRGF0
YWJhc2VEaXJlY3RvcnkKIHsKICAgICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfY29u
ZmlndXJhdGlvbi0+d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDJhNTZhNzQzNmU4YTAwODYw
YTVjMGJkMTEyMDUzMzM5MjMxOWMyMjUuLmQ3ZDIyZDkzYjkyYTY1YmJiYWMxNDBlYmI3YjZjNDhk
M2Y0YjdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTExMiw2
ICsxMTIsMTEgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6
cGFyYW1ldGVycygpCiAgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rv
cnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOwogCisgICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSByZXNvbHZlZE5ldHdv
cmtDYWNoZURpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBuZXR3b3Jr
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZXR3b3JrQ2FjaGVEaXJl
Y3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5LCBuZXR3b3JrQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9jYWxo
b3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gaXNTYWZhcmk7CiAgICAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycyA9IHsKQEAgLTEzNSw3ICsxNDAsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgbV9jb25maWd1cmF0
aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nKCksCiAgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZh
bGVudFJlc291cmNlKSwKICAgICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpLAot
ICAgICAgICBXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAg
ICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAorICAg
ICAgICBXVEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUobmV0
d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICAgICB9OwogICAgIG5ldHdvcmtp
bmdIYXNCZWd1bigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDVhYjUzZGEwZDI2ZWVmYjQzMDRj
ZDY5MmVlODE0Y2U4ZTM4NzBiZjkuLjAwYzdmZWIwZTM4YjQ1MjRkYzIxOGExNTllZjcxNDk1NGQ0
ZGZhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDYsNiArMjA2LDggQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpCiAgICAgICAgIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLT5zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShyZXNvbHZl
QW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3Vy
YXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkpKTsKICAgICBpZiAoIW1fY29uZmln
dXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5KCkuaXNFbXB0eSgpKQog
ICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0RGV2aWNlSWRIYXNoU2FsdHNTdG9y
YWdlRGlyZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94
RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0
b3J5KCkpKTsKKyAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlRGlyZWN0b3J5
KCkuaXNFbXB0eSgpKQorICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0TmV0d29y
a0NhY2hlRGlyZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5k
Ym94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlRGlyZWN0b3J5KCkpKTsK
ICAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSgpLmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVj
dG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5KCkpKTsKICAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+c2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpLmlzRW1wdHkoKSAmJiBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpLmlzRW1wdHkoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCBmMDdjYzYxOGQ2YzExMzFlNTA1NGExNDgyMTYzMDVhZmY5ZmZlNDg2
Li5jZjc2MGZjNTdlNmM5OWUxY2MyZmFlNTZjYzVlMWU5ZjUzZmUyNGRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzb2x2ZURpcmVjdG9yaWVz
SWZOZWNlc3NhcnkoKTsKICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQXBwbGljYXRpb25DYWNo
ZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5hcHBs
aWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkTG9j
YWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRp
b24tPmxvY2FsU3RvcmFnZURpcmVjdG9yeSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZl
ZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1
cmF0aW9uLT5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVz
b2x2ZWRNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZp
Z3VyYXRpb24tPm1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVz
b2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi0+bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3RyaW5n
JiByZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENv
bmZpZ3VyYXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCk7IH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMzI2MTVkY2QxZTMzOWIyMzU3
N2IzNDdjYzE0YzMyNTQ0MTI3OTQ0Li40ZTIzOWU4MmNjYjE4YzYzMDhmZmIxZjcyNmVjMTQ2MzFi
ZWYyNDkwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdvcmtDYWNoZSBvd25lcnNoaXAg
ZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpdKToKKwogMjAxOS0wNy0xMiAgQWFrYXNoIEph
aW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3cy1hcHBdIEVuYWJsZSBs
b2dnaW5nIGZvciBjbGlja2luZyBTdWJtaXRUb0VXUyBidXR0b24KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBh
dGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggZTRlZTAyMDY2MzVjY2JmNzA3ZDg5NDdjZDVlZWZj
Y2E3ZGIzMWQ0ZS4uNWY1Y2E1ZWU5MDg5NDNmZDI1NTFiZTI4YWFjYjdlYmJiMTU2MmM5ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lt
cG9ydCAiVENQU2VydmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCkBAIC01MjEsMyArNTIy
LDM1IEBAIFRFU1QoV2ViS2l0LCBBcHBsaWNhdGlvbklkZW50aWZpZXJzKQogICAgIEVYUEVDVF9U
UlVFKFt3ZWJzaXRlRGF0YVN0b3JlLl9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIg
aXNFcXVhbFRvU3RyaW5nOkAib3RoZXJpZGVudGlmaWVyIl0pOwogICAgIEVYUEVDVF9UUlVFKFtb
d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJ0ZXN0aWRlbnRpZmllciJdKTsKIH0KKworVEVTVChX
ZWJLaXQsIE5ldHdvcmtDYWNoZURpcmVjdG9yeSkKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKFtdIChpbnQgc29ja2V0KSB7CisgICAg
ICAgIFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworICAgICAgICBjb25zdCBjaGFyKiByZXNwb25z
ZSA9CisgICAgICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAgICAiQ2FjaGUtQ29udHJv
bDogbWF4LWFnZT0xMDAwMDAwXHJcbiIKKyAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiA2XHJcblxy
XG4iCisgICAgICAgICJIZWxsbyEiOworICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwg
cmVzcG9uc2UsIHN0cmxlbihyZXNwb25zZSkpOworICAgIH0pOworICAgIAorICAgIE5TVVJMICp0
ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJDdXN0b21QYXRoc1Rlc3QiXSBpc0RpcmVj
dG9yeTpZRVNdOworICAgIAorICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBbd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0TmV0d29ya0NhY2hlRGly
ZWN0b3J5OnRlbXBEaXJdOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6W1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmdldCgpXSBhdXRvcmVsZWFzZV1dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cDov
LzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9
IHRlbXBEaXIucGF0aDsKKyAgICBOU0ZpbGVNYW5hZ2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICB3aGlsZSAoIVtmaWxlTWFuYWdlciBmaWxlRXhp
c3RzQXRQYXRoOnBhdGhdKQorICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOworICAgIE5TRXJy
b3IgKmVycm9yID0gbmlsOworICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOnBhdGgg
ZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfRkFMU0UoZXJyb3IpOworfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5OWYwYzc2MTRhNWE4YmZkMmZlY2Jk
ZTBjMzA5Y2U5ZmQyNzExNWE1Li40ZmQxZmQ1ZWU5ZGVhNjExNWUyYTUwYjRlZTdhYTA2NWMzZWJl
MTBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTIs
NiArNTIsNyBAQAogLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFt
ZTsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWw7
CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJh
c2VVUkw6KE5TVVJMICopdXJsOworLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6KE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VO
YW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKIC0gKEJPT0wpX3N5bmNocm9ub3VzbHlFeGVjdXRl
RWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZCBhcmd1bWVudDooTlNTdHJpbmcgKilhcmd1
bWVudDsKIC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOihOU0FycmF5PE5TU3RyaW5n
ICo+ICopdGFnTmFtZXM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW0KaW5kZXggMzRiMzExMjZmZjA3ZjY1N2ZjZjYxMmI2YWRhNWYxODFlMjQxNjA4ZC4uM2RhODE3
MjYxZTE3YzM5MjQzNDlkMTcxN2E2NmZjZGM3OTA2Zjk1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtNzEsNiArNzEsMTIgQEAgU09GVF9MSU5LX0NM
QVNTKFVJS2l0LCBVSVdpbmRvdykKICAgICBbc2VsZiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIH0K
IAorLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVl
c3QKK3sKKyAgICBbc2VsZiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbc2VsZiBfdGVzdF93
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9CisKIC0gKHZvaWQpc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgYmFzZVVSTDooTlNVUkwgKil1cmwKIHsKICAg
ICBbc2VsZiBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6dXJsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374179</attachid>
            <date>2019-07-15 19:02:56 -0700</date>
            <delta_ts>2019-07-15 22:52:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199817-20190715190256.patch</filename>
            <type>text/plain</type>
            <size>43606</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNmOGRlNmNlMmZiMmI0Njgy
YWE0NGI1YjM0YWNkZWZhZGU3Mjc4ODMuLjcyODUwODQ5ZGVmMmJhNDcyMTdlYmE0NDI1ZTllZTgy
N2ZkYTIwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdv
cmtDYWNoZSBvd25lcnNoaXAgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhbHNvIGFk
ZGVkIFNQSSB0byBzZXQgdGhlIHBhdGggb2YgdGhlIE5ldHdvcmtDYWNoZSB3aXRoIGFuIEFQSSB0
ZXN0LgorICAgICAgICBJZiB0aGlzIG5ldyBTUEkgaXMgbm90IHVzZWQsIGl0IGZhbGxzIGJhY2sg
dG8gZ2V0dGluZyB0aGUgY2FjaGUgbG9jYXRpb24gZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8g
bWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgV2Ugc3RpbGwgZ2V0IG9wdGlvbnMsIGNh
Y2hlIHNpemUsIGFuZCBjYWNoZSBtb2RlbCBmcm9tIHRoZSBOZXR3b3JrUHJvY2Vzcy4gIFRob3Nl
IHNob3VsZCBiZSBtaWdyYXRlZCB3aXRoIG5ldyBTUEkgbGF0ZXIuCisgICAgICAgIENsZWFyaW5n
IHRoZSBjYWNoZSBhbmQgb3RoZXIgb3BlcmF0aW9ucyBub3cgaXRlcmF0ZSB0aGUgTmV0d29ya1Nl
c3Npb25zIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlcmUgaXMgb25seSBvbmUgY2FjaGUuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9t
YWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFp
bnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
Q2FjaGVNb2RlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpc2tDYWNoZURpcmVjdG9yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZU9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNh
Y2hlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNo
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2Fj
aGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lv
bkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lv
blNvdXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gbmV0d29ya0NhY2hlRGlyZWN0b3J5XSk6CisgICAgICAgICgtW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldE5ldHdvcmtDYWNoZURpcmVjdG9yeTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZE5ldHdvcmtD
YWNoZURpcmVjdG9yeSBjb25zdCk6CisKIDIwMTktMDctMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKG1hY09TIENhdGFsaW5hKTogQ2Fubm90
IHF1aWNrIGxvb2sgaHRtbCBkb2N1bWVudHMgaW4gTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlZjllMGM5Y2QzMjZlMWVjMzQy
NmE2M2MwZGRjZDVjY2FhNWJjYzllLi4yNGJkNzE2OTlhYWZmNGQyYjI4MzUzMzA0OTAwZjY0OWUz
ZTBiODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMTM1NywxMSArMTM1NywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAog
ICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKLQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewotICAgICAgICBmZXRjaERpc2tD
YWNoZUVudHJpZXMoY2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvcildKGF1dG8gZW50cmllcykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fd2Vic2l0ZURhdGEuZW50
cmllcy5hcHBlbmRWZWN0b3IoZW50cmllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBmb3IgKGF1
dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0b3Ip
XShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNTE2LDggKzE1MTcsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAjZW5kaWYKIAotICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSAmJiAhc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhjYWNoZSgp
LCBvcmlnaW5EYXRhcywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFu
ZGxlcildIHsgfSk7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAgICAg
ICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkKKyAgICAg
ICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBvcmlnaW5EYXRh
cywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxlcildIHsgfSk7
CisgICAgfQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpDcmVkZW50aWFscykpIHsKICAgICAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC0xNzQ4LDE5ICsxNzUxLDIxIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgotICAgIAorCiAgICAgaWYg
KHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7
Ci0gICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhjYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNo
T3B0aW9ucywgW3RoaXMsIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNr
QWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldKGF1dG8gZW50cmllcykg
bXV0YWJsZSB7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5ldHdvcmtTZXNzaW9ucygp
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+
Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtkb21haW5zVG9EZWxldGVBbGxCdXRD
b29raWVzRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJl
ZigpLCBzZXNzaW9uID0gc2Vzc2lvbi5jb3B5UmVmKCldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7
CiAKLSAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0
ZTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLmNvbnRhaW5zKFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkp
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBlbnRyaWVz
VG9EZWxldGUuYXBwZW5kKGVudHJ5Lm9yaWdpbik7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tB
Z2dyZWdhdG9yLT5tX2RvbWFpbnMuYWRkKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKGNhY2hlKCksIGVudHJpZXNUb0RlbGV0ZSwgW2NhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJp
ZXNUb0RlbGV0ZTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNG
b3IuY29udGFpbnMoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVu
dHJ5Lm9yaWdpbi5ob3N0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgZW50cmllc1RvRGVsZXRlLmFwcGVuZChlbnRyeS5vcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fZG9tYWlucy5hZGQoUmVn
aXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVudHJ5Lm9yaWdpbi5ob3N0
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNsZWFyRGlza0NhY2hlRW50
cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBlbnRyaWVzVG9EZWxldGUsIFtjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIGRhdGFUeXBlc0ZvclVJUHJvY2VzcyA9IFdl
YnNpdGVEYXRhOjpmaWx0ZXIod2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6VUkpOwpAQCAtMTg4Miw5ICsxODg3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlZ2lz
dHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAj
ZW5kaWYKICAgICAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkpIHsKLSAgICAgICAgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKGNhY2hl
KCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJh
Y2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3Rv
cihlbnRyaWVzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5l
dHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXShhdXRvIGVudHJpZXMp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRl
RGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CiAgICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCkBAIC0xOTc2LDkgKzE5ODMsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVN
b2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGRpc2tGcmVlU2l6ZSAvPSBLQiAq
IDEwMDA7CiAgICAgICAgIGNhbGN1bGF0ZVVSTENhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgZGlza0Zy
ZWVTaXplLCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAg
ICAgfQotCi0gICAgaWYgKG1fY2FjaGUpCi0gICAgICAgIG1fY2FjaGUtPnNldENhcGFjaXR5KHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3
b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNz
aW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldENhcGFjaXR5KHVybENhY2hlRGlz
a0NhcGFjaXR5KTsKKyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGI4NmYyNDlkNDJhMDQ5ZWZm
MzI1NGRjNzlmMWM3ZDJkOTAwNWJmZC4uNjlmM2Q0ZjY3OTJjMGI5Y2M3YTEwMjg2YTgyYWM1M2Q4
YjEyOTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTExLDEyICsxMTEsMTIgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOwogY2xhc3MgV2ViU1dPcmlnaW5TdG9yZTsKICNlbmRpZgogCi1uYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKLWNsYXNzIEVuZ2luZTsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworZW51bSBj
bGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3Q7CiB9CiAKLW5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUg
ewotY2xhc3MgQ2FjaGU7CituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKK2NsYXNzIEVuZ2luZTsK
IH0KIAogY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHJp
dmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE5ldHdvcmtQcm9jZXNzPgpAQCAtMTYxLDggKzE2MSw2IEBAIHB1YmxpYzoKICAgICBBdXRoZW50
aWNhdGlvbk1hbmFnZXImIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAKLSAgICBOZXR3b3JrQ2FjaGU6OkNhY2hlKiBjYWNo
ZSgpIHsgcmV0dXJuIG1fY2FjaGUuZ2V0KCk7IH0KLQogICAgIHZvaWQgc2V0U2Vzc2lvbihjb25z
dCBQQUw6OlNlc3Npb25JRCYsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29ya1Nl
c3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7
CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYpIGNvbnN0OwpAQCAtMzQzLDYgKzM0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgY29uc3Qg
U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rpc2tDYWNoZURp
cmVjdG9yeTsgfQorICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
PiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KKyAgICAK
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CkBAIC00ODksOCArNDkwLDYgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxDYWNoZVN0b3JhZ2U6OkVuZ2luZT4+IG1fY2Fj
aGVFbmdpbmVzOwogCi0gICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6Q2FjaGU+IG1fY2FjaGU7Ci0K
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50TWFwOwogICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1l
bnRzOwogCkBAIC01NjYsNiArNTY1LDggQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2Rvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEgfTsKIAogICAgIEhhc2hNYXA8SVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsK
KworICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhNTFkNTM5
OGViYTQ2MTNhNTE5MmRmNWY1OTVmYmQwNGJlOGYzOWEuLjVjYTQ2ZGY1YmQwZDZjZTE1NGQ5Y2Zk
NWNiZjk0MzU5MGZkMjM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk4LDEwICs5OCwxMyBAQCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIHBhcgogICAgICwgbV9maWxlUmVmZXJlbmNlcyhjb25uZWN0aW9uLnJl
c29sdmVCbG9iUmVmZXJlbmNlcyhtX3BhcmFtZXRlcnMpKQogICAgICwgbV9pc0FsbG93ZWRUb0Fz
a1VzZXJGb3JDcmVkZW50aWFscyB7IG1fcGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzIH0K
ICAgICAsIG1fYnVmZmVyaW5nVGltZXIgeyAqdGhpcywgJk5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
YnVmZmVyaW5nVGltZXJGaXJlZCB9Ci0gICAgLCBtX2NhY2hlIHsgc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSA/IG51bGxwdHIgOiBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkuY2FjaGUoKSB9
CiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhtX2Nvbm5lY3Rp
b24tPmNhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoKSkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBjb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKQorICAgICAg
ICBtX2NhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBleGlzdGVuY2Ugb2YgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCBpbiBXZWJDb3JlLgogICAgIC8vICAgICAgICBPbmNlIGJ1ZyAxMTYyMzMgaXMgcmVzb2x2ZWQs
IHRoaXMgQVNTRVJUIGNhbiBqdXN0IGJlICJtX3dlYlBhZ2VJRCAmJiBtX3dlYkZyYW1lSUQiCiAg
ICAgQVNTRVJUKChtX3BhcmFtZXRlcnMud2ViUGFnZUlEICYmIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlEKSB8fCBtX3BhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGM3ZmFmMDQz
ZTM5ZGNlZDczNzU3YjJlNzRmYjJhOTA5ODU2ZmMyOGIuLjJhMTE2MmQ3NWVhYThkZGZkOGRkMDE3
YTBiNmE1Nzk4MGEzMGFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oIgpAQCAtNzcsMTMgKzc4LDI1IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyYmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiBoYW5kbGUpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fc2Vzc2lv
bklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3Jr
UHJvY2VzcykKLSAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcj4oc2Vzc2lvbklEKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFnZXIo
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpKQot
ewotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOworICAg
ICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyPihwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoU3RyaW5nKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkpCit7CisgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKKyAgICAgICAgaWYgKG5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc051bGwoKSkKKyAg
ICAgICAgICAgIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IG5ldHdvcmtQcm9jZXNzLmRpc2tDYWNo
ZURpcmVjdG9yeSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworCisgICAgICAgIG1fY2FjaGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpv
cGVuKG5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtQcm9jZXNz
LmNhY2hlT3B0aW9ucygpKTsKKyAgICAgICAgaWYgKCFtX2NhY2hlKQorICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdl
YktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKKyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwogICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRQaW5nTG9hZEZ1bmN0
aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAppbmRleCA0ZDQ4NzMyZTI2MTZmNWNkMjU4OWUyZDIyOTQ2MDhjN2JmZDllYWM1
Li5iM2U0MTJlYmYzMDM1ZDgxOWNlZDI3NGFmMDBkNmFjNjkyOTdlNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC01OSw3ICs1OSwxMSBA
QCBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOwogCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKLSAgICAKKworbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZSB7CitjbGFzcyBDYWNoZTsKK30KKwogY2xhc3MgTmV0d29ya1Nlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0
QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgTmV0d29ya0NhY2hlOjpD
YWNoZSogY2FjaGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9CisKICAgICBQcmVmZXRjaENh
Y2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9CiAgICAgdm9p
ZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAKQEAg
LTEwOCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRh
c2soV2ViU29ja2V0VGFzayYpIHsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICBOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CkBAIC0xMzAsNiArMTM2LDcgQEAgcHJvdGVjdGVkOgogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1faXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKyAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA5MGRlZGE0MjEwOTU5N2IzOTAxZDI2MjBjZDUyZmEwMmZlMzRmMDhkLi40ZWZhOTM5NGI3Nzk1
MTdjMjMzZWM5ZDkxZTY1ZTliZDBhZjY2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVT
RShDVVJMKQogICAgICAgICAsIHsgfSwgeyB9CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwg
ZmFsc2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwg
eyB9LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQog
ICAgIH07CiB9CiAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKIAog
ICAgIGVuY29kZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG5ldHdvcmtDYWNoZURpcmVjdG9y
eSA8PCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAKICAgICBlbmNvZGVy
IDw8IGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIGVuY29kZXIgPDwg
YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsK
QEAgLTIxMSw2ICsyMTIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICBpZiAoIWxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPFN0cmluZz4gbmV0d29ya0NhY2hlRGlyZWN0b3J5Owor
ICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5OworICAgIGlmICghbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9uYWw8Ym9vbD4gZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBkZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKICAgICBpZiAoIWRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkKQpAQCAtMjUzLDYgKzI2NCw4IEBAIE9wdGlvbmFsPE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFBy
ZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9y
eSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCisgICAgICAgICwgV1RGTW92ZSgqbmV0d29ya0NhY2hlRGlyZWN0b3J5KQorICAgICAgICAs
IFdURk1vdmUoKm5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICB9fTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY1NTk5NDdmMDBkYjU3NmZh
NDE4NGE1Njk3NTg2YTNkNWFkMjgwMjEuLjA1ODJlYTQ2MTJkY2U0YjVhNDU1ZTQ0ZDhmMjNmZjM4
NTY3M2JhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTkyLDYgKzkyLDgg
QEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogICAgIFN0cmlu
ZyBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBTdHJpbmcgbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBuZXR3b3JrQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAppbmRleCAyMGUwNzU4Zjg0NTlhOGRhOGZhNDUzYTA5N2IzMWY2YWRiN2Q1N2FmLi41NDc3MTE0
NTFhNTM2N2U3ODNmYzZhYWIyNjBmYjViZWViOWJmYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01OSw5ICs1OSw5
IEBAIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiByZXNvdXJjZVR5cGUoKQogICAgIHJldHVybiBy
ZXNvdXJjZTsKIH0KIAotUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8T3B0aW9u
PiBvcHRpb25zKQorUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8Q2FjaGVPcHRp
b24+IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzdG9yYWdlID0gU3RvcmFnZTo6b3BlbihjYWNoZVBh
dGgsIG9wdGlvbnMuY29udGFpbnMoT3B0aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2Rl
OjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9yYWdlOjpNb2RlOjpOb3JtYWwpOworICAgIGF1dG8gc3Rv
cmFnZSA9IFN0b3JhZ2U6Om9wZW4oY2FjaGVQYXRoLCBvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0
aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2RlOjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9y
YWdlOjpNb2RlOjpOb3JtYWwpOwogCiAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJv
Y2Vzcykgb3BlbmVkIGNhY2hlIHN0b3JhZ2UsIHN1Y2Nlc3MgJWQiLCAhIXN0b3JhZ2UpOwogCkBA
IC03OCwxMiArNzgsMTIgQEAgc3RhdGljIHZvaWQgZHVtcEZpbGVDaGFuZ2VkKENhY2hlKiBjYWNo
ZSkKIH0KICNlbmRpZgogCi1DYWNoZTo6Q2FjaGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBSZWY8U3RvcmFnZT4mJiBzdG9yYWdlLCBPcHRpb25TZXQ8T3B0aW9uPiBvcHRpb25zKQor
Q2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUmVmPFN0b3JhZ2U+
JiYgc3RvcmFnZSwgT3B0aW9uU2V0PENhY2hlT3B0aW9uPiBvcHRpb25zKQogICAgIDogbV9zdG9y
YWdlKFdURk1vdmUoc3RvcmFnZSkpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9j
ZXNzKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElP
TikKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0
aW9uKSkgeworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0aW9uOjpTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbikpIHsKICAgICAgICAgbV9sb3dQb3dlck1vZGVOb3RpZmllciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViQ29yZTo6TG93UG93ZXJNb2RlTm90aWZpZXI+KFt0aGlzXShib29sIGlz
TG93UG93ZXJNb2RlRW5hYmxlZCkgewogICAgICAgICAgICAgQVNTRVJUKFdURjo6UnVuTG9vcDo6
aXNNYWluKCkpOwogICAgICAgICAgICAgaWYgKGlzTG93UG93ZXJNb2RlRW5hYmxlZCkKQEAgLTk4
LDcgKzk4LDcgQEAgQ2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
UmVmPFN0b3JhZ2U+JiYgc3RvcmFnZSwgT3B0aW9uU2V0PE8KICAgICB9CiAjZW5kaWYKIAotICAg
IGlmIChvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkpKSB7CisgICAgaWYg
KG9wdGlvbnMuY29udGFpbnMoQ2FjaGVPcHRpb246OlJlZ2lzdGVyTm90aWZ5KSkgewogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICAvLyBUcmlnZ2VycyB3aXRoICJub3RpZnl1dGlsIC1wIGNv
bS5hcHBsZS5XZWJLaXQuQ2FjaGUuZHVtcCIuCiAgICAgICAgIGludCB0b2tlbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDhi
YmMxNjk3ODU2MGU0NDYzMjIxZGY3M2FjYjEwODc2MmFiNzY5YTkuLmQ5NGZjNzM4MGYxOWE1ZjVm
NWI3OGVhMzllZjFkNjVhOTIxMWVlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtODcsMTcgKzg3LDE4IEBAIGVudW0gY2xh
c3MgVXNlRGVjaXNpb24gewogCiB1c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47CiAKLWNsYXNzIENh
Y2hlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGU+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNz
IE9wdGlvbiB7Ci0gICAgICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRl
IHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBh
cmUgbm8gcmVhZCB0aW1lb3V0cy4KLSAgICAgICAgVGVzdGluZ01vZGUgPSAxIDw8IDAsCi0gICAg
ICAgIFJlZ2lzdGVyTm90aWZ5ID0gMSA8PCAxLAorZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVp
bnQ4X3QgeworICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJj
ZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8g
cmVhZCB0aW1lb3V0cy4KKyAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKKyAgICBSZWdpc3Rlck5v
dGlmeSA9IDEgPDwgMSwKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pCi0gICAgICAgIFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAorICAg
IFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAogI2VuZGlmCi0gICAgfTsKLSAgICBz
dGF0aWMgUmVmUHRyPENhY2hlPiBvcGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhdGgsIE9wdGlvblNldDxPcHRpb24+KTsKK307CisKK2NsYXNzIENhY2hlIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q2FjaGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPENhY2hlPiBv
cGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxD
YWNoZU9wdGlvbj4pOwogCiAgICAgdm9pZCBzZXRDYXBhY2l0eShzaXplX3QpOwogCkBAIC0xNDgs
NyArMTQ5LDcgQEAgcHVibGljOgogICAgIH5DYWNoZSgpOwogCiBwcml2YXRlOgotICAgIENhY2hl
KE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNldDxPcHRpb24+IG9wdGlv
bnMpOworICAgIENhY2hlKE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNl
dDxDYWNoZU9wdGlvbj4pOwogCiAgICAgS2V5IG1ha2VDYWNoZUtleShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDViNTJjYWJjMGQ5OTdl
YzU4OWEzN2E1MDg5YzkxNDViMjhhZWFkM2EuLjI3NTliNTM4ZDk1MDg0MTEyNmIwY2ExZmYyYjIw
MWM0MzUxOWIwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTExNywxOCArMTE3LDE0IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2Eo
Y29uc3QgTmV0d29ya1Byb2Nlc3NDCiAgICAgICAgIHJldHVybjsKIAogICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgT3B0aW9uU2V0PE5ldHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlv
bj4gY2FjaGVPcHRpb25zIHsgTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpSZWdpc3Rlck5v
dGlmeSB9OworICAgIG1fY2FjaGVPcHRpb25zID0geyBOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
OjpSZWdpc3Rlck5vdGlmeSB9OwogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbikKLSAgICAgICAgY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlOjpPcHRpb246OlRlc3RpbmdNb2RlKTsKKyAgICAgICAgbV9jYWNoZU9wdGlvbnMuYWRkKE5l
dHdvcmtDYWNoZTo6Q2FjaGVPcHRpb246OlRlc3RpbmdNb2RlKTsKICNpZiBFTkFCTEUoTkVUV09S
S19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hv
dWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pCi0gICAgICAgIGNh
Y2hlT3B0aW9ucy5hZGQoTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpTcGVjdWxhdGl2ZVJl
dmFsaWRhdGlvbik7CisgICAgICAgIG1fY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlT3B0aW9uOjpTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbik7CiAjZW5kaWYKIAotICAgIG1fY2Fj
aGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpvcGVuKCp0aGlzLCBtX2Rpc2tDYWNoZURpcmVjdG9y
eSwgY2FjaGVPcHRpb25zKTsKLSAgICBpZiAoIW1fY2FjaGUpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmtDYWNoZSwgIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBXZWJLaXQgbmV0
d29yayBkaXNrIGNhY2hlIik7Ci0KICAgICAvLyBEaXNhYmxlIE5TVVJMQ2FjaGUuCiAgICAgYXV0
byB1cmxDYWNoZShhZG9wdE5TKFtbTlNVUkxDYWNoZSBhbGxvY10gaW5pdFdpdGhNZW1vcnlDYXBh
Y2l0eTowIGRpc2tDYXBhY2l0eTowIGRpc2tQYXRoOm5pbF0pKTsKICAgICBbTlNVUkxDYWNoZSBz
ZXRTaGFyZWRVUkxDYWNoZTp1cmxDYWNoZS5nZXQoKV07CkBAIC0yMDAsMTYgKzE5NiwxNSBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShXYWxsVGltZSBtb2RpZmllZFNpbmNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIGlmICghbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91
cCkKICAgICAgICAgbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2Ny
ZWF0ZSgpOwogCi0gICAgYXV0byogY2FjaGUgPSB0aGlzLT5jYWNoZSgpOwotICAgIGlmICghY2Fj
aGUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogICAgIGF1dG8gZ3JvdXAgPSBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwOwotICAgIGRp
c3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtl
QmxvY2tQdHIoW2NhY2hlLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgY2FjaGUtPmNsZWFy
KG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBkaXNwYXRj
aF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFrZUJsb2Nr
UHRyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWVkU2luY2Us
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgeworICAgICAgICBhdXRvIGFnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0
ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lv
biA6IG5ldHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byog
Y2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5jbGVhciht
b2RpZmllZFNpbmNlLCBbYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3IuY29weVJlZigpXSAoKSB7IH0p
OworICAgICAgICB9CiAgICAgfSkuZ2V0KCkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMDE4ODg5YTI4NjZl
ZWI3MzMzMTAwNzEyYjFlYTlkMDc5OWQzZTMzZC4uNGRjNGYyMjM0MzFjMzc4MzY5YzdjMmU3ODc5
MGI4Zjg4ZTlmYmRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtOTI0LDcgKzkyNCw3IEBAIHN0
YXRpYyBOU0RpY3Rpb25hcnkgKnByb3h5RGljdGlvbmFyeShjb25zdCBVUkwmIGh0dHBQcm94eSwg
Y29uc3QgVVJMJiBodHRwc1Byb3h5CiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtT
ZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vzc2lvbihu
ZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUocGFyYW1ldGVycy5s
b2NhbFN0b3JhZ2VEaXJlY3RvcnkpLCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJh
bWV0ZXJzKQogICAgICwgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIocGFyYW1ldGVycy5ib3Vu
ZEludGVyZmFjZUlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcihwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKICAg
ICAsIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKHBhcmFtZXRlcnMuc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAppbmRleCAx
ODM0OGE4ZDU1NzgzYTdhMGIxZDJmZGJkYTQxYTA2N2ZmMDY3MDA3Li5iYzI4ODNhZTEzZTViMDI5
M2M1MTY4NzU5YzU4NWMzZDRkNmM0ZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcApAQCAtMzgsNyArMzgs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBOZXR3
b3JrU2Vzc2lvbkN1cmw6Ok5ldHdvcmtTZXNzaW9uQ3VybChOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
LSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25J
RCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSksIHBhcmFtZXRlcnMu
bG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgIDogTmV0d29ya1Nlc3Np
b24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNv
b2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZS5pc0VtcHR5KCkpCiAgICAgICAgIG5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUphckRC
PihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQppbmRl
eCA1ZjgyYWVkNzU3YjUxYzA1Y2ZhNTBkNzNlMzgzNjRjNWI4ZTBiMTRmLi4yOWRkMDg3N2JkNGYw
M2QwMDIxMWYyMzI1YTljMjNjNzJmODI4YzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAtNzgsOCArNzgsMTAg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnModWludDMyX3Qg
Y2FjaGVzVG9DbGVhcikKICAgICBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgcmVzb3VyY2VDYWNoZXNU
b0NsZWFyID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VDYWNoZXNUb0NsZWFyPihjYWNoZXNUb0NsZWFy
KTsKICAgICBpZiAocmVzb3VyY2VDYWNoZXNUb0NsZWFyID09IEluTWVtb3J5UmVzb3VyY2VDYWNo
ZXNPbmx5KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fY2FjaGUpCi0gICAgICAgIG1fY2Fj
aGUtPmNsZWFyKCk7CisgICAgZm9yIChhdXRvJiBzZXNzaW9uIDogbmV0d29ya1Nlc3Npb25zKCku
dmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKSkK
KyAgICAgICAgICAgIGNhY2hlLT5jbGVhcigpOworICAgIH0KIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCmluZGV4IGRj
YTdjNDFmNDMwNDBhNjIyZDcxMWFlOGFkNjI1MzBhMWNkNzhkYzkuLjM4NmM1ZDYwYmE3YmE3MjJi
MmZiM2Q2ZjVkZTRjMDlhZTcyZmNiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBAIC0xMjEsOCArMTIx
LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nl
c3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGkKICAgICAgICAgY2FjaGVPcHRpb25zLmFkZChO
ZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKTsKICNl
bmRpZgogCi0gICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Om9wZW4oKnRoaXMsIG1f
ZGlza0NhY2hlRGlyZWN0b3J5LCBjYWNoZU9wdGlvbnMpOwotCiAgICAgc3VwcGxlbWVudDxXZWJD
b29raWVNYW5hZ2VyPigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMuY29v
a2llQWNjZXB0UG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQoKSk7CiAKICAgICBpZiAoIXBhcmFt
ZXRlcnMubGFuZ3VhZ2VzLmlzRW1wdHkoKSkKQEAgLTE1NiwxMSArMTU0LDExIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKHVpbnQzMl90IGNhY2hlc1RvQ2xl
YXIpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBpZiAoIW1fY2FjaGUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICAgICAgcmV0dXJuOworICAgIGF1dG8gYWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6
Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBmb3IgKGF1dG8mIHNlc3Np
b24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXV0byogY2Fj
aGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPmNsZWFyKG1vZGlmaWVk
U2luY2UsIFthZ2dyZWdhdG9yID0gYWdncmVnYXRvci5jb3B5UmVmKCldICgpIHsgfSk7CiAgICAg
fQotICAgIG1fY2FjaGUtPmNsZWFyKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNz
aW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmNwcAppbmRleCBmN2JiZmE1YzhhNjc2NjFmNzk0NDI1ZTE0ZjViYmYyZjU4NmMy
MDNmLi5mN2RlYzcwNDhkMTRmYzM0MWZlZWMxNzlkNzYyYzk4MmQ0OGVlZDk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cChO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNz
LCBwYXJhbWV0ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURp
cmVjdG9yeSksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQorICAgIDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAg
ICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNldENvb2tpZU9ic2VydmVySGFuZGxlcihbdGhp
c10gewogICAgICAgICB0aGlzLT5uZXR3b3JrUHJvY2VzcygpLnN1cHBsZW1lbnQ8V2ViQ29va2ll
TWFuYWdlcj4oKS0+bm90aWZ5Q29va2llc0RpZENoYW5nZShtX3Nlc3Npb25JRCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQppbmRleCBlMTc4ZGNkNmY3N2JlODlkZmZkODZlN2IxNTBjMDIyMmIwZmM5YWE4Li4xYzkx
ODgxOTcxNmM2ZDdiODhhNGNiZThjMzE4NjI0YzU0ZWIwYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAg
LTI0OCw2ICsyNDgsOCBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+
IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgICAgICAgICAgY29u
ZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdl
RGlyZWN0b3J5LnBhdGgpOwogICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeSkKICAgICAgICAgICAgIGNvbmZpZy0+c2V0U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5uZXR3
b3JrQ2FjaGVEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25maWctPnNldE5ldHdvcmtDYWNoZURp
cmVjdG9yeShjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURpcmVjdG9yeS5wYXRoKTsKICAgICB9
IGVsc2UgewogICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fd2ViU3RvcmFn
ZURpcmVjdG9yeSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSk7CkBAIC0yNTYsNiArMjU4LDcgQEAgc3RhdGljIFZlY3RvcjxX
ZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpk
YXRhUmVjb3IKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmln
dXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IWNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5uZXR3b3JrQ2FjaGVEaXJlY3Rvcnkp
OwogICAgIH0KIAogICAgIGlmIChjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXgg
MDZhNzBlZTY0YzJkODc4MmVhZjMzYTI3OTViMWY4NWM3Mzc5NDA4Yi4uYjk5ZmZlMzQ2ZDAwM2Nh
YjgwZGQ2MTcwZGNiNTM3MWU4ZDhmYzFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgKQEAgLTUzLDYgKzUzLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJMICpfcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q2FjaGVTdG9yYWdl
RGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KSBOU1VSTCAq
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwg
Y29weSkgTlNVUkwgKm5ldHdvcmtDYWNoZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0aW5nIG9ubHkuCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0KaW5kZXggMjY3YTNmNTRjMjY0ZDJmYThiNzUzYmVmNTFkNmRlYmY3YzNhNWIwNi4uYjYzZjQ0
NzRiYTlhM2M2OWIwNzRiZmRmOTM4ZTg0Y2I1OTdmYzdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtODksNiArODksMTkgQEAgc3RhdGljIHZvaWQgY2hl
Y2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRJbmRleGVk
REJEYXRhYmFzZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CiAKKy0gKE5TVVJMICopbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5Cit7CisgICAgcmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZp
Z3VyYXRpb24tPm5ldHdvcmtDYWNoZURpcmVjdG9yeSgpIGlzRGlyZWN0b3J5OllFU107Cit9CisK
Ky0gKHZvaWQpc2V0TmV0d29ya0NhY2hlRGlyZWN0b3J5OihOU1VSTCAqKXVybAoreworICAgIGlm
ICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQorICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiQ2Fubm90IHNldCBuZXR3
b3JrQ2FjaGVEaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi4iXTsKKyAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7CisgICAgX2NvbmZp
Z3VyYXRpb24tPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeSh1cmwucGF0aCk7Cit9CisKIC0gKE5T
VVJMICopX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5CiB7CiAgICAgcmV0dXJuIFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCkgaXNE
aXJlY3Rvcnk6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCAy
YTU2YTc0MzZlOGEwMDg2MGE1YzBiZDExMjA1MzMzOTIzMTljMjI1Li5kN2QyMmQ5M2I5MmE2NWJi
YmFjMTQwZWJiN2I2YzQ4ZDNmNGI3YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCkBAIC0xMTIsNiArMTEyLDExIEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0
b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
UmVhZFdyaXRlRGlyZWN0b3J5KGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAorICAgIGF1dG8gbmV0d29ya0NhY2hlRGlyZWN0b3J5
ID0gcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
bmV0d29ya0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KG5ldHdvcmtDYWNoZURpcmVjdG9y
eSwgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGJvb2wgc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGlzU2FmYXJpOwog
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7CkBAIC0xMzUsNyArMTQwLDkgQEAgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAg
ICAgIG1fY29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRm9yVGVzdGluZygpLAogICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCiAgICAgICAgIFdURk1vdmUobG9jYWxTdG9y
YWdlRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpCisgICAgICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKSwKKyAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpLAorICAg
ICAgICBXVEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCiAgICAg
fTsKICAgICBuZXR3b3JraW5nSGFzQmVndW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA1YWI1
M2RhMGQyNmVlZmI0MzA0Y2Q2OTJlZTgxNGNlOGUzODcwYmY5Li4wMGM3ZmViMGUzOGI0NTI0ZGMy
MThhMTU5ZWY3MTQ5NTRkNGRmYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA2LDYgKzIwNiw4
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3Nhcnko
KQogICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0SW5kZXhlZERCRGF0YWJhc2VE
aXJlY3RvcnkocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRl
bnNpb24obV9jb25maWd1cmF0aW9uLT5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpKSk7CiAg
ICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPmRldmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9y
eSgpLmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldERldmlj
ZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGly
ZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPmRldmljZUlkSGFzaFNh
bHRzU3RvcmFnZURpcmVjdG9yeSgpKSk7CisgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPm5ldHdv
cmtDYWNoZURpcmVjdG9yeSgpLmlzRW1wdHkoKSkKKyAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3Vy
YXRpb24tPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRl
RGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNo
ZURpcmVjdG9yeSgpKSk7CiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1
cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KHJlc29sdmVBbmRDcmVh
dGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpKSk7CiAgICAgaWYgKCFtX2NvbmZpZ3Vy
YXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKS5pc0VtcHR5KCkgJiYg
bV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rv
cnkoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZjA3Y2M2MThkNmMxMTMxZTUwNTRhMTQ4
MjE2MzA1YWZmOWZmZTQ4Ni4uY2Y3NjBmYzU3ZTZjOTllMWNjMmZhZTU2Y2M1ZTFlOWY1M2ZlMjRk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZl
ZEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiByZXNvbHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLT5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKTsgfQorICAgIGNvbnN0
IFN0cmluZyYgcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkTWVkaWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5tZWRpYUNhY2hlRGlyZWN0b3J5KCk7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkTWVkaWFLZXlzRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4g
bV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKTsgfQog
ICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWREYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpOyB9
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzMy
NjE1ZGNkMWUzMzliMjM1NzdiMzQ3Y2MxNGMzMjU0NDEyNzk0NC4uNGUyMzllODJjY2IxOGM2MzA4
ZmZiMWY3MjZlYzE0NjMxYmVmMjQ5MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA3LTE1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBOZXR3b3Jr
Q2FjaGUgb3duZXJzaGlwIGZyb20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgxNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6XSk6CisKIDIwMTkt
MDctMTIgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtl
d3MtYXBwXSBFbmFibGUgbG9nZ2luZyBmb3IgY2xpY2tpbmcgU3VibWl0VG9FV1MgYnV0dG9uCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IGU0ZWUwMjA2NjM1Y2Ni
ZjcwN2Q4OTQ3Y2Q1ZWVmY2NhN2RiMzFkNGUuLjVmNWNhNWVlOTA4OTQzZmQyNTUxYmUyOGFhY2I3
ZWJiYjE1NjJjOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2lt
cG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgpAQCAtNTIxLDMgKzUyMiwzNSBAQCBURVNUKFdlYktpdCwgQXBwbGljYXRpb25JZGVudGlmaWVy
cykKICAgICBFWFBFQ1RfVFJVRShbd2Vic2l0ZURhdGFTdG9yZS5fc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpAIm90aGVyaWRlbnRpZmllciJdKTsKICAg
ICBFWFBFQ1RfVFJVRShbW3dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAidGVzdGlkZW50aWZpZXIi
XSk7CiB9CisKK1RFU1QoV2ViS2l0LCBOZXR3b3JrQ2FjaGVEaXJlY3RvcnkpCit7CisgICAgdXNp
bmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgVENQU2VydmVyIHNlcnZlcihbXSAoaW50
IHNvY2tldCkgeworICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgY29u
c3QgY2hhciogcmVzcG9uc2UgPQorICAgICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAg
ICAgIkNhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MTAwMDAwMFxyXG4iCisgICAgICAgICJDb250ZW50
LUxlbmd0aDogNlxyXG5cclxuIgorICAgICAgICAiSGVsbG8hIjsKKyAgICAgICAgVENQU2VydmVy
Ojp3cml0ZShzb2NrZXQsIHJlc3BvbnNlLCBzdHJsZW4ocmVzcG9uc2UpKTsKKyAgICB9KTsKKyAg
ICAKKyAgICBOU1VSTCAqdGVtcERpciA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W05TVGVtcG9y
YXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQ3VzdG9tUGF0
aHNUZXN0Il0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICAKKyAgICBhdXRvIHdlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNl
dE5ldHdvcmtDYWNoZURpcmVjdG9yeTp0ZW1wRGlyXTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdXTsKKworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07CisgICAg
TlNTdHJpbmcgKnBhdGggPSB0ZW1wRGlyLnBhdGg7CisgICAgTlNGaWxlTWFuYWdlciAqZmlsZU1h
bmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07CisgICAgd2hpbGUgKCFbZmls
ZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDpwYXRoXSkKKyAgICAgICAgVXRpbDo6c3BpblJ1bkxv
b3AoKTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBbZmlsZU1hbmFnZXIgcmVtb3Zl
SXRlbUF0UGF0aDpwYXRoIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX0ZBTFNFKGVycm9yKTsK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggOTlmMGM3
NjE0YTVhOGJmZDJmZWNiZGUwYzMwOWNlOWZkMjcxMTVhNS4uNGZkMWZkNWVlOWRlYTYxMTVlMmE1
MGI0ZWU3YWEwNjVjM2ViZTEwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3LmgKQEAgLTUyLDYgKzUyLDcgQEAKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5T
U3RyaW5nICopcGFnZU5hbWU7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzoo
TlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5T
U3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsKKy0gKHZvaWQpc3luY2hyb25vdXNs
eUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogLSAodm9pZClzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CiAtIChCT09MKV9zeW5j
aHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1hbmQgYXJndW1lbnQ6
KE5TU3RyaW5nICopYXJndW1lbnQ7CiAtICh2b2lkKWV4cGVjdEVsZW1lbnRUYWdzSW5PcmRlcjoo
TlNBcnJheTxOU1N0cmluZyAqPiAqKXRhZ05hbWVzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDM0YjMxMTI2ZmYwN2Y2NTdmY2Y2MTJiNmFkYTVmMTgx
ZTI0MTYwOGQuLjNkYTgxNzI2MWUxN2MzOTI0MzQ5ZDE3MTdhNjZmY2RjNzkwNmY5NWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTcxLDYgKzcxLDEy
IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlXaW5kb3cpCiAgICAgW3NlbGYgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiB9CiAKKy0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OihOU1VS
TFJlcXVlc3QgKilyZXF1ZXN0Cit7CisgICAgW3NlbGYgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Cisg
ICAgW3NlbGYgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworfQorCiAtICh2b2lk
KXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJhc2VVUkw6KE5T
VVJMICopdXJsCiB7CiAgICAgW3NlbGYgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOnVybF07
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374193</attachid>
            <date>2019-07-15 22:52:52 -0700</date>
            <delta_ts>2019-07-16 10:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199817-20190715225251.patch</filename>
            <type>text/plain</type>
            <size>44460</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNmOGRlNmNlMmZiMmI0Njgy
YWE0NGI1YjM0YWNkZWZhZGU3Mjc4ODMuLjcyODUwODQ5ZGVmMmJhNDcyMTdlYmE0NDI1ZTllZTgy
N2ZkYTIwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdv
cmtDYWNoZSBvd25lcnNoaXAgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhbHNvIGFk
ZGVkIFNQSSB0byBzZXQgdGhlIHBhdGggb2YgdGhlIE5ldHdvcmtDYWNoZSB3aXRoIGFuIEFQSSB0
ZXN0LgorICAgICAgICBJZiB0aGlzIG5ldyBTUEkgaXMgbm90IHVzZWQsIGl0IGZhbGxzIGJhY2sg
dG8gZ2V0dGluZyB0aGUgY2FjaGUgbG9jYXRpb24gZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8g
bWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgV2Ugc3RpbGwgZ2V0IG9wdGlvbnMsIGNh
Y2hlIHNpemUsIGFuZCBjYWNoZSBtb2RlbCBmcm9tIHRoZSBOZXR3b3JrUHJvY2Vzcy4gIFRob3Nl
IHNob3VsZCBiZSBtaWdyYXRlZCB3aXRoIG5ldyBTUEkgbGF0ZXIuCisgICAgICAgIENsZWFyaW5n
IHRoZSBjYWNoZSBhbmQgb3RoZXIgb3BlcmF0aW9ucyBub3cgaXRlcmF0ZSB0aGUgTmV0d29ya1Nl
c3Npb25zIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlcmUgaXMgb25seSBvbmUgY2FjaGUuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9t
YWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFp
bnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
Q2FjaGVNb2RlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpc2tDYWNoZURpcmVjdG9yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZU9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNh
Y2hlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNo
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2Fj
aGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lv
bkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lv
blNvdXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gbmV0d29ya0NhY2hlRGlyZWN0b3J5XSk6CisgICAgICAgICgtW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldE5ldHdvcmtDYWNoZURpcmVjdG9yeTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZE5ldHdvcmtD
YWNoZURpcmVjdG9yeSBjb25zdCk6CisKIDIwMTktMDctMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKG1hY09TIENhdGFsaW5hKTogQ2Fubm90
IHF1aWNrIGxvb2sgaHRtbCBkb2N1bWVudHMgaW4gTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlZjllMGM5Y2QzMjZlMWVjMzQy
NmE2M2MwZGRjZDVjY2FhNWJjYzllLi4yNGJkNzE2OTlhYWZmNGQyYjI4MzUzMzA0OTAwZjY0OWUz
ZTBiODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMTM1NywxMSArMTM1NywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAog
ICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKLQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewotICAgICAgICBmZXRjaERpc2tD
YWNoZUVudHJpZXMoY2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvcildKGF1dG8gZW50cmllcykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fd2Vic2l0ZURhdGEuZW50
cmllcy5hcHBlbmRWZWN0b3IoZW50cmllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBmb3IgKGF1
dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0b3Ip
XShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNTE2LDggKzE1MTcsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAjZW5kaWYKIAotICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSAmJiAhc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhjYWNoZSgp
LCBvcmlnaW5EYXRhcywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFu
ZGxlcildIHsgfSk7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAgICAg
ICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkKKyAgICAg
ICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBvcmlnaW5EYXRh
cywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxlcildIHsgfSk7
CisgICAgfQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpDcmVkZW50aWFscykpIHsKICAgICAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC0xNzQ4LDE5ICsxNzUxLDIxIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgotICAgIAorCiAgICAgaWYg
KHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7
Ci0gICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhjYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNo
T3B0aW9ucywgW3RoaXMsIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNr
QWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldKGF1dG8gZW50cmllcykg
bXV0YWJsZSB7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5ldHdvcmtTZXNzaW9ucygp
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+
Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtkb21haW5zVG9EZWxldGVBbGxCdXRD
b29raWVzRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJl
ZigpLCBzZXNzaW9uID0gc2Vzc2lvbi5jb3B5UmVmKCldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7
CiAKLSAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0
ZTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLmNvbnRhaW5zKFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkp
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBlbnRyaWVz
VG9EZWxldGUuYXBwZW5kKGVudHJ5Lm9yaWdpbik7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tB
Z2dyZWdhdG9yLT5tX2RvbWFpbnMuYWRkKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKGNhY2hlKCksIGVudHJpZXNUb0RlbGV0ZSwgW2NhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJp
ZXNUb0RlbGV0ZTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNG
b3IuY29udGFpbnMoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVu
dHJ5Lm9yaWdpbi5ob3N0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgZW50cmllc1RvRGVsZXRlLmFwcGVuZChlbnRyeS5vcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fZG9tYWlucy5hZGQoUmVn
aXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVudHJ5Lm9yaWdpbi5ob3N0
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNsZWFyRGlza0NhY2hlRW50
cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBlbnRyaWVzVG9EZWxldGUsIFtjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIGRhdGFUeXBlc0ZvclVJUHJvY2VzcyA9IFdl
YnNpdGVEYXRhOjpmaWx0ZXIod2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6VUkpOwpAQCAtMTg4Miw5ICsxODg3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlZ2lz
dHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAj
ZW5kaWYKICAgICAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkpIHsKLSAgICAgICAgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKGNhY2hl
KCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJh
Y2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3Rv
cihlbnRyaWVzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5l
dHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXShhdXRvIGVudHJpZXMp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRl
RGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CiAgICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCkBAIC0xOTc2LDkgKzE5ODMsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVN
b2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGRpc2tGcmVlU2l6ZSAvPSBLQiAq
IDEwMDA7CiAgICAgICAgIGNhbGN1bGF0ZVVSTENhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgZGlza0Zy
ZWVTaXplLCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAg
ICAgfQotCi0gICAgaWYgKG1fY2FjaGUpCi0gICAgICAgIG1fY2FjaGUtPnNldENhcGFjaXR5KHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3
b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNz
aW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldENhcGFjaXR5KHVybENhY2hlRGlz
a0NhcGFjaXR5KTsKKyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGI4NmYyNDlkNDJhMDQ5ZWZm
MzI1NGRjNzlmMWM3ZDJkOTAwNWJmZC4uNjlmM2Q0ZjY3OTJjMGI5Y2M3YTEwMjg2YTgyYWM1M2Q4
YjEyOTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTExLDEyICsxMTEsMTIgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOwogY2xhc3MgV2ViU1dPcmlnaW5TdG9yZTsKICNlbmRpZgogCi1uYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKLWNsYXNzIEVuZ2luZTsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworZW51bSBj
bGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3Q7CiB9CiAKLW5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUg
ewotY2xhc3MgQ2FjaGU7CituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKK2NsYXNzIEVuZ2luZTsK
IH0KIAogY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHJp
dmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE5ldHdvcmtQcm9jZXNzPgpAQCAtMTYxLDggKzE2MSw2IEBAIHB1YmxpYzoKICAgICBBdXRoZW50
aWNhdGlvbk1hbmFnZXImIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAKLSAgICBOZXR3b3JrQ2FjaGU6OkNhY2hlKiBjYWNo
ZSgpIHsgcmV0dXJuIG1fY2FjaGUuZ2V0KCk7IH0KLQogICAgIHZvaWQgc2V0U2Vzc2lvbihjb25z
dCBQQUw6OlNlc3Npb25JRCYsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29ya1Nl
c3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7
CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYpIGNvbnN0OwpAQCAtMzQzLDYgKzM0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgY29uc3Qg
U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rpc2tDYWNoZURp
cmVjdG9yeTsgfQorICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
PiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KKyAgICAK
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CkBAIC00ODksOCArNDkwLDYgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxDYWNoZVN0b3JhZ2U6OkVuZ2luZT4+IG1fY2Fj
aGVFbmdpbmVzOwogCi0gICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6Q2FjaGU+IG1fY2FjaGU7Ci0K
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50TWFwOwogICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1l
bnRzOwogCkBAIC01NjYsNiArNTY1LDggQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2Rvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEgfTsKIAogICAgIEhhc2hNYXA8SVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsK
KworICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhNTFkNTM5
OGViYTQ2MTNhNTE5MmRmNWY1OTVmYmQwNGJlOGYzOWEuLjVjYTQ2ZGY1YmQwZDZjZTE1NGQ5Y2Zk
NWNiZjk0MzU5MGZkMjM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk4LDEwICs5OCwxMyBAQCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIHBhcgogICAgICwgbV9maWxlUmVmZXJlbmNlcyhjb25uZWN0aW9uLnJl
c29sdmVCbG9iUmVmZXJlbmNlcyhtX3BhcmFtZXRlcnMpKQogICAgICwgbV9pc0FsbG93ZWRUb0Fz
a1VzZXJGb3JDcmVkZW50aWFscyB7IG1fcGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzIH0K
ICAgICAsIG1fYnVmZmVyaW5nVGltZXIgeyAqdGhpcywgJk5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
YnVmZmVyaW5nVGltZXJGaXJlZCB9Ci0gICAgLCBtX2NhY2hlIHsgc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSA/IG51bGxwdHIgOiBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkuY2FjaGUoKSB9
CiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhtX2Nvbm5lY3Rp
b24tPmNhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoKSkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBjb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKQorICAgICAg
ICBtX2NhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBleGlzdGVuY2Ugb2YgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCBpbiBXZWJDb3JlLgogICAgIC8vICAgICAgICBPbmNlIGJ1ZyAxMTYyMzMgaXMgcmVzb2x2ZWQs
IHRoaXMgQVNTRVJUIGNhbiBqdXN0IGJlICJtX3dlYlBhZ2VJRCAmJiBtX3dlYkZyYW1lSUQiCiAg
ICAgQVNTRVJUKChtX3BhcmFtZXRlcnMud2ViUGFnZUlEICYmIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlEKSB8fCBtX3BhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGM3ZmFmMDQz
ZTM5ZGNlZDczNzU3YjJlNzRmYjJhOTA5ODU2ZmMyOGIuLjJhMTE2MmQ3NWVhYThkZGZkOGRkMDE3
YTBiNmE1Nzk4MGEzMGFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oIgpAQCAtNzcsMTMgKzc4LDI1IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyYmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiBoYW5kbGUpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fc2Vzc2lv
bklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3Jr
UHJvY2VzcykKLSAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcj4oc2Vzc2lvbklEKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFnZXIo
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpKQot
ewotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOworICAg
ICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyPihwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoU3RyaW5nKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkpCit7CisgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKKyAgICAgICAgaWYgKG5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc051bGwoKSkKKyAg
ICAgICAgICAgIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IG5ldHdvcmtQcm9jZXNzLmRpc2tDYWNo
ZURpcmVjdG9yeSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworCisgICAgICAgIG1fY2FjaGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpv
cGVuKG5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtQcm9jZXNz
LmNhY2hlT3B0aW9ucygpKTsKKyAgICAgICAgaWYgKCFtX2NhY2hlKQorICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdl
YktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKKyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwogICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRQaW5nTG9hZEZ1bmN0
aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAppbmRleCA0ZDQ4NzMyZTI2MTZmNWNkMjU4OWUyZDIyOTQ2MDhjN2JmZDllYWM1
Li5iM2U0MTJlYmYzMDM1ZDgxOWNlZDI3NGFmMDBkNmFjNjkyOTdlNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC01OSw3ICs1OSwxMSBA
QCBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOwogCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKLSAgICAKKworbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZSB7CitjbGFzcyBDYWNoZTsKK30KKwogY2xhc3MgTmV0d29ya1Nlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0
QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgTmV0d29ya0NhY2hlOjpD
YWNoZSogY2FjaGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9CisKICAgICBQcmVmZXRjaENh
Y2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9CiAgICAgdm9p
ZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAKQEAg
LTEwOCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRh
c2soV2ViU29ja2V0VGFzayYpIHsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICBOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CkBAIC0xMzAsNiArMTM2LDcgQEAgcHJvdGVjdGVkOgogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1faXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKyAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA5MGRlZGE0MjEwOTU5N2IzOTAxZDI2MjBjZDUyZmEwMmZlMzRmMDhkLi40ZWZhOTM5NGI3Nzk1
MTdjMjMzZWM5ZDkxZTY1ZTliZDBhZjY2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVT
RShDVVJMKQogICAgICAgICAsIHsgfSwgeyB9CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwg
ZmFsc2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwg
eyB9LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQog
ICAgIH07CiB9CiAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKIAog
ICAgIGVuY29kZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG5ldHdvcmtDYWNoZURpcmVjdG9y
eSA8PCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAKICAgICBlbmNvZGVy
IDw8IGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIGVuY29kZXIgPDwg
YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsK
QEAgLTIxMSw2ICsyMTIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICBpZiAoIWxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPFN0cmluZz4gbmV0d29ya0NhY2hlRGlyZWN0b3J5Owor
ICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5OworICAgIGlmICghbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9uYWw8Ym9vbD4gZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBkZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKICAgICBpZiAoIWRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkKQpAQCAtMjUzLDYgKzI2NCw4IEBAIE9wdGlvbmFsPE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFBy
ZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9y
eSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCisgICAgICAgICwgV1RGTW92ZSgqbmV0d29ya0NhY2hlRGlyZWN0b3J5KQorICAgICAgICAs
IFdURk1vdmUoKm5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICB9fTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY1NTk5NDdmMDBkYjU3NmZh
NDE4NGE1Njk3NTg2YTNkNWFkMjgwMjEuLjA1ODJlYTQ2MTJkY2U0YjVhNDU1ZTQ0ZDhmMjNmZjM4
NTY3M2JhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTkyLDYgKzkyLDgg
QEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogICAgIFN0cmlu
ZyBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBTdHJpbmcgbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBuZXR3b3JrQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAppbmRleCAyMGUwNzU4Zjg0NTlhOGRhOGZhNDUzYTA5N2IzMWY2YWRiN2Q1N2FmLi41NDc3MTE0
NTFhNTM2N2U3ODNmYzZhYWIyNjBmYjViZWViOWJmYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01OSw5ICs1OSw5
IEBAIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiByZXNvdXJjZVR5cGUoKQogICAgIHJldHVybiBy
ZXNvdXJjZTsKIH0KIAotUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8T3B0aW9u
PiBvcHRpb25zKQorUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8Q2FjaGVPcHRp
b24+IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzdG9yYWdlID0gU3RvcmFnZTo6b3BlbihjYWNoZVBh
dGgsIG9wdGlvbnMuY29udGFpbnMoT3B0aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2Rl
OjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9yYWdlOjpNb2RlOjpOb3JtYWwpOworICAgIGF1dG8gc3Rv
cmFnZSA9IFN0b3JhZ2U6Om9wZW4oY2FjaGVQYXRoLCBvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0
aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2RlOjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9y
YWdlOjpNb2RlOjpOb3JtYWwpOwogCiAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJv
Y2Vzcykgb3BlbmVkIGNhY2hlIHN0b3JhZ2UsIHN1Y2Nlc3MgJWQiLCAhIXN0b3JhZ2UpOwogCkBA
IC03OCwxMiArNzgsMTIgQEAgc3RhdGljIHZvaWQgZHVtcEZpbGVDaGFuZ2VkKENhY2hlKiBjYWNo
ZSkKIH0KICNlbmRpZgogCi1DYWNoZTo6Q2FjaGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBSZWY8U3RvcmFnZT4mJiBzdG9yYWdlLCBPcHRpb25TZXQ8T3B0aW9uPiBvcHRpb25zKQor
Q2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUmVmPFN0b3JhZ2U+
JiYgc3RvcmFnZSwgT3B0aW9uU2V0PENhY2hlT3B0aW9uPiBvcHRpb25zKQogICAgIDogbV9zdG9y
YWdlKFdURk1vdmUoc3RvcmFnZSkpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9j
ZXNzKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElP
TikKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0
aW9uKSkgeworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0aW9uOjpTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbikpIHsKICAgICAgICAgbV9sb3dQb3dlck1vZGVOb3RpZmllciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViQ29yZTo6TG93UG93ZXJNb2RlTm90aWZpZXI+KFt0aGlzXShib29sIGlz
TG93UG93ZXJNb2RlRW5hYmxlZCkgewogICAgICAgICAgICAgQVNTRVJUKFdURjo6UnVuTG9vcDo6
aXNNYWluKCkpOwogICAgICAgICAgICAgaWYgKGlzTG93UG93ZXJNb2RlRW5hYmxlZCkKQEAgLTk4
LDcgKzk4LDcgQEAgQ2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
UmVmPFN0b3JhZ2U+JiYgc3RvcmFnZSwgT3B0aW9uU2V0PE8KICAgICB9CiAjZW5kaWYKIAotICAg
IGlmIChvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkpKSB7CisgICAgaWYg
KG9wdGlvbnMuY29udGFpbnMoQ2FjaGVPcHRpb246OlJlZ2lzdGVyTm90aWZ5KSkgewogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICAvLyBUcmlnZ2VycyB3aXRoICJub3RpZnl1dGlsIC1wIGNv
bS5hcHBsZS5XZWJLaXQuQ2FjaGUuZHVtcCIuCiAgICAgICAgIGludCB0b2tlbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDhi
YmMxNjk3ODU2MGU0NDYzMjIxZGY3M2FjYjEwODc2MmFiNzY5YTkuLmQ5NGZjNzM4MGYxOWE1ZjVm
NWI3OGVhMzllZjFkNjVhOTIxMWVlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtODcsMTcgKzg3LDE4IEBAIGVudW0gY2xh
c3MgVXNlRGVjaXNpb24gewogCiB1c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47CiAKLWNsYXNzIENh
Y2hlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGU+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNz
IE9wdGlvbiB7Ci0gICAgICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRl
IHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBh
cmUgbm8gcmVhZCB0aW1lb3V0cy4KLSAgICAgICAgVGVzdGluZ01vZGUgPSAxIDw8IDAsCi0gICAg
ICAgIFJlZ2lzdGVyTm90aWZ5ID0gMSA8PCAxLAorZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVp
bnQ4X3QgeworICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJj
ZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8g
cmVhZCB0aW1lb3V0cy4KKyAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKKyAgICBSZWdpc3Rlck5v
dGlmeSA9IDEgPDwgMSwKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pCi0gICAgICAgIFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAorICAg
IFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAogI2VuZGlmCi0gICAgfTsKLSAgICBz
dGF0aWMgUmVmUHRyPENhY2hlPiBvcGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhdGgsIE9wdGlvblNldDxPcHRpb24+KTsKK307CisKK2NsYXNzIENhY2hlIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q2FjaGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPENhY2hlPiBv
cGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxD
YWNoZU9wdGlvbj4pOwogCiAgICAgdm9pZCBzZXRDYXBhY2l0eShzaXplX3QpOwogCkBAIC0xNDgs
NyArMTQ5LDcgQEAgcHVibGljOgogICAgIH5DYWNoZSgpOwogCiBwcml2YXRlOgotICAgIENhY2hl
KE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNldDxPcHRpb24+IG9wdGlv
bnMpOworICAgIENhY2hlKE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNl
dDxDYWNoZU9wdGlvbj4pOwogCiAgICAgS2V5IG1ha2VDYWNoZUtleShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDViNTJjYWJjMGQ5OTdl
YzU4OWEzN2E1MDg5YzkxNDViMjhhZWFkM2EuLjA3Yjk2MzNiZDQ4ODZmZmQ0NmZhNjY4ZDc2MWRk
ODYyZmM0NTI3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTExNywxOCArMTE3LDE0IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2Eo
Y29uc3QgTmV0d29ya1Byb2Nlc3NDCiAgICAgICAgIHJldHVybjsKIAogICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgT3B0aW9uU2V0PE5ldHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlv
bj4gY2FjaGVPcHRpb25zIHsgTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpSZWdpc3Rlck5v
dGlmeSB9OworICAgIG1fY2FjaGVPcHRpb25zID0geyBOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
OjpSZWdpc3Rlck5vdGlmeSB9OwogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbikKLSAgICAgICAgY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlOjpPcHRpb246OlRlc3RpbmdNb2RlKTsKKyAgICAgICAgbV9jYWNoZU9wdGlvbnMuYWRkKE5l
dHdvcmtDYWNoZTo6Q2FjaGVPcHRpb246OlRlc3RpbmdNb2RlKTsKICNpZiBFTkFCTEUoTkVUV09S
S19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hv
dWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pCi0gICAgICAgIGNh
Y2hlT3B0aW9ucy5hZGQoTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpTcGVjdWxhdGl2ZVJl
dmFsaWRhdGlvbik7CisgICAgICAgIG1fY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlT3B0aW9uOjpTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbik7CiAjZW5kaWYKIAotICAgIG1fY2Fj
aGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpvcGVuKCp0aGlzLCBtX2Rpc2tDYWNoZURpcmVjdG9y
eSwgY2FjaGVPcHRpb25zKTsKLSAgICBpZiAoIW1fY2FjaGUpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmtDYWNoZSwgIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBXZWJLaXQgbmV0
d29yayBkaXNrIGNhY2hlIik7Ci0KICAgICAvLyBEaXNhYmxlIE5TVVJMQ2FjaGUuCiAgICAgYXV0
byB1cmxDYWNoZShhZG9wdE5TKFtbTlNVUkxDYWNoZSBhbGxvY10gaW5pdFdpdGhNZW1vcnlDYXBh
Y2l0eTowIGRpc2tDYXBhY2l0eTowIGRpc2tQYXRoOm5pbF0pKTsKICAgICBbTlNVUkxDYWNoZSBz
ZXRTaGFyZWRVUkxDYWNoZTp1cmxDYWNoZS5nZXQoKV07CkBAIC0yMDAsMTUgKzE5NiwxMyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShXYWxsVGltZSBtb2RpZmllZFNpbmNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIGlmICghbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91
cCkKICAgICAgICAgbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2Ny
ZWF0ZSgpOwogCi0gICAgYXV0byogY2FjaGUgPSB0aGlzLT5jYWNoZSgpOwotICAgIGlmICghY2Fj
aGUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogICAgIGF1dG8gZ3JvdXAgPSBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwOwotICAgIGRp
c3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtl
QmxvY2tQdHIoW2NhY2hlLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgY2FjaGUtPmNsZWFy
KG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBkaXNwYXRj
aF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFrZUJsb2Nr
UHRyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWVkU2luY2Us
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgeworICAgICAgICBhdXRvIGFnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0
ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lv
biA6IG5ldHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byog
Y2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5jbGVhciht
b2RpZmllZFNpbmNlLCBbYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3IuY29weVJlZigpXSAoKSB7IH0p
OworICAgICAgICB9CiAgICAgfSkuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXgg
MDE4ODg5YTI4NjZlZWI3MzMzMTAwNzEyYjFlYTlkMDc5OWQzZTMzZC4uNGRjNGYyMjM0MzFjMzc4
MzY5YzdjMmU3ODc5MGI4Zjg4ZTlmYmRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtOTI0LDcg
KzkyNCw3IEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnByb3h5RGljdGlvbmFyeShjb25zdCBVUkwm
IGh0dHBQcm94eSwgY29uc3QgVVJMJiBodHRwc1Byb3h5CiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29j
b2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3
b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUo
cGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpLCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQ
cm9jZXNzLCBwYXJhbWV0ZXJzKQogICAgICwgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIocGFy
YW1ldGVycy5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKHBh
cmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcAppbmRleCAxODM0OGE4ZDU1NzgzYTdhMGIxZDJmZGJkYTQxYTA2N2ZmMDY3MDA3Li5iYzI4
ODNhZTEzZTViMDI5M2M1MTY4NzU5YzU4NWMzZDRkNmM0ZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBOZXR3b3JrU2Vzc2lvbkN1cmw6Ok5ldHdvcmtTZXNzaW9uQ3VybChOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0
ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSks
IHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgIDog
TmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKCFw
YXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZS5pc0VtcHR5KCkpCiAgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVm
PENvb2tpZUphckRCPihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nl
c3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vz
c0lPUy5tbQppbmRleCA1ZjgyYWVkNzU3YjUxYzA1Y2ZhNTBkNzNlMzgzNjRjNWI4ZTBiMTRmLi4y
OWRkMDg3N2JkNGYwM2QwMDIxMWYyMzI1YTljMjNjNzJmODI4YzY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAt
NzgsOCArNzgsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZUZvckFsbE9yaWdp
bnModWludDMyX3QgY2FjaGVzVG9DbGVhcikKICAgICBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgcmVz
b3VyY2VDYWNoZXNUb0NsZWFyID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VDYWNoZXNUb0NsZWFyPihj
YWNoZXNUb0NsZWFyKTsKICAgICBpZiAocmVzb3VyY2VDYWNoZXNUb0NsZWFyID09IEluTWVtb3J5
UmVzb3VyY2VDYWNoZXNPbmx5KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fY2FjaGUpCi0g
ICAgICAgIG1fY2FjaGUtPmNsZWFyKCk7CisgICAgZm9yIChhdXRvJiBzZXNzaW9uIDogbmV0d29y
a1Nlc3Npb25zKCkudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lv
bi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5jbGVhcigpOworICAgIH0KIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAu
Y3BwCmluZGV4IGRjYTdjNDFmNDMwNDBhNjIyZDcxMWFlOGFkNjI1MzBhMWNkNzhkYzkuLjg2N2U2
MTBhYzc1MWUwMTNhYjE2YTllMDkwYjhhODA3M2I0ZWViZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYktpdENhY2hlZFJlc29sdmVyLmgiCkBAIC0z
OCw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+CisjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9G
aWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CkBAIC0xMTUsMTQgKzExNywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aQogCiAgICAgU291cE5ldHdvcmtTZXNzaW9uOjpjbGVhck9sZFNvdXBDYWNoZShGaWxlU3lzdGVt
OjpkaXJlY3RvcnlOYW1lKG1fZGlza0NhY2hlRGlyZWN0b3J5KSk7CiAKLSAgICBPcHRpb25TZXQ8
TmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uPiBjYWNoZU9wdGlvbnMgeyBOZXR3b3JrQ2FjaGU6
OkNhY2hlOjpPcHRpb246OlJlZ2lzdGVyTm90aWZ5IH07CisgICAgT3B0aW9uU2V0PE5ldHdvcmtD
YWNoZTo6Q2FjaGVPcHRpb24+IGNhY2hlT3B0aW9ucyB7IE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRp
b246OlJlZ2lzdGVyTm90aWZ5IH07CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKQogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKQogICAgICAgICBjYWNoZU9wdGlvbnMuYWRkKE5l
dHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlvbjo6U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pOwogI2Vu
ZGlmCiAKLSAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3BlbigqdGhpcywgbV9k
aXNrQ2FjaGVEaXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7Ci0KICAgICBzdXBwbGVtZW50PFdlYkNv
b2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGFyYW1ldGVycy5jb29r
aWVBY2NlcHRQb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRCgpKTsKIAogICAgIGlmICghcGFyYW1l
dGVycy5sYW5ndWFnZXMuaXNFbXB0eSgpKQpAQCAtMTU2LDExICsxNTYsMTEgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnModWludDMyX3QgY2FjaGVzVG9DbGVh
cikKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUoV2FsbFRpbWUgbW9kaWZp
ZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGlmICghbV9jYWNoZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAg
ICAgICByZXR1cm47CisgICAgYXV0byBhZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGZvciAoYXV0byYgc2Vzc2lv
biA6IG5ldHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNo
ZSA9IHNlc3Npb24tPmNhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+Y2xlYXIobW9kaWZpZWRT
aW5jZSwgW2FnZ3JlZ2F0b3IgPSBhZ2dyZWdhdG9yLmNvcHlSZWYoKV0gKCkgeyB9KTsKICAgICB9
Ci0gICAgbV9jYWNoZS0+Y2xlYXIobW9kaWZpZWRTaW5jZSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Np
b25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vz
c2lvblNvdXAuY3BwCmluZGV4IGY3YmJmYTVjOGE2NzY2MWY3OTQ0MjVlMTRmNWJiZjJmNTg2YzIw
M2YuLmY3ZGVjNzA0OGQxNGZjMzQxZmVlYzE3OWQ3NjJjOTgyZDQ4ZWVkOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNv
dXAuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIE5ldHdvcmtTZXNzaW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAgIDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3Ms
IHBhcmFtZXRlcnMuc2Vzc2lvbklELCBXVEZNb3ZlKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
CisgICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAg
ICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2V0Q29va2llT2JzZXJ2ZXJIYW5kbGVyKFt0aGlz
XSB7CiAgICAgICAgIHRoaXMtPm5ldHdvcmtQcm9jZXNzKCkuc3VwcGxlbWVudDxXZWJDb29raWVN
YW5hZ2VyPigpLT5ub3RpZnlDb29raWVzRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCmluZGV4IGUxNzhkY2Q2Zjc3YmU4OWRmZmQ4NmU3YjE1MGMwMjIyYjBmYzlhYTguLjFjOTE4
ODE5NzE2YzZkN2I4OGE0Y2JlOGMzMTg2MjRjNTRlYjBiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAt
MjQ4LDYgKzI0OCw4IEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4g
dG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgICAgICAgICBjb25m
aWctPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLl9jYWNoZVN0b3JhZ2VE
aXJlY3RvcnkucGF0aCk7CiAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KQogICAgICAgICAgICAgY29uZmlnLT5zZXRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3RvcnkucGF0aCk7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uLm5ldHdv
cmtDYWNoZURpcmVjdG9yeSkKKyAgICAgICAgICAgIGNvbmZpZy0+c2V0TmV0d29ya0NhY2hlRGly
ZWN0b3J5KGNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlRGlyZWN0b3J5LnBhdGgpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLl93ZWJTdG9yYWdl
RGlyZWN0b3J5KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3dlYlNR
TERhdGFiYXNlRGlyZWN0b3J5KTsKQEAgLTI1Niw2ICsyNTgsNyBAQCBzdGF0aWMgVmVjdG9yPFdl
YktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRh
dGFSZWNvcgogICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1
cmF0aW9uLl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
Y29uZmlndXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSk7CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURpcmVjdG9yeSk7
CiAgICAgfQogCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCAw
NmE3MGVlNjRjMmQ4NzgyZWFmMzNhMjc5NWIxZjg1YzczNzk0MDhiLi5iOTlmZmUzNDZkMDAzY2Fi
ODBkZDYxNzBkY2I1MzcxZThkOGZjMWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaApAQCAtNTMsNiArNTMsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VE
aXJlY3Rvcnk6KSBOU1VSTCAqX2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpf
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5KSBOU1VSTCAqbmV0d29ya0NhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Rpbmcgb25seS4KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5t
bQppbmRleCAyNjdhM2Y1NGMyNjRkMmZhOGI3NTNiZWY1MWQ2ZGViZjdjM2E1YjA2Li5iNjNmNDQ3
NGJhOWEzYzY5YjA3NGJmZGY5MzhlODRjYjU5N2ZjN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC04OSw2ICs4OSwxOSBAQCBzdGF0aWMgdm9pZCBjaGVj
a1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldEluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5KHVybC5wYXRoKTsKIH0KIAorLSAoTlNVUkwgKiluZXR3b3JrQ2Fj
aGVEaXJlY3RvcnkKK3sKKyAgICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfY29uZmln
dXJhdGlvbi0+bmV0d29ya0NhY2hlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKK30KKwor
LSAodm9pZClzZXROZXR3b3JrQ2FjaGVEaXJlY3Rvcnk6KE5TVVJMICopdXJsCit7CisgICAgaWYg
KCFfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCkpCisgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IG5ldHdv
cmtDYWNoZURpcmVjdG9yeSBvbiBhIG5vbi1wZXJzaXN0ZW50IF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLiJdOworICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKKyAgICBfY29uZmln
dXJhdGlvbi0+c2V0TmV0d29ya0NhY2hlRGlyZWN0b3J5KHVybC5wYXRoKTsKK30KKwogLSAoTlNV
UkwgKilfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkKIHsKICAgICByZXR1cm4gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpfY29uZmlndXJhdGlvbi0+d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKSBpc0Rp
cmVjdG9yeTpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDJh
NTZhNzQzNmU4YTAwODYwYTVjMGJkMTEyMDUzMzM5MjMxOWMyMjUuLmQ3ZDIyZDkzYjkyYTY1YmJi
YWMxNDBlYmI3YjZjNDhkM2Y0YjdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0KQEAgLTExMiw2ICsxMTIsMTEgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JS
ZWFkV3JpdGVEaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBsb2NhbFN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCisgICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnkg
PSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5
LCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAgICAgYm9vbCBzaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gaXNTYWZhcmk7CiAg
ICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IHsKQEAgLTEzNSw3ICsxNDAsOSBAQCBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAg
ICAgbV9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nKCksCiAgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKICAgICAgICAgV1RGTW92ZShsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnkpLAotICAgICAgICBXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSkKKyAgICAgICAgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpLAorICAgICAgICBXVEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeSksCisgICAg
ICAgIFdURk1vdmUobmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICAgICB9
OwogICAgIG5ldHdvcmtpbmdIYXNCZWd1bigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDVhYjUz
ZGEwZDI2ZWVmYjQzMDRjZDY5MmVlODE0Y2U4ZTM4NzBiZjkuLjAwYzdmZWIwZTM4YjQ1MjRkYzIx
OGExNTllZjcxNDk1NGQ0ZGZhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDYsNiArMjA2LDgg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgp
CiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRJbmRleGVkREJEYXRhYmFzZURp
cmVjdG9yeShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVu
c2lvbihtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkpKTsKICAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5
KCkuaXNFbXB0eSgpKQogICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0RGV2aWNl
SWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJl
Y3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2Fs
dHNTdG9yYWdlRGlyZWN0b3J5KCkpKTsKKyAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+bmV0d29y
a0NhY2hlRGlyZWN0b3J5KCkuaXNFbXB0eSgpKQorICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi0+c2V0TmV0d29ya0NhY2hlRGlyZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVE
aXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hl
RGlyZWN0b3J5KCkpKTsKICAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSgpLmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3Vy
YXRpb24tPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkocmVzb2x2ZUFuZENyZWF0
ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkpKTsKICAgICBpZiAoIW1fY29uZmlndXJh
dGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpLmlzRW1wdHkoKSAmJiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eSgpLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBmMDdjYzYxOGQ2YzExMzFlNTA1NGExNDgy
MTYzMDVhZmY5ZmZlNDg2Li5jZjc2MGZjNTdlNmM5OWUxY2MyZmFlNTZjYzVlMWU5ZjUzZmUyNGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVz
b2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVk
QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJp
bmcmIHJlc29sdmVkTG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNv
bHZlZENvbmZpZ3VyYXRpb24tPmxvY2FsU3RvcmFnZURpcmVjdG9yeSgpOyB9CisgICAgY29uc3Qg
U3RyaW5nJiByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb2x2ZWRDb25maWd1cmF0aW9uLT5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsgfQogICAgIGNv
bnN0IFN0cmluZyYgcmVzb2x2ZWRNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4g
bV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsgfQogICAgIGNv
bnN0IFN0cmluZyYgcmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAg
ICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCk7IH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMzI2
MTVkY2QxZTMzOWIyMzU3N2IzNDdjYzE0YzMyNTQ0MTI3OTQ0Li40ZTIzOWU4MmNjYjE4YzYzMDhm
ZmIxZjcyNmVjMTQ2MzFiZWYyNDkwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdvcmtD
YWNoZSBvd25lcnNoaXAgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpdKToKKwogMjAxOS0w
Ny0xMiAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3
cy1hcHBdIEVuYWJsZSBsb2dnaW5nIGZvciBjbGlja2luZyBTdWJtaXRUb0VXUyBidXR0b24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURh
dGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggZTRlZTAyMDY2MzVjY2Jm
NzA3ZDg5NDdjZDVlZWZjY2E3ZGIzMWQ0ZS4uNWY1Y2E1ZWU5MDg5NDNmZDI1NTFiZTI4YWFjYjdl
YmJiMTU2MmM5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KQEAg
LTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgorI2ltcG9ydCAiVENQU2VydmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1w
b3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CkBAIC01MjEsMyArNTIyLDM1IEBAIFRFU1QoV2ViS2l0LCBBcHBsaWNhdGlvbklkZW50aWZpZXJz
KQogICAgIEVYUEVDVF9UUlVFKFt3ZWJzaXRlRGF0YVN0b3JlLl9zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOkAib3RoZXJpZGVudGlmaWVyIl0pOwogICAg
IEVYUEVDVF9UUlVFKFtbd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJ0ZXN0aWRlbnRpZmllciJd
KTsKIH0KKworVEVTVChXZWJLaXQsIE5ldHdvcmtDYWNoZURpcmVjdG9yeSkKK3sKKyAgICB1c2lu
ZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKFtdIChpbnQg
c29ja2V0KSB7CisgICAgICAgIFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworICAgICAgICBjb25z
dCBjaGFyKiByZXNwb25zZSA9CisgICAgICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAg
ICAiQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0xMDAwMDAwXHJcbiIKKyAgICAgICAgIkNvbnRlbnQt
TGVuZ3RoOiA2XHJcblxyXG4iCisgICAgICAgICJIZWxsbyEiOworICAgICAgICBUQ1BTZXJ2ZXI6
OndyaXRlKHNvY2tldCwgcmVzcG9uc2UsIHN0cmxlbihyZXNwb25zZSkpOworICAgIH0pOworICAg
IAorICAgIE5TVVJMICp0ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbTlNUZW1wb3Jh
cnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJDdXN0b21QYXRo
c1Rlc3QiXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIAorICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0
TmV0d29ya0NhY2hlRGlyZWN0b3J5OnRlbXBEaXJdOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6W1tbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV1dOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dXTsKKyAgICBO
U1N0cmluZyAqcGF0aCA9IHRlbXBEaXIucGF0aDsKKyAgICBOU0ZpbGVNYW5hZ2VyICpmaWxlTWFu
YWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICB3aGlsZSAoIVtmaWxl
TWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOnBhdGhdKQorICAgICAgICBVdGlsOjpzcGluUnVuTG9v
cCgpOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIFtmaWxlTWFuYWdlciByZW1vdmVJ
dGVtQXRQYXRoOnBhdGggZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfRkFMU0UoZXJyb3IpOwor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5OWYwYzc2
MTRhNWE4YmZkMmZlY2JkZTBjMzA5Y2U5ZmQyNzExNWE1Li40ZmQxZmQ1ZWU5ZGVhNjExNWUyYTUw
YjRlZTdhYTA2NWMzZWJlMTBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcuaApAQCAtNTIsNiArNTIsNyBAQAogLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNT
dHJpbmcgKilwYWdlTmFtZTsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihO
U1N0cmluZyAqKWh0bWw7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNT
dHJpbmcgKilodG1sIGJhc2VVUkw6KE5TVVJMICopdXJsOworLSAodm9pZClzeW5jaHJvbm91c2x5
TG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAtICh2b2lkKXN5bmNocm9ub3Vz
bHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKIC0gKEJPT0wpX3N5bmNo
cm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZCBhcmd1bWVudDoo
TlNTdHJpbmcgKilhcmd1bWVudDsKIC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOihO
U0FycmF5PE5TU3RyaW5nICo+ICopdGFnTmFtZXM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggMzRiMzExMjZmZjA3ZjY1N2ZjZjYxMmI2YWRhNWYxODFl
MjQxNjA4ZC4uM2RhODE3MjYxZTE3YzM5MjQzNDlkMTcxN2E2NmZjZGM3OTA2Zjk1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtNzEsNiArNzEsMTIg
QEAgU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVdpbmRvdykKICAgICBbc2VsZiBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIH0KIAorLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6KE5TVVJM
UmVxdWVzdCAqKXJlcXVlc3QKK3sKKyAgICBbc2VsZiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAg
ICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9CisKIC0gKHZvaWQp
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgYmFzZVVSTDooTlNV
UkwgKil1cmwKIHsKICAgICBbc2VsZiBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6dXJsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374215</attachid>
            <date>2019-07-16 10:10:19 -0700</date>
            <delta_ts>2019-07-18 11:41:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199817-20190716101018.patch</filename>
            <type>text/plain</type>
            <size>44539</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNmOGRlNmNlMmZiMmI0Njgy
YWE0NGI1YjM0YWNkZWZhZGU3Mjc4ODMuLjcyODUwODQ5ZGVmMmJhNDcyMTdlYmE0NDI1ZTllZTgy
N2ZkYTIwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDctMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIE5ldHdv
cmtDYWNoZSBvd25lcnNoaXAgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3JrU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODE3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBhbHNvIGFk
ZGVkIFNQSSB0byBzZXQgdGhlIHBhdGggb2YgdGhlIE5ldHdvcmtDYWNoZSB3aXRoIGFuIEFQSSB0
ZXN0LgorICAgICAgICBJZiB0aGlzIG5ldyBTUEkgaXMgbm90IHVzZWQsIGl0IGZhbGxzIGJhY2sg
dG8gZ2V0dGluZyB0aGUgY2FjaGUgbG9jYXRpb24gZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8g
bWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgV2Ugc3RpbGwgZ2V0IG9wdGlvbnMsIGNh
Y2hlIHNpemUsIGFuZCBjYWNoZSBtb2RlbCBmcm9tIHRoZSBOZXR3b3JrUHJvY2Vzcy4gIFRob3Nl
IHNob3VsZCBiZSBtaWdyYXRlZCB3aXRoIG5ldyBTUEkgbGF0ZXIuCisgICAgICAgIENsZWFyaW5n
IHRoZSBjYWNoZSBhbmQgb3RoZXIgb3BlcmF0aW9ucyBub3cgaXRlcmF0ZSB0aGUgTmV0d29ya1Nl
c3Npb25zIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlcmUgaXMgb25seSBvbmUgY2FjaGUuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9t
YWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFp
bnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
Q2FjaGVNb2RlbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpc2tDYWNoZURpcmVjdG9yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZU9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNh
Y2hlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNo
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2Fj
aGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lv
bkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lv
blNvdXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gbmV0d29ya0NhY2hlRGlyZWN0b3J5XSk6CisgICAgICAgICgtW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldE5ldHdvcmtDYWNoZURpcmVjdG9yeTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZE5ldHdvcmtD
YWNoZURpcmVjdG9yeSBjb25zdCk6CisKIDIwMTktMDctMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKG1hY09TIENhdGFsaW5hKTogQ2Fubm90
IHF1aWNrIGxvb2sgaHRtbCBkb2N1bWVudHMgaW4gTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlZjllMGM5Y2QzMjZlMWVjMzQy
NmE2M2MwZGRjZDVjY2FhNWJjYzllLi4yNGJkNzE2OTlhYWZmNGQyYjI4MzUzMzA0OTAwZjY0OWUz
ZTBiODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMTM1NywxMSArMTM1NywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAog
ICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKLQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewotICAgICAgICBmZXRjaERpc2tD
YWNoZUVudHJpZXMoY2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvcildKGF1dG8gZW50cmllcykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fd2Vic2l0ZURhdGEuZW50
cmllcy5hcHBlbmRWZWN0b3IoZW50cmllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBmb3IgKGF1
dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAg
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0b3Ip
XShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNTE2LDggKzE1MTcsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAjZW5kaWYKIAotICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSAmJiAhc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhjYWNoZSgp
LCBvcmlnaW5EYXRhcywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFu
ZGxlcildIHsgfSk7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAgICAg
ICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkKKyAgICAg
ICAgICAgIGNsZWFyRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBvcmlnaW5EYXRh
cywgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxlcildIHsgfSk7
CisgICAgfQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpDcmVkZW50aWFscykpIHsKICAgICAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC0xNzQ4LDE5ICsxNzUxLDIxIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgotICAgIAorCiAgICAgaWYg
KHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7
Ci0gICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhjYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNo
T3B0aW9ucywgW3RoaXMsIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNr
QWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldKGF1dG8gZW50cmllcykg
bXV0YWJsZSB7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5ldHdvcmtTZXNzaW9ucygp
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+
Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtkb21haW5zVG9EZWxldGVBbGxCdXRD
b29raWVzRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJl
ZigpLCBzZXNzaW9uID0gc2Vzc2lvbi5jb3B5UmVmKCldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7
CiAKLSAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0
ZTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLmNvbnRhaW5zKFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkp
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBlbnRyaWVz
VG9EZWxldGUuYXBwZW5kKGVudHJ5Lm9yaWdpbik7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tB
Z2dyZWdhdG9yLT5tX2RvbWFpbnMuYWRkKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChlbnRyeS5vcmlnaW4uaG9zdCkpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKGNhY2hlKCksIGVudHJpZXNUb0RlbGV0ZSwgW2NhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJp
ZXNUb0RlbGV0ZTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWRvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNG
b3IuY29udGFpbnMoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVu
dHJ5Lm9yaWdpbi5ob3N0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgZW50cmllc1RvRGVsZXRlLmFwcGVuZChlbnRyeS5vcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fZG9tYWlucy5hZGQoUmVn
aXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGVudHJ5Lm9yaWdpbi5ob3N0
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNsZWFyRGlza0NhY2hlRW50
cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBlbnRyaWVzVG9EZWxldGUsIFtjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIGRhdGFUeXBlc0ZvclVJUHJvY2VzcyA9IFdl
YnNpdGVEYXRhOjpmaWx0ZXIod2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6VUkpOwpAQCAtMTg4Miw5ICsxODg3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlZ2lz
dHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAj
ZW5kaWYKICAgICAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkpIHsKLSAgICAgICAgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKGNhY2hl
KCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJh
Y2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3Rv
cihlbnRyaWVzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG5l
dHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMsIFtjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXShhdXRvIGVudHJpZXMp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRl
RGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CiAgICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCkBAIC0xOTc2LDkgKzE5ODMsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVN
b2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGRpc2tGcmVlU2l6ZSAvPSBLQiAq
IDEwMDA7CiAgICAgICAgIGNhbGN1bGF0ZVVSTENhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgZGlza0Zy
ZWVTaXplLCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAg
ICAgfQotCi0gICAgaWYgKG1fY2FjaGUpCi0gICAgICAgIG1fY2FjaGUtPnNldENhcGFjaXR5KHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3
b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNz
aW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldENhcGFjaXR5KHVybENhY2hlRGlz
a0NhcGFjaXR5KTsKKyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGI4NmYyNDlkNDJhMDQ5ZWZm
MzI1NGRjNzlmMWM3ZDJkOTAwNWJmZC4uNjlmM2Q0ZjY3OTJjMGI5Y2M3YTEwMjg2YTgyYWM1M2Q4
YjEyOTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTExLDEyICsxMTEsMTIgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOwogY2xhc3MgV2ViU1dPcmlnaW5TdG9yZTsKICNlbmRpZgogCi1uYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKLWNsYXNzIEVuZ2luZTsKK25hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgeworZW51bSBj
bGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3Q7CiB9CiAKLW5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUg
ewotY2xhc3MgQ2FjaGU7CituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKK2NsYXNzIEVuZ2luZTsK
IH0KIAogY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHJp
dmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE5ldHdvcmtQcm9jZXNzPgpAQCAtMTYxLDggKzE2MSw2IEBAIHB1YmxpYzoKICAgICBBdXRoZW50
aWNhdGlvbk1hbmFnZXImIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAKLSAgICBOZXR3b3JrQ2FjaGU6OkNhY2hlKiBjYWNo
ZSgpIHsgcmV0dXJuIG1fY2FjaGUuZ2V0KCk7IH0KLQogICAgIHZvaWQgc2V0U2Vzc2lvbihjb25z
dCBQQUw6OlNlc3Npb25JRCYsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29ya1Nl
c3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7
CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYpIGNvbnN0OwpAQCAtMzQzLDYgKzM0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgY29uc3Qg
U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rpc2tDYWNoZURp
cmVjdG9yeTsgfQorICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
PiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KKyAgICAK
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkgY29uc3Q7CkBAIC00ODksOCArNDkwLDYgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxDYWNoZVN0b3JhZ2U6OkVuZ2luZT4+IG1fY2Fj
aGVFbmdpbmVzOwogCi0gICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6Q2FjaGU+IG1fY2FjaGU7Ci0K
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50TWFwOwogICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1l
bnRzOwogCkBAIC01NjYsNiArNTY1LDggQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2Rvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEgfTsKIAogICAgIEhhc2hNYXA8SVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsK
KworICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhNTFkNTM5
OGViYTQ2MTNhNTE5MmRmNWY1OTVmYmQwNGJlOGYzOWEuLjVjYTQ2ZGY1YmQwZDZjZTE1NGQ5Y2Zk
NWNiZjk0MzU5MGZkMjM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk4LDEwICs5OCwxMyBAQCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIHBhcgogICAgICwgbV9maWxlUmVmZXJlbmNlcyhjb25uZWN0aW9uLnJl
c29sdmVCbG9iUmVmZXJlbmNlcyhtX3BhcmFtZXRlcnMpKQogICAgICwgbV9pc0FsbG93ZWRUb0Fz
a1VzZXJGb3JDcmVkZW50aWFscyB7IG1fcGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzIH0K
ICAgICAsIG1fYnVmZmVyaW5nVGltZXIgeyAqdGhpcywgJk5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
YnVmZmVyaW5nVGltZXJGaXJlZCB9Ci0gICAgLCBtX2NhY2hlIHsgc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSA/IG51bGxwdHIgOiBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkuY2FjaGUoKSB9
CiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhtX2Nvbm5lY3Rp
b24tPmNhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoKSkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBjb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKQorICAgICAg
ICBtX2NhY2hlID0gc2Vzc2lvbi0+Y2FjaGUoKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5l
Y2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBleGlzdGVuY2Ugb2YgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCBpbiBXZWJDb3JlLgogICAgIC8vICAgICAgICBPbmNlIGJ1ZyAxMTYyMzMgaXMgcmVzb2x2ZWQs
IHRoaXMgQVNTRVJUIGNhbiBqdXN0IGJlICJtX3dlYlBhZ2VJRCAmJiBtX3dlYkZyYW1lSUQiCiAg
ICAgQVNTRVJUKChtX3BhcmFtZXRlcnMud2ViUGFnZUlEICYmIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlEKSB8fCBtX3BhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGM3ZmFmMDQz
ZTM5ZGNlZDczNzU3YjJlNzRmYjJhOTA5ODU2ZmMyOGIuLjJhMTE2MmQ3NWVhYThkZGZkOGRkMDE3
YTBiNmE1Nzk4MGEzMGFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oIgpAQCAtNzcsMTMgKzc4LDI1IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyYmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiBoYW5kbGUpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fc2Vzc2lv
bklEKHBhcmFtZXRlcnMuc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3Jr
UHJvY2VzcykKLSAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcj4oc2Vzc2lvbklEKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFnZXIo
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZNb3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpKQot
ewotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOworICAg
ICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyPihwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoU3RyaW5nKHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkpCit7CisgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKKyAgICAgICAgaWYgKG5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc051bGwoKSkKKyAg
ICAgICAgICAgIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IG5ldHdvcmtQcm9jZXNzLmRpc2tDYWNo
ZURpcmVjdG9yeSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworCisgICAgICAgIG1fY2FjaGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpv
cGVuKG5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtQcm9jZXNz
LmNhY2hlT3B0aW9ucygpKTsKKyAgICAgICAgaWYgKCFtX2NhY2hlKQorICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdl
YktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKKyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwogICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRQaW5nTG9hZEZ1bmN0
aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAppbmRleCA0ZDQ4NzMyZTI2MTZmNWNkMjU4OWUyZDIyOTQ2MDhjN2JmZDllYWM1
Li5iM2U0MTJlYmYzMDM1ZDgxOWNlZDI3NGFmMDBkNmFjNjkyOTdlNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC01OSw3ICs1OSwxMSBA
QCBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOwogCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKLSAgICAKKworbmFtZXNwYWNl
IE5ldHdvcmtDYWNoZSB7CitjbGFzcyBDYWNoZTsKK30KKwogY2xhc3MgTmV0d29ya1Nlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0
QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwogCisgICAgTmV0d29ya0NhY2hlOjpD
YWNoZSogY2FjaGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9CisKICAgICBQcmVmZXRjaENh
Y2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9CiAgICAgdm9p
ZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAKQEAg
LTEwOCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRh
c2soV2ViU29ja2V0VGFzayYpIHsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24o
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGly
ZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICBOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CkBAIC0xMzAsNiArMTM2LDcgQEAgcHJvdGVjdGVkOgogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1faXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKyAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA5MGRlZGE0MjEwOTU5N2IzOTAxZDI2MjBjZDUyZmEwMmZlMzRmMDhkLi40ZWZhOTM5NGI3Nzk1
MTdjMjMzZWM5ZDkxZTY1ZTliZDBhZjY2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3NpbwogI2lmIFVT
RShDVVJMKQogICAgICAgICAsIHsgfSwgeyB9CiAjZW5kaWYKLSAgICAgICAgLCB7IH0sIHsgfSwg
ZmFsc2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQorICAgICAgICAsIHsgfSwg
eyB9LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfQog
ICAgIH07CiB9CiAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKIAog
ICAgIGVuY29kZXIgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5IDw8IGxvY2FsU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG5ldHdvcmtDYWNoZURpcmVjdG9y
eSA8PCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAKICAgICBlbmNvZGVy
IDw8IGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIGVuY29kZXIgPDwg
YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsK
QEAgLTIxMSw2ICsyMTIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWMKICAgICBpZiAoIWxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPFN0cmluZz4gbmV0d29ya0NhY2hlRGlyZWN0b3J5Owor
ICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5OworICAgIGlmICghbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9uYWw8Ym9vbD4gZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBkZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKICAgICBpZiAoIWRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkKQpAQCAtMjUzLDYgKzI2NCw4IEBAIE9wdGlvbmFsPE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFBy
ZXZhbGVudFJlc291cmNlKQogICAgICAgICAsIFdURk1vdmUoKmxvY2FsU3RvcmFnZURpcmVjdG9y
eSkKICAgICAgICAgLCBXVEZNb3ZlKCpsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCisgICAgICAgICwgV1RGTW92ZSgqbmV0d29ya0NhY2hlRGlyZWN0b3J5KQorICAgICAgICAs
IFdURk1vdmUoKm5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICB9fTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY1NTk5NDdmMDBkYjU3NmZh
NDE4NGE1Njk3NTg2YTNkNWFkMjgwMjEuLjA1ODJlYTQ2MTJkY2U0YjVhNDU1ZTQ0ZDhmMjNmZjM4
NTY3M2JhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTkyLDYgKzkyLDgg
QEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogICAgIFN0cmlu
ZyBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBTdHJpbmcgbmV0d29ya0Nh
Y2hlRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBuZXR3b3JrQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAppbmRleCAyMGUwNzU4Zjg0NTlhOGRhOGZhNDUzYTA5N2IzMWY2YWRiN2Q1N2FmLi41NDc3MTE0
NTFhNTM2N2U3ODNmYzZhYWIyNjBmYjViZWViOWJmYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01OSw5ICs1OSw5
IEBAIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiByZXNvdXJjZVR5cGUoKQogICAgIHJldHVybiBy
ZXNvdXJjZTsKIH0KIAotUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8T3B0aW9u
PiBvcHRpb25zKQorUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRpb25TZXQ8Q2FjaGVPcHRp
b24+IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzdG9yYWdlID0gU3RvcmFnZTo6b3BlbihjYWNoZVBh
dGgsIG9wdGlvbnMuY29udGFpbnMoT3B0aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2Rl
OjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9yYWdlOjpNb2RlOjpOb3JtYWwpOworICAgIGF1dG8gc3Rv
cmFnZSA9IFN0b3JhZ2U6Om9wZW4oY2FjaGVQYXRoLCBvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0
aW9uOjpUZXN0aW5nTW9kZSkgPyBTdG9yYWdlOjpNb2RlOjpBdm9pZFJhbmRvbW5lc3MgOiBTdG9y
YWdlOjpNb2RlOjpOb3JtYWwpOwogCiAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJv
Y2Vzcykgb3BlbmVkIGNhY2hlIHN0b3JhZ2UsIHN1Y2Nlc3MgJWQiLCAhIXN0b3JhZ2UpOwogCkBA
IC03OCwxMiArNzgsMTIgQEAgc3RhdGljIHZvaWQgZHVtcEZpbGVDaGFuZ2VkKENhY2hlKiBjYWNo
ZSkKIH0KICNlbmRpZgogCi1DYWNoZTo6Q2FjaGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBSZWY8U3RvcmFnZT4mJiBzdG9yYWdlLCBPcHRpb25TZXQ8T3B0aW9uPiBvcHRpb25zKQor
Q2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUmVmPFN0b3JhZ2U+
JiYgc3RvcmFnZSwgT3B0aW9uU2V0PENhY2hlT3B0aW9uPiBvcHRpb25zKQogICAgIDogbV9zdG9y
YWdlKFdURk1vdmUoc3RvcmFnZSkpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9j
ZXNzKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElP
TikKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0
aW9uKSkgeworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKENhY2hlT3B0aW9uOjpTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbikpIHsKICAgICAgICAgbV9sb3dQb3dlck1vZGVOb3RpZmllciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViQ29yZTo6TG93UG93ZXJNb2RlTm90aWZpZXI+KFt0aGlzXShib29sIGlz
TG93UG93ZXJNb2RlRW5hYmxlZCkgewogICAgICAgICAgICAgQVNTRVJUKFdURjo6UnVuTG9vcDo6
aXNNYWluKCkpOwogICAgICAgICAgICAgaWYgKGlzTG93UG93ZXJNb2RlRW5hYmxlZCkKQEAgLTk4
LDcgKzk4LDcgQEAgQ2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
UmVmPFN0b3JhZ2U+JiYgc3RvcmFnZSwgT3B0aW9uU2V0PE8KICAgICB9CiAjZW5kaWYKIAotICAg
IGlmIChvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkpKSB7CisgICAgaWYg
KG9wdGlvbnMuY29udGFpbnMoQ2FjaGVPcHRpb246OlJlZ2lzdGVyTm90aWZ5KSkgewogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICAvLyBUcmlnZ2VycyB3aXRoICJub3RpZnl1dGlsIC1wIGNv
bS5hcHBsZS5XZWJLaXQuQ2FjaGUuZHVtcCIuCiAgICAgICAgIGludCB0b2tlbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDhi
YmMxNjk3ODU2MGU0NDYzMjIxZGY3M2FjYjEwODc2MmFiNzY5YTkuLmQ5NGZjNzM4MGYxOWE1ZjVm
NWI3OGVhMzllZjFkNjVhOTIxMWVlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtODcsMTcgKzg3LDE4IEBAIGVudW0gY2xh
c3MgVXNlRGVjaXNpb24gewogCiB1c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47CiAKLWNsYXNzIENh
Y2hlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGU+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNz
IE9wdGlvbiB7Ci0gICAgICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRl
IHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBh
cmUgbm8gcmVhZCB0aW1lb3V0cy4KLSAgICAgICAgVGVzdGluZ01vZGUgPSAxIDw8IDAsCi0gICAg
ICAgIFJlZ2lzdGVyTm90aWZ5ID0gMSA8PCAxLAorZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVp
bnQ4X3QgeworICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJj
ZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8g
cmVhZCB0aW1lb3V0cy4KKyAgICBUZXN0aW5nTW9kZSA9IDEgPDwgMCwKKyAgICBSZWdpc3Rlck5v
dGlmeSA9IDEgPDwgMSwKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pCi0gICAgICAgIFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAorICAg
IFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gMSA8PCAyLAogI2VuZGlmCi0gICAgfTsKLSAgICBz
dGF0aWMgUmVmUHRyPENhY2hlPiBvcGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhdGgsIE9wdGlvblNldDxPcHRpb24+KTsKK307CisKK2NsYXNzIENhY2hlIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q2FjaGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPENhY2hlPiBv
cGVuKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxD
YWNoZU9wdGlvbj4pOwogCiAgICAgdm9pZCBzZXRDYXBhY2l0eShzaXplX3QpOwogCkBAIC0xNDgs
NyArMTQ5LDcgQEAgcHVibGljOgogICAgIH5DYWNoZSgpOwogCiBwcml2YXRlOgotICAgIENhY2hl
KE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNldDxPcHRpb24+IG9wdGlv
bnMpOworICAgIENhY2hlKE5ldHdvcmtQcm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNl
dDxDYWNoZU9wdGlvbj4pOwogCiAgICAgS2V5IG1ha2VDYWNoZUtleShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDViNTJjYWJjMGQ5OTdl
YzU4OWEzN2E1MDg5YzkxNDViMjhhZWFkM2EuLjA3Yjk2MzNiZDQ4ODZmZmQ0NmZhNjY4ZDc2MWRk
ODYyZmM0NTI3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTExNywxOCArMTE3LDE0IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2Eo
Y29uc3QgTmV0d29ya1Byb2Nlc3NDCiAgICAgICAgIHJldHVybjsKIAogICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgT3B0aW9uU2V0PE5ldHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlv
bj4gY2FjaGVPcHRpb25zIHsgTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpSZWdpc3Rlck5v
dGlmeSB9OworICAgIG1fY2FjaGVPcHRpb25zID0geyBOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
OjpSZWdpc3Rlck5vdGlmeSB9OwogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbikKLSAgICAgICAgY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlOjpPcHRpb246OlRlc3RpbmdNb2RlKTsKKyAgICAgICAgbV9jYWNoZU9wdGlvbnMuYWRkKE5l
dHdvcmtDYWNoZTo6Q2FjaGVPcHRpb246OlRlc3RpbmdNb2RlKTsKICNpZiBFTkFCTEUoTkVUV09S
S19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hv
dWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pCi0gICAgICAgIGNh
Y2hlT3B0aW9ucy5hZGQoTmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uOjpTcGVjdWxhdGl2ZVJl
dmFsaWRhdGlvbik7CisgICAgICAgIG1fY2FjaGVPcHRpb25zLmFkZChOZXR3b3JrQ2FjaGU6OkNh
Y2hlT3B0aW9uOjpTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbik7CiAjZW5kaWYKIAotICAgIG1fY2Fj
aGUgPSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpvcGVuKCp0aGlzLCBtX2Rpc2tDYWNoZURpcmVjdG9y
eSwgY2FjaGVPcHRpb25zKTsKLSAgICBpZiAoIW1fY2FjaGUpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmtDYWNoZSwgIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBXZWJLaXQgbmV0
d29yayBkaXNrIGNhY2hlIik7Ci0KICAgICAvLyBEaXNhYmxlIE5TVVJMQ2FjaGUuCiAgICAgYXV0
byB1cmxDYWNoZShhZG9wdE5TKFtbTlNVUkxDYWNoZSBhbGxvY10gaW5pdFdpdGhNZW1vcnlDYXBh
Y2l0eTowIGRpc2tDYXBhY2l0eTowIGRpc2tQYXRoOm5pbF0pKTsKICAgICBbTlNVUkxDYWNoZSBz
ZXRTaGFyZWRVUkxDYWNoZTp1cmxDYWNoZS5nZXQoKV07CkBAIC0yMDAsMTUgKzE5NiwxMyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShXYWxsVGltZSBtb2RpZmllZFNpbmNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIGlmICghbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91
cCkKICAgICAgICAgbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2Ny
ZWF0ZSgpOwogCi0gICAgYXV0byogY2FjaGUgPSB0aGlzLT5jYWNoZSgpOwotICAgIGlmICghY2Fj
aGUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogICAgIGF1dG8gZ3JvdXAgPSBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwOwotICAgIGRp
c3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtl
QmxvY2tQdHIoW2NhY2hlLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgY2FjaGUtPmNsZWFy
KG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBkaXNwYXRj
aF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFrZUJsb2Nr
UHRyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWVkU2luY2Us
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgeworICAgICAgICBhdXRvIGFnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0
ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGZvciAoYXV0byYgc2Vzc2lv
biA6IG5ldHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byog
Y2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5jbGVhciht
b2RpZmllZFNpbmNlLCBbYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3IuY29weVJlZigpXSAoKSB7IH0p
OworICAgICAgICB9CiAgICAgfSkuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXgg
MDE4ODg5YTI4NjZlZWI3MzMzMTAwNzEyYjFlYTlkMDc5OWQzZTMzZC4uNGRjNGYyMjM0MzFjMzc4
MzY5YzdjMmU3ODc5MGI4Zjg4ZTlmYmRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtOTI0LDcg
KzkyNCw3IEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnByb3h5RGljdGlvbmFyeShjb25zdCBVUkwm
IGh0dHBQcm94eSwgY29uc3QgVVJMJiBodHRwc1Byb3h5CiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29j
b2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3
b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUo
cGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpLCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQ
cm9jZXNzLCBwYXJhbWV0ZXJzKQogICAgICwgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIocGFy
YW1ldGVycy5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKHBh
cmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJs
LmNwcAppbmRleCAxODM0OGE4ZDU1NzgzYTdhMGIxZDJmZGJkYTQxYTA2N2ZmMDY3MDA3Li5iYzI4
ODNhZTEzZTViMDI5M2M1MTY4NzU5YzU4NWMzZDRkNmM0ZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBOZXR3b3JrU2Vzc2lvbkN1cmw6Ok5ldHdvcmtTZXNzaW9uQ3VybChOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0
ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSks
IHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgIDog
TmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKCFw
YXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZS5pc0VtcHR5KCkpCiAgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVm
PENvb2tpZUphckRCPihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nl
c3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vz
c0lPUy5tbQppbmRleCA1ZjgyYWVkNzU3YjUxYzA1Y2ZhNTBkNzNlMzgzNjRjNWI4ZTBiMTRmLi4y
OWRkMDg3N2JkNGYwM2QwMDIxMWYyMzI1YTljMjNjNzJmODI4YzY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAt
NzgsOCArNzgsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZUZvckFsbE9yaWdp
bnModWludDMyX3QgY2FjaGVzVG9DbGVhcikKICAgICBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgcmVz
b3VyY2VDYWNoZXNUb0NsZWFyID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VDYWNoZXNUb0NsZWFyPihj
YWNoZXNUb0NsZWFyKTsKICAgICBpZiAocmVzb3VyY2VDYWNoZXNUb0NsZWFyID09IEluTWVtb3J5
UmVzb3VyY2VDYWNoZXNPbmx5KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fY2FjaGUpCi0g
ICAgICAgIG1fY2FjaGUtPmNsZWFyKCk7CisgICAgZm9yIChhdXRvJiBzZXNzaW9uIDogbmV0d29y
a1Nlc3Npb25zKCkudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gc2Vzc2lv
bi0+Y2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5jbGVhcigpOworICAgIH0KIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAu
Y3BwCmluZGV4IGRjYTdjNDFmNDMwNDBhNjIyZDcxMWFlOGFkNjI1MzBhMWNkNzhkYzkuLjdjNzhi
MGIzMGMyZDNjMTkwZTVmMzdiZGFiZGE3MTQ0ZDBhZDgxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYktpdENhY2hlZFJlc29sdmVyLmgiCkBAIC0z
OCw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+CisjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9G
aWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CkBAIC0xMTUsMTQgKzExNywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aQogCiAgICAgU291cE5ldHdvcmtTZXNzaW9uOjpjbGVhck9sZFNvdXBDYWNoZShGaWxlU3lzdGVt
OjpkaXJlY3RvcnlOYW1lKG1fZGlza0NhY2hlRGlyZWN0b3J5KSk7CiAKLSAgICBPcHRpb25TZXQ8
TmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uPiBjYWNoZU9wdGlvbnMgeyBOZXR3b3JrQ2FjaGU6
OkNhY2hlOjpPcHRpb246OlJlZ2lzdGVyTm90aWZ5IH07CisgICAgT3B0aW9uU2V0PE5ldHdvcmtD
YWNoZTo6Q2FjaGVPcHRpb24+IGNhY2hlT3B0aW9ucyB7IE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRp
b246OlJlZ2lzdGVyTm90aWZ5IH07CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKQogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKQotICAgICAgICBjYWNoZU9wdGlvbnMuYWRkKE5l
dHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlvbjo6U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pOworICAg
ICAgICBjYWNoZU9wdGlvbnMuYWRkKE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRpb246OlNwZWN1bGF0
aXZlUmV2YWxpZGF0aW9uKTsKICNlbmRpZgogCi0gICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4oKnRoaXMsIG1fZGlza0NhY2hlRGlyZWN0b3J5LCBjYWNoZU9wdGlvbnMpOwot
CiAgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5zZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQo
KSk7CiAKICAgICBpZiAoIXBhcmFtZXRlcnMubGFuZ3VhZ2VzLmlzRW1wdHkoKSkKQEAgLTE1Niwx
MSArMTU2LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5z
KHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlz
a0NhY2hlKFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fY2FjaGUpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8gYWdncmVnYXRvciA9
IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgewor
ICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBzZXNzaW9uLT5jYWNoZSgpKQorICAgICAgICAgICAg
Y2FjaGUtPmNsZWFyKG1vZGlmaWVkU2luY2UsIFthZ2dyZWdhdG9yID0gYWdncmVnYXRvci5jb3B5
UmVmKCldICgpIHsgfSk7CiAgICAgfQotICAgIG1fY2FjaGUtPmNsZWFyKG1vZGlmaWVkU2luY2Us
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1UZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAppbmRleCBmN2JiZmE1YzhhNjc2NjFm
Nzk0NDI1ZTE0ZjViYmYyZjU4NmMyMDNmLi5mN2RlYzcwNDhkMTRmYzM0MWZlZWMxNzlkNzYyYzk4
MmQ0OGVlZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBOZXR3b3JrU2Vzc2lvblNvdXA6
Ok5ldHdvcmtTZXNzaW9uU291cChOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtT
ZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJh
bWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgIDogTmV0d29ya1Nlc3Npb24obmV0d29ya1Byb2Nl
c3MsIHBhcmFtZXRlcnMpCiB7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNldENvb2tp
ZU9ic2VydmVySGFuZGxlcihbdGhpc10gewogICAgICAgICB0aGlzLT5uZXR3b3JrUHJvY2Vzcygp
LnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlcj4oKS0+bm90aWZ5Q29va2llc0RpZENoYW5nZSht
X3Nlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCBlMTc4ZGNkNmY3N2JlODlkZmZkODZlN2Ix
NTBjMDIyMmIwZmM5YWE4Li4xYzkxODgxOTcxNmM2ZDdiODhhNGNiZThjMzE4NjI0YzU0ZWIwYjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KQEAgLTI0OCw2ICsyNDgsOCBAQCBzdGF0aWMgVmVjdG9yPFdlYktp
dDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFS
ZWNvcgogICAgICAgICAgICAgY29uZmlnLT5zZXRDYWNoZVN0b3JhZ2VEaXJlY3RvcnkoY29uZmln
dXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5LnBhdGgpOwogICAgICAgICBpZiAoY29uZmln
dXJhdGlvbi5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSkKICAgICAgICAgICAg
IGNvbmZpZy0+c2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShjb25maWd1cmF0
aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBhdGgpOworICAgICAgICBp
ZiAoY29uZmlndXJhdGlvbi5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkpCisgICAgICAgICAgICBjb25m
aWctPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeShjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURp
cmVjdG9yeS5wYXRoKTsKICAgICB9IGVsc2UgewogICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29u
ZmlndXJhdGlvbi5fd2ViU3RvcmFnZURpcmVjdG9yeSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSk7CkBAIC0yNTYsNiArMjU4
LDcgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB0b1dlYnNpdGVE
YXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNv
bmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogICAgICAgICBS
RUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5fY2FjaGVTdG9yYWdlRGlyZWN0b3J5KTsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbmZpZ3VyYXRpb24uX3NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghY29uZmlndXJhdGlvbi5u
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkpOwogICAgIH0KIAogICAgIGlmIChjb25maWd1cmF0aW9uLnNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKaW5kZXggMDZhNzBlZTY0YzJkODc4MmVhZjMzYTI3OTViMWY4NWM3Mzc5
NDA4Yi4uYjk5ZmZlMzQ2ZDAwM2NhYjgwZGQ2MTcwZGNiNTM3MWU4ZDhmYzFkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTUzLDYgKzUzLDcgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5T
VVJMICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNl
dHRlcj1fc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKm5ldHdvcmtDYWNoZURpcmVjdG9yeSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAv
LyBUZXN0aW5nIG9ubHkuCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2Nr
ZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggMjY3YTNmNTRjMjY0ZDJmYThiNzUzYmVmNTFk
NmRlYmY3YzNhNWIwNi4uYjYzZjQ0NzRiYTlhM2M2OWIwNzRiZmRmOTM4ZTg0Y2I1OTdmYzdlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtODksNiArODks
MTkgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25m
aWd1cmF0aW9uLT5zZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSh1cmwucGF0aCk7CiB9CiAK
Ky0gKE5TVVJMICopbmV0d29ya0NhY2hlRGlyZWN0b3J5Cit7CisgICAgcmV0dXJuIFtOU1VSTCBm
aWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZURpcmVjdG9yeSgpIGlz
RGlyZWN0b3J5OllFU107Cit9CisKKy0gKHZvaWQpc2V0TmV0d29ya0NhY2hlRGlyZWN0b3J5OihO
U1VSTCAqKXVybAoreworICAgIGlmICghX2NvbmZpZ3VyYXRpb24tPmlzUGVyc2lzdGVudCgpKQor
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiQ2Fubm90IHNldCBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnkgb24gYSBub24tcGVyc2lzdGVu
dCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi4iXTsKKyAgICBjaGVja1VSTEFyZ3Vt
ZW50KHVybCk7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeSh1
cmwucGF0aCk7Cit9CisKIC0gKE5TVVJMICopX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5CiB7CiAg
ICAgcmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPndlYlNRTERh
dGFiYXNlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQppbmRleCAyYTU2YTc0MzZlOGEwMDg2MGE1YzBiZDExMjA1MzMzOTIzMTlj
MjI1Li5kN2QyMmQ5M2I5MmE2NWJiYmFjMTQwZWJiN2I2YzQ4ZDNmNGI3YThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC0xMTIsNiArMTEyLDExIEBAIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIGlm
ICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGxvY2FsU3RvcmFnZURpcmVj
dG9yeSwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAorICAgIGF1dG8g
bmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsK
KyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KG5ldHdvcmtDYWNoZURpcmVjdG9yeSwgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKKwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IGlzU2FmYXJpOwogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7CkBAIC0x
MzUsNyArMTQwLDkgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9y
ZTo6cGFyYW1ldGVycygpCiAgICAgICAgIG1fY29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2Vk
QnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZygpLAogICAgICAgICBXVEZN
b3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCiAgICAg
ICAgIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShsb2Nh
bFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIFdURk1vdmUobG9jYWxT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKKyAgICAgICAgV1RGTW92ZShuZXR3b3Jr
Q2FjaGVEaXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSksCiAgICAgfTsKICAgICBuZXR3b3JraW5nSGFzQmVndW4oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAppbmRleCA1YWI1M2RhMGQyNmVlZmI0MzA0Y2Q2OTJlZTgxNGNlOGUzODcwYmY5
Li4wMGM3ZmViMGUzOGI0NTI0ZGMyMThhMTU5ZWY3MTQ5NTRkNGRmYWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMjA2LDYgKzIwNiw4IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURp
cmVjdG9yaWVzSWZOZWNlc3NhcnkoKQogICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+
c2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURp
cmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5pbmRleGVkREJEYXRh
YmFzZURpcmVjdG9yeSgpKSk7CiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPmRldmljZUlkSGFz
aFNhbHRzU3RvcmFnZURpcmVjdG9yeSgpLmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENv
bmZpZ3VyYXRpb24tPnNldERldmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeShyZXNvbHZl
QW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3Vy
YXRpb24tPmRldmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeSgpKSk7CisgICAgaWYgKCFt
X2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZURpcmVjdG9yeSgpLmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeShyZXNv
bHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZp
Z3VyYXRpb24tPm5ldHdvcmtDYWNoZURpcmVjdG9yeSgpKSk7CiAgICAgaWYgKCFtX2NvbmZpZ3Vy
YXRpb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKS5pc0VtcHR5KCkpCiAgICAg
ICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5z
aW9uKG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpKSk7
CiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3RvcnkoKS5pc0VtcHR5KCkgJiYgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZjA3
Y2M2MThkNmMxMTMxZTUwNTRhMTQ4MjE2MzA1YWZmOWZmZTQ4Ni4uY2Y3NjBmYzU3ZTZjOTllMWNj
MmZhZTU2Y2M1ZTFlOWY1M2ZlMjRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTg0LDYgKzE4NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CiAgICAg
Y29uc3QgU3RyaW5nJiByZXNvbHZlZEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eSgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5sb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJlY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hl
RGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkTWVkaWFDYWNoZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5tZWRpYUNhY2hl
RGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkTWVkaWFLZXlzRGlyZWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWREYXRhYmFzZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT53ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSgpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYzMyNjE1ZGNkMWUzMzliMjM1NzdiMzQ3Y2MxNGMzMjU0NDEyNzk0
NC4uNGUyMzllODJjY2IxOGM2MzA4ZmZiMWY3MjZlYzE0NjMxYmVmMjQ5MCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE5LTA3LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW92ZSBOZXR3b3JrQ2FjaGUgb3duZXJzaGlwIGZyb20gTmV0d29ya1Byb2Nlc3Mg
dG8gTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTgxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ3VzdG9tUGF0aHMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFJlcXVlc3Q6XSk6CisKIDIwMTktMDctMTIgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtld3MtYXBwXSBFbmFibGUgbG9nZ2luZyBmb3IgY2xpY2tpbmcg
U3VibWl0VG9FV1MgYnV0dG9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1t
CmluZGV4IGU0ZWUwMjA2NjM1Y2NiZjcwN2Q4OTQ3Y2Q1ZWVmY2NhN2RiMzFkNGUuLjVmNWNhNWVl
OTA4OTQzZmQyNTUxYmUyOGFhY2I3ZWJiYjE1NjJjOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFT
dG9yZUN1c3RvbVBhdGhzLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
IAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRDUFNlcnZlci5oIgog
I2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgpAQCAtNTIxLDMgKzUyMiwzNSBAQCBURVNUKFdlYktpdCwg
QXBwbGljYXRpb25JZGVudGlmaWVycykKICAgICBFWFBFQ1RfVFJVRShbd2Vic2l0ZURhdGFTdG9y
ZS5fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpAIm90
aGVyaWRlbnRpZmllciJdKTsKICAgICBFWFBFQ1RfVFJVRShbW3dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3Ry
aW5nOkAidGVzdGlkZW50aWZpZXIiXSk7CiB9CisKK1RFU1QoV2ViS2l0LCBOZXR3b3JrQ2FjaGVE
aXJlY3RvcnkpCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgVENQ
U2VydmVyIHNlcnZlcihbXSAoaW50IHNvY2tldCkgeworICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQo
c29ja2V0KTsKKyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2UgPQorICAgICAgICAiSFRUUC8x
LjEgMjAwIE9LXHJcbiIKKyAgICAgICAgIkNhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MTAwMDAwMFxy
XG4iCisgICAgICAgICJDb250ZW50LUxlbmd0aDogNlxyXG5cclxuIgorICAgICAgICAiSGVsbG8h
IjsKKyAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlLCBzdHJsZW4ocmVz
cG9uc2UpKTsKKyAgICB9KTsKKyAgICAKKyAgICBOU1VSTCAqdGVtcERpciA9IFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRo
Q29tcG9uZW50OkAiQ3VzdG9tUGF0aHNUZXN0Il0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICAKKyAg
ICBhdXRvIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIHNldE5ldHdvcmtDYWNoZURpcmVjdG9yeTp0ZW1wRGlyXTsKKwor
ICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJz
aXRlRGF0YVN0b3JlOltbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2Vd
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2Vy
dmVyLnBvcnQoKV1dXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSB0ZW1wRGlyLnBhdGg7CisgICAg
TlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl07CisgICAgd2hpbGUgKCFbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDpwYXRoXSkKKyAg
ICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAg
ICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0UGF0aDpwYXRoIGVycm9yOiZlcnJvcl07CisgICAg
RVhQRUNUX0ZBTFNFKGVycm9yKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3LmgKaW5kZXggOTlmMGM3NjE0YTVhOGJmZDJmZWNiZGUwYzMwOWNlOWZkMjcxMTVhNS4u
NGZkMWZkNWVlOWRlYTYxMTVlMmE1MGI0ZWU3YWEwNjVjM2ViZTEwZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTUyLDYgKzUyLDcgQEAKIC0gKHZvaWQp
bG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CiAtICh2b2lkKXN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsK
Ky0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
OwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFn
ZU5hbWU7CiAtIChCT09MKV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmlu
ZyAqKWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQ7CiAtICh2b2lkKWV4cGVj
dEVsZW1lbnRUYWdzSW5PcmRlcjooTlNBcnJheTxOU1N0cmluZyAqPiAqKXRhZ05hbWVzOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDM0YjMxMTI2ZmYw
N2Y2NTdmY2Y2MTJiNmFkYTVmMTgxZTI0MTYwOGQuLjNkYTgxNzI2MWUxN2MzOTI0MzQ5ZDE3MTdh
NjZmY2RjNzkwNmY5NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0KQEAgLTcxLDYgKzcxLDEyIEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlXaW5kb3cp
CiAgICAgW3NlbGYgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiB9CiAKKy0gKHZvaWQpc3luY2hyb25v
dXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0Cit7CisgICAgW3NlbGYgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW3NlbGYgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOworfQorCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJp
bmcgKilodG1sIGJhc2VVUkw6KE5TVVJMICopdXJsCiB7CiAgICAgW3NlbGYgbG9hZEhUTUxTdHJp
bmc6aHRtbCBiYXNlVVJMOnVybF07Cg==
</data>
<flag name="review"
          id="390009"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>