<?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>222706</bug_id>
          
          <creation_ts>2021-03-03 19:32:40 -0800</creation_ts>
          <short_desc>Remove the HTTPSUpgradeEnabled experimental feature</short_desc>
          <delta_ts>2021-03-23 09:04:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1735649</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-03 19:32:40 -0800</bug_when>
    <thetext>Alex says that HTTPSUpgradeEnabled doesn&apos;t do anything and should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735662</commentid>
    <comment_count>1</comment_count>
      <attachid>422178</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 20:33:26 -0800</bug_when>
    <thetext>Created attachment 422178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735675</commentid>
    <comment_count>2</comment_count>
      <attachid>422181</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 21:46:18 -0800</bug_when>
    <thetext>Created attachment 422181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736000</commentid>
    <comment_count>3</comment_count>
      <attachid>422181</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-04 13:41:12 -0800</bug_when>
    <thetext>Comment on attachment 422181
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736001</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-04 13:43:39 -0800</bug_when>
    <thetext>r273916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736072</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-04 15:50:17 -0800</bug_when>
    <thetext>Do we still need generate-https-upgrade-database.sh, HTTPSUpgradeList.db etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736161</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-04 20:30:39 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736162</commentid>
    <comment_count>7</comment_count>
      <attachid>422329</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-04 20:30:40 -0800</bug_when>
    <thetext>Created attachment 422329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736176</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-04 21:47:59 -0800</bug_when>
    <thetext>And r273949</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738340</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-10 19:33:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/75296949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742654</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-22 20:06:03 -0700</bug_when>
    <thetext>Is this done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742823</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-23 09:04:14 -0700</bug_when>
    <thetext>yes</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422178</attachid>
            <date>2021-03-03 20:33:26 -0800</date>
            <delta_ts>2021-03-03 21:46:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222706-20210303203325.patch</filename>
            <type>text/plain</type>
            <size>35008</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmOWUwMjcxNjU1YWUzNjJhYzcxMzEx
