<?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>236791</bug_id>
          
          <creation_ts>2022-02-17 10:42:05 -0800</creation_ts>
          <short_desc>Move setting RemoteLayerBackingStore surfaces volatile into the GPU Process</short_desc>
          <delta_ts>2022-02-17 15:49:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842968</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-17 10:42:05 -0800</bug_when>
    <thetext>Move setting RemoteLayerBackingStore surfaces volatile into the GPU Process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842969</commentid>
    <comment_count>1</comment_count>
      <attachid>452387</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-17 10:44:57 -0800</bug_when>
    <thetext>Created attachment 452387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842970</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-17 10:45:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/89096444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842977</commentid>
    <comment_count>3</comment_count>
      <attachid>452389</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-17 10:58:04 -0800</bug_when>
    <thetext>Created attachment 452389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843159</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-17 15:49:33 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/290085/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452387</attachid>
            <date>2022-02-17 10:44:57 -0800</date>
            <delta_ts>2022-02-17 10:58:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236791-20220217104456.patch</filename>
            <type>text/plain</type>
            <size>25252</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU3NDFhZDY1YmI4OTZkZjZk
NTU2NzAyZThjYTdiM2FlZTNiMjY0ZjkuLmY4OTEyZDgzZWUxMDkzMWRlNDM2YzE2MmI0NGMwNWU5
ZjhjMTlmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjItMDItMTcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBzZXR0aW5nIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlIHN1cmZhY2VzIHZvbGF0aWxlIGludG8gdGhlIEdQVSBQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIFNldHRpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgSU9TdXJmYWNlcyB2b2xhdGlsZSBo
YXMgdG8gaGFwcGVuIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoCisgICAgICAgIERPTSByZW5kZXJp
bmcgZW5hYmxlZC4gQWRkIG92ZXJyaWRlcyBpbiBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uCisgICAgICAgIHRvIGhhbmRsZSB0aGlzLCBzZW5kaW5n
IGJhdGNoZXMgb2YgYnVmZmVyIGlkZW50aWZpZXJzIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
IEJlY2F1c2UKKyAgICAgICAgc3VyZmFjZSBpbi11c2UgY291bnRzIGNhbiBjYXVzZSB0aGlzIHRv
IGZhaWwsIHdlIHJldHVybiBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgdGhhdCB3ZSBmYWlsZWQKKyAg
ICAgICAgdG8gbWFyayB2b2xhdGlsZS4gQSBmdXR1cmUgcGF0Y2ggd2lsbCB1c2UgdGhlc2UgdG8g
bWFpbnRhaW4gd2ViIHByb2Nlc3Mtc2lkZSBidWZmZXIgdm9sYXRpbGUKKyAgICAgICAgc3RhdHVz
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZh
Y2VzVm9sYXRpbGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6Cisg
ICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5o
OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlKToKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpiYWNraW5n
U3RvcmVCZWNhbWVVbnJlYWNoYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFjaGFi
aWxpdHlDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb246Om1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dm9sYXRpbGl0eVRp
bWVyRmlyZWQpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJX
aXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oOgorICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJXaXRoUmVt
b3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6Y29sbGVjdEJhY2tpbmdTdG9yZUJ1
ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpjb2xsZWN0QWxs
QnVmZmVySWRlbnRpZmllcnNUb01hcmtWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1hcmtCYWNr
aW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVhY2hhYmlsaXR5Q2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
dHJ5TWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJh
Y2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2VuZE1hcmtCdWZm
ZXJzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIyLTAy
LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzZXR0aW5nIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlIGJ1ZmZlcnMgbm9u
LXZvbGF0aWxlIGluIHRoZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4
IGRlOTRmYmI2NWJmYWZkMjE1ODQzZjBlMWM3NjJjNDUyODJjZjNkYjguLmZjODgwNWUyYzUzNGE4
NzI2YmNlY2UwOTVkN2IwMzMwMDk1ODY3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAg
LTQ1MSw2ICs0NTEsMzAgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzd2FwVG9WYWxp
ZEZyb250QnVmZmVyKGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJTZXQmIGIKICAgICBjb21wbGV0aW9u
SGFuZGxlcih7IGJ1ZmZlcklkZW50aWZlcihmcm9udEJ1ZmZlciksIGJ1ZmZlcklkZW50aWZlcihi
YWNrQnVmZmVyKSwgYnVmZmVySWRlbnRpZmVyKHNlY29uZGFyeUJhY2tCdWZmZXIpIH0sIFdURk1v
dmUoZnJvbnRCdWZmZXJIYW5kbGUpLCBmcm9udEJ1ZmZlcldhc0VtcHR5KTsKIH0KIAordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptYXJrU3VyZmFjZXNWb2xhdGlsZShjb25zdCBWZWN0b3I8
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4mIGluVXNlQnVmZmVySWRlbnRpZmllcnMpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5
LCBzdHJlYW0gPDwgIkdQVSBQcm9jZXNzOiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptYXJrU3Vy
ZmFjZXNWb2xhdGlsZSAiIDw8IGlkZW50aWZpZXJzKTsKKworICAgIGF1dG8gbWFrZVZvbGF0aWxl
ID0gW10oSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSB7CisgICAgICAgIGltYWdlQnVmZmVyLnJl
bGVhc2VHcmFwaGljc0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyLnNldFZv
bGF0aWxlKCk7CisgICAgfTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IGluVXNlQnVmZmVySWRlbnRpZmllcnM7CisgICAgZm9yIChhdXRvIGlkZW50
aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1v
dGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRlbnRpZmllciwgbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOworICAgICAgICBp
ZiAoaW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgICAgIGlmICghbWFrZVZvbGF0aWxlKCppbWFnZUJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5hcHBlbmQoaWRl
bnRpZmllcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFJl
bW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiIGZhaWxlZCB0byBmaW5k
IEltYWdlQnVmZmVyIGZvciBpZGVudGlmaWVyICIgPDwgaWRlbnRpZmllcik7CisgICAgfQorCisg
ICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVh
bSA8PCAiR1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxlIC0gaW4tdXNlIHN1cmZhY2Vz
ICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycyk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihp
blVzZUJ1ZmZlcklkZW50aWZpZXJzKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdVcGRh
dGVJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OkRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHJlbmRlcmluZ1VwZGF0ZUlEKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAxMzE1YzBhY2Iw
ZDg0YmU1NDRhMmYyNmQwOWE0NTIxYWFiODBmZmIxLi5jMDljMTA1NmZiODMxN2Q0NjMwOTFkNzdi
NDI2YTQ5Y2Q2YmI3ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTExOCw2ICsxMTgsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQpOworICAgIHZv
aWQgbWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpblVzZUJ1ZmZlcklkZW50aWZp
ZXJzKT4mJik7CiAKICAgICB2b2lkIG1hcmtTdXJmYWNlTm9uVm9sYXRpbGUoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiwgYm9vbCBidWZmZXJXYXNFbXB0eSk+JiYp
OwogICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJZGVudGlmaWVy
U2V0JiBidWZmZXJTZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQnVmZmVySWRlbnRp
ZmllclNldCYgc3dhcHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGU+JiYgZnJvbnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJvbnRCdWZmZXJXYXNFbXB0eSk+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBhYTc5ZTY4
ZGNkZGQ3NTU3ZGQwZWZhMWNhNGI5M2EyNzNmZWUzZGJiLi4xNGZmYzUwOWY4ZTNlYzkwOWI5ZmFk
ODJkOGVjZDg4OWVmZGM3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgpAQCAtNDAsNiArNDAsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBNYXJrU3VyZmFjZU5vblZvbGF0aWxlKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiBi
YWNrZW5kSGFuZGxlLCBib29sIGJ1ZmZlcldhc0VtcHR5KSBTeW5jaHJvbm91cyBOb3RTdHJlYW1F
bmNvZGFibGVSZXBseQogICAgIFN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoc3RydWN0IFdlYktpdDo6
QnVmZmVySWRlbnRpZmllclNldCBidWZmZXJTZXQpIC0+IChzdHJ1Y3QgV2ViS2l0OjpCdWZmZXJJ
ZGVudGlmaWVyU2V0IHN3YXBwZWRCdWZmZXJTZXQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGU+IGZyb250QnVmZmVySGFuZGxlLCBib29sIGZyb250QnVmZmVy
V2FzRW1wdHkpIFN5bmNocm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAKKyAgICBNYXJr
U3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVycykgU3luY2hy
b25vdXMKKwogICAgIEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBk
YXRlSUQgcmVuZGVyaW5nVXBkYXRlSUQpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggZGUzMmY4MTcxNzE1NjQ3ZDUzNjEwNjI2YTQ3OTE5MDQwMDdkZWI0MS4uYWE0NTNlOTZjMWUy
NzU1ZDA1YjkwODI5ZTE1M2JhNGIzY2JiYmYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgK
QEAgLTg4LDYgKzg4LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShQcm9jZXNzU3dhcHBpbmcpIFwK
ICAgICBNKFByb3hpbWl0eU5ldHdvcmtpbmcpIFwKICAgICBNKFB1c2gpIFwKKyAgICBNKFJlbW90
ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHkpIFwKICAgICBNKFJlbW90ZUxheWVyVHJlZSkgXAog
ICAgIE0oUmVzaXplKSBcCiAgICAgTShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDczMTFiNmMyZjU1MWI3MjhmYThmZDY5ZDRkOGI2ZDJm
YWRhZjJjMjkuLjViMDA1NDJiZGFlYTJlNjk5ZTMxMmI2NGEzN2E0YTAxYjUxZWQyNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoQ0dfRElTUExBWV9MSVNUX0JBQ0tFRF9JTUFHRV9CVUZGRVIpCiAgICAgICAgIFJl
ZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gZGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjsKICNlbmRp
ZgorICAgICAgICAvLyBGSVhNRTogVGhpcyBmbGFnIG5lZWRzIHRvIGJlIHBhcnQgb2YgSW1hZ2VC
dWZmZXJbQmFja2VuZF0uIEN1cnJlbnRseSBpdCdzIG5vdCBjb3JyZWN0bHkgbWFpbnRhaW5lZAor
ICAgICAgICAvLyBpbiB0aGUgR1BVIFByb2Nlc3MgY29kZSBwYXRoLgogICAgICAgICBib29sIGlz
Vm9sYXRpbGUgPSBmYWxzZTsKIAogICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAppbmRleCAw
YWZhZTQzOTkxYTllOTVlMDJlODIwZDNlNDcwM2VkMjNhY2UyZjMyLi5lNGI1ZTg3MjUyYzlhYzI3
MThhMTEzM2IwYmYwNTBhMmE1M2YzOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Rp
bWVyLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBJbWFnZUJ1ZmZlcjsKQEAgLTM5LDcgKzQwLDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogY2xhc3MgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb247CiAKLWNsYXNzIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
biB7CitjbGFzcyBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24gOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uPiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTYwLDcgKzYxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiYpOwogICAgIHZvaWQgZGlkRmx1c2hMYXllcnMoKTsKIAotICAgIHZvaWQgdHJ5TWFya0Fs
bEJhY2tpbmdTdG9yZVZvbGF0aWxlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZpcnR1YWwgdm9pZCB0cnlNYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHNjaGVkdWxlVm9sYXRpbGl0eVRp
bWVyKCk7CiAKQEAgLTY5LDE2ICs3MCwyNCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5ZXJUcmVlQ29udGV4dDsgfQogCi1wcml2YXRlOgogICAgIGVudW0gY2xhc3MgVm9sYXRpbGl0
eU1hcmtpbmdCZWhhdmlvciA6IHVpbnQ4X3QgewogICAgICAgICBJZ25vcmVSZWFjaGFiaWxpdHkg
ICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBDb25zaWRlclRpbWVTaW5jZUxhc3REaXNw
bGF5ICAgID0gMSA8PCAxLAogICAgIH07Ci0gICAgYm9vbCBtYXJrQmFja2luZ1N0b3JlVm9sYXRp
bGUoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmLCBPcHRpb25TZXQ8Vm9sYXRpbGl0eU1hcmtpbmdC
ZWhhdmlvcj4gPSB7IH0sIE1vbm90b25pY1RpbWUgPSB7IH0pOwogCisgICAgdmlydHVhbCB2b2lk
IG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVhY2hhYmlsaXR5Q2hhbmdlKFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlJik7CisgICAgdmlydHVhbCB2b2lkIG1hcmtBbGxCYWNraW5nU3RvcmVW
b2xhdGlsZUZyb21UaW1lcigpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFya0JhY2tpbmdTdG9y
ZVZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiwgT3B0aW9uU2V0PFZvbGF0aWxpdHlN
YXJraW5nQmVoYXZpb3I+ID0geyB9LCBNb25vdG9uaWNUaW1lID0geyB9KTsKICAgICBib29sIG1h
cmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShPcHRpb25TZXQ8Vm9sYXRpbGl0eU1hcmtpbmdCZWhh
dmlvcj4gbGl2ZUJhY2tpbmdTdG9yZU1hcmtpbmdCZWhhdmlvciwgT3B0aW9uU2V0PFZvbGF0aWxp
dHlNYXJraW5nQmVoYXZpb3I+IHVucGFyZW50ZWRCYWNraW5nU3RvcmVNYXJraW5nQmVoYXZpb3Ip
OworCiAgICAgdm9pZCB2b2xhdGlsaXR5VGltZXJGaXJlZCgpOwogCitwcm90ZWN0ZWQ6CisgICAg
c3RhdGljIGNvbnN0ZXhwciBhdXRvIHZvbGF0aWxlQmFja2luZ1N0b3JlQWdlVGhyZXNob2xkID0g
MV9zOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB2b2xhdGlsZVNlY29uZGFyeUJhY2tpbmdT
dG9yZUFnZVRocmVzaG9sZCA9IDIwMF9tczsKKwogICAgIFJlbW90ZUxheWVyVHJlZUNvbnRleHQm
IG1fbGF5ZXJUcmVlQ29udGV4dDsKIAogICAgIEhhc2hTZXQ8UmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUqPiBtX2xpdmVCYWNraW5nU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlQ29sbGVjdGlvbi5tbQppbmRleCBlNWUxOGE2NDk3MWFlNjNhYzllMjAwZWNmYTgxZGI4YzQ2
NTA0NmZhLi40YzRmMmVhYWQ3MmZiZjQ3ZGE3N2JlOWExOTAzYmUzMzVmZTczZDQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KQEAgLTI2LDEyICsy
NiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdT
dG9yZUNvbGxlY3Rpb24uaCIKIAorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgog
I2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgorI2ltcG9ydCA8d3RmL3RleHQvVGV4
dFN0cmVhbS5oPgogCi1jb25zdCBTZWNvbmRzIHZvbGF0aWxlQmFja2luZ1N0b3JlQWdlVGhyZXNo
b2xkID0gMV9zOwotY29uc3QgU2Vjb25kcyB2b2xhdGlsZVNlY29uZGFyeUJhY2tpbmdTdG9yZUFn
ZVRocmVzaG9sZCA9IDIwMF9tczsKIGNvbnN0IFNlY29uZHMgdm9sYXRpbGl0eVRpbWVySW50ZXJ2
YWwgPSAyMDBfbXM7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTU3LDYgKzE1NywxMSBAQCB2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6YmFja2luZ1N0b3JlQmVjYW1l
VW5yZWFjaGFibGUoUmVtb3RlTGF5ZQogCiAgICAgLy8gVGhpcyB3aWxsIG5vdCBzdWNjZWVkIGlu
IG1hcmtpbmcgYWxsIGJ1ZmZlcnMgYXMgdm9sYXRpbGUsIGJlY2F1c2UgdGhlIGNvbW1pdCB1bnBh
cmVudGluZyB0aGUgbGF5ZXIgaGFzbid0CiAgICAgLy8gbWFkZSBpdCB0byB0aGUgVUkgcHJvY2Vz
cyB5ZXQuIFRoZSB2b2xhdGlsaXR5IHRpbWVyIHdpbGwgZmluaXNoIG1hcmtpbmcgdGhlIHJlbWFp
bmluZyBidWZmZXJzIGxhdGVyLgorICAgIG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVh
Y2hhYmlsaXR5Q2hhbmdlKGJhY2tpbmdTdG9yZSk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uOjptYXJrQmFja2luZ1N0b3JlVm9sYXRpbGVBZnRlclJlYWNoYWJp
bGl0eUNoYW5nZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQorewogICAg
IG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZShiYWNraW5nU3RvcmUpOwogfQogCkBAIC0xODAsMTMg
KzE4NSwyMCBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dHJ5TWFy
a0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlKENvbXBsZXRpbwogICAgIGNvbXBsZXRpb25IYW5kbGVy
KHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZSk7CiB9CiAKLXZvaWQgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjp2b2xhdGlsaXR5VGltZXJGaXJlZCgpCit2b2lk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZv
bGF0aWxlRnJvbVRpbWVyKCkKIHsKICAgICBib29sIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3Rv
cmVWb2xhdGlsZSA9IG1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShWb2xhdGlsaXR5TWFya2lu
Z0JlaGF2aW9yOjpDb25zaWRlclRpbWVTaW5jZUxhc3REaXNwbGF5LCB7IH0pOworICAgIExPR19X
SVRIX1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIlJl
bW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0
aWxlRnJvbVRpbWVyKCkgLSBsaXZlICIgPDwgbV9saXZlQmFja2luZ1N0b3JlLnNpemUoKSA8PCAi
LCB1bnBhcmVudGVkICIgPDwgbV91bnBhcmVudGVkQmFja2luZ1N0b3JlLnNpemUoKSA8PCAiOyBz
dWNjZXNzZnVsbHlNYWRlQmFja2luZ1N0b3JlVm9sYXRpbGUgIiA8PCBzdWNjZXNzZnVsbHlNYWRl
QmFja2luZ1N0b3JlVm9sYXRpbGUpOworCiAgICAgaWYgKHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5n
U3RvcmVWb2xhdGlsZSkKICAgICAgICAgbV92b2xhdGlsaXR5VGltZXIuc3RvcCgpOwogfQogCit2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dm9sYXRpbGl0eVRpbWVyRmly
ZWQoKQoreworICAgIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcigpOworfQor
CiB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2NoZWR1bGVWb2xhdGls
aXR5VGltZXIoKQogewogICAgIGlmIChtX3ZvbGF0aWxpdHlUaW1lci5pc0FjdGl2ZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
V2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdC
YWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKaW5kZXggMjkyOWY5NzE2Mjk5N2E3MjhjOGJmMDNmY2Ew
N2ZjZDdlOGU5ZjkyMS4uZmYwMTJhYjJhNTdiNWY1NTk2MmE4YjU4YjQxMzYyYTEyZDU3ZTZjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVu
ZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oCkBAIC00NSw2ICs0NSwxNiBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBtYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZShSZW1vdGVMYXllckJhY2tp
bmdTdG9yZSYpIGZpbmFsOwogICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihSZW1vdGVM
YXllckJhY2tpbmdTdG9yZSYpIGZpbmFsOworCisgICAgYm9vbCBjb2xsZWN0QmFja2luZ1N0b3Jl
QnVmZmVySWRlbnRpZmllcnNUb01hcmtWb2xhdGlsZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYs
IE9wdGlvblNldDxWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yPiwgTW9ub3RvbmljVGltZSBub3cs
IFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+Jik7CisKKyAgICBi
b29sIGNvbGxlY3RBbGxCdWZmZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKE9wdGlvblNldDxW
b2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yPiBsaXZlQmFja2luZ1N0b3JlTWFya2luZ0JlaGF2aW9y
LCBPcHRpb25TZXQ8Vm9sYXRpbGl0eU1hcmtpbmdCZWhhdmlvcj4gdW5wYXJlbnRlZEJhY2tpbmdT
dG9yZU1hcmtpbmdCZWhhdmlvciwgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4mKTsKKworICAgIHZvaWQgbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFj
aGFiaWxpdHlDaGFuZ2UoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmKSBmaW5hbDsKKyAgICB2b2lk
IHRyeU1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21U
aW1lcigpIGZpbmFsOworICAgIAorICAgIHZvaWQgc2VuZE1hcmtCdWZmZXJzVm9sYXRpbGUoVmVj
dG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldp
dGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0Jh
Y2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KaW5kZXggNDUwNmYxOTJiNWVmNmMyYTQzYTMxODZlMjYx
NzExZjg2OTc1NDllMC4uZDE2MzcwYjhkYzVmNDU2YThhOWYzZmZkYmM1NTQ3OTVmMDFhOTUwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJl
bmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KQEAgLTI2LDggKzI2LDEwIEBACiAjaW1w
b3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0Jh
Y2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIKIAorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAi
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgiCisjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC03MSw0ICs3MywxMTkgQEAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW8KICAg
ICByZXR1cm4gcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkuY3JlYXRlSW1hZ2VCdWZmZXIo
YmFja2luZ1N0b3JlLnNpemUoKSwgcmVuZGVyaW5nTW9kZSwgYmFja2luZ1N0b3JlLnNjYWxlKCks
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBiYWNraW5nU3RvcmUucGl4
ZWxGb3JtYXQoKSk7CiB9CiAKK2Jvb2wgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6Y29sbGVjdEJhY2tpbmdTdG9yZUJ1ZmZlcklkZW50aWZpZXJz
VG9NYXJrVm9sYXRpbGUoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgT3B0
aW9uU2V0PFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+IG1hcmtpbmdCZWhhdmlvciwgTW9ub3Rv
bmljVGltZSBub3csIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+
JiBpZGVudGlmaWVycykKK3sKKyAgICBBU1NFUlQoIW1faW5MYXllckZsdXNoKTsKKworICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXNuJ3QgY29uc3VsdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVm
ZmVyOjppc1ZvbGF0aWxlLCBzbyB3ZSBtYXkgcmVkdW5kYW50bHkgcmVxdWVzdCB2b2xhdGlsaXR5
LgorICAgIGF1dG8gY29sbGVjdEJ1ZmZlciA9IFsmXShSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
QnVmZmVyVHlwZSBidWZmZXJUeXBlKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gYmFja2luZ1N0
b3JlLmJ1ZmZlckZvclR5cGUoYnVmZmVyVHlwZSk7CisgICAgICAgIGlmICghYnVmZmVyKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGJhY2tpbmdTdG9yZS53aWxsTWFrZUJ1ZmZlclZv
bGF0aWxlKGJ1ZmZlclR5cGUpOworICAgICAgICBpZGVudGlmaWVycy5hcHBlbmQoYnVmZmVyLT5y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSk7CisgICAgfTsKKworICAgIGlmIChtYXJraW5n
QmVoYXZpb3IuY29udGFpbnMoVm9sYXRpbGl0eU1hcmtpbmdCZWhhdmlvcjo6Q29uc2lkZXJUaW1l
U2luY2VMYXN0RGlzcGxheSkpIHsKKyAgICAgICAgYXV0byB0aW1lU2luY2VMYXN0RGlzcGxheSA9
IG5vdyAtIGJhY2tpbmdTdG9yZS5sYXN0RGlzcGxheVRpbWUoKTsKKyAgICAgICAgaWYgKHRpbWVT
aW5jZUxhc3REaXNwbGF5IDwgdm9sYXRpbGVCYWNraW5nU3RvcmVBZ2VUaHJlc2hvbGQpIHsKKyAg
ICAgICAgICAgIGlmICh0aW1lU2luY2VMYXN0RGlzcGxheSA+PSB2b2xhdGlsZVNlY29uZGFyeUJh
Y2tpbmdTdG9yZUFnZVRocmVzaG9sZCkKKyAgICAgICAgICAgICAgICBjb2xsZWN0QnVmZmVyKFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlOjpTZWNvbmRhcnlCYWNrKTsKKworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgY29sbGVjdEJ1
ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6U2Vjb25kYXJ5QmFjayk7
CisgICAgY29sbGVjdEJ1ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6
QmFjayk7CisKKyAgICBpZiAoIW1fcmVhY2hhYmxlQmFja2luZ1N0b3JlSW5MYXRlc3RGbHVzaC5j
b250YWlucygmYmFja2luZ1N0b3JlKSB8fCBtYXJraW5nQmVoYXZpb3IuY29udGFpbnMoVm9sYXRp
bGl0eU1hcmtpbmdCZWhhdmlvcjo6SWdub3JlUmVhY2hhYmlsaXR5KSkKKyAgICAgICAgY29sbGVj
dEJ1ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6RnJvbnQpOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5n
QmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6Y29sbGVjdEFsbEJ1ZmZlcklkZW50aWZpZXJzVG9NYXJr
Vm9sYXRpbGUoT3B0aW9uU2V0PFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+IGxpdmVCYWNraW5n
U3RvcmVNYXJraW5nQmVoYXZpb3IsIE9wdGlvblNldDxWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9y
PiB1bnBhcmVudGVkQmFja2luZ1N0b3JlTWFya2luZ0JlaGF2aW9yLCBWZWN0b3I8V2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMpCit7CisgICAgYm9vbCBj
b21wbGV0ZWQgPSB0cnVlOworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdTdG9yZSA6IG1fbGl2ZUJhY2tpbmdTdG9yZSkK
KyAgICAgICAgY29tcGxldGVkICY9IGNvbGxlY3RCYWNraW5nU3RvcmVCdWZmZXJJZGVudGlmaWVy
c1RvTWFya1ZvbGF0aWxlKCpiYWNraW5nU3RvcmUsIGxpdmVCYWNraW5nU3RvcmVNYXJraW5nQmVo
YXZpb3IsIG5vdywgaWRlbnRpZmllcnMpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5n
U3RvcmUgOiBtX3VucGFyZW50ZWRCYWNraW5nU3RvcmUpCisgICAgICAgIGNvbXBsZXRlZCAmPSBj
b2xsZWN0QmFja2luZ1N0b3JlQnVmZmVySWRlbnRpZmllcnNUb01hcmtWb2xhdGlsZSgqYmFja2lu
Z1N0b3JlLCB1bnBhcmVudGVkQmFja2luZ1N0b3JlTWFya2luZ0JlaGF2aW9yLCBub3csIGlkZW50
aWZpZXJzKTsKKworICAgIHJldHVybiBjb21wbGV0ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJX
aXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9y
ZVZvbGF0aWxlQWZ0ZXJSZWFjaGFiaWxpdHlDaGFuZ2UoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUm
IGJhY2tpbmdTdG9yZSkKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiBpZGVudGlmaWVyczsKKyAgICBjb2xsZWN0QmFja2luZ1N0b3JlQnVmZmVySWRl
bnRpZmllcnNUb01hcmtWb2xhdGlsZShiYWNraW5nU3RvcmUsIHsgfSwgeyB9LCBpZGVudGlmaWVy
cyk7CisKKyAgICBpZiAoaWRlbnRpZmllcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZShXVEZNb3ZlKGlkZW50aWZpZXJzKSwgW10oYm9v
bCBzdWNjZWVkZWQpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1
ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5n
QmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFj
aGFiaWxpdHlDaGFuZ2UgLSBzdWNjZWVkZWQgIiA8PCBzdWNjZWVkZWQpOworICAgIH0pOworfQor
Cit2b2lkIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rp
b246OnRyeU1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGlkZW50aWZpZXJzOworICAgIGJvb2wgY29tcGxldGVk
ID0gY29sbGVjdEFsbEJ1ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUoVm9sYXRpbGl0eU1h
cmtpbmdCZWhhdmlvcjo6SWdub3JlUmVhY2hhYmlsaXR5LCBWb2xhdGlsaXR5TWFya2luZ0JlaGF2
aW9yOjpJZ25vcmVSZWFjaGFiaWxpdHksIGlkZW50aWZpZXJzKTsKKworICAgIExPR19XSVRIX1NU
UkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIlJlbW90ZUxh
eWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnRyeU1hcmtBbGxC
YWNraW5nU3RvcmVWb2xhdGlsZSBwaWQgIiA8PCBnZXRwaWQoKSA8PCAiIC0gbGl2ZSAiIDw8IG1f
bGl2ZUJhY2tpbmdTdG9yZS5zaXplKCkgPDwgIiwgdW5wYXJlbnRlZCAiIDw8IG1fdW5wYXJlbnRl
ZEJhY2tpbmdTdG9yZS5zaXplKCkgPDwgIiAiIDw8IGlkZW50aWZpZXJzKTsKKworICAgIGlmIChp
ZGVudGlmaWVycy5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZShX
VEZNb3ZlKGlkZW50aWZpZXJzKSwgW2NvbXBsZXRlZCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAg
ICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFt
IDw8ICJSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9u
Ojp0cnlNYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGUgLSBjb21wbGV0ZWQgIiA8PCBjb21wbGV0
ZWQgPDwgIiwgc3VjY2VlZGVkICIgPDwgc3VjY2VlZGVkKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY29tcGxldGVkICYmIHN1Y2NlZWRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3Rl
TGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJh
Y2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyKCkKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpZGVudGlmaWVyczsKKyAgICBib29sIGNvbXBsZXRl
ZCA9IGNvbGxlY3RBbGxCdWZmZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKFZvbGF0aWxpdHlN
YXJraW5nQmVoYXZpb3I6OkNvbnNpZGVyVGltZVNpbmNlTGFzdERpc3BsYXksIHsgfSwgaWRlbnRp
ZmllcnMpOworCisgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0
aWxpdHksIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0
b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyIHBpZCAi
IDw8IGdldHBpZCgpIDw8ICIgLSBsaXZlICIgPDwgbV9saXZlQmFja2luZ1N0b3JlLnNpemUoKSA8
PCAiLCB1bnBhcmVudGVkICIgPDwgbV91bnBhcmVudGVkQmFja2luZ1N0b3JlLnNpemUoKSA8PCAi
LCAiIDw8IGlkZW50aWZpZXJzLnNpemUoKSA8PCAiIGJ1ZmZlcnMgdG8gc2V0IHZvbGF0aWxlOiAi
IDw8IGlkZW50aWZpZXJzKTsKKworICAgIGlmIChpZGVudGlmaWVycy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgaWYgKGNvbXBsZXRlZCkKKyAgICAgICAgICAgIG1fdm9sYXRpbGl0eVRpbWVyLnN0b3Ao
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmRNYXJrQnVmZmVyc1ZvbGF0aWxl
KFdURk1vdmUoaWRlbnRpZmllcnMpLCBbY29tcGxldGVkLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9XShib29sIHN1Y2NlZWRlZCkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3Rl
UmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJzZW5kTWFya0J1ZmZlcnNWb2xh
dGlsZSBjb21wbGV0ZSAtIGNvbXBsZXRlZCAiIDw8IGNvbXBsZXRlZCA8PCAiLCBzdWNjZWVkZWQg
IiA8PCBzdWNjZWVkZWQpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmIChjb21wbGV0ZWQgJiYgc3VjY2VlZGVkKQorICAgICAgICAgICAg
d2Vha1RoaXMtPm1fdm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKKyAgICB9KTsKK30KKwordm9pZCBS
ZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpzZW5k
TWFya0J1ZmZlcnNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyPiYmIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8mIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBt
X2xheWVyVHJlZUNvbnRleHQuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7Cisg
ICAgCisgICAgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5V
c2VCdWZmZXJJZGVudGlmaWVyczsKKyAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJm
YWNlc1ZvbGF0aWxlKFdURk1vdmUoaWRlbnRpZmllcnMpLCBbJmluVXNlQnVmZmVySWRlbnRpZmll
cnNdKFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYgaW5Vc2VC
dWZmZXJzKSB7CisgICAgICAgIGluVXNlQnVmZmVySWRlbnRpZmllcnMgPSBXVEZNb3ZlKGluVXNl
QnVmZmVycyk7CisgICAgfSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5n
QnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZTogIiA8PCBp
blVzZUJ1ZmZlcklkZW50aWZpZXJzLnNpemUoKSA8PCAiIGJ1ZmZlcnMgc3RpbGwgaW4tdXNlIik7
CisgICAgLy8gRklYTUU6IGluVXNlQnVmZmVySWRlbnRpZmllcnMgd2lsbCBiZSB1c2VkIHRvIG1h
cCBiYWNrIHRvIGFuIEltYWdlQnVmZmVyIGFuZCBtYWludGFpbiBpdHMgImlzVm9sYXRpbGUiIGZs
YWcuCisgICAgY29tcGxldGlvbkhhbmRsZXIoaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5pc0VtcHR5
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcAppbmRleCA2YjhiNzhiNmU5Y2YzZDg0ZGI5MmM0YWYwY2E1ZDg0Y2Vi
NzM4YzUzLi5jZmExNmRlNDg0OGIwZDA5ZTRlZDQ2ZDBmYjY1NjhlYWJkYWQ0NmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTMzMyw2ICszMzQsMTUgQEAg
Vm9sYXRpbGl0eVN0YXRlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VO
b25Wb2xhdGlsZShSZW5kZXJpbmdSZXMKICAgICByZXR1cm4gYnVmZmVyV2FzRW1wdHkgPyBWb2xh
dGlsaXR5U3RhdGU6OkVtcHR5IDogVm9sYXRpbGl0eVN0YXRlOjpWYWxpZDsKIH0KIAordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYgaWRlbnRpZmllcnMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVyczsKKyAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYmVjb21lIGFzeW5jIHdoZW4gd2Via2l0Lm9yZy9iLzIzNTk2
NSBpcyBmaXhlZC4KKyAgICBzZW5kU3luY1RvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpNYXJrU3VyZmFjZXNWb2xhdGlsZShpZGVudGlmaWVycyksIE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpNYXJrU3VyZmFjZXNWb2xhdGlsZTo6UmVwbHkoaW5Vc2VC
dWZmZXJJZGVudGlmaWVycykpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpblVz
ZUJ1ZmZlcklkZW50aWZpZXJzKSk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgc2VuZFRvU3RyZWFtKE1lc3Nh
Z2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3Jl
bmRlcmluZ1VwZGF0ZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApp
bmRleCBiMGYxYThjZjQ2NThiMzc0ZGE5MWIyZTRiMTczMjRmZWQ2OTFmYTdmLi5iZWZiZTY1Yjcz
ZmU3OGZjMDIyMGYwODBlZDlkZGJmNDlkNWI0ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVG
b250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAg
ICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJiBpblVzZUJ1ZmZl
cklkZW50aWZpZXJzKT4mJik7CiAKICAgICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgbWFya1N1
cmZhY2VOb25Wb2xhdGlsZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452389</attachid>
            <date>2022-02-17 10:58:04 -0800</date>
            <delta_ts>2022-02-17 11:56:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236791-20220217105804.patch</filename>
            <type>text/plain</type>
            <size>25351</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MTUwNGY2YWMzODE0MTFi
