<?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>147030</bug_id>
          
          <creation_ts>2015-07-16 20:01:16 -0700</creation_ts>
          <short_desc>Remove DFG::DesiredWriteBarriers because it&apos;s just a very difficult way of saying &quot;please barrier the machine code block owner&quot;</short_desc>
          <delta_ts>2015-07-17 22:51:05 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146929</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110070</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-16 20:01:16 -0700</bug_when>
    <thetext>Just doing:

vm.heap.writeBarrier(codeBlock-&gt;ownerExecutable()

somewhere in Plan is equivalent to all of what DesiredWriteBarriers amounts to, since:

- All of the uses of it pass codeBlock-&gt;ownerExecutable() as the owner.
- It&apos;s guaranteed that a barrier on the owner executable will be executed as a result of compilation, so we might as well just do it unconditionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110071</commentid>
    <comment_count>1</comment_count>
      <attachid>256954</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-16 20:03:59 -0700</bug_when>
    <thetext>Created attachment 256954
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110198</commentid>
    <comment_count>2</comment_count>
      <attachid>256954</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-07-17 13:52:50 -0700</bug_when>
    <thetext>Comment on attachment 256954
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110342</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-17 22:51:05 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/186985</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256954</attachid>
            <date>2015-07-16 20:03:59 -0700</date>
            <delta_ts>2015-07-17 13:52:50 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21160</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2OTIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTA3LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIERGRzo6RGVzaXJlZFdyaXRlQmFycmllcnMgYmVjYXVzZSBpdCdzIGp1c3QgYSB2ZXJ5
IGRpZmZpY3VsdCB3YXkgb2Ygc2F5aW5nICJwbGVhc2UgYmFycmllciB0aGUgbWFjaGluZSBjb2Rl
IGJsb2NrIG93bmVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBBbGwgb2YgdGhlIHVzZXJzIG9mIERlc2lyZWRXcml0ZUJhcnJpZXJzIHdl
cmUganVzdCB1c2luZyBpdCB0byByZXF1ZXN0IHRoYXQgUGxhbgorICAgICAgICBmaW5hbGl6YXRp
b24gZXhlY3V0ZXMgYSBiYXJyaWVyIG9uIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlLiBJbmRl
ZWQsIHRoYXQncyB0aGUgb25seQorICAgICAgICBvd25pbmcgY2VsbCBpbiB0aGUgaGVhcCB0aGF0
IGNvbXBpbGF0aW9uIGFmZmVjdHMuIFNvLCB3ZSBtaWdodCBhcyB3ZWxsIGp1c3QgaGF2ZSBQbGFu
CisgICAgICAgIHVuY29uZGl0aW9uYWxseSBleGVjdXRlIHRoYXQgYmFycmllciBhbmQgdGhlbiB3
ZSBkb24ndCBuZWVkIERlc2lyZWRXcml0ZUJhcnJpZXJzIGF0CisgICAgICAgIGFsbC4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6Oklu
bGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmg6IFJl
bW92ZWQuCisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6cmVnaXN0ZXJGcm96ZW5WYWx1ZXMpOgorICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpyZWFsbHlBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlBsYW46Om5vdGlmeUNvbXBpbGluZyk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6ZmluYWxp
emVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNo
ZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpj
YW5jZWwpOgorICAgICAgICAqIGRmZy9ERkdQbGFuLmg6CisKIDIwMTUtMDctMTYgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ0V4cDo6bWF0Y2goKSBzaG91bGQg
c2V0IG1fc3RhdGUgdG8gQnl0ZUNvZGUgaWYgY29tcGlsYXRpb24gZmFpbHMuCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxODY5MjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3ICsx
NjEsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRmZy9ERkdEZXNpcmVkVHJh
bnNpdGlvbnMuY3BwCiAgICAgZGZnL0RGR0Rlc2lyZWRXYXRjaHBvaW50cy5jcHAKICAgICBkZmcv
REZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcAotICAgIGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJy
aWVycy5jcHAKICAgICBkZmcvREZHRGlzYXNzZW1ibGVyLmNwcAogICAgIGRmZy9ERkdEb2VzR0Mu
Y3BwCiAgICAgZGZnL0RGR0RvbWluYXRvcnMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE4NjkyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM5OSw3ICszOTksNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZGZnXERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkZmdcREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwIiAvPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdEaXNhc3NlbWJsZXIuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0RvZXNHQy5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHRG9taW5hdG9ycy5jcHAiIC8+CkBAIC0xMDg2LDcgKzEw
ODUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRUcmFuc2l0
aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRXYXRj
aHBvaW50cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRX
ZWFrUmVmZXJlbmNlcy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rl
c2lyZWRXcml0ZUJhcnJpZXJzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdc
REZHRGlzYXNzZW1ibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZH
RG9lc0dDLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHRG9taW5hdG9y
cy5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4Njky
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjE4LDggKzE2MTgsNiBAQAogCQlDMjg4
QjJERTE4QTU0RDNFMDA3QkU0MEIgLyogRGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI4OEIyREQxOEE1NEQzRTAwN0JFNDBCIC8qIERh
dGVUZXN0cy5tbSAqLzsgfTsKIAkJQzI5ODFGRDgxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2ly
ZWRXZWFrUmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMjk4MUZENjE3QkFFRTRCMDBBM0JDOTggLyogREZHRGVzaXJlZFdlYWtSZWZl
cmVuY2VzLmNwcCAqLzsgfTsKIAkJQzI5ODFGRDkxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2ly
ZWRXZWFrUmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzI5ODFGRDcxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJl
bmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUMyOTgxRkRDMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjk4MUZEQTE3
QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwICovOyB9OwotCQlD
Mjk4MUZERDE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkRCMTdCQUZG
NDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyOUVDQjAzMTgwNEQwRUQwMEQyQ0JC
NCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOUVDQjAxMTgwNEQwRUQwMEQyQ0JCNCAv
KiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbSAqLzsgfTsKIAkJQzJBN0Y2ODgx
NjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkE3RjY4NzE2MDQzMkQ0MDBGNzZCOTgg
LyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJy
aWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzM4MCw4ICsz
Mzc4LDYgQEAKIAkJQzI4OEIyREQxOEE1NEQzRTAwN0JFNDBCIC8qIERhdGVUZXN0cy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERhdGVUZXN0cy5tbTsgcGF0aCA9
IEFQSS90ZXN0cy9EYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMy
OTgxRkQ2MTdCQUVFNEIwMEEzQkM5OCAvKiBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFdlYWtSZWZlcmVu
Y2VzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMjk4MUZENzE3QkFFRTRCMDBBM0JDOTggLyogREZHRGVz
aXJlZFdlYWtSZWZlcmVuY2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRXZWFrUmVmZXJl
bmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMjk4MUZEQTE3QkFGRjQ0MDBB
M0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwOyBwYXRoID0gZGZn
L0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQzI5ODFGREIxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJz
Lmg7IHBhdGggPSBkZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5z
aWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHBhdGggPSBBUEkvdGVz
dHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lk
ZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXJy
ZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkzOCw4ICs0OTM0LDYgQEAKIAkJCQkwRkU4NTM0
QTE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi8sCiAJCQkJQzI5
ODFGRDYxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHAgKi8s
CiAJCQkJQzI5ODFGRDcxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNl
cy5oICovLAotCQkJCUMyOTgxRkRBMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVC
YXJyaWVycy5jcHAgKi8sCi0JCQkJQzI5ODFGREIxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2ly
ZWRXcml0ZUJhcnJpZXJzLmggKi8sCiAJCQkJMEZGNDI3NjExNTkxQTFDOTAwNENCOUZGIC8qIERG
R0Rpc2Fzc2VtYmxlci5jcHAgKi8sCiAJCQkJMEZGNDI3NjIxNTkxQTFDOTAwNENCOUZGIC8qIERG
R0Rpc2Fzc2VtYmxlci5oICovLAogCQkJCTBGNUExMjcxMTkyRDlGREYwMDg3NjRBMyAvKiBERkdE
b2VzR0MuY3BwICovLApAQCAtNTgzNSw3ICs1ODI5LDYgQEAKIAkJCQlDMkMwRjdDRTE3QkJGQzVC
MDA0NjRGRTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkU4NTM0QzE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMjk4MUZEOTE3QkFFRTRCMDBBM0JDOTggLyogREZHRGVzaXJlZFdlYWtS
ZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQlDMjk4MUZERDE3QkFGRjQ0MDBBM0JDOTgg
LyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjQyNzY1
MTU5MUExQ0UwMDRDQjlGRiAvKiBERkdEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDgxQUQzMTU0RkI0RjAwMDk4M0U3MiAvKiBERkdEb21pbmF0b3JzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjFFM0E0NzE1MzRDQkI5MDAwRjk0NTYgLyogREZHRG91YmxlRm9ybWF0U3RhdGUu
aCBpbiBIZWFkZXJzICovLApAQCAtNzE0Niw3ICs3MTM5LDYgQEAKIAkJCQlDMkMwRjdDRDE3QkJG
QzVCMDA0NjRGRTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRTg1MzRCMTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzI5ODFGRDgxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2ly
ZWRXZWFrUmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDMjk4MUZEQzE3QkFGRjQ0
MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGNDI3NjQxNTkxQTFDQzAwNENCOUZGIC8qIERGR0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQ4MUFEMjE1NEZCNEVFMDA5ODNFNzIgLyogREZHRG9taW5hdG9ycy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzQzgyNjE0MTE1RDQwMDBGRDgxQ0IgLyogREZHRHJp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE4NjkyMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDM0LDEzICs0MDM0LDkgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6Oklu
bGluZQogICAgICAgICAKICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUgPSBieXRlQ29kZVBhcnNl
ci0+bV9ncmFwaC5tX3BsYW4uaW5saW5lQ2FsbEZyYW1lcy0+YWRkKCk7CiAgICAgICAgIGJ5dGVD
b2RlUGFyc2VyLT5tX2dyYXBoLmZyZWV6ZShjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsK
LSAgICAgICAgaW5pdGlhbGl6ZUxhenlXcml0ZUJhcnJpZXJGb3JJbmxpbmVDYWxsRnJhbWVFeGVj
dXRhYmxlKAotICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fZ3JhcGgubV9wbGFuLndyaXRl
QmFycmllcnMsCi0gICAgICAgICAgICBtX2lubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSwKLSAg
ICAgICAgICAgIGJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jaywKLSAgICAgICAgICAgIG1faW5s
aW5lQ2FsbEZyYW1lLAotICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5v
d25lckV4ZWN1dGFibGUoKSwKLSAgICAgICAgICAgIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxl
KCkpOworICAgICAgICAvLyBUaGUgb3duZXIgaXMgdGhlIG1hY2hpbmUgY29kZSBibG9jaywgYW5k
IHdlIGFscmVhZHkgaGF2ZSBhIGJhcnJpZXIgb24gdGhhdCB3aGVuIHRoZQorICAgICAgICAvLyBw
bGFuIGZpbmlzaGVzLgorICAgICAgICBtX2lubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZS5zZXRX
aXRob3V0V3JpdGVCYXJyaWVyKGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpOwogICAgICAg
ICBtX2lubGluZUNhbGxGcmFtZS0+c2V0U3RhY2tPZmZzZXQoaW5saW5lQ2FsbEZyYW1lU3RhcnQu
b2Zmc2V0KCkgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKTsKICAgICAgICAgaWYgKGNh
bGxlZSkgewogICAgICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5ID0g
VmFsdWVSZWNvdmVyeTo6Y29uc3RhbnQoY2FsbGVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuY3BwCShyZXZpc2lv
biAxODY5MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXcml0ZUJh
cnJpZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJERkdEZXNpcmVkV3JpdGVCYXJy
aWVycy5oIgotCi0jaWYgRU5BQkxFKERGR19KSVQpCi0KLSNpbmNsdWRlICJDb2RlQmxvY2suaCIK
LSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKLQotRGVzaXJlZFdyaXRlQmFycmllcjo6RGVzaXJlZFdyaXRlQmFycmllcihUeXBlIHR5cGUs
IENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBpbmRleCwgSlNDZWxsKiBvd25lcikKLSAg
ICA6IG1fb3duZXIob3duZXIpCi0gICAgLCBtX3R5cGUodHlwZSkKLSAgICAsIG1fY29kZUJsb2Nr
KGNvZGVCbG9jaykKLXsKLSAgICBtX3doaWNoLmluZGV4ID0gaW5kZXg7Ci19Ci0KLURlc2lyZWRX
cml0ZUJhcnJpZXI6OkRlc2lyZWRXcml0ZUJhcnJpZXIoVHlwZSB0eXBlLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTQ2VsbCogb3duZXIp
Ci0gICAgOiBtX293bmVyKG93bmVyKQotICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2NvZGVC
bG9jayhjb2RlQmxvY2spCi17Ci0gICAgbV93aGljaC5pbmxpbmVDYWxsRnJhbWUgPSBpbmxpbmVD
YWxsRnJhbWU7Ci19Ci0KLXZvaWQgRGVzaXJlZFdyaXRlQmFycmllcjo6dHJpZ2dlcihWTSYgdm0p
Ci17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIENvbnN0YW50VHlwZTogewotICAg
ICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGJhcnJpZXIgPSBtX2NvZGVCbG9jay0+Y29uc3Rh
bnRzKClbbV93aGljaC5pbmRleF07Ci0gICAgICAgIGJhcnJpZXIuc2V0KHZtLCBtX293bmVyLCBi
YXJyaWVyLmdldCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhc2UgSW5saW5l
Q2FsbEZyYW1lRXhlY3V0YWJsZVR5cGU6IHsKLSAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxp
bmVDYWxsRnJhbWUgPSBtX3doaWNoLmlubGluZUNhbGxGcmFtZTsKLSAgICAgICAgV3JpdGVCYXJy
aWVyPFNjcmlwdEV4ZWN1dGFibGU+JiBleGVjdXRhYmxlID0gaW5saW5lQ2FsbEZyYW1lLT5leGVj
dXRhYmxlOwotICAgICAgICBleGVjdXRhYmxlLnNldCh2bSwgbV9vd25lciwgZXhlY3V0YWJsZS5n
ZXQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9IH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotfQotCi12b2lkIERlc2lyZWRXcml0ZUJhcnJpZXI6OnZpc2l0Q2hpbGRyZW4o
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNl
IENvbnN0YW50VHlwZTogewotICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGJhcnJpZXIg
PSBtX2NvZGVCbG9jay0+Y29uc3RhbnRzKClbbV93aGljaC5pbmRleF07Ci0gICAgICAgIHZpc2l0
b3IuYXBwZW5kKCZiYXJyaWVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAgICAgCi0g
ICAgY2FzZSBJbmxpbmVDYWxsRnJhbWVFeGVjdXRhYmxlVHlwZTogewotICAgICAgICBJbmxpbmVD
YWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IG1fd2hpY2guaW5saW5lQ2FsbEZyYW1lOwotICAg
ICAgICBXcml0ZUJhcnJpZXI8U2NyaXB0RXhlY3V0YWJsZT4mIGV4ZWN1dGFibGUgPSBpbmxpbmVD
YWxsRnJhbWUtPmV4ZWN1dGFibGU7Ci0gICAgICAgIHZpc2l0b3IuYXBwZW5kKCZleGVjdXRhYmxl
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0gfQotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci19Ci0KLURlc2lyZWRXcml0ZUJhcnJpZXJzOjpEZXNpcmVkV3JpdGVCYXJyaWVycygp
Ci17Ci19Ci0KLURlc2lyZWRXcml0ZUJhcnJpZXJzOjp+RGVzaXJlZFdyaXRlQmFycmllcnMoKQot
ewotfQotCi12b2lkIERlc2lyZWRXcml0ZUJhcnJpZXJzOjp0cmlnZ2VyKFZNJiB2bSkKLXsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9iYXJyaWVycy5zaXplKCk7IGkrKykKLSAgICAg
ICAgbV9iYXJyaWVyc1tpXS50cmlnZ2VyKHZtKTsKLX0KLQotdm9pZCBEZXNpcmVkV3JpdGVCYXJy
aWVyczo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9iYXJyaWVycy5zaXplKCk7IGkrKykKLSAgICAgICAgbV9iYXJy
aWVyc1tpXS52aXNpdENoaWxkcmVuKHZpc2l0b3IpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCi0KLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmgJKHJldmlzaW9u
IDE4NjkyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdyaXRlQmFy
cmllcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgREZHRGVzaXJlZFdyaXRlQmFycmllcnNfaAotI2RlZmluZSBERkdEZXNpcmVk
V3JpdGVCYXJyaWVyc19oCi0KLSNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+Ci0KLSNpZiBFTkFCTEUoREZHX0pJVCkKLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LWNsYXNzIEpTRnVuY3Rpb247Ci1jbGFzcyBTY3JpcHRFeGVjdXRhYmxlOwotY2xhc3MgU2xvdFZp
c2l0b3I7Ci1jbGFzcyBWTTsKLXN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7Ci0KLW5hbWVzcGFjZSBE
RkcgewotCi1jbGFzcyBEZXNpcmVkV3JpdGVCYXJyaWVyIHsKLXB1YmxpYzoKLSAgICBlbnVtIFR5
cGUgewotICAgICAgICBDb25zdGFudFR5cGUsCi0gICAgICAgIElubGluZUNhbGxGcmFtZUV4ZWN1
dGFibGVUeXBlLAotICAgIH07Ci0gICAgRGVzaXJlZFdyaXRlQmFycmllcihUeXBlLCBDb2RlQmxv
Y2sqLCB1bnNpZ25lZCBpbmRleCwgSlNDZWxsKiBvd25lcik7Ci0gICAgRGVzaXJlZFdyaXRlQmFy
cmllcihUeXBlLCBDb2RlQmxvY2sqLCBJbmxpbmVDYWxsRnJhbWUqLCBKU0NlbGwqIG93bmVyKTsK
LQotICAgIHZvaWQgdHJpZ2dlcihWTSYpOwotICAgIAotICAgIHZvaWQgdmlzaXRDaGlsZHJlbihT
bG90VmlzaXRvciYpOwotCi1wcml2YXRlOgotICAgIEpTQ2VsbCogbV9vd25lcjsKLSAgICBUeXBl
IG1fdHlwZTsKLSAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwotICAgIHVuaW9uIHsKLSAgICAg
ICAgdW5zaWduZWQgaW5kZXg7Ci0gICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZy
YW1lOwotICAgIH0gbV93aGljaDsKLX07Ci0KLWNsYXNzIERlc2lyZWRXcml0ZUJhcnJpZXJzIHsK
LXB1YmxpYzoKLSAgICBEZXNpcmVkV3JpdGVCYXJyaWVycygpOwotICAgIH5EZXNpcmVkV3JpdGVC
YXJyaWVycygpOwotCi0gICAgRGVzaXJlZFdyaXRlQmFycmllciYgYWRkKERlc2lyZWRXcml0ZUJh
cnJpZXI6OlR5cGUgdHlwZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGluZGV4LCBK
U0NlbGwqIG93bmVyKQotICAgIHsKLSAgICAgICAgbV9iYXJyaWVycy5hcHBlbmQoRGVzaXJlZFdy
aXRlQmFycmllcih0eXBlLCBjb2RlQmxvY2ssIGluZGV4LCBvd25lcikpOwotICAgICAgICByZXR1
cm4gbV9iYXJyaWVycy5sYXN0KCk7Ci0gICAgfQotICAgIERlc2lyZWRXcml0ZUJhcnJpZXImIGFk
ZChEZXNpcmVkV3JpdGVCYXJyaWVyOjpUeXBlIHR5cGUsIENvZGVCbG9jayogY29kZUJsb2NrLCBJ
bmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNDZWxsKiBvd25lcikKLSAgICB7Ci0g
ICAgICAgIG1fYmFycmllcnMuYXBwZW5kKERlc2lyZWRXcml0ZUJhcnJpZXIodHlwZSwgY29kZUJs
b2NrLCBpbmxpbmVDYWxsRnJhbWUsIG93bmVyKSk7Ci0gICAgICAgIHJldHVybiBtX2JhcnJpZXJz
Lmxhc3QoKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRyaWdnZXIoVk0mKTsKLSAgICAKLSAgICB2b2lk
IHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8RGVz
aXJlZFdyaXRlQmFycmllcj4gbV9iYXJyaWVyczsKLX07Ci0KLWlubGluZSB2b2lkIGluaXRpYWxp
emVMYXp5V3JpdGVCYXJyaWVyRm9ySW5saW5lQ2FsbEZyYW1lRXhlY3V0YWJsZShEZXNpcmVkV3Jp
dGVCYXJyaWVycyYgYmFycmllcnMsIFdyaXRlQmFycmllcjxTY3JpcHRFeGVjdXRhYmxlPiYgYmFy
cmllciwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZy
YW1lLCBKU0NlbGwqIG93bmVyLCBTY3JpcHRFeGVjdXRhYmxlKiB2YWx1ZSkKLXsKLSAgICBEZXNp
cmVkV3JpdGVCYXJyaWVyJiBkZXNpcmVkQmFycmllciA9IGJhcnJpZXJzLmFkZChEZXNpcmVkV3Jp
dGVCYXJyaWVyOjpJbmxpbmVDYWxsRnJhbWVFeGVjdXRhYmxlVHlwZSwgY29kZUJsb2NrLCBpbmxp
bmVDYWxsRnJhbWUsIG93bmVyKTsKLSAgICBiYXJyaWVyID0gV3JpdGVCYXJyaWVyPFNjcmlwdEV4
ZWN1dGFibGU+KGRlc2lyZWRCYXJyaWVyLCB2YWx1ZSk7Ci19Ci0KLWlubGluZSB2b2lkIGluaXRp
YWxpemVMYXp5V3JpdGVCYXJyaWVyRm9yQ29uc3RhbnQoRGVzaXJlZFdyaXRlQmFycmllcnMmIGJh
cnJpZXJzLCBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGJhcnJpZXIsIENvZGVCbG9jayogY29kZUJs
b2NrLCB1bnNpZ25lZCBpbmRleCwgSlNDZWxsKiBvd25lciwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAg
ICBEZXNpcmVkV3JpdGVCYXJyaWVyJiBkZXNpcmVkQmFycmllciA9IGJhcnJpZXJzLmFkZChEZXNp
cmVkV3JpdGVCYXJyaWVyOjpDb25zdGFudFR5cGUsIGNvZGVCbG9jaywgaW5kZXgsIG93bmVyKTsK
LSAgICBiYXJyaWVyID0gV3JpdGVCYXJyaWVyPFVua25vd24+KGRlc2lyZWRCYXJyaWVyLCB2YWx1
ZSk7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKLQotI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQotCi0jZW5kaWYgLy8gREZHRGVzaXJlZFdyaXRlQmFycmllcnNfaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE4NjkyMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTIxLDEzICsxMTIxLDggQEAgdm9pZCBHcmFwaDo6cmVnaXN0ZXJGcm96ZW5WYWx1ZXMoKQogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgU3Ryb25nVmFsdWU6IHsKICAgICAgICAgICAgIHVuc2lnbmVk
IGNvbnN0YW50SW5kZXggPSBtX2NvZGVCbG9jay0+YWRkQ29uc3RhbnRMYXppbHkoKTsKLSAgICAg
ICAgICAgIGluaXRpYWxpemVMYXp5V3JpdGVCYXJyaWVyRm9yQ29uc3RhbnQoCi0gICAgICAgICAg
ICAgICAgbV9wbGFuLndyaXRlQmFycmllcnMsCi0gICAgICAgICAgICAgICAgbV9jb2RlQmxvY2st
PmNvbnN0YW50cygpW2NvbnN0YW50SW5kZXhdLAotICAgICAgICAgICAgICAgIG1fY29kZUJsb2Nr
LAotICAgICAgICAgICAgICAgIGNvbnN0YW50SW5kZXgsCi0gICAgICAgICAgICAgICAgbV9jb2Rl
QmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLAotICAgICAgICAgICAgICAgIHZhbHVlLT52YWx1ZSgp
KTsKKyAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGJhcnJpZXIgb24gdGhlIGNvZGUg
YmxvY2suCisgICAgICAgICAgICBtX2NvZGVCbG9jay0+Y29uc3RhbnRzKClbY29uc3RhbnRJbmRl
eF0uc2V0V2l0aG91dFdyaXRlQmFycmllcih2YWx1ZS0+dmFsdWUoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfSB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1BsYW4uY3BwCShyZXZpc2lvbiAxODY5MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjksNyArNTI5LDYgQEAgdm9pZCBQbGFu
OjpyZWFsbHlBZGQoQ29tbW9uRGF0YSogY29tbW9uRAogICAgIGlkZW50aWZpZXJzLnJlYWxseUFk
ZCh2bSwgY29tbW9uRGF0YSk7CiAgICAgd2Vha1JlZmVyZW5jZXMucmVhbGx5QWRkKHZtLCBjb21t
b25EYXRhKTsKICAgICB0cmFuc2l0aW9ucy5yZWFsbHlBZGQodm0sIGNvbW1vbkRhdGEpOwotICAg
IHdyaXRlQmFycmllcnMudHJpZ2dlcih2bSk7CiB9CiAKIHZvaWQgUGxhbjo6bm90aWZ5Q29tcGls
aW5nKCkKQEAgLTU1MCw2ICs1NDksOSBAQCB2b2lkIFBsYW46Om5vdGlmeVJlYWR5KCkKIAogQ29t
cGlsYXRpb25SZXN1bHQgUGxhbjo6ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKQog
eworICAgIC8vIFdlIHdpbGwgZXN0YWJsaXNoIG5ldyByZWZlcmVuY2VzIGZyb20gdGhlIGNvZGUg
YmxvY2sgdG8gdGhpbmdzLiBTbywgd2UgbmVlZCBhIGJhcnJpZXIuCisgICAgdm0uaGVhcC53cml0
ZUJhcnJpZXIoY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSk7CisgICAgCiAgICAgaWYgKCFp
c1N0aWxsVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uSW52YWxpZGF0ZWQ7CiAK
QEAgLTYwNSw3ICs2MDcsNiBAQCB2b2lkIFBsYW46OmNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxk
cmVuCiAgICAgY29kZUJsb2Nrcy5tYXJrKHByb2ZpbGVkREZHQ29kZUJsb2NrLmdldCgpKTsKICAg
ICAKICAgICB3ZWFrUmVmZXJlbmNlcy52aXNpdENoaWxkcmVuKHZpc2l0b3IpOwotICAgIHdyaXRl
QmFycmllcnMudmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICB0cmFuc2l0aW9ucy52aXNpdENo
aWxkcmVuKHZpc2l0b3IpOwogfQogCkBAIC02MzMsNyArNjM0LDYgQEAgdm9pZCBQbGFuOjpjYW5j
ZWwoKQogICAgIHdhdGNocG9pbnRzID0gRGVzaXJlZFdhdGNocG9pbnRzKCk7CiAgICAgaWRlbnRp
ZmllcnMgPSBEZXNpcmVkSWRlbnRpZmllcnMoKTsKICAgICB3ZWFrUmVmZXJlbmNlcyA9IERlc2ly
ZWRXZWFrUmVmZXJlbmNlcygpOwotICAgIHdyaXRlQmFycmllcnMgPSBEZXNpcmVkV3JpdGVCYXJy
aWVycygpOwogICAgIHRyYW5zaXRpb25zID0gRGVzaXJlZFRyYW5zaXRpb25zKCk7CiAgICAgY2Fs
bGJhY2sgPSBudWxscHRyOwogICAgIHN0YWdlID0gQ2FuY2VsbGVkOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJldmlzaW9uIDE4NjkyMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiREZHRGVzaXJlZFRyYW5zaXRpb25zLmgiCiAjaW5jbHVkZSAiREZHRGVzaXJlZFdh
dGNocG9pbnRzLmgiCiAjaW5jbHVkZSAiREZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmgiCi0jaW5j
bHVkZSAiREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCIKICNpbmNsdWRlICJERkdGaW5hbGl6ZXIu
aCIKICNpbmNsdWRlICJEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJP
cGVyYW5kcy5oIgpAQCAtOTQsNyArOTMsNiBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlCiAgICAgRGVzaXJlZFdhdGNocG9pbnRzIHdhdGNocG9pbnRzOwogICAgIERl
c2lyZWRJZGVudGlmaWVycyBpZGVudGlmaWVyczsKICAgICBEZXNpcmVkV2Vha1JlZmVyZW5jZXMg
d2Vha1JlZmVyZW5jZXM7Ci0gICAgRGVzaXJlZFdyaXRlQmFycmllcnMgd3JpdGVCYXJyaWVyczsK
ICAgICBEZXNpcmVkVHJhbnNpdGlvbnMgdHJhbnNpdGlvbnM7CiAgICAgCiAgICAgYm9vbCB3aWxs
VHJ5VG9UaWVyVXA7Cg==
</data>
<flag name="review"
          id="282062"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>