YWZjNzhiZDJiNGI1YTMwM2IuLmM3MWQ4ZTM4OWUzNDEzMDliMzQ3ZGNmNDYwYjQ2MGQ4MGNmY2Zj
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIEhUVFBTVXBncmFk
ZUVuYWJsZWQgZXhwZXJpbWVudGFsIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyBhIGdvb2QgZXhwZXJpbWVudGFsIGltcGxlbWVu
dGF0aW9uLCBidXQgdGhlIGZlYXR1cmUgaXMgbm93IGltcGxlbWVudGVkIGluIG1ha2VTZWN1cmVJ
Zk5lY2Vzc2FyeQorICAgICAgICBhbmQgdHVybmVkIG9uIGFuZCBvZmYgYnkgV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi51cGdyYWRlS25vd25Ib3N0c1RvSFRUUFMuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMDMt
MDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBN
RURJQV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MjgwNDM3OWVkZTZjOGRl
MjI0OTYxYTNiYzE3YzE2YmFiYmRjOGM4Li5hZmExODUyMjExNGE5OTZiZjI3OWRmNWNjZTI5NDYy
NDgyMmIwOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTAzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRo
ZSBIVFRQU1VwZ3JhZGVFbmFibGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI3MDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oOiBSZW1vdmVkLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYWRlSWZOZWVkZWQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcik6IERlbGV0
ZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkUGFyYW1ldGVyc1NoYXJlZCk6CisKIDIw
MjEtMDMtMDIgIFJpY2t5IE1vbmRlbGxvICA8cm1vbmRlbGxvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbmNvbmRpdGlvbmFsbHkgcmV0dXJuIGluZm9ybWF0aW9uIGluIF9hdXRvZmlsbENvbnRleHQg
U1BJIHdoZW4gYSBmaWVsZCBpcyBmb2N1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmlu
ZGV4IDE4ODNiODY1YjA1ZTU0Zjg4ODc4MmIwZDdkNTZlMzQwODA1MWNlYjguLjRiMDA0NDc3ZmU1
NTE4YmYyZjYyY2I0OTcwMjMwMzQ3MzYyNWJlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCkBAIC0zODAsMTkgKzM4MCw2IEBAIEhUVFAzRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAg
ICBkZWZhdWx0OiBmYWxzZQogCi0jIEZJWE1FOiBUaGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
V2ViS2l0TGVnYWN5LCBzbyBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBXZWJLaXRMZWdhY3kgZW50
aXJlbHkuCi1IVFRQU1VwZ3JhZGVFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQXV0b21hdGljIEhUVFBTIHVwZ3JhZGUiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkF1dG9tYXRpYyBIVFRQUyB1cGdyYWRlIGZvciBrbm93biBzdXBwb3J0ZWQgc2l0ZXMi
Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxz
ZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAg
IGRlZmF1bHQ6IGZhbHNlCi0KIEhpZ2hsaWdodEFQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJIaWdobGlnaHQgQVBJIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQyZWI3YzkxNjdmMGU3ZDhiY2YzNTY1OWFk
OWFhNGJmYWZkZjA0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmgi
Ci0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFz
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlU3RhdGVtZW50Lmg+Ci0jaW5jbHVkZSA8cGFs
L1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0KLSN1
bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECi0jdW5kZWYgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgZm10LCAu
Li4pIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
TmV0d29yaywgIiVwIC0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI6OiIgZm10LCB0aGlzLCAj
I19fVkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Np
b25JRCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y29uc3RleHByIGF1dG8gaHR0cHNVcGdyYWRlQ2hlY2tlclF1ZXJ5ID0gIlNFTEVDVCBob3N0IEZS
T00gaG9zdHMgV0hFUkUgaG9zdCA9ID8iX3M7Ci0KLXN0YXRpYyBjb25zdCBTdHJpbmcmIG5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyRGF0YWJhc2VQYXRoKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aDsK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAobmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXJE
YXRhYmFzZVBhdGguZ2V0KCkuaXNOdWxsKCkpIHsKLSAgICAgICAgQ0ZCdW5kbGVSZWYgd2ViS2l0
QnVuZGxlID0gQ0ZCdW5kbGVHZXRCdW5kbGVXaXRoSWRlbnRpZmllcihDRlNUUigiY29tLmFwcGxl
LldlYktpdCIpKTsKLSAgICAgICAgYXV0byByZXNvdXJjZVVSTCA9IGFkb3B0Q0YoQ0ZCdW5kbGVD
b3B5UmVzb3VyY2VVUkwod2ViS2l0QnVuZGxlLCBDRlNUUigiSFRUUFNVcGdyYWRlTGlzdCIpLCBD
RlNUUigiZGIiKSwgbnVsbHB0cikpOwotICAgICAgICBpZiAocmVzb3VyY2VVUkwpCi0gICAgICAg
ICAgICBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aC5nZXQoKSA9IENGVVJM
R2V0U3RyaW5nKHJlc291cmNlVVJMLmdldCgpKTsKLSAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpCi0gICAgcmV0dXJuIG5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyRGF0YWJhc2VQYXRo
OwotfQotCi1OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjo6TmV0d29ya0hUVFBTVXBncmFkZUNo
ZWNrZXIoKQotICAgIDogbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIkhUVFBTIFVwZ3Jh
ZGUgQ2hlY2tlciBUaHJlYWQiKSkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwot
Ci0gICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFt0aGlzXSB7Ci0gICAgICAgIGF1dG8gcGF0aCA9
IG5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyRGF0YWJhc2VQYXRoKCk7Ci0gICAgICAgIGlmIChw
YXRoLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIgZmFpbGVkIHRvIGluaXRpYWxpemUgYmVj
YXVzZSB0aGUgZGF0YWJhc2UgcGF0aCBpcyBlbXB0eSIsIHRoaXMpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9kYXRhYmFzZSA9IG1ha2VVbmlxdWU8V2ViQ29y
ZTo6U1FMaXRlRGF0YWJhc2U+KCk7Ci0gICAgICAgIGJvb2wgaXNEYXRhYmFzZU9wZW4gPSBtX2Rh
dGFiYXNlLT5vcGVuKHBhdGgsIFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpPcGVuTW9kZTo6UmVh
ZE9ubHkpOwotICAgICAgICBpZiAoIWlzRGF0YWJhc2VPcGVuKSB7Ci0jaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBOZXR3b3Jr
SFRUUFNVcGdyYWRlQ2hlY2tlcjo6b3BlbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLT5sYXN0RXJy
b3JNc2coKSwgcGF0aC51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBTaW5jZSB3ZSBhcmUgdXNpbmcgYSB3b3JrZXJRdWV1ZSwgdGhlIHNlcXVlbnRpYWwgZGlz
cGF0Y2ggYmxvY2tzIG1heSBiZSBjYWxsZWQgYnkgZGlmZmVyZW50IHRocmVhZHMuCi0gICAgICAg
IG1fZGF0YWJhc2UtPmRpc2FibGVUaHJlYWRpbmdDaGVja3MoKTsKLQotICAgICAgICBtX3N0YXRl
bWVudCA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PigqbV9kYXRhYmFzZSwg
aHR0cHNVcGdyYWRlQ2hlY2tlclF1ZXJ5KTsKLSAgICAgICAgaW50IGlzU3RhdGVtZW50UHJlcGFy
ZWQgPSAobV9zdGF0ZW1lbnQtPnByZXBhcmUoKSA9PSBTUUxJVEVfT0spOwotICAgICAgICBBU1NF
UlQoaXNTdGF0ZW1lbnRQcmVwYXJlZCk7Ci0gICAgICAgIGlmICghaXNTdGF0ZW1lbnRQcmVwYXJl
ZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2RpZFNldHVwQ29tcGxldGVTdWNj
ZXNzZnVsbHkgPSB0cnVlOwotICAgIH0pOwotfQotCi1OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
cjo6fk5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyKCkKLXsKLSAgICBpZiAobV9kYXRhYmFzZSkK
LSAgICAgICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFtkYXRhYmFzZSA9IFdURk1vdmUobV9kYXRh
YmFzZSksIHN0YXRlbWVudCA9IFdURk1vdmUobV9zdGF0ZW1lbnQpXSB7IH0pOwotfQotCi12b2lk
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeShTdHJpbmcmJiBob3N0LCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fd29ya1F1ZXVl
LT5kaXNwYXRjaChbdGhpcywgaG9zdCA9IGhvc3QuaXNvbGF0ZWRDb3B5KCksIHNlc3Npb25JRCwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VS
VChtX2RpZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHkpOwotCi0gICAgICAgIGludCBiaW5kVGV4
dFJlc3VsdCA9IG1fc3RhdGVtZW50LT5iaW5kVGV4dCgxLCBXVEZNb3ZlKGhvc3QpKTsKLSAgICAg
ICAgQVNTRVJUX1VOVVNFRChiaW5kVGV4dFJlc3VsdCwgYmluZFRleHRSZXN1bHQgPT0gU1FMSVRF
X09LKTsKLQotICAgICAgICBpbnQgc3RlcFJlc3VsdCA9IG1fc3RhdGVtZW50LT5zdGVwKCk7Ci0g
ICAgICAgIGlmIChzdGVwUmVzdWx0ICE9IFNRTElURV9ST1cgJiYgc3RlcFJlc3VsdCAhPSBTUUxJ
VEVfRE9ORSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJzdGVwIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUg
JWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMi
LCBzdGVwUmVzdWx0LCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSwgbmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXJEYXRhYmFzZVBhdGgoKS51dGY4KCkuZGF0YSgpKTsKLSNlbHNlCi0gICAgICAg
ICAgICBVTlVTRURfVkFSSUFCTEUoc2Vzc2lvbklEKTsKLSNlbmRpZgotICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKGZhbHNlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9zdGF0ZW1lbnQtPnJl
c2V0KCk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09
IFNRTElURV9PSyk7Ci0KLSAgICAgICAgYm9vbCBmb3VuZEhvc3QgPSAoc3RlcFJlc3VsdCA9PSBT
UUxJVEVfUk9XKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJx
dWVyeSAtIFJhbiBzdWNjZXNzZnVsbHkuIFJlc3VsdCA9ICVzIiwgKGZvdW5kSG9zdCA/ICJ0cnVl
IiA6ICJmYWxzZSIpKTsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtmb3VuZEhv
c3QsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewotICAgICAgICAg
ICAgY2FsbGJhY2soZm91bmRIb3N0KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxZDIwMzE0ZWFhNDllOTZhNDFhNTdjZThkNDIyMjZiYmZiMDcyMzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8
YXRvbWljPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgotI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Y2xhc3MgU1FMaXRlRGF0YWJhc2U7Ci1jbGFzcyBTUUxpdGVTdGF0ZW1lbnQ7Ci19Ci0KLW5hbWVz
cGFjZSBQQUwgewotY2xhc3MgU2Vzc2lvbklEOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyKCk7Ci0gICAg
fk5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyKCk7Ci0KLSAgICAvLyBSZXR1cm5zIGB0cnVlYCBh
ZnRlciBpbnRlcm5hbCBzZXR1cCBpcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLiBJZiB0aGVyZSBp
cyBhbiBlcnJvciB3aXRoIHNldHVwLCBvciBpZiBzZXR1cCBpcyBpbi1wcm9ncmVzcywgaXQgd2ls
bCByZXR1cm4gYGZhbHNlYC4KLSAgICBib29sIGRpZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHko
KSBjb25zdCB7IHJldHVybiBtX2RpZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHk7IH07Ci0KLSAg
ICAvLyBRdWVyaWVzIGRhdGFiYXNlIGFmdGVyIHNldHVwIGlzIGNvbXBsZXRlLgotICAgIHZvaWQg
cXVlcnkoU3RyaW5nJiYsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKLQotcHJpdmF0ZToKLSAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U+IG1fZGF0YWJhc2U7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9zdGF0ZW1lbnQ7
Ci0gICAgc3RkOjphdG9taWM8Ym9vbD4gbV9kaWRTZXR1cENvbXBsZXRlU3VjY2Vzc2Z1bGx5IHsg
ZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggYjM4OWNl
YWM3MGFhMDc5ZmMzYWYzMDQ3NjE2NjhjNWYxZGEzMTkwYy4uOWExOWIxYzJmODg0NjRhNTVmZWE4
MDIzYzc0MjRlN2NiYjFlMWFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvTGVnYWN5U2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
IAorI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtMb2FkQ2hlY2tlcjo6IiBmbXQs
IHRoaXMsICMjX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTAsNyArNTEs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEo
KSB8fCB1cmwucHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8IG9yaWdpbi0+Y2FuUmVxdWVz
dCh1cmwpOwogfQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbmV0d29y
a1Jlc291cmNlTG9hZGVyLCBOZXR3b3JrU2NoZW1lUmVnaXN0cnkqIHNjaGVtZVJlZ2lzdHJ5LCBG
ZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VP
cmlnaW4sIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIFByZWZsaWdodFBvbGlj
eSBwcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRl
RW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRU
eXBlIHJlcXVlc3RMb2FkVHlwZSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVj
a2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Jlc291cmNlTG9hZGVy
KiBuZXR3b3JrUmVzb3VyY2VMb2FkZXIsIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSogc2NoZW1lUmVn
aXN0cnksIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgSFRUUEhlYWRlck1hcCYmIG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYm
IHNvdXJjZU9yaWdpbiwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgUHJlZmxp
Z2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUp
CiAgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCkBAIC02Miwx
NyArNjMsMTAgQEAgTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmUKICAgICAsIG1fcHJlZmxpZ2h0UG9s
aWN5KHByZWZsaWdodFBvbGljeSkKICAgICAsIG1fcmVmZXJyZXIoV1RGTW92ZShyZWZlcnJlcikp
CiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLCBt
X2lzSFRUUFNVcGdyYWRlRW5hYmxlZChpc0hUVFBTVXBncmFkZUVuYWJsZWQpCi0jZW5kaWYKICAg
ICAsIG1fcmVxdWVzdExvYWRUeXBlKHJlcXVlc3RMb2FkVHlwZSkKICAgICAsIG1fc2NoZW1lUmVn
aXN0cnkoc2NoZW1lUmVnaXN0cnkpCiAgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcihtYWtl
V2Vha1B0cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpKQogewotI2lmICFQTEFURk9STShDT0NPQSkK
LSAgICBVTlVTRURfUEFSQU0oaXNIVFRQU1VwZ3JhZGVFbmFibGVkKTsKLSNlbmRpZgotCiAgICAg
bV9pc1NhbWVPcmlnaW5SZXF1ZXN0ID0gaXNTYW1lT3JpZ2luKG1fdXJsLCBtX29yaWdpbi5nZXQo
KSk7CiAgICAgc3dpdGNoIChvcHRpb25zLmNyZWRlbnRpYWxzKSB7CiAgICAgY2FzZSBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOgpAQCAtMjA4LDgzICsyMDIsMzkgQEAgYXV0byBO
ZXR3b3JrTG9hZENoZWNrZXI6OmFjY2Vzc0NvbnRyb2xFcnJvckZvclZhbGlkYXRpb25IYW5kbGVy
KFN0cmluZyYmIG1lc3NhZ2UKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvciB7IFN0cmluZyB7IH0s
IDAsIG1fdXJsLCBXVEZNb3ZlKG1lc3NhZ2UpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3ND
b250cm9sIH07CiB9CiAKLXZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjphcHBseUhUVFBTVXBncmFk
ZUlmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGhhbmRsZXIpIGNvbnN0Cit2b2lkIE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y2hlY2tSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUNsaWVudCogY2xpZW50LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIp
CiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFtX2lzSFRUUFNVcGdyYWRlRW5hYmxl
ZCB8fCBtX3JlcXVlc3RMb2FkVHlwZSAhPSBMb2FkVHlwZTo6TWFpbkZyYW1lKSB7Ci0gICAgICAg
IGhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvJiB1cmwgPSByZXF1ZXN0LnVybCgpOwotCi0gICAgLy8gT25seSB1cGdyYWRlIGh0dHAg
dXJscy4KLSAgICBpZiAoIXVybC5wcm90b2NvbElzKCJodHRwIikpIHsKLSAgICAgICAgaGFuZGxl
cihXVEZNb3ZlKHJlcXVlc3QpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8m
IGh0dHBzVXBncmFkZUNoZWNrZXIgPSBtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlcigpOworICAgIFJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QgPSByZXF1
ZXN0OwogCi0gICAgLy8gRG8gbm90IHdhaXQgZm9yIGh0dHBzVXBncmFkZUNoZWNrZXIgdG8gY29t
cGxldGUgaXRzIHNldHVwLgotICAgIGlmICghaHR0cHNVcGdyYWRlQ2hlY2tlci5kaWRTZXR1cENv
bXBsZXRlU3VjY2Vzc2Z1bGx5KCkpIHsKLSAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3Qp
KTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChhdXRvKiBjb250ZW50U2VjdXJpdHlQb2xpY3kg
PSB0aGlzLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSkgeworICAgICAgICBpZiAodGhpcy0+aXNS
ZWRpcmVjdGVkKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgPyBDb250ZW50U2VjdXJpdHlQb2xpY3k6Oklu
c2VjdXJlUmVxdWVzdFR5cGU6Ok5hdmlnYXRpb24gOiBDb250ZW50U2VjdXJpdHlQb2xpY3k6Oklu
c2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQ7CisgICAgICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xp
Y3ktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCB0eXBlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoIXRoaXMtPmlzQWxsb3dlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5
KHJlcXVlc3QsIGNsaWVudCkpIHsKKyAgICAgICAgICAgIGhhbmRsZXIodGhpcy0+YWNjZXNzQ29u
dHJvbEVycm9yRm9yVmFsaWRhdGlvbkhhbmRsZXIoIkJsb2NrZWQgYnkgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kuIl9zKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAK
LSAgICBodHRwc1VwZ3JhZGVDaGVja2VyLnF1ZXJ5KHVybC5ob3N0KCkudG9TdHJpbmcoKSwgbV9z
ZXNzaW9uSUQsIFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgaGFuZGxlciA9IFdURk1vdmUo
aGFuZGxlcildIChib29sIGZvdW5kSG9zdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChmb3VuZEhv
c3QpIHsKLSAgICAgICAgICAgIGF1dG8gbmV3VVJMID0gcmVxdWVzdC51cmwoKTsKLSAgICAgICAg
ICAgIG5ld1VSTC5zZXRQcm90b2NvbCgiaHR0cHMiKTsKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0
VVJMKG5ld1VSTCk7CisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKyAgICB0aGlzLT5w
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoV1RGTW92ZShyZXF1ZXN0KSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgb3JpZ2lu
YWxSZXF1ZXN0ID0gV1RGTW92ZShvcmlnaW5hbFJlcXVlc3QpXShhdXRvJiYgcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKKyAgICAgICAgICAgIEFT
U0VSVChyZXN1bHQuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKTsKKyAgICAgICAgICAgIGhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQuZXJyb3IoKSkpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0KLSAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKLSAgICB9KTsKLSNlbHNl
Ci0gICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKLSNlbmRpZgotfQotCi12b2lkIE5ldHdv
cmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENv
bnRlbnRTZWN1cml0eVBvbGljeUNsaWVudCogY2xpZW50LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhh
bmRsZXIpCi17Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3Q7
Ci0KLSAgICBhcHBseUhUVFBTVXBncmFkZUlmTmVlZGVkKFdURk1vdmUocmVxdWVzdCksIFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2xpZW50LCBoYW5kbGVyID0gV1RGTW92
ZShoYW5kbGVyKSwgb3JpZ2luYWxSZXF1ZXN0ID0gV1RGTW92ZShvcmlnaW5hbFJlcXVlc3QpXShh
dXRvJiYgcmVxdWVzdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm4gaGFuZGxlcih7IFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpUeXBl
OjpDYW5jZWxsYXRpb24gfX0pOwotCi0gICAgICAgIGlmIChhdXRvKiBjb250ZW50U2VjdXJpdHlQ
b2xpY3kgPSB0aGlzLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSkgewotICAgICAgICAgICAgaWYg
KHRoaXMtPmlzUmVkaXJlY3RlZCgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byB0eXBlID0gbV9v
cHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSA/IENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TmF2aWdhdGlvbiA6IENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZDsKLSAgICAgICAgICAgICAgICBj
b250ZW50U2VjdXJpdHlQb2xpY3ktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1
ZXN0LCB0eXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdGhpcy0+aXNBbGxv
d2VkQnlDb250ZW50U2VjdXJpdHlQb2xpY3kocmVxdWVzdCwgY2xpZW50KSkgewotICAgICAgICAg
ICAgICAgIGhhbmRsZXIodGhpcy0+YWNjZXNzQ29udHJvbEVycm9yRm9yVmFsaWRhdGlvbkhhbmRs
ZXIoIkJsb2NrZWQgYnkgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuIl9zKSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0LnZhbHVlKCku
cmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CisgICAgICAgICAgICBoYW5kbGVyKHdlYWtU
aGlzLT5hY2Nlc3NDb250cm9sRXJyb3JGb3JWYWxpZGF0aW9uSGFuZGxlcigiQmxvY2tlZCBieSBj
b250ZW50IGV4dGVuc2lvbiJfcykpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0K
LSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgICAgICB0aGlzLT5wcm9jZXNzQ29u
dGVudFJ1bGVMaXN0c0ZvckxvYWQoV1RGTW92ZShyZXF1ZXN0KSwgW3RoaXMsIHdlYWtUaGlzID0g
V1RGTW92ZSh3ZWFrVGhpcyksIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpLCBvcmlnaW5hbFJl
cXVlc3QgPSBXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdCldKGF1dG8mJiByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQocmVzdWx0LmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSk7Ci0gICAgICAgICAgICAg
ICAgaGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5lcnJvcigpKSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSgpLnJlc3Vs
dHMuc3VtbWFyeS5ibG9ja2VkTG9hZCkgewotICAgICAgICAgICAgICAgIGhhbmRsZXIodGhpcy0+
YWNjZXNzQ29udHJvbEVycm9yRm9yVmFsaWRhdGlvbkhhbmRsZXIoIkJsb2NrZWQgYnkgY29udGVu
dCBleHRlbnNpb24iX3MpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGhh
bmRsZXIoeyBSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9u
IH19KTsKLSAgICAgICAgICAgIHRoaXMtPmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0T3JEb1N5bnRo
ZXRpY1JlZGlyZWN0KFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQudmFs
dWUoKS5yZXF1ZXN0KSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgICAgIH0pOworICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVDaGVja2luZ1JlcXVlc3RPckRvU3ludGhldGljUmVkaXJlY3QoV1RG
TW92ZShvcmlnaW5hbFJlcXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLnJlcXVlc3QpLCBX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICB9KTsKICNlbHNlCi0gICAgICAgIHRoaXMtPmNvbnRpbnVl
Q2hlY2tpbmdSZXF1ZXN0T3JEb1N5bnRoZXRpY1JlZGlyZWN0KFdURk1vdmUob3JpZ2luYWxSZXF1
ZXN0KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgdGhpcy0+Y29u
dGludWVDaGVja2luZ1JlcXVlc3RPckRvU3ludGhldGljUmVkaXJlY3QoV1RGTW92ZShvcmlnaW5h
bFJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICNlbmRpZgot
ICAgIH0pOwogfQogCiB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y29udGludWVDaGVja2luZ1Jl
cXVlc3RPckRvU3ludGhldGljUmVkaXJlY3QoUmVzb3VyY2VSZXF1ZXN0JiYgb3JpZ2luYWxSZXF1
ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiBjdXJyZW50UmVxdWVzdCwgVmFsaWRhdGlvbkhhbmRsZXIm
JiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmgKaW5kZXggNGQ5Y2E5NmE4NzUxMGMwNzhiNmM5MmI3YzQzZDI0NTk4MThmYWVj
My4uY2FjMjYxNjk4YTNmOWQzYWNkMTkwMjU1NGVmNWIzOGU1NzdiZmQzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC01OCw3
ICs1OCw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIExvYWRUeXBl
IDogYm9vbCB7IE1haW5GcmFtZSwgT3RoZXIgfTsKIAotICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihO
ZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIE5ldHdvcmtTY2hlbWVSZWdp
c3RyeSosIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVy
LCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVF
eHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUg
PSBMb2FkVHlwZTo6T3RoZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2Vz
cyYsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSosIFdlYkNv
cmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2lu
LCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0
TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsK
IAogICAgIHN0cnVjdCBSZWRpcmVjdGlvblRyaXBsZXQgewpAQCAtMTI1LDggKzEyNSw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIENvbnRlbnRFeHRlbnNpb25DYWxsYmFjayYmKTsKICNlbmRpZgog
Ci0gICAgdm9pZCBhcHBseUhUVFBTVXBncmFkZUlmTmVlZGVkKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
KT4mJikgY29uc3Q7Ci0KICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgbV9vcHRpb25zOwogICAg
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CkBAIC0xNTQsMTAgKzE1Miw2IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2NoZWNrQ29udGVudEV4dGVuc2lvbnMgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgeyBmYWxzZSB9
OwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYm9vbCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxl
ZCB7IGZhbHNlIH07Ci0jZW5kaWYKLQogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRp
b24gbV9sb2FkSW5mb3JtYXRpb247CiAKICAgICBMb2FkVHlwZSBtX3JlcXVlc3RMb2FkVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAw
ODMyMmI0MjcyMGRmODI3ZWI1ZTNhMDM4Y2YxMzgxMWNjYjY3ZDc5Li4xYjQzNzY3YTdiMzhhOTVj
MzU3NjI0MjJjYjc4NWYyYWE3M2Y0NTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiRG93bmxv
YWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaCIKLSNpbmNsdWRlICJOZXR3
b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
ICNpbmNsdWRlICJXZWJJREJTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlm
aWVyLmgiCkBAIC0zMjIsMTAgKzMyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIHBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyJiBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcigpOwotI2VuZGlmCi0KICAgICBjb25zdCBT
dHJpbmcmIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3VpUHJv
Y2Vzc0J1bmRsZUlkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgcmVmKCkgY29uc3Qgb3ZlcnJpZGUg
eyBUaHJlYWRTYWZlUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzcz46OnJlZigpOyB9CkBAIC01ODYs
MTAgKzU4MSw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgU2Vydmlj
ZVdvcmtlckluZm8+IG1fc2VydmljZVdvcmtlckluZm87CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNXU2VydmVyPj4gbV9zd1NlcnZlcnM7CiAj
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
SFRUUFNVcGdyYWRlQ2hlY2tlcj4gbV9uZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjsKLSNlbmRp
ZgogICAgIAogICAgIExvY2sgbV9zZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcnNMb2NrOwogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTZXNzaW9uU3RvcmFnZVF1
b3RhTWFuYWdlcj4+IG1fc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmNwcAppbmRleCBlMTVlZDA5N2YyNzE0Zjc3YWVmMmFjMTFjYzQwOWM0ZDExMmFk
Y2ZhLi4zNDc4MzQ4ZjNiZmE2N2Y3YzNlMzliZTQzZjk0NDMwYTEzOTUwNzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtMTA1LDcgKzEwNSw2IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVDcm9zc09yaWdpblJlc291cmNlUG9saWN5OwogCiAg
ICAgZW5jb2RlciA8PCBmcmFtZUFuY2VzdG9yT3JpZ2luczsKLSAgICBlbmNvZGVyIDw8IGlzSFRU
UFNVcGdyYWRlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHBhZ2VIYXNSZXNvdXJjZUxvYWRDbGll
bnQ7CiAgICAgZW5jb2RlciA8PCBwYXJlbnRGcmFtZUlEOwogICAgIGVuY29kZXIgPDwgY3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkOwpAQCAtMjUxLDEyICsyNTAsNiBAQCBPcHRp
b25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmRlY29kZShJUAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmZyYW1l
QW5jZXN0b3JPcmlnaW5zKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9w
dGlvbmFsPGJvb2w+IGlzSFRUUFNVcGdyYWRlRW5hYmxlZDsKLSAgICBkZWNvZGVyID4+IGlzSFRU
UFNVcGdyYWRlRW5hYmxlZDsKLSAgICBpZiAoIWlzSFRUUFNVcGdyYWRlRW5hYmxlZCkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXN1bHQuaXNIVFRQU1VwZ3JhZGVFbmFibGVk
ID0gKmlzSFRUUFNVcGdyYWRlRW5hYmxlZDsKLQogICAgIE9wdGlvbmFsPGJvb2w+IHBhZ2VIYXNS
ZXNvdXJjZUxvYWRDbGllbnQ7CiAgICAgZGVjb2RlciA+PiBwYWdlSGFzUmVzb3VyY2VMb2FkQ2xp
ZW50OwogICAgIGlmICghcGFnZUhhc1Jlc291cmNlTG9hZENsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaAppbmRleCAwY2UxNjdlOWUwZWUzYWExZTY1ZmQ0OWFlMThlYjYwYjdhOTAyNTk1Li44
Njg0NzE2MGUyZGMzOGQ0ZmMyMzMzODQ3ZDM1NjM2NmJmM2UwNjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpQcmVmbGln
aHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5IHsgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5OjpDb25z
aWRlciB9OwogICAgIGJvb2wgc2hvdWxkRW5hYmxlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeSB7
IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IGZy
YW1lQW5jZXN0b3JPcmlnaW5zOwotICAgIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIHBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gcGFyZW50RnJhbWVJRDsKICAgICBi
b29sIGNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCB7IHRydWUgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCBjNWMzNDFhY2ZkZWZmZTFkY2RhOGM3NjgzZTlmZGIxMTA0N2M3Mjk0Li5jYzM5
MGEzMzk5NWUyNGMyNzQ4YmM3OGMwZmMxOTY5ODZiZjZiYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0x
MTgsNyArMTE4LDcgQEAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXIKIAogICAgIGlmIChzeW5jaHJv
bm91c1JlcGx5IHx8IHBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3Mg
fHwgcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2ZSkgewogICAgICAgICBOZXR3b3JrTG9hZENo
ZWNrZXI6OkxvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IGlzTWFpbkZyYW1lTG9hZCgpID8gTmV0
d29ya0xvYWRDaGVja2VyOjpMb2FkVHlwZTo6TWFpbkZyYW1lIDogTmV0d29ya0xvYWRDaGVja2Vy
OjpMb2FkVHlwZTo6T3RoZXI7Ci0gICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyID0gbWFrZVVu
aXF1ZTxOZXR3b3JrTG9hZENoZWNrZXI+KGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSwgdGhp
cywgICZjb25uZWN0aW9uLnNjaGVtZVJlZ2lzdHJ5KCksIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1l
dGVycy5vcHRpb25zIH0sIHNlc3Npb25JRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQs
IEhUVFBIZWFkZXJNYXAgeyBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyB9LCBV
UkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3Jp
Z2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1l
dGVycy5wcmVmbGlnaHRQb2xpY3ksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBt
X3BhcmFtZXRlcnMuaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MoKSwgcmVxdWVzdExvYWRUeXBlKTsKKyAgICAgICAgbV9uZXR3b3JrTG9h
ZENoZWNrZXIgPSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkQ2hlY2tlcj4oY29ubmVjdGlvbi5uZXR3
b3JrUHJvY2VzcygpLCB0aGlzLCAgJmNvbm5lY3Rpb24uc2NoZW1lUmVnaXN0cnkoKSwgRmV0Y2hP
cHRpb25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnMgfSwgc2Vzc2lvbklEKCksIG1fcGFyYW1ldGVy
cy53ZWJQYWdlUHJveHlJRCwgSFRUUEhlYWRlck1hcCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJl
cXVlc3RIZWFkZXJzIH0sIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFy
YW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMudG9wT3JpZ2luLmNv
cHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgb3JpZ2luYWxSZXF1ZXN0KCku
aHR0cFJlZmVycmVyKCksIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpLCBy
ZXF1ZXN0TG9hZFR5cGUpOwogICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNzcFJlc3BvbnNlSGVh
ZGVycykKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zZXRDU1BSZXNwb25zZUhl
YWRlcnMoQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgbV9wYXJhbWV0ZXJz
LmNzcFJlc3BvbnNlSGVhZGVycy52YWx1ZSgpIH0pOwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggYmY5OGIzYmI0MWZjNGZjNTE4ZWZmODBiMmFh
N2RiZGI3MmVlNThjMi4uNjBhZjkzZGRmNTFkZTc5MDMyNjQ1NDZjNmIwMzRiYTFiNWJhNTcyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMjQzLDExICsyNDMsNCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybVByb2Nlc3NEaWRUcmFuc2l0aW9uVG9Gb3JlZ3JvdW5kKCkKIHsKIH0KIAot
TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXImIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlcigpCi17Ci0gICAgaWYgKCFtX25ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2Vy
KQotICAgICAgICBtX25ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyID0gbWFrZVVuaXF1ZTxOZXR3
b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcj4oKTsKLSAgICByZXR1cm4gKm1fbmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
NDU4OTI2ZjI1YmQ2ZDUxNjJhNzU5Y2UwYzczZjhlYTFlYjE3ZDVmZi4uNTkzYmFjZTQ1NzUwY2Ex
YWNjYWE2ZDE3N2Q0NTY4ZmNmNzcxMzc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NCw3ICs2NCw2IEBA
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9i
LmNwcAotTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwCiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkU2NoZWR1bGVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjUxMjU0
MWM1ZWY5NjA1NzA2ZGQwNzQxZmIwNDIzNWExZTMwMDE0Ni4uNzllNDkwODM4YjJlYjQ1MTRjNzYx
MzQ0MzBlMDlkNDc5YWJjZGY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjIwLDcgKzEyMjAsNiBAQAogCQk1N0ZEMzE4NjIyQjM1
MTZDMDA4RDBFOEIgLyogU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3RDIyQjM1MTRBMDA4
RDBFOEIgLyogU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggKi87IH07CiAJCTU3RkQz
MTg3MjJCMzUxNzAwMDhEMEU4QiAvKiBXS1NPQXV0aG9yaXphdGlvbkRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3MTIyQjM1MTQ4
MDA4RDBFOEIgLyogV0tTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5oICovOyB9OwogCQk1ODc3NDNB
NjIxQzMwQkJFMDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTg3NzQzQTQyMUMzMEFEODAwQUU5MDg0
IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi87IH07Ci0JCTU4RTk3N0RGMjFDNDlBMDAwMDVEOTJB
NiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggKi87IH07CiAJCTVDMEIxNzc4MUU3Qzg4MEUwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc0MUU3Qzg3OUMwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNUMw
QjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBCMTc3
NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJNUMxMjFFODQyNDEwMjA4RDAwNDg2RjlCIC8qIEZyYW1lVHJlZU5vZGVEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzEyMUU4MzI0
MTAxRjcwMDA0ODZGOUIgLyogRnJhbWVUcmVlTm9kZURhdGEuaCAqLzsgfTsKQEAgLTQzMjUsOCAr
NDMyNCw2IEBACiAJCTU3RkQzMTdFMjJCMzUxNEEwMDhEMEU4QiAvKiBXS1NPQXV0aG9yaXphdGlv
bkRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tT
T0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTdGRDMxN0YyMkIzNTE0QTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTT0F1dGhvcml6YXRpb25TZXNz
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODc3NDNBNDIxQzMwQUQ4MDBB
RTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3JhZGVMaXN0LmRiOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0LmRiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1OEU5NzdEQzIxQzQ5OUZFMDA1RDkyQTYg
LyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUMwMDk5M0IyNDE3RkI3RTAwRDUzQzI1IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMEExMEMx
MjM1MjQxQTMwMDUzRTJDQSAvKiBOZXR3b3JrU2NoZW1lUmVnaXN0cnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQjE3NzQxRTdDODc5QzAwRTkxMjNDIC8qIE5l
dHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtODAy
OSw3ICs4MDI2LDYgQEAKIAkJCQk1MUQxMjQ4NTFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUubW0gKi8sCiAJCQkJNTFEMTI0ODYxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENv
b2tpZVN0b3JlSW50ZXJuYWwuaCAqLywKIAkJCQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYzNUYgLyog
V0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggKi8sCi0JCQkJNDk5MTdEQTYyNTJENjQ5RTAwNTAz
MTNGIC8qIFdLTWVkaWFQbGF5YmFja1N0YXRlLmggKi8sCiAJCQkJMUFCNDBFRTMxQkY2NzdFMzAw
QkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlmaWVycy5tbSAqLywKIAkJCQkxQUI0MEVFNDFCRjY3
N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oICovLAogCQkJCTFB
NUIxQzRGMTg5ODYwNkYwMDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24uaCAqLywKQEAgLTg0NDcsOCAr
ODQ0Myw2IEBACiAJCQkJNUNCQzlCODkxQzY1MjRBNTAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFz
ay5oICovLAogCQkJCTUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tC
bG9iLmNwcCAqLywKIAkJCQk1MzlFQjU0NzFEQzJFRTQwMDA5RDQ4Q0YgLyogTmV0d29ya0RhdGFU
YXNrQmxvYi5oICovLAotCQkJCTU4RTk3N0RDMjFDNDk5RkUwMDVEOTJBNiAvKiBOZXR3b3JrSFRU
UFNVcGdyYWRlQ2hlY2tlci5jcHAgKi8sCi0JCQkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggKi8sCiAJCQkJODM5OTAxRkYxQkU5QTAxQjAw
MEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNwcCAqLywKIAkJCQk4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2
NTMgLyogTmV0d29ya0xvYWQuaCAqLywKIAkJCQk0MTAzRkJBMjIwNjFCREI4MDBDMkVBRjggLyog
TmV0d29ya0xvYWRDaGVja2VyLmNwcCAqLywKQEAgLTExOTA1LDcgKzExODk5LDYgQEAKIAkJCQk1
Q0JDOUI4RTFDNjUyQ0EwMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTMyMTU5NTYxREJBRTcyRDAwNTRBQTNDIC8qIE5ldHdvcmtE
YXRhVGFza0NvY29hLmggaW4gSGVhZGVycyAqLywKLQkJCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDky
QTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
OTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODNENDU0RDcxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzkxNDk2NTFCRUE4Mzg1MDBEMkQ5NTMgLyogTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCAyMmNlMDkyNTk4ZjEwZGE2
YzhjMWUwNDYzN2Y2MjAxOTFjMDllZTYyLi4xMTQ4NmI0N2EyOTA3ZTE2MGNiOTcxNGI4YWEwMWY5
MjdmODg2MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yODEsOCArMjgxLDYgQEAgc3RhdGljIHZvaWQg
YWRkUGFyYW1ldGVyc1NoYXJlZChjb25zdCBGcmFtZSogZnJhbWUsIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXIKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYXJh
bWV0ZXJzLmlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZyYW1lLT5zZXR0aW5ncygpLkhUVFBTVXBn
cmFkZUVuYWJsZWQoKTsKLQogICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewog
ICAgICAgICBwYXJhbWV0ZXJzLnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBwYWdlLT5oYXNS
ZXNvdXJjZUxvYWRDbGllbnQoKTsKICAgICAgICAgcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZyA9IHBhZ2UtPnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422181</attachid>
            <date>2021-03-03 21:46:18 -0800</date>
            <delta_ts>2021-03-04 20:30:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222706-20210303214617.patch</filename>
            <type>text/plain</type>
            <size>34683</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIxZTcwMmZiMzFjOGEwNWM3MjVlMGUz