ZDFmMTg3ODVkMjA2ZTY2YjU3ZDFiYmIuLjVlMjEzYTgwNzA5OTk1ODc4MmExMGY4ODJmYmJkYWVl
ODFkMzYxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjItMDItMTcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBzZXR0aW5nIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlIHN1cmZhY2VzIHZvbGF0aWxlIGludG8gdGhlIEdQVSBQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIFNldHRpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgSU9TdXJmYWNlcyB2b2xhdGlsZSBo
YXMgdG8gaGFwcGVuIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoCisgICAgICAgIERPTSByZW5kZXJp
bmcgZW5hYmxlZC4gQWRkIG92ZXJyaWRlcyBpbiBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uCisgICAgICAgIHRvIGhhbmRsZSB0aGlzLCBzZW5kaW5n
IGJhdGNoZXMgb2YgYnVmZmVyIGlkZW50aWZpZXJzIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
IEJlY2F1c2UKKyAgICAgICAgc3VyZmFjZSBpbi11c2UgY291bnRzIGNhbiBjYXVzZSB0aGlzIHRv
IGZhaWwsIHdlIHJldHVybiBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgdGhhdCB3ZSBmYWlsZWQKKyAg
ICAgICAgdG8gbWFyayB2b2xhdGlsZS4gQSBmdXR1cmUgcGF0Y2ggd2lsbCB1c2UgdGhlc2UgdG8g
bWFpbnRhaW4gd2ViIHByb2Nlc3Mtc2lkZSBidWZmZXIgdm9sYXRpbGUKKyAgICAgICAgc3RhdHVz
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZh
Y2VzVm9sYXRpbGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6Cisg
ICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5o
OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlKToKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpiYWNraW5n
U3RvcmVCZWNhbWVVbnJlYWNoYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFjaGFi
aWxpdHlDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb246Om1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dm9sYXRpbGl0eVRp
bWVyRmlyZWQpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJX
aXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oOgorICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJXaXRoUmVt
b3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6Y29sbGVjdEJhY2tpbmdTdG9yZUJ1
ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpjb2xsZWN0QWxs
QnVmZmVySWRlbnRpZmllcnNUb01hcmtWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1hcmtCYWNr
aW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVhY2hhYmlsaXR5Q2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
dHJ5TWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJh
Y2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2VuZE1hcmtCdWZm
ZXJzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIyLTAy
LTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgQVNT
RVJUSU9OIEZBSUxFRDogVGhyZWFkOjpjdXJyZW50KCkudWlkKCkgPT0gdGhyZWFkQXNzZXJ0aW9u
Lm1fdWlkIGZvciBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwCmluZGV4IGRlOTRmYmI2NWJmYWZkMjE1ODQzZjBlMWM3NjJjNDUyODJjZjNkYjguLmZjODgw
NWUyYzUzNGE4NzI2YmNlY2UwOTVkN2IwMzMwMDk1ODY3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKQEAgLTQ1MSw2ICs0NTEsMzAgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpz
d2FwVG9WYWxpZEZyb250QnVmZmVyKGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJTZXQmIGIKICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IGJ1ZmZlcklkZW50aWZlcihmcm9udEJ1ZmZlciksIGJ1ZmZlcklk
ZW50aWZlcihiYWNrQnVmZmVyKSwgYnVmZmVySWRlbnRpZmVyKHNlY29uZGFyeUJhY2tCdWZmZXIp
IH0sIFdURk1vdmUoZnJvbnRCdWZmZXJIYW5kbGUpLCBmcm9udEJ1ZmZlcldhc0VtcHR5KTsKIH0K
IAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptYXJrU3VyZmFjZXNWb2xhdGlsZShjb25z
dCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYgaWRlbnRpZmll
cnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4mIGluVXNlQnVmZmVySWRlbnRpZmllcnMpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJW
b2xhdGlsaXR5LCBzdHJlYW0gPDwgIkdQVSBQcm9jZXNzOiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjptYXJrU3VyZmFjZXNWb2xhdGlsZSAiIDw8IGlkZW50aWZpZXJzKTsKKworICAgIGF1dG8gbWFr
ZVZvbGF0aWxlID0gW10oSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSB7CisgICAgICAgIGltYWdl
QnVmZmVyLnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGltYWdlQnVm
ZmVyLnNldFZvbGF0aWxlKCk7CisgICAgfTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IGluVXNlQnVmZmVySWRlbnRpZmllcnM7CisgICAgZm9yIChh
dXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBhdXRvIGltYWdlQnVmZmVy
ID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRlbnRpZmllciwg
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOwor
ICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgICAgIGlmICghbWFrZVZvbGF0aWxl
KCppbWFnZUJ1ZmZlcikpCisgICAgICAgICAgICAgICAgaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5h
cHBlbmQoaWRlbnRpZmllcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9HX1dJVEhf
U1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiIGZhaWxl
ZCB0byBmaW5kIEltYWdlQnVmZmVyIGZvciBpZGVudGlmaWVyICIgPDwgaWRlbnRpZmllcik7Cisg
ICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxp
dHksIHN0cmVhbSA8PCAiR1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxlIC0gaW4tdXNl
IHN1cmZhY2VzICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycyk7CisKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihpblVzZUJ1ZmZlcklkZW50aWZpZXJzKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCByZW5k
ZXJpbmdVcGRhdGVJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHJlbmRlcmluZ1VwZGF0ZUlEKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAx
MzE1YzBhY2IwZDg0YmU1NDRhMmYyNmQwOWE0NTIxYWFiODBmZmIxLi5jMDljMTA1NmZiODMxN2Q0
NjMwOTFkNzdiNDI2YTQ5Y2Q2YmI3ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTExOCw2
ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lk
IHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQp
OworICAgIHZvaWQgbWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpblVzZUJ1ZmZl
cklkZW50aWZpZXJzKT4mJik7CiAKICAgICB2b2lkIG1hcmtTdXJmYWNlTm9uVm9sYXRpbGUoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiwgYm9vbCBidWZmZXJXYXNF
bXB0eSk+JiYpOwogICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJ
ZGVudGlmaWVyU2V0JiBidWZmZXJTZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQnVm
ZmVySWRlbnRpZmllclNldCYgc3dhcHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGU+JiYgZnJvbnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJvbnRCdWZmZXJX
YXNFbXB0eSk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRl
eCBhYTc5ZTY4ZGNkZGQ3NTU3ZGQwZWZhMWNhNGI5M2EyNzNmZWUzZGJiLi4xNGZmYzUwOWY4ZTNl
YzkwOWI5ZmFkODJkOGVjZDg4OWVmZGM3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgpAQCAtNDAsNiArNDAsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBNYXJrU3VyZmFjZU5vblZvbGF0
aWxlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlPiBiYWNrZW5kSGFuZGxlLCBib29sIGJ1ZmZlcldhc0VtcHR5KSBTeW5jaHJvbm91cyBO
b3RTdHJlYW1FbmNvZGFibGVSZXBseQogICAgIFN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoc3RydWN0
IFdlYktpdDo6QnVmZmVySWRlbnRpZmllclNldCBidWZmZXJTZXQpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpCdWZmZXJJZGVudGlmaWVyU2V0IHN3YXBwZWRCdWZmZXJTZXQsIHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGU+IGZyb250QnVmZmVySGFuZGxlLCBib29sIGZy
b250QnVmZmVyV2FzRW1wdHkpIFN5bmNocm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAK
KyAgICBNYXJrU3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVy
cykgU3luY2hyb25vdXMKKwogICAgIEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVu
ZGVyaW5nVXBkYXRlSUQgcmVuZGVyaW5nVXBkYXRlSUQpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dn
aW5nLmgKaW5kZXggNzM2Y2Y2Y2VmYTdiYTc1Yjk4YzdlNzQ5ZWRmYTZiMTNlOTk2NzhiMS4uMTJl
ZTgxZjAyN2FhYmJhZjM3OTcyOWRlNjI4ZmM2OWFhOTU5OWNkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9M
b2dnaW5nLmgKQEAgLTg5LDYgKzg5LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShQcm9jZXNzU3dh
cHBpbmcpIFwKICAgICBNKFByb3hpbWl0eU5ldHdvcmtpbmcpIFwKICAgICBNKFB1c2gpIFwKKyAg
ICBNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHkpIFwKICAgICBNKFJlbW90ZUxheWVy
VHJlZSkgXAogICAgIE0oUmVzaXplKSBcCiAgICAgTShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDczMTFiNmMyZjU1MWI3MjhmYThmZDY5
ZDRkOGI2ZDJmYWRhZjJjMjkuLjViMDA1NDJiZGFlYTJlNjk5ZTMxMmI2NGEzN2E0YTAxYjUxZWQy
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoQ0dfRElTUExBWV9MSVNUX0JBQ0tFRF9JTUFHRV9CVUZGRVIpCiAg
ICAgICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gZGlzcGxheUxpc3RJbWFnZUJ1ZmZl
cjsKICNlbmRpZgorICAgICAgICAvLyBGSVhNRTogVGhpcyBmbGFnIG5lZWRzIHRvIGJlIHBhcnQg
b2YgSW1hZ2VCdWZmZXJbQmFja2VuZF0uIEN1cnJlbnRseSBpdCdzIG5vdCBjb3JyZWN0bHkgbWFp
bnRhaW5lZAorICAgICAgICAvLyBpbiB0aGUgR1BVIFByb2Nlc3MgY29kZSBwYXRoLgogICAgICAg
ICBib29sIGlzVm9sYXRpbGUgPSBmYWxzZTsKIAogICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24u
aAppbmRleCAxN2FmN2MyYmUwZWEwNTg1MDllYzQyZjg3MjNjMGMyOWVmODAyYTNmLi5kMjZlYTQ5
OTBkMDYyYTRlZTM2YzVjYTQ1ODE3MjQ0MGYwMzdkODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0IDx3
dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW1wb3J0IDx3dGYv
T3B0aW9uU2V0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKQEAgLTQwLDcgKzQxLDcgQEAgY2xhc3MgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogY2xhc3MgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiAKLWNsYXNzIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbiB7CitjbGFzcyBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24gOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uPiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0
aW9uKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTYxLDcgKzYy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkRmx1c2hMYXllcnMoKTsKIAotICAgIHZvaWQg
dHJ5TWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIHZpcnR1YWwgdm9pZCB0cnlNYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGUo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHNjaGVkdWxlVm9s
YXRpbGl0eVRpbWVyKCk7CiAKQEAgLTcwLDE2ICs3MSwyNCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6
CiAgICAgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGF5ZXJUcmVlQ29udGV4dDsgfQogCi1wcml2YXRlOgogICAgIGVudW0gY2xhc3Mg
Vm9sYXRpbGl0eU1hcmtpbmdCZWhhdmlvciA6IHVpbnQ4X3QgewogICAgICAgICBJZ25vcmVSZWFj
aGFiaWxpdHkgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBDb25zaWRlclRpbWVTaW5j
ZUxhc3REaXNwbGF5ICAgID0gMSA8PCAxLAogICAgIH07Ci0gICAgYm9vbCBtYXJrQmFja2luZ1N0
b3JlVm9sYXRpbGUoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmLCBPcHRpb25TZXQ8Vm9sYXRpbGl0
eU1hcmtpbmdCZWhhdmlvcj4gPSB7IH0sIE1vbm90b25pY1RpbWUgPSB7IH0pOwogCisgICAgdmly
dHVhbCB2b2lkIG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVhY2hhYmlsaXR5Q2hhbmdl
KFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJik7CisgICAgdmlydHVhbCB2b2lkIG1hcmtBbGxCYWNr
aW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcigpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFya0Jh
Y2tpbmdTdG9yZVZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiwgT3B0aW9uU2V0PFZv
bGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+ID0geyB9LCBNb25vdG9uaWNUaW1lID0geyB9KTsKICAg
ICBib29sIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShPcHRpb25TZXQ8Vm9sYXRpbGl0eU1h
cmtpbmdCZWhhdmlvcj4gbGl2ZUJhY2tpbmdTdG9yZU1hcmtpbmdCZWhhdmlvciwgT3B0aW9uU2V0
PFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+IHVucGFyZW50ZWRCYWNraW5nU3RvcmVNYXJraW5n
QmVoYXZpb3IpOworCiAgICAgdm9pZCB2b2xhdGlsaXR5VGltZXJGaXJlZCgpOwogCitwcm90ZWN0
ZWQ6CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHZvbGF0aWxlQmFja2luZ1N0b3JlQWdlVGhy
ZXNob2xkID0gMV9zOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB2b2xhdGlsZVNlY29uZGFy
eUJhY2tpbmdTdG9yZUFnZVRocmVzaG9sZCA9IDIwMF9tczsKKwogICAgIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQmIG1fbGF5ZXJUcmVlQ29udGV4dDsKIAogICAgIEhhc2hTZXQ8UmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUqPiBtX2xpdmVCYWNraW5nU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
QmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQppbmRleCA5YzNmZDI1OGY2ZWJiMDZhNGRmMDg2YWFh
YWEzNWY4ZDVhMmQyYjc1Li5mODI4MzU2ZDUyY2NiMTMwNmRiOTI1Y2MxYjYzODRmMzRkNjMxMTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KQEAg
LTI2LDE0ICsyNiwxNCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIKIAorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUltYWdlQnVmZmVy
U2hhcmVhYmxlQmFja2VuZC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29u
Y3JldGVJbWFnZUJ1ZmZlci5oPgorI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCi1j
b25zdCBTZWNvbmRzIHZvbGF0aWxlQmFja2luZ1N0b3JlQWdlVGhyZXNob2xkID0gMV9zOwotY29u
c3QgU2Vjb25kcyB2b2xhdGlsZVNlY29uZGFyeUJhY2tpbmdTdG9yZUFnZVRocmVzaG9sZCA9IDIw
MF9tczsKIGNvbnN0IFNlY29uZHMgdm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgPSAyMDBfbXM7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTU5LDYgKzE1OSwxMSBAQCB2b2lkIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6YmFja2luZ1N0b3JlQmVjYW1lVW5yZWFjaGFibGUoUmVt
b3RlTGF5ZQogCiAgICAgLy8gVGhpcyB3aWxsIG5vdCBzdWNjZWVkIGluIG1hcmtpbmcgYWxsIGJ1
ZmZlcnMgYXMgdm9sYXRpbGUsIGJlY2F1c2UgdGhlIGNvbW1pdCB1bnBhcmVudGluZyB0aGUgbGF5
ZXIgaGFzbid0CiAgICAgLy8gbWFkZSBpdCB0byB0aGUgVUkgcHJvY2VzcyB5ZXQuIFRoZSB2b2xh
dGlsaXR5IHRpbWVyIHdpbGwgZmluaXNoIG1hcmtpbmcgdGhlIHJlbWFpbmluZyBidWZmZXJzIGxh
dGVyLgorICAgIG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUFmdGVyUmVhY2hhYmlsaXR5Q2hhbmdl
KGJhY2tpbmdTdG9yZSk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0
aW9uOjptYXJrQmFja2luZ1N0b3JlVm9sYXRpbGVBZnRlclJlYWNoYWJpbGl0eUNoYW5nZShSZW1v
dGVMYXllckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQorewogICAgIG1hcmtCYWNraW5nU3Rv
cmVWb2xhdGlsZShiYWNraW5nU3RvcmUpOwogfQogCkBAIC0xODIsMTMgKzE4NywyMCBAQCB2b2lk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dHJ5TWFya0FsbEJhY2tpbmdTdG9y
ZVZvbGF0aWxlKENvbXBsZXRpbwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3NmdWxseU1h
ZGVCYWNraW5nU3RvcmVWb2xhdGlsZSk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uOjp2b2xhdGlsaXR5VGltZXJGaXJlZCgpCit2b2lkIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVy
KCkKIHsKICAgICBib29sIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZSA9IG1h
cmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZShWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yOjpDb25z
aWRlclRpbWVTaW5jZUxhc3REaXNwbGF5LCB7IH0pOworICAgIExPR19XSVRIX1NUUkVBTShSZW1v
dGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIlJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyKCkg
LSBsaXZlICIgPDwgbV9saXZlQmFja2luZ1N0b3JlLnNpemUoKSA8PCAiLCB1bnBhcmVudGVkICIg
PDwgbV91bnBhcmVudGVkQmFja2luZ1N0b3JlLnNpemUoKSA8PCAiOyBzdWNjZXNzZnVsbHlNYWRl
QmFja2luZ1N0b3JlVm9sYXRpbGUgIiA8PCBzdWNjZXNzZnVsbHlNYWRlQmFja2luZ1N0b3JlVm9s
YXRpbGUpOworCiAgICAgaWYgKHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZSkK
ICAgICAgICAgbV92b2xhdGlsaXR5VGltZXIuc3RvcCgpOwogfQogCit2b2lkIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6dm9sYXRpbGl0eVRpbWVyRmlyZWQoKQoreworICAgIG1h
cmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcigpOworfQorCiB2b2lkIFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2NoZWR1bGVWb2xhdGlsaXR5VGltZXIoKQogewog
ICAgIGlmIChtX3ZvbGF0aWxpdHlUaW1lci5pc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRl
cmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uLmgKaW5kZXggMjkyOWY5NzE2Mjk5N2E3MjhjOGJmMDNmY2EwN2ZjZDdlOGU5ZjkyMS4u
ZmYwMTJhYjJhNTdiNWY1NTk2MmE4YjU4YjQxMzYyYTEyZDU3ZTZjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJl
bmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0
b3JlQ29sbGVjdGlvbi5oCkBAIC00NSw2ICs0NSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBt
YWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYpIGZpbmFs
OwogICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZSYpIGZpbmFsOworCisgICAgYm9vbCBjb2xsZWN0QmFja2luZ1N0b3JlQnVmZmVySWRlbnRpZmll
cnNUb01hcmtWb2xhdGlsZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYsIE9wdGlvblNldDxWb2xh
dGlsaXR5TWFya2luZ0JlaGF2aW9yPiwgTW9ub3RvbmljVGltZSBub3csIFZlY3RvcjxXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+Jik7CisKKyAgICBib29sIGNvbGxlY3RBbGxC
dWZmZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKE9wdGlvblNldDxWb2xhdGlsaXR5TWFya2lu
Z0JlaGF2aW9yPiBsaXZlQmFja2luZ1N0b3JlTWFya2luZ0JlaGF2aW9yLCBPcHRpb25TZXQ8Vm9s
YXRpbGl0eU1hcmtpbmdCZWhhdmlvcj4gdW5wYXJlbnRlZEJhY2tpbmdTdG9yZU1hcmtpbmdCZWhh
dmlvciwgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mKTsKKwor
ICAgIHZvaWQgbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFjaGFiaWxpdHlDaGFuZ2Uo
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmKSBmaW5hbDsKKyAgICB2b2lkIHRyeU1hcmtBbGxCYWNr
aW5nU3RvcmVWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUZyb21UaW1lcigpIGZpbmFsOwor
ICAgIAorICAgIHZvaWQgc2VuZE1hcmtCdWZmZXJzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxl
Y3Rpb24ubW0KaW5kZXggNDUwNmYxOTJiNWVmNmMyYTQzYTMxODZlMjYxNzExZjg2OTc1NDllMC4u
ZDE2MzcwYjhkYzVmNDU2YThhOWYzZmZkYmM1NTQ3OTVmMDFhOTUwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJl
bmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdT
dG9yZUNvbGxlY3Rpb24ubW0KQEAgLTI2LDggKzI2LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxl
Y3Rpb24uaCIKIAorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5oIgogI2ltcG9ydCAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCisjaW1w
b3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC03
MSw0ICs3MywxMTkgQEAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBSZW1vdGVMYXllcldp
dGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW8KICAgICByZXR1cm4gcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KCkuY3JlYXRlSW1hZ2VCdWZmZXIoYmFja2luZ1N0b3JlLnNp
emUoKSwgcmVuZGVyaW5nTW9kZSwgYmFja2luZ1N0b3JlLnNjYWxlKCksIFdlYkNvcmU6OkRlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBiYWNraW5nU3RvcmUucGl4ZWxGb3JtYXQoKSk7CiB9
CiAKK2Jvb2wgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVj
dGlvbjo6Y29sbGVjdEJhY2tpbmdTdG9yZUJ1ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUo
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgT3B0aW9uU2V0PFZvbGF0aWxp
dHlNYXJraW5nQmVoYXZpb3I+IG1hcmtpbmdCZWhhdmlvciwgTW9ub3RvbmljVGltZSBub3csIFZl
Y3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpZGVudGlmaWVycykK
K3sKKyAgICBBU1NFUlQoIW1faW5MYXllckZsdXNoKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGRv
ZXNuJ3QgY29uc3VsdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyOjppc1ZvbGF0aWxl
LCBzbyB3ZSBtYXkgcmVkdW5kYW50bHkgcmVxdWVzdCB2b2xhdGlsaXR5LgorICAgIGF1dG8gY29s
bGVjdEJ1ZmZlciA9IFsmXShSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZSBidWZm
ZXJUeXBlKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gYmFja2luZ1N0b3JlLmJ1ZmZlckZvclR5
cGUoYnVmZmVyVHlwZSk7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGJhY2tpbmdTdG9yZS53aWxsTWFrZUJ1ZmZlclZvbGF0aWxlKGJ1ZmZlclR5
cGUpOworICAgICAgICBpZGVudGlmaWVycy5hcHBlbmQoYnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSk7CisgICAgfTsKKworICAgIGlmIChtYXJraW5nQmVoYXZpb3IuY29udGFp
bnMoVm9sYXRpbGl0eU1hcmtpbmdCZWhhdmlvcjo6Q29uc2lkZXJUaW1lU2luY2VMYXN0RGlzcGxh
eSkpIHsKKyAgICAgICAgYXV0byB0aW1lU2luY2VMYXN0RGlzcGxheSA9IG5vdyAtIGJhY2tpbmdT
dG9yZS5sYXN0RGlzcGxheVRpbWUoKTsKKyAgICAgICAgaWYgKHRpbWVTaW5jZUxhc3REaXNwbGF5
IDwgdm9sYXRpbGVCYWNraW5nU3RvcmVBZ2VUaHJlc2hvbGQpIHsKKyAgICAgICAgICAgIGlmICh0
aW1lU2luY2VMYXN0RGlzcGxheSA+PSB2b2xhdGlsZVNlY29uZGFyeUJhY2tpbmdTdG9yZUFnZVRo
cmVzaG9sZCkKKyAgICAgICAgICAgICAgICBjb2xsZWN0QnVmZmVyKFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjpCdWZmZXJUeXBlOjpTZWNvbmRhcnlCYWNrKTsKKworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgY29sbGVjdEJ1ZmZlcihSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6U2Vjb25kYXJ5QmFjayk7CisgICAgY29sbGVjdEJ1
ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6QmFjayk7CisKKyAgICBp
ZiAoIW1fcmVhY2hhYmxlQmFja2luZ1N0b3JlSW5MYXRlc3RGbHVzaC5jb250YWlucygmYmFja2lu
Z1N0b3JlKSB8fCBtYXJraW5nQmVoYXZpb3IuY29udGFpbnMoVm9sYXRpbGl0eU1hcmtpbmdCZWhh
dmlvcjo6SWdub3JlUmVhY2hhYmlsaXR5KSkKKyAgICAgICAgY29sbGVjdEJ1ZmZlcihSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6RnJvbnQpOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29s
bGVjdGlvbjo6Y29sbGVjdEFsbEJ1ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUoT3B0aW9u
U2V0PFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+IGxpdmVCYWNraW5nU3RvcmVNYXJraW5nQmVo
YXZpb3IsIE9wdGlvblNldDxWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yPiB1bnBhcmVudGVkQmFj
a2luZ1N0b3JlTWFya2luZ0JlaGF2aW9yLCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMpCit7CisgICAgYm9vbCBjb21wbGV0ZWQgPSB0cnVl
OworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIGJhY2tpbmdTdG9yZSA6IG1fbGl2ZUJhY2tpbmdTdG9yZSkKKyAgICAgICAgY29tcGxl
dGVkICY9IGNvbGxlY3RCYWNraW5nU3RvcmVCdWZmZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxl
KCpiYWNraW5nU3RvcmUsIGxpdmVCYWNraW5nU3RvcmVNYXJraW5nQmVoYXZpb3IsIG5vdywgaWRl
bnRpZmllcnMpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5nU3RvcmUgOiBtX3VucGFy
ZW50ZWRCYWNraW5nU3RvcmUpCisgICAgICAgIGNvbXBsZXRlZCAmPSBjb2xsZWN0QmFja2luZ1N0
b3JlQnVmZmVySWRlbnRpZmllcnNUb01hcmtWb2xhdGlsZSgqYmFja2luZ1N0b3JlLCB1bnBhcmVu
dGVkQmFja2luZ1N0b3JlTWFya2luZ0JlaGF2aW9yLCBub3csIGlkZW50aWZpZXJzKTsKKworICAg
IHJldHVybiBjb21wbGV0ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVy
aW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJS
ZWFjaGFiaWxpdHlDaGFuZ2UoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSkK
K3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpZGVu
dGlmaWVyczsKKyAgICBjb2xsZWN0QmFja2luZ1N0b3JlQnVmZmVySWRlbnRpZmllcnNUb01hcmtW
b2xhdGlsZShiYWNraW5nU3RvcmUsIHsgfSwgeyB9LCBpZGVudGlmaWVycyk7CisKKyAgICBpZiAo
aWRlbnRpZmllcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kTWFya0J1
ZmZlcnNWb2xhdGlsZShXVEZNb3ZlKGlkZW50aWZpZXJzKSwgW10oYm9vbCBzdWNjZWVkZWQpIHsK
KyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHks
IHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29s
bGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlQWZ0ZXJSZWFjaGFiaWxpdHlDaGFuZ2Ug
LSBzdWNjZWVkZWQgIiA8PCBzdWNjZWVkZWQpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUxh
eWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnRyeU1hcmtBbGxC
YWNraW5nU3RvcmVWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXI+IGlkZW50aWZpZXJzOworICAgIGJvb2wgY29tcGxldGVkID0gY29sbGVjdEFsbEJ1
ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUoVm9sYXRpbGl0eU1hcmtpbmdCZWhhdmlvcjo6
SWdub3JlUmVhY2hhYmlsaXR5LCBWb2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yOjpJZ25vcmVSZWFj
aGFiaWxpdHksIGlkZW50aWZpZXJzKTsKKworICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVSZW5k
ZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIlJlbW90ZUxheWVyV2l0aFJlbW90ZVJl
bmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnRyeU1hcmtBbGxCYWNraW5nU3RvcmVWb2xh
dGlsZSBwaWQgIiA8PCBnZXRwaWQoKSA8PCAiIC0gbGl2ZSAiIDw8IG1fbGl2ZUJhY2tpbmdTdG9y
ZS5zaXplKCkgPDwgIiwgdW5wYXJlbnRlZCAiIDw8IG1fdW5wYXJlbnRlZEJhY2tpbmdTdG9yZS5z
aXplKCkgPDwgIiAiIDw8IGlkZW50aWZpZXJzKTsKKworICAgIGlmIChpZGVudGlmaWVycy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZShXVEZNb3ZlKGlkZW50aWZp
ZXJzKSwgW2NvbXBsZXRlZCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYm9vbCBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXll
cldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjp0cnlNYXJrQWxsQmFj
a2luZ1N0b3JlVm9sYXRpbGUgLSBjb21wbGV0ZWQgIiA8PCBjb21wbGV0ZWQgPDwgIiwgc3VjY2Vl
ZGVkICIgPDwgc3VjY2VlZGVkKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29tcGxldGVk
ICYmIHN1Y2NlZWRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJXaXRoUmVtb3Rl
UmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0
aWxlRnJvbVRpbWVyKCkKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiBpZGVudGlmaWVyczsKKyAgICBib29sIGNvbXBsZXRlZCA9IGNvbGxlY3RBbGxC
dWZmZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I6
OkNvbnNpZGVyVGltZVNpbmNlTGFzdERpc3BsYXksIHsgfSwgaWRlbnRpZmllcnMpOworCisgICAg
TE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8
PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
bWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlRnJvbVRpbWVyIHBpZCAiIDw8IGdldHBpZCgpIDw8
ICIgLSBsaXZlICIgPDwgbV9saXZlQmFja2luZ1N0b3JlLnNpemUoKSA8PCAiLCB1bnBhcmVudGVk
ICIgPDwgbV91bnBhcmVudGVkQmFja2luZ1N0b3JlLnNpemUoKSA8PCAiLCAiIDw8IGlkZW50aWZp
ZXJzLnNpemUoKSA8PCAiIGJ1ZmZlcnMgdG8gc2V0IHZvbGF0aWxlOiAiIDw8IGlkZW50aWZpZXJz
KTsKKworICAgIGlmIChpZGVudGlmaWVycy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKGNvbXBs
ZXRlZCkKKyAgICAgICAgICAgIG1fdm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHNlbmRNYXJrQnVmZmVyc1ZvbGF0aWxlKFdURk1vdmUoaWRlbnRp
ZmllcnMpLCBbY29tcGxldGVkLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShib29sIHN1
Y2NlZWRlZCkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVy
Vm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZSBjb21wbGV0ZSAt
IGNvbXBsZXRlZCAiIDw8IGNvbXBsZXRlZCA8PCAiLCBzdWNjZWVkZWQgIiA8PCBzdWNjZWVkZWQp
OworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmIChjb21wbGV0ZWQgJiYgc3VjY2VlZGVkKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fdm9s
YXRpbGl0eVRpbWVyLnN0b3AoKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVMYXllcldpdGhS
ZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xh
dGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYmIGlkZW50
aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8mIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBtX2xheWVyVHJlZUNvbnRl
eHQuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CisgICAgCisgICAgVmVjdG9y
PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlm
aWVyczsKKyAgICByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlc1ZvbGF0aWxlKFdU
Rk1vdmUoaWRlbnRpZmllcnMpLCBbJmluVXNlQnVmZmVySWRlbnRpZmllcnNdKFZlY3RvcjxXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYgaW5Vc2VCdWZmZXJzKSB7CisgICAg
ICAgIGluVXNlQnVmZmVySWRlbnRpZmllcnMgPSBXVEZNb3ZlKGluVXNlQnVmZmVycyk7CisgICAg
fSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0
eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVD
b2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZTogIiA8PCBpblVzZUJ1ZmZlcklkZW50
aWZpZXJzLnNpemUoKSA8PCAiIGJ1ZmZlcnMgc3RpbGwgaW4tdXNlIik7CisgICAgLy8gRklYTUU6
IGluVXNlQnVmZmVySWRlbnRpZmllcnMgd2lsbCBiZSB1c2VkIHRvIG1hcCBiYWNrIHRvIGFuIElt
YWdlQnVmZmVyIGFuZCBtYWludGFpbiBpdHMgImlzVm9sYXRpbGUiIGZsYWcuCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5pc0VtcHR5KCkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cAppbmRleCA2YjhiNzhiNmU5Y2YzZDg0ZGI5MmM0YWYwY2E1ZDg0Y2ViNzM4YzUzLi5jZmExNmRl
NDg0OGIwZDA5ZTRlZDQ2ZDBmYjY1NjhlYWJkYWQ0NmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9U
eXBlZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTMzMyw2ICszMzQsMTUgQEAgVm9sYXRpbGl0eVN0YXRl
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VOb25Wb2xhdGlsZShSZW5k
ZXJpbmdSZXMKICAgICByZXR1cm4gYnVmZmVyV2FzRW1wdHkgPyBWb2xhdGlsaXR5U3RhdGU6OkVt
cHR5IDogVm9sYXRpbGl0eVN0YXRlOjpWYWxpZDsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6Om1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+JiYgaWRlbnRpZmllcnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVyczsKKyAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmVjb21lIGFzeW5jIHdoZW4gd2Via2l0Lm9yZy9iLzIzNTk2NSBpcyBmaXhlZC4KKyAg
ICBzZW5kU3luY1RvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpNYXJr
U3VyZmFjZXNWb2xhdGlsZShpZGVudGlmaWVycyksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpNYXJrU3VyZmFjZXNWb2xhdGlsZTo6UmVwbHkoaW5Vc2VCdWZmZXJJZGVudGlmaWVy
cykpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpblVzZUJ1ZmZlcklkZW50aWZp
ZXJzKSk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgc2VuZFRvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmluZ1VwZGF0ZUlE
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCBiMGYxYThjZjQ2
NThiMzc0ZGE5MWIyZTRiMTczMjRmZWQ2OTFmYTdmLi5iZWZiZTY1YjczZmU3OGZjMDIyMGYwODBl
ZDlkZGJmNDlkNWI0ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
QEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3Jl
OjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNl
UmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJiBpblVzZUJ1ZmZlcklkZW50aWZpZXJzKT4m
Jik7CiAKICAgICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgbWFya1N1cmZhY2VOb25Wb2xhdGls
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCg==
</data>
<flag name="review"
          id="479418"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>