Nzk3NTFjNDYxN2JmNmRlMDMuLmQ5ZDQ2YzMzNGE4YmY5ZTIyNzFkYTRmOThjMTQyYjE4ZmU4OGU2
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIEhUVFBTVXBncmFk
ZUVuYWJsZWQgZXhwZXJpbWVudGFsIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBJdCB3YXMgYSBnb29kIGV4cGVyaW1lbnRhbCBpbXBsZW1lbnRh
dGlvbiwgYnV0IHRoZSBmZWF0dXJlIGlzIG5vdyBpbXBsZW1lbnRlZCBpbiBtYWtlU2VjdXJlSWZO
ZWNlc3NhcnkKKyAgICAgICAgYW5kIHR1cm5lZCBvbiBhbmQgb2ZmIGJ5IFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24udXBncmFkZUtub3duSG9zdHNUb0hUVFBTLgorCisgICAgICAgICogU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTAzLTAz
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
TGltaXQgSGFzaFRhYmxlIGVudHJ5IHNpemUgdG8gNTAwIGJ5dGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFhZGQx
ZmJhNTliZjEyNGExYzA1NDFiOGQ1NTY0MWQ3ZWRlMjk1NzQuLmJjNDRiNjRkMTRiMzM5NDY5NzQ1
YTkxZjdhMDJmNjEyOGM1MGEyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDMt
MDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW1vdmUgdGhlIEhUVFBTVXBncmFkZUVuYWJsZWQgZXhwZXJpbWVudGFsIGZlYXR1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjcwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYWRlSWZOZWVkZWQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
cik6IERlbGV0ZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkUGFyYW1ldGVyc1NoYXJl
ZCk6CisKIDIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkgc2l6ZSB0byA1MDAgYnl0ZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggMTg4M2I4NjViMDVlNTRmODg4NzgyYjBk
N2Q1NmUzNDA4MDUxY2ViOC4uNGIwMDQ0NzdmZTU1MThiZjJmNjJjYjQ5NzAyMzAzNDczNjI1YmUx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTM4MCwxOSArMzgwLDYgQEAgSFRU
UDNFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLSMgRklYTUU6
IFRoaXMgaXMgbm90IGltcGxlbWVudGVkIGZvciBXZWJLaXRMZWdhY3ksIHNvIHNob3VsZCBiZSBl
eGNsdWRlZCBmcm9tIFdlYktpdExlZ2FjeSBlbnRpcmVseS4KLUhUVFBTVXBncmFkZUVuYWJsZWQ6
Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBdXRvbWF0aWMgSFRUUFMgdXBn
cmFkZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQXV0b21hdGljIEhUVFBTIHVwZ3Jh
ZGUgZm9yIGtub3duIHN1cHBvcnRlZCBzaXRlcyIKLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktp
dExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVs
dDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQogSGlnaGxpZ2h0
QVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhpZ2hsaWdo
dCBBUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtI
VFRQU1VwZ3JhZGVDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhNDJlYjdjOTE2N2YwZTdkOGJjZjM1NjU5YWQ5YWE0YmZhZmRmMDRkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCIKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFiYXNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TUUxp
dGVTdGF0ZW1lbnQuaD4KLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0j
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLQotI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQK
LSN1bmRlZiBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VECi0jZGVmaW5lIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlcjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgUkVMRUFTRV9MT0df
RVJST1JfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAi
JXAgLSBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdT
X18pCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jb25zdGV4cHIgYXV0byBodHRwc1VwZ3JhZGVD
aGVja2VyUXVlcnkgPSAiU0VMRUNUIGhvc3QgRlJPTSBob3N0cyBXSEVSRSBob3N0ID0gPyJfczsK
LQotc3RhdGljIGNvbnN0IFN0cmluZyYgbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXJEYXRhYmFz
ZVBhdGgoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG5ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyRGF0YWJhc2VQYXRoOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlm
IChuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aC5nZXQoKS5pc051bGwoKSkg
ewotICAgICAgICBDRkJ1bmRsZVJlZiB3ZWJLaXRCdW5kbGUgPSBDRkJ1bmRsZUdldEJ1bmRsZVdp
dGhJZGVudGlmaWVyKENGU1RSKCJjb20uYXBwbGUuV2ViS2l0IikpOwotICAgICAgICBhdXRvIHJl
c291cmNlVVJMID0gYWRvcHRDRihDRkJ1bmRsZUNvcHlSZXNvdXJjZVVSTCh3ZWJLaXRCdW5kbGUs
IENGU1RSKCJIVFRQU1VwZ3JhZGVMaXN0IiksIENGU1RSKCJkYiIpLCBudWxscHRyKSk7Ci0gICAg
ICAgIGlmIChyZXNvdXJjZVVSTCkKLSAgICAgICAgICAgIG5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyRGF0YWJhc2VQYXRoLmdldCgpID0gQ0ZVUkxHZXRTdHJpbmcocmVzb3VyY2VVUkwuZ2V0KCkp
OwotICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gbmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXJEYXRhYmFzZVBhdGg7Ci19Ci0KLU5ldHdvcmtIVFRQU1VwZ3JhZGVD
aGVja2VyOjpOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcigpCi0gICAgOiBtX3dvcmtRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiSFRUUFMgVXBncmFkZSBDaGVja2VyIFRocmVhZCIpKQotewotICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2go
W3RoaXNdIHsKLSAgICAgICAgYXV0byBwYXRoID0gbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXJE
YXRhYmFzZVBhdGgoKTsKLSAgICAgICAgaWYgKHBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBiZWNhdXNlIHRoZSBkYXRhYmFzZSBwYXRoIGlzIGVt
cHR5IiwgdGhpcyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBt
X2RhdGFiYXNlID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZT4oKTsKLSAgICAg
ICAgYm9vbCBpc0RhdGFiYXNlT3BlbiA9IG1fZGF0YWJhc2UtPm9wZW4ocGF0aCwgV2ViQ29yZTo6
U1FMaXRlRGF0YWJhc2U6Ok9wZW5Nb2RlOjpSZWFkT25seSk7Ci0gICAgICAgIGlmICghaXNEYXRh
YmFzZU9wZW4pIHsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmssICIlcCAtIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpvcGVuIGZh
aWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9
cyIsIHRoaXMsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpLCBwYXRoLnV0ZjgoKS5kYXRhKCkp
OwotI2VuZGlmCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFNpbmNlIHdlIGFyZSB1c2luZyBhIHdv
cmtlclF1ZXVlLCB0aGUgc2VxdWVudGlhbCBkaXNwYXRjaCBibG9ja3MgbWF5IGJlIGNhbGxlZCBi
eSBkaWZmZXJlbnQgdGhyZWFkcy4KLSAgICAgICAgbV9kYXRhYmFzZS0+ZGlzYWJsZVRocmVhZGlu
Z0NoZWNrcygpOwotCi0gICAgICAgIG1fc3RhdGVtZW50ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQ+KCptX2RhdGFiYXNlLCBodHRwc1VwZ3JhZGVDaGVja2VyUXVlcnkpOwot
ICAgICAgICBpbnQgaXNTdGF0ZW1lbnRQcmVwYXJlZCA9IChtX3N0YXRlbWVudC0+cHJlcGFyZSgp
ID09IFNRTElURV9PSyk7Ci0gICAgICAgIEFTU0VSVChpc1N0YXRlbWVudFByZXBhcmVkKTsKLSAg
ICAgICAgaWYgKCFpc1N0YXRlbWVudFByZXBhcmVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIG1fZGlkU2V0dXBDb21wbGV0ZVN1Y2Nlc3NmdWxseSA9IHRydWU7Ci0gICAgfSk7Ci19
Ci0KLU5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjp+TmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIoKQotewotICAgIGlmIChtX2RhdGFiYXNlKQotICAgICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0
Y2goW2RhdGFiYXNlID0gV1RGTW92ZShtX2RhdGFiYXNlKSwgc3RhdGVtZW50ID0gV1RGTW92ZSht
X3N0YXRlbWVudCldIHsgfSk7Ci19Ci0KLXZvaWQgTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI6
OnF1ZXJ5KFN0cmluZyYmIGhvc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotCi0gICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBob3N0ID0gaG9z
dC5pc29sYXRlZENvcHkoKSwgc2Vzc2lvbklELCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoKSBtdXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKG1fZGlkU2V0dXBDb21wbGV0ZVN1Y2Nlc3Nm
dWxseSk7Ci0KLSAgICAgICAgaW50IGJpbmRUZXh0UmVzdWx0ID0gbV9zdGF0ZW1lbnQtPmJpbmRU
ZXh0KDEsIFdURk1vdmUoaG9zdCkpOwotICAgICAgICBBU1NFUlRfVU5VU0VEKGJpbmRUZXh0UmVz
dWx0LCBiaW5kVGV4dFJlc3VsdCA9PSBTUUxJVEVfT0spOwotCi0gICAgICAgIGludCBzdGVwUmVz
dWx0ID0gbV9zdGF0ZW1lbnQtPnN0ZXAoKTsKLSAgICAgICAgaWYgKHN0ZXBSZXN1bHQgIT0gU1FM
SVRFX1JPVyAmJiBzdGVwUmVzdWx0ICE9IFNRTElURV9ET05FKSB7Ci0jaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwg
InN0ZXAgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHN0ZXBSZXN1bHQsIG1fZGF0YWJhc2UtPmxh
c3RFcnJvck1zZygpLCBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aCgpLnV0
ZjgoKS5kYXRhKCkpOwotI2Vsc2UKLSAgICAgICAgICAgIFVOVVNFRF9WQVJJQUJMRShzZXNzaW9u
SUQpOwotI2VuZGlmCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQg
cmVzZXRSZXN1bHQgPSBtX3N0YXRlbWVudC0+cmVzZXQoKTsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKLQotICAgICAgICBib29s
IGZvdW5kSG9zdCA9IChzdGVwUmVzdWx0ID09IFNRTElURV9ST1cpOwotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgInF1ZXJ5IC0gUmFuIHN1Y2Nlc3NmdWxseS4gUmVz
dWx0ID0gJXMiLCAoZm91bmRIb3N0ID8gInRydWUiIDogImZhbHNlIikpOwotICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW2ZvdW5kSG9zdCwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhmb3VuZEhvc3QpOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNo
ZWNrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFkMjAzMTRlYWE0OWU5NmE0
MWE1N2NlOGQ0MjIyNmJiZmIwNzIzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxhdG9taWM+Ci0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dvcmtRdWV1
ZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTUUxpdGVEYXRhYmFzZTsKLWNsYXNz
IFNRTGl0ZVN0YXRlbWVudDsKLX0KLQotbmFtZXNwYWNlIFBBTCB7Ci1jbGFzcyBTZXNzaW9uSUQ7
Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgTmV0d29y
a0hUVFBTVXBncmFkZUNoZWNrZXIoKTsKLSAgICB+TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIo
KTsKLQotICAgIC8vIFJldHVybnMgYHRydWVgIGFmdGVyIGludGVybmFsIHNldHVwIGlzIHN1Y2Nl
c3NmdWxseSBjb21wbGV0ZWQuIElmIHRoZXJlIGlzIGFuIGVycm9yIHdpdGggc2V0dXAsIG9yIGlm
IHNldHVwIGlzIGluLXByb2dyZXNzLCBpdCB3aWxsIHJldHVybiBgZmFsc2VgLgotICAgIGJvb2wg
ZGlkU2V0dXBDb21wbGV0ZVN1Y2Nlc3NmdWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkU2V0dXBD
b21wbGV0ZVN1Y2Nlc3NmdWxseTsgfTsKLQotICAgIC8vIFF1ZXJpZXMgZGF0YWJhc2UgYWZ0ZXIg
c2V0dXAgaXMgY29tcGxldGUuCi0gICAgdm9pZCBxdWVyeShTdHJpbmcmJiwgUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotCi1wcml2YXRlOgotICAgIFJl
ZjxXb3JrUXVldWU+IG1fd29ya1F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZT4gbV9kYXRhYmFzZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
U1FMaXRlU3RhdGVtZW50PiBtX3N0YXRlbWVudDsKLSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2Rp
ZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHkgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcAppbmRleCBkOTlmNzBiYTg5Y2VjODEwMGM5ODIwY2VmNzQ2ZDc2ODZh
MGQyZDUwLi5iY2I5MTcxZDhmOTIxYmEyMjQzM2RmYjdhMjM4NzM4NmFhNGYyNDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCisjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRAogI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xP
R19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVw
IC0gTmV0d29ya0xvYWRDaGVja2VyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC01MCw3ICs1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1Nh
bWVPcmlnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAg
ICAgcmV0dXJuIHVybC5wcm90b2NvbElzRGF0YSgpIHx8IHVybC5wcm90b2NvbElzQmxvYigpIHx8
ICFvcmlnaW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0KHVybCk7CiB9CiAKLU5ldHdvcmtMb2FkQ2hl
Y2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
TmV0d29ya1Jlc291cmNlTG9hZGVyKiBuZXR3b3JrUmVzb3VyY2VMb2FkZXIsIE5ldHdvcmtTY2hl
bWVSZWdpc3RyeSogc2NoZW1lUmVnaXN0cnksIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgRG9j
dW1lbnRVUkwmJiBkb2N1bWVudFVSTCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9y
aWdpbiwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5
IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVF
bmFibGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5
cGUgcmVxdWVzdExvYWRUeXBlKQorTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNr
ZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
IG5ldHdvcmtSZXNvdXJjZUxvYWRlciwgTmV0d29ya1NjaGVtZVJlZ2lzdHJ5KiBzY2hlbWVSZWdp
c3RyeSwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBIVFRQSGVhZGVyTWFwJiYgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBEb2N1bWVudFVSTCYmIGRvY3VtZW50VVJM
LCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJp
bmcmJiByZWZlcnJlciwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Ms
IExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKICAgICA6IG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlv
bnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2Vz
cyhuZXR3b3JrUHJvY2VzcykKQEAgLTYzLDE3ICs2NCwxMCBAQCBOZXR3b3JrTG9hZENoZWNrZXI6
Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdv
cmtSZQogICAgICwgbV9wcmVmbGlnaHRQb2xpY3kocHJlZmxpZ2h0UG9saWN5KQogICAgICwgbV9y
ZWZlcnJlcihXVEZNb3ZlKHJlZmVycmVyKSkKICAgICAsIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0
d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcykKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVkKGlzSFRUUFNV
cGdyYWRlRW5hYmxlZCkKLSNlbmRpZgogICAgICwgbV9yZXF1ZXN0TG9hZFR5cGUocmVxdWVzdExv
YWRUeXBlKQogICAgICwgbV9zY2hlbWVSZWdpc3RyeShzY2hlbWVSZWdpc3RyeSkKICAgICAsIG1f
bmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VXZWFrUHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikp
CiB7Ci0jaWYgIVBMQVRGT1JNKENPQ09BKQotICAgIFVOVVNFRF9QQVJBTShpc0hUVFBTVXBncmFk
ZUVuYWJsZWQpOwotI2VuZGlmCi0KICAgICBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPSBpc1NhbWVP
cmlnaW4obV91cmwsIG1fb3JpZ2luLmdldCgpKTsKICAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVu
dGlhbHMpIHsKICAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU6CkBA
IC0yMDksODMgKzIwMywzOSBAQCBhdXRvIE5ldHdvcmtMb2FkQ2hlY2tlcjo6YWNjZXNzQ29udHJv
bEVycm9yRm9yVmFsaWRhdGlvbkhhbmRsZXIoU3RyaW5nJiYgbWVzc2FnZQogICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yIHsgU3RyaW5nIHsgfSwgMCwgbV91cmwsIFdURk1vdmUobWVzc2FnZSksIFJl
c291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfTsKIH0KIAotdm9pZCBOZXR3b3JrTG9h
ZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYWRlSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgaGFuZGxl
cikgY29uc3QKK3ZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50KiBjbGllbnQsIFZh
bGlkYXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBp
ZiAoIW1faXNIVFRQU1VwZ3JhZGVFbmFibGVkIHx8IG1fcmVxdWVzdExvYWRUeXBlICE9IExvYWRU
eXBlOjpNYWluRnJhbWUpIHsKLSAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8mIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0K
LSAgICAvLyBPbmx5IHVwZ3JhZGUgaHR0cCB1cmxzLgotICAgIGlmICghdXJsLnByb3RvY29sSXMo
Imh0dHAiKSkgewotICAgICAgICBoYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgaHR0cHNVcGdyYWRlQ2hlY2tlciA9IG1fbmV0d29y
a1Byb2Nlc3MtPm5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyKCk7CisgICAgUmVzb3VyY2VSZXF1
ZXN0IG9yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3Q7CiAKLSAgICAvLyBEbyBub3Qgd2FpdCBmb3Ig
aHR0cHNVcGdyYWRlQ2hlY2tlciB0byBjb21wbGV0ZSBpdHMgc2V0dXAuCi0gICAgaWYgKCFodHRw
c1VwZ3JhZGVDaGVja2VyLmRpZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHkoKSkgewotICAgICAg
ICBoYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKGF1
dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IHRoaXMtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
KSB7CisgICAgICAgIGlmICh0aGlzLT5pc1JlZGlyZWN0ZWQoKSkgeworICAgICAgICAgICAgYXV0
byB0eXBlID0gbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSA/
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TmF2aWdhdGlvbiA6
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZDsKKyAgICAg
ICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVl
ZGVkKHJlcXVlc3QsIHR5cGUpOworICAgICAgICB9CisgICAgICAgIGlmICghdGhpcy0+aXNBbGxv
d2VkQnlDb250ZW50U2VjdXJpdHlQb2xpY3kocmVxdWVzdCwgY2xpZW50KSkgeworICAgICAgICAg
ICAgaGFuZGxlcih0aGlzLT5hY2Nlc3NDb250cm9sRXJyb3JGb3JWYWxpZGF0aW9uSGFuZGxlcigi
QmxvY2tlZCBieSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iX3MpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGh0dHBzVXBncmFkZUNoZWNrZXIucXVlcnko
dXJsLmhvc3QoKS50b1N0cmluZygpLCBtX3Nlc3Npb25JRCwgW3JlcXVlc3QgPSBXVEZNb3ZlKHJl
cXVlc3QpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKGJvb2wgZm91bmRIb3N0KSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKGZvdW5kSG9zdCkgewotICAgICAgICAgICAgYXV0byBuZXdVUkwg
PSByZXF1ZXN0LnVybCgpOwotICAgICAgICAgICAgbmV3VVJMLnNldFByb3RvY29sKCJodHRwcyIp
OwotICAgICAgICAgICAgcmVxdWVzdC5zZXRVUkwobmV3VVJMKTsKKyNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQorICAgIHRoaXMtPnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChX
VEZNb3ZlKHJlcXVlc3QpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGhhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpLCBvcmlnaW5hbFJlcXVlc3QgPSBXVEZNb3ZlKG9yaWdpbmFsUmVx
dWVzdCldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdC5oYXNf
dmFsdWUoKSkgeworICAgICAgICAgICAgQVNTRVJUKHJlc3VsdC5lcnJvcigpLmlzQ2FuY2VsbGF0
aW9uKCkpOworICAgICAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5lcnJvcigpKSk7Cisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQotICAgICAgICBoYW5kbGVyKFdURk1vdmUo
cmVxdWVzdCkpOwotICAgIH0pOwotI2Vsc2UKLSAgICBoYW5kbGVyKFdURk1vdmUocmVxdWVzdCkp
OwotI2VuZGlmCi19Ci0KLXZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50KiBjbGll
bnQsIFZhbGlkYXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBSZXNvdXJjZVJlcXVlc3Qg
b3JpZ2luYWxSZXF1ZXN0ID0gcmVxdWVzdDsKLQotICAgIGFwcGx5SFRUUFNVcGdyYWRlSWZOZWVk
ZWQoV1RGTW92ZShyZXF1ZXN0KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBjbGllbnQsIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpLCBvcmlnaW5hbFJlcXVlc3QgPSBX
VEZNb3ZlKG9yaWdpbmFsUmVxdWVzdCldKGF1dG8mJiByZXF1ZXN0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyKHsgUmVzb3VyY2VF
cnJvciB7IFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbiB9fSk7Ci0KLSAgICAgICAg
aWYgKGF1dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IHRoaXMtPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy0+aXNSZWRpcmVjdGVkKCkpIHsKLSAgICAg
ICAgICAgICAgICBhdXRvIHR5cGUgPSBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlID8gQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBl
OjpOYXZpZ2F0aW9uIDogQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBl
OjpMb2FkOwotICAgICAgICAgICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS0+dXBncmFkZUlu
c2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIHR5cGUpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCF0aGlzLT5pc0FsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShyZXF1
ZXN0LCBjbGllbnQpKSB7Ci0gICAgICAgICAgICAgICAgaGFuZGxlcih0aGlzLT5hY2Nlc3NDb250
cm9sRXJyb3JGb3JWYWxpZGF0aW9uSGFuZGxlcigiQmxvY2tlZCBieSBDb250ZW50IFNlY3VyaXR5
IFBvbGljeS4iX3MpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Cisg
ICAgICAgIGlmIChyZXN1bHQudmFsdWUoKS5yZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsK
KyAgICAgICAgICAgIGhhbmRsZXIod2Vha1RoaXMtPmFjY2Vzc0NvbnRyb2xFcnJvckZvclZhbGlk
YXRpb25IYW5kbGVyKCJCbG9ja2VkIGJ5IGNvbnRlbnQgZXh0ZW5zaW9uIl9zKSk7CisgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgICAgIHRoaXMtPnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChXVEZNb3ZlKHJl
cXVlc3QpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgaGFuZGxlciA9IFdU
Rk1vdmUoaGFuZGxlciksIG9yaWdpbmFsUmVxdWVzdCA9IFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0
KV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdC5oYXNf
dmFsdWUoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQuZXJyb3IoKS5pc0NhbmNl
bGxhdGlvbigpKTsKLSAgICAgICAgICAgICAgICBoYW5kbGVyKFdURk1vdmUocmVzdWx0LmVycm9y
KCkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAocmVzdWx0LnZhbHVlKCkucmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7Ci0gICAg
ICAgICAgICAgICAgaGFuZGxlcih0aGlzLT5hY2Nlc3NDb250cm9sRXJyb3JGb3JWYWxpZGF0aW9u
SGFuZGxlcigiQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbiJfcykpOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
LSAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcih7IFJlc291cmNlRXJyb3IgeyBSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24gfX0pOwotICAgICAgICAgICAgdGhpcy0+Y29udGlu
dWVDaGVja2luZ1JlcXVlc3RPckRvU3ludGhldGljUmVkaXJlY3QoV1RGTW92ZShvcmlnaW5hbFJl
cXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLnJlcXVlc3QpLCBXVEZNb3ZlKGhhbmRsZXIp
KTsKLSAgICAgICAgfSk7CisgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZUNoZWNraW5nUmVxdWVz
dE9yRG9TeW50aGV0aWNSZWRpcmVjdChXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdCksIFdURk1vdmUo
cmVzdWx0LnZhbHVlKCkucmVxdWVzdCksIFdURk1vdmUoaGFuZGxlcikpOworICAgIH0pOwogI2Vs
c2UKLSAgICAgICAgdGhpcy0+Y29udGludWVDaGVja2luZ1JlcXVlc3RPckRvU3ludGhldGljUmVk
aXJlY3QoV1RGTW92ZShvcmlnaW5hbFJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGhhbmRsZXIpKTsKKyAgICB0aGlzLT5jb250aW51ZUNoZWNraW5nUmVxdWVzdE9yRG9TeW50aGV0
aWNSZWRpcmVjdChXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdCksIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUoaGFuZGxlcikpOwogI2VuZGlmCi0gICAgfSk7CiB9CiAKIHZvaWQgTmV0d29ya0xvYWRD
aGVja2VyOjpjb250aW51ZUNoZWNraW5nUmVxdWVzdE9yRG9TeW50aGV0aWNSZWRpcmVjdChSZXNv
dXJjZVJlcXVlc3QmJiBvcmlnaW5hbFJlcXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIGN1cnJlbnRS
ZXF1ZXN0LCBWYWxpZGF0aW9uSGFuZGxlciYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCBmN2E3ODQwNWYyZWI1
NDVjZjQ1NzUzMDcyNzFkMzA4OTNmZGUxMjYxLi42NjUzZWI4YzFhMzM5ZWU2MWQ0OTAxNDY5NGNi
OWViMTI0MWNjYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVj
a2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGlj
OgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9Owog
Ci0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Jlc291cmNl
TG9hZGVyKiwgTmV0d29ya1NjaGVtZVJlZ2lzdHJ5KiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYs
IFBBTDo6U2Vzc2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQSGVh
ZGVyTWFwJiYsIFVSTCYmLCBEb2N1bWVudFVSTCYmLCAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBX
ZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNV
cGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3Ro
ZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtSZXNv
dXJjZUxvYWRlciosIE5ldHdvcmtTY2hlbWVSZWdpc3RyeSosIFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6SFRU
UEhlYWRlck1hcCYmLCBVUkwmJiwgRG9jdW1lbnRVUkwmJiwgIFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdp
biwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBzaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVz
dExvYWRUeXBlID0gTG9hZFR5cGU6Ok90aGVyKTsKICAgICB+TmV0d29ya0xvYWRDaGVja2VyKCk7
CiAKICAgICBzdHJ1Y3QgUmVkaXJlY3Rpb25UcmlwbGV0IHsKQEAgLTEyNyw4ICsxMjcsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBDb250ZW50RXh0ZW5zaW9uQ2FsbGJhY2smJik7CiAjZW5kaWYK
IAotICAgIHZvaWQgYXBwbHlIVFRQU1VwZ3JhZGVJZk5lZWRlZChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
Jik+JiYpIGNvbnN0OwotCiAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG1fb3B0aW9uczsKICAg
ICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBtX3N0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwpAQCAtMTU3LDEwICsxNTUsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9jaGVja0NvbnRlbnRFeHRlbnNpb25zIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzIHsgZmFsc2Ug
fTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGJvb2wgbV9pc0hUVFBTVXBncmFkZUVuYWJs
ZWQgeyBmYWxzZSB9OwotI2VuZGlmCi0KICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0
aW9uIG1fbG9hZEluZm9ybWF0aW9uOwogCiAgICAgTG9hZFR5cGUgbV9yZXF1ZXN0TG9hZFR5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDgzMjJiNDI3MjBkZjgyN2ViNWUzYTAzOGNmMTM4MTFjY2I2N2Q3OS4uMWI0Mzc2N2E3YjM4YTk1
YzM1NzYyNDIyY2I3ODVmMmFhNzNmNDUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkRvd25s
b2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiV2ViSURCU2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgpAQCAtMzIyLDEwICszMjEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJlbnRQcm9j
ZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlciYgbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIoKTsKLSNlbmRpZgotCiAgICAgY29uc3Qg
U3RyaW5nJiB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV91aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIHJlZigpIGNvbnN0IG92ZXJyaWRl
IHsgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3M+OjpyZWYoKTsgfQpAQCAtNTg2
LDEwICs1ODEsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFNlcnZp
Y2VXb3JrZXJJbmZvPiBtX3NlcnZpY2VXb3JrZXJJbmZvOwogICAgIEhhc2hNYXA8UEFMOjpTZXNz
aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTV1NlcnZlcj4+IG1fc3dTZXJ2ZXJzOwog
I2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29y
a0hUVFBTVXBncmFkZUNoZWNrZXI+IG1fbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7Ci0jZW5k
aWYKICAgICAKICAgICBMb2NrIG1fc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzTG9jazsKICAg
ICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U2Vzc2lvblN0b3JhZ2VR
dW90YU1hbmFnZXI+PiBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5jcHAKaW5kZXggZTNkOWRlMTE0Zjg4NzYxMmJiNTg3YTdkYjljMGJkYjczZWQ5
YTU0Mi4uMzlhMTQyN2UwYjY1NWFiNTg0YWMyZmRkYzdmMzJmNTA3NmRmZTU0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTEwNSw3ICsxMDUsNiBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeTsKIAog
ICAgIGVuY29kZXIgPDwgZnJhbWVBbmNlc3Rvck9yaWdpbnM7Ci0gICAgZW5jb2RlciA8PCBpc0hU
VFBTVXBncmFkZUVuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBwYWdlSGFzUmVzb3VyY2VMb2FkQ2xp
ZW50OwogICAgIGVuY29kZXIgPDwgcGFyZW50RnJhbWVJRDsKICAgICBlbmNvZGVyIDw8IGNyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZDsKQEAgLTI1MywxMiArMjUyLDYgQEAgT3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoSVAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5mcmFt
ZUFuY2VzdG9yT3JpZ2lucykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBP
cHRpb25hbDxib29sPiBpc0hUVFBTVXBncmFkZUVuYWJsZWQ7Ci0gICAgZGVjb2RlciA+PiBpc0hU
VFBTVXBncmFkZUVuYWJsZWQ7Ci0gICAgaWYgKCFpc0hUVFBTVXBncmFkZUVuYWJsZWQpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcmVzdWx0LmlzSFRUUFNVcGdyYWRlRW5hYmxl
ZCA9ICppc0hUVFBTVXBncmFkZUVuYWJsZWQ7Ci0KICAgICBPcHRpb25hbDxib29sPiBwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50OwogICAgIGRlY29kZXIgPj4gcGFnZUhhc1Jlc291cmNlTG9hZENs
aWVudDsKICAgICBpZiAoIXBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmgKaW5kZXggYjQ4Yzg4NjE2YjI3NzI3ZmUzNTg0NThkYzRhZDY4OWMyMjA2M2RiMS4u
MjA0MTJlMjU2ODQ4MDgyZDNmZTM0Njg0YjQ2MThlOTYyZWRkZjY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UHJlZmxp
Z2h0UG9saWN5IHByZWZsaWdodFBvbGljeSB7IFdlYkNvcmU6OlByZWZsaWdodFBvbGljeTo6Q29u
c2lkZXIgfTsKICAgICBib29sIHNob3VsZEVuYWJsZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBm
cmFtZUFuY2VzdG9yT3JpZ2luczsKLSAgICBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBwYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50IHsgZmFsc2UgfTsKICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAgICAg
Ym9vbCBjcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQgeyB0cnVlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggOGMxZDdkYjczNGFjZjM5MGUwYWE3MjI2MzRlYzQzYTZlNjY3NGY0YS4uZTlk
MjY1MTRkZTY3MjFiZTU1NWNiYzczMGVkYjkwZjgxYjNlNTg0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAt
MTE4LDcgKzExOCw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6TmV0d29ya1Jlc291cmNlTG9h
ZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyCiAKICAgICBpZiAoc3luY2hy
b25vdXNSZXBseSB8fCBwYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNz
IHx8IHBhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUpIHsKICAgICAgICAgTmV0d29ya0xvYWRD
aGVja2VyOjpMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBpc01haW5GcmFtZUxvYWQoKSA/IE5l
dHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGU6Ok1haW5GcmFtZSA6IE5ldHdvcmtMb2FkQ2hlY2tl
cjo6TG9hZFR5cGU6Ok90aGVyOwotICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlciA9IG1ha2VV
bmlxdWU8TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCksIHRo
aXMsICAmY29ubmVjdGlvbi5zY2hlbWVSZWdpc3RyeSgpLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFt
ZXRlcnMub3B0aW9ucyB9LCBzZXNzaW9uSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlE
LCBIVFRQSGVhZGVyTWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgfSwg
VVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgVVJMIHsgbV9wYXJhbWV0ZXJzLmRv
Y3VtZW50VVJMIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFt
ZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwg
b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIG1fcGFyYW1ldGVycy5pc0hUVFBTVXBn
cmFkZUVuYWJsZWQsIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpLCByZXF1
ZXN0TG9hZFR5cGUpOworICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlciA9IG1ha2VVbmlxdWU8
TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCksIHRoaXMsICAm
Y29ubmVjdGlvbi5zY2hlbWVSZWdpc3RyeSgpLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMu
b3B0aW9ucyB9LCBzZXNzaW9uSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBIVFRQ
SGVhZGVyTWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgfSwgVVJMIHsg
bV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgVVJMIHsgbV9wYXJhbWV0ZXJzLmRvY3VtZW50
VVJMIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMu
dG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgb3JpZ2lu
YWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcygpLCByZXF1ZXN0TG9hZFR5cGUpOwogICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNz
cFJlc3BvbnNlSGVhZGVycykKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zZXRD
U1BSZXNwb25zZUhlYWRlcnMoQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsg
bV9wYXJhbWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycy52YWx1ZSgpIH0pOwogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggYmY5OGIzYmI0MWZjNGZj
NTE4ZWZmODBiMmFhN2RiZGI3MmVlNThjMi4uNjBhZjkzZGRmNTFkZTc5MDMyNjQ1NDZjNmIwMzRi
YTFiNWJhNTcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMjQzLDExICsyNDMsNCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVByb2Nlc3NEaWRUcmFuc2l0aW9uVG9Gb3JlZ3JvdW5k
KCkKIHsKIH0KIAotTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXImIE5ldHdvcmtQcm9jZXNzOjpu
ZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcigpCi17Ci0gICAgaWYgKCFtX25ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyKQotICAgICAgICBtX25ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyID0gbWFr
ZVVuaXF1ZTxOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcj4oKTsKLSAgICByZXR1cm4gKm1fbmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggNDU4OTI2ZjI1YmQ2ZDUxNjJhNzU5Y2UwYzczZjhlYTFlYjE3ZDVmZi4uNTkz
YmFjZTQ1NzUwY2ExYWNjYWE2ZDE3N2Q0NTY4ZmNmNzcxMzc5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02
NCw3ICs2NCw2IEBAIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcAotTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkU2NoZWR1bGVy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggODc2YTcyNTdlMzY1MWE5MTMwNTRjYmEzODA2ZGYwOGY4MTQ4MTk0ZC4uYTcxMTE5YWNm
NWZmMDFmZGJlZTUwMmVkZjIyMGY0M2U3MzVkOTI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjE5LDcgKzEyMTksNiBAQAogCQk1
N0ZEMzE4NjIyQjM1MTZDMDA4RDBFOEIgLyogU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3
RDIyQjM1MTRBMDA4RDBFOEIgLyogU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggKi87
IH07CiAJCTU3RkQzMTg3MjJCMzUxNzAwMDhEMEU4QiAvKiBXS1NPQXV0aG9yaXphdGlvbkRlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZE
MzE3MTIyQjM1MTQ4MDA4RDBFOEIgLyogV0tTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5oICovOyB9
OwogCQk1ODc3NDNBNjIxQzMwQkJFMDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTg3NzQzQTQyMUMz
MEFEODAwQUU5MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi87IH07Ci0JCTU4RTk3N0RGMjFD
NDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThFOTc3REQyMUM0OUEwMDAwNUQ5
MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggKi87IH07CiAJCTVDMEIxNzc4MUU3
Qzg4MEUwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc0MUU3
Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzBCMTc3NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJNUMxMjFFODQyNDEwMjA4RDAwNDg2RjlCIC8qIEZyYW1lVHJl
ZU5vZGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzEyMUU4MzI0MTAxRjcwMDA0ODZGOUIgLyogRnJhbWVUcmVlTm9kZURhdGEuaCAqLzsgfTsK
QEAgLTQzMjUsOCArNDMyNCw2IEBACiAJCTU3RkQzMTdFMjJCMzUxNEEwMDhEMEU4QiAvKiBXS1NP
QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdGRDMxN0YyMkIzNTE0QTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNl
c3Npb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTT0F1dGhv
cml6YXRpb25TZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODc3NDNB
NDIxQzMwQUQ4MDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3Jh
ZGVMaXN0LmRiOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0
LmRiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1OEU5NzdEQzIxQzQ5
OUZFMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYg
LyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMwMDk5M0IyNDE3RkI3RTAwRDUzQzI1IC8qIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDMEExMEMxMjM1MjQxQTMwMDUzRTJDQSAvKiBOZXR3b3JrU2NoZW1lUmVnaXN0cnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1NjaGVtZVJlZ2lz
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQjE3NzQxRTdDODc5QzAw
RTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwpAQCAtODQ0OSw4ICs4NDQ2LDYgQEAKIAkJCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0Yg
LyogTmV0d29ya0RhdGFUYXNrLmggKi8sCiAJCQkJNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8q
IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovLAogCQkJCTUzOUVCNTQ3MURDMkVFNDAwMDlENDhD
RiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8sCi0JCQkJNThFOTc3REMyMUM0OTlGRTAwNUQ5
MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcCAqLywKLQkJCQk1OEU5NzdERDIx
QzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCAqLywKIAkJCQk4
Mzk5MDFGRjFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuY3BwICovLAogCQkJCTgzOTkw
MUZFMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oICovLAogCQkJCTQxMDNGQkEyMjA2
MUJEQjgwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuY3BwICovLApAQCAtMTE5MDUsNyAr
MTE5MDAsNiBAQAogCQkJCTVDQkM5QjhFMUM2NTJDQTAwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRh
c2suaCBpbiBIZWFkZXJzICovLAogCQkJCTUzQkE0N0QxMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3
b3JrRGF0YVRhc2tCbG9iLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzIxNTk1NjFEQkFFNzJEMDA1
NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBpbiBIZWFkZXJzICovLAotCQkJCTU4RTk3
N0RGMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0Q0NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xv
YWRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOTE0OTY1MUJFQTgzODUwMEQyRDk1MyAv
KiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4
IDQ1NzU1NDlmMDBhYTJmY2UzYWZmNTI4YTFjZmI2MmUzYmQyNDEzNWQuLjUyZDM3MmE1YWNhZTc3
MzdmYzBlZmY0MmExMzI4ODI0MjVhN2ViNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI4MSw4ICsyODEs
NiBAQCBzdGF0aWMgdm9pZCBhZGRQYXJhbWV0ZXJzU2hhcmVkKGNvbnN0IEZyYW1lKiBmcmFtZSwg
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcgogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHBhcmFtZXRlcnMuaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZnJhbWUtPnNl
dHRpbmdzKCkuSFRUUFNVcGdyYWRlRW5hYmxlZCgpOwotCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBm
cmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIHBhcmFtZXRlcnMucGFnZUhhc1Jlc291cmNlTG9hZENs
aWVudCA9IHBhZ2UtPmhhc1Jlc291cmNlTG9hZENsaWVudCgpOwogICAgICAgICBwYXJhbWV0ZXJz
LnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nID0gcGFnZS0+c2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422329</attachid>
            <date>2021-03-04 20:30:40 -0800</date>
            <delta_ts>2021-03-04 20:40:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222706-20210304203039.patch</filename>
            <type>text/plain</type>
            <size>4958</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmMTgwODRlZWQyNmYyZmM2
NDVlMzExZTg0ZjgzNzFiZGFhMzdhNzUuLmI2N2ViOTY4ZTk1ZGQ5ZDdmYWQ4ZTc5ZjRkNjljNmIy
YjE5YmNjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMDQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhl
IEhUVFBTVXBncmFkZUVuYWJsZWQgZXhwZXJpbWVudGFsIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjcwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWh0dHBzLXVwZ3JhZGUtZGF0YWJhc2Uuc2g6IFJl
bW92ZWQuCisgICAgICAgICogU2hhcmVkL0hUVFBTVXBncmFkZS9IVFRQU1VwZ3JhZGVMaXN0LnR4
dDogUmVtb3ZlZC4KKwogMjAyMS0wMy0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gcmVtb3ZlIHNvbWUgdW5uZWNlc3Nhcnkg
V2ViS2l0QWRkaXRpb25zIGhvb2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNWJh
Mjg4MWE1NmUzYjJiMzQzODJkY2UwMzFlMzQ3ZDI4NzFmN2MwMS4uYjZhMGMwNDNiYmI2ZDgzOGI2
N2QwNzM1MTM4NjcxOWFhYmZiMDI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
Mzk2LDEyICszOTYsMyBAQCAkKFdFQl9QUkVGRVJFTkNFU19DT01CSU5FRF9JTlBVVF9GSUxFKSA6
ICQoV0VCX1BSRUZFUkVOQ0VTX0lOUFVUX0ZJTEVTKQogCiAkKFdFQl9QUkVGRVJFTkNFU19QQVRU
RVJOUykgOiAkKFdURl9CVUlMRF9TQ1JJUFRTX0RJUikvR2VuZXJhdGVQcmVmZXJlbmNlcy5yYiAk
KFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMpICQoV0VCX1BSRUZFUkVOQ0VTX0NPTUJJTkVEX0lO
UFVUX0ZJTEUpICQoV0VCX1BSRUZFUkVOQ0VTX0NBVEVHT1JZX0lOUFVUX0ZJTEVTKQogCSQoUlVC
WSkgJDwgLS1mcm9udGVuZCBXZWJLaXQgLS1iYXNlICQoV0VCX1BSRUZFUkVOQ0VTX0NPTUJJTkVE
X0lOUFVUX0ZJTEUpIC0tZGVidWcgJHtXVEZfQlVJTERfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCAtLWV4cGVyaW1lbnRhbCAke1dURl9CVUlMRF9TQ1JJ
UFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAktLWlu
dGVybmFsICR7V1RGX0JVSUxEX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsLnlhbWwgJChhZGRwcmVmaXggLS10ZW1wbGF0ZSAsICQoV0VCX1BSRUZFUkVOQ0VT
X1RFTVBMQVRFUykpCi0KLQotIyBGSVhNRTogV2Ugc2hvdWxkIHN3aXRjaCB0byB0aGUgaW50ZXJu
YWwgSFRUUFNVcGdyYWRlTGlzdC50eHQgb25jZSB0aGUgZmVhdHVyZSBpcyByZWFkeS4KLSMgVlBB
VEggKz0gJChXZWJLaXQyKS9TaGFyZWQvSFRUUFNVcGdyYWRlLwotVlBBVEggOj0gJChXZWJLaXQy
KS9TaGFyZWQvSFRUUFNVcGdyYWRlLyAkKFZQQVRIKQotCi1hbGwgOiBIVFRQU1VwZ3JhZGVMaXN0
LmRiCi1IVFRQU1VwZ3JhZGVMaXN0LmRiIDogSFRUUFNVcGdyYWRlTGlzdC50eHQgJChXZWJLaXQy
KS9TY3JpcHRzL2dlbmVyYXRlLWh0dHBzLXVwZ3JhZGUtZGF0YWJhc2Uuc2gKLQlzaCAkKFdlYktp
dDIpL1NjcmlwdHMvZ2VuZXJhdGUtaHR0cHMtdXBncmFkZS1kYXRhYmFzZS5zaCAkPCAkQApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLWh0dHBzLXVwZ3JhZGUtZGF0
YWJhc2Uuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtaHR0cHMtdXBncmFkZS1k
YXRhYmFzZS5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODkzMTJlZjRjNzYwMDNm
Yjg2NTBjOTM5YTdhZjUwNTdiNDRmODgxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtaHR0cHMtdXBn
cmFkZS1kYXRhYmFzZS5zaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSMhL2Jpbi9z
aAotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0j
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBUaGlzIHNjcmlw
dCByZXF1aXJlcyB0aGF0IEhUVFBTVXBncmFkZUxpc3QudHh0IGhhcyB0aGUgZm9sbG93aW5nIGZv
cm1hdDoKLSMgICAxLiBJdCBtdXN0IGJlIGEgcGxhaW4gdGV4dCBmaWxlIHdpdGggZG9tYWlucyBk
ZWxpbWl0ZWQgYnkgbmV3IGxpbmVzICgiXG4iKS4KLSMgICAyLiBUaGUgZmlsZSBtdXN0IG5vdCBj
b250YWluIGR1cGxpY2F0ZSBkb21haW5zLgotIyAgIDMuIEFsbCBkb21haW5zIG11c3QgYmUgbG93
ZXJjYXNlLgotIyAgIDQuIEFsbCBkb21haW5zIG11c3QgYmUgSUROQSBlbmNvZGVkLgotIwotIyBV
c2FnZToKLSMgJCBzaCAuL2dlbmVyYXRlLWh0dHBzLXVwZ3JhZGUtZGF0YWJhc2Uuc2ggPHBhdGgg
dG8gaW5wdXQgbGlzdD4gPHBhdGggdG8gb3V0cHV0IGRhdGFiYXNlPgotCi1zZXQgLWUKLQotSU5Q
VVRfRklMRV9QQVRIPSIkezF9IgotT1VUUFVUX0ZJTEVfUEFUSD0iJHsyfSIKLQotREJfVkVSU0lP
Tj0iMSI7Ci1EQl9TQ0hFTUE9IkNSRUFURSBUQUJMRSBob3N0cyAoaG9zdCBURVhUIFBSSU1BUlkg
S0VZKTsiCi0KLWlmIFtbICEgLWYgIiR7SU5QVVRfRklMRV9QQVRIfSIgXV07IHRoZW4KLSAgICBl
Y2hvICJJbnZhbGlkIGlucHV0IGZpbGUiIDE+JjI7Ci0gICAgZXhpdCAxCi1maQotCi1pZiBbWyAt
ZiAiJHtPVVRQVVRfRklMRV9QQVRIfSIgXV07IHRoZW4KLSAgICBybSAiJHtPVVRQVVRfRklMRV9Q
QVRIfSIKLWZpCi0KLXNxbGl0ZTMgIiR7T1VUUFVUX0ZJTEVfUEFUSH0iICJQUkFHTUEgdXNlcl92
ZXJzaW9uPSR7REJfVkVSU0lPTn0iICIke0RCX1NDSEVNQX0iICIuaW1wb3J0ICR7SU5QVVRfRklM
RV9QQVRIfSBob3N0cyIgIi5leGl0IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
SFRUUFNVcGdyYWRlL0hUVFBTVXBncmFkZUxpc3QudHh0IGIvU291cmNlL1dlYktpdC9TaGFyZWQv
SFRUUFNVcGdyYWRlL0hUVFBTVXBncmFkZUxpc3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwOGExYWVmY2ZlODUwNDRhNzY5YTgyNmFhNmRmOWMzZTkzNTAzZWI4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0hUVFBTVXBncmFkZS9IVFRQU1VwZ3JhZGVMaXN0LnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotd3d3LmJiYy5jb20KLXd3dy5zcGVlZHRlc3QubmV0Ci13d3cuYmVhLmdvdgo=
</data>
<flag name="review"
          id="441402"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>