<?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>82151</bug_id>
          
          <creation_ts>2012-03-25 16:20:47 -0700</creation_ts>
          <short_desc>DFGOperands should be moved out of the DFG and into bytecode</short_desc>
          <delta_ts>2012-03-25 16:35:53 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>587368</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-25 16:20:47 -0700</bug_when>
    <thetext>DFGOperands provides functionality that is useful to any code that is trying to reason about bytecode virtual registers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587370</commentid>
    <comment_count>1</comment_count>
      <attachid>133699</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-25 16:23:09 -0700</bug_when>
    <thetext>Created attachment 133699
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587373</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-25 16:35:53 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/112039</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133699</attachid>
            <date>2012-03-25 16:23:09 -0700</date>
            <delta_ts>2012-03-25 16:29:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>moveoperands_patch_1.diff</filename>
            <type>text/plain</type>
            <size>24104</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyMDM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTAzLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHT3BlcmFuZHMgc2hvdWxkIGJlIG1vdmVkIG91dCBvZiB0aGUgREZHIGFuZCBpbnRvIGJ5dGVj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL09wZXJhbmRzLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmFuZHMuaC4KKyAgICAgICAgKiBkZmcv
REZHQmFzaWNCbG9jay5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgICogZGZn
L0RGR09TUkVudHJ5Lmg6CisgICAgICAgICogZGZnL0RGR09TUkV4aXQuaDoKKyAgICAgICAgKiBk
ZmcvREZHT3BlcmFuZHMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVBY2Nl
c3NEYXRhLmg6CisKIDIwMTItMDMtMjQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBERkcgNjQtYml0IEJyYW5jaCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbm90IGJl
IGNyZWF0aW5nIGEgSlNWYWx1ZU9wZXJhbmQgdGhhdApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDExMjAyNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiAr
MTE3LDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9PcGNvZGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09w
ZXJhbmRzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY1B1
dEJ5SWRMaXN0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljUHV0QnlJZExpc3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRp
Y3RlZFR5cGUuY3BwIFwKQEAgLTE3NSw3ICsxNzYsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkamFjZW5jeUxpc3QuaCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0VkZ2UuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYW5kcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAgXApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDExMjAyNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC03NCw2ICs3NCw3IEBACiAJCTBGMjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVm
ZXJlbmNlSGFydmVzdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjI0MkRBNTEzRjNCMUJCMDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
MkJEQzE1MTUxQzVENEQwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkJEQzEyMTUxQzVENEEwMENEODkx
MCAvKiBERkdGaXh1cFBoYXNlLmNwcCAqLzsgfTsKIAkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEw
IC8qIERGR0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMkJEQzEzMTUxQzVENEEwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyQkRDMkMx
NTFGREU5MTAwQ0Q4OTEwIC8qIE9wZXJhbmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJCREMyQjE1MUZERThCMDBDRDg5MTAgLyogT3BlcmFuZHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjJD
NTU2RjE0NzM4RjMxMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQzU1NkUxNDczOEYyRTAwMTIxRTRGIC8q
IERGR0NvZGVCbG9ja3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjJDNTU3MDE0NzM4RjM1MDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJDNTU2RDE0
NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5jcHAgKi87IH07CiAJCTBGNDI2QTQ4MTQ2
MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQyNkE0NTE0NjBDQkFCMDAxMzFGOEYgLyogVmFsdWVS
ZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xMDAsNyArMTAxLDYgQEAKIAkJMEY1NkExRDUxNTAwMUNGNDAwMjk5MkIxIC8qIEV4ZWN1
dGlvbkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwICov
OyB9OwogCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXpl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RjA4
Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NDE0M0ZDRDMz
MDA2OEI3N0MgLyogREZHVmFyaWFibGVBY2Nlc3NEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MjE0M0ZDRDJGMDA2OEI3N0MgLyogREZH
VmFyaWFibGVBY2Nlc3NEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMEY2MjAxNzUxNDNGQ0QzNzAwNjhCNzdDIC8qIERGR09wZXJhbmRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MTE0
M0ZDRDJGMDA2OEI3N0MgLyogREZHT3BlcmFuZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyogREZH
QmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2MjAxNzAxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Jhc2ljQmxvY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NzE0M0ZDRDNG
MDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNkYxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3Ry
YWN0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjYyMDE3ODE0M0ZDRDQ0MDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNkUxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzI0LDYgKzcyNCw3IEBACiAJCTBGMjQyREE1MTNG
M0IxQkIwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYyQkRDMTIxNTFDNUQ0QTAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRml4dXBQaGFz
ZS5jcHA7IHBhdGggPSBkZmcvREZHRml4dXBQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMkJEQzEzMTUxQzVENEEwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0ZpeHVwUGhhc2UuaDsgcGF0aCA9IGRm
Zy9ERkdGaXh1cFBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMkJEQzJC
MTUxRkRFOEIwMENEODkxMCAvKiBPcGVyYW5kcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBPcGVyYW5kcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjJDNTU2
RDE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBERkdDb2RlQmxvY2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEYyQzU1NkUxNDczOEYyRTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gREZHQ29kZUJsb2Nrcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQyNkE0NTE0NjBDQkFCMDAxMzFGOEYgLyogVmFsdWVS
ZWNvdmVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWx1ZVJlY292ZXJ5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTUsNyArNzU2LDYgQEAKIAkJMEY2
MjAxNkUxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5oOyBwYXRoID0gZGZnL0RGR0Fi
c3RyYWN0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkYxNDNG
Q0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHQWJzdHJhY3RWYWx1ZS5oOyBwYXRoID0gZGZnL0RGR0Fic3RyYWN0VmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNzAxNDNGQ0QyRjAwNjhC
NzdDIC8qIERGR0Jhc2ljQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQmFzaWNCbG9jay5oOyBwYXRoID0gZGZnL0RGR0Jhc2ljQmxvY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY2MjAxNzExNDNGQ0QyRjAwNjhCNzdDIC8qIERGR09wZXJhbmRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR09wZXJhbmRzLmg7IHBhdGgg
PSBkZmcvREZHT3BlcmFuZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAx
NzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaDsgcGF0aCA9IGRm
Zy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY2NkUxNjgxNERGM0YxMzAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQWRqYWNlbmN5TGlzdC5oOyBwYXRoID0gZGZnL0RG
R0FkamFjZW5jeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjkx
NERGM0YxMzAwQjdCMkU0IC8qIERGR0VkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHRWRnZS5oOyBwYXRoID0gZGZnL0RGR0VkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwMDIsNyArMjAwMiw2IEBACiAJCQkJMEY2NkUxNjgxNERGM0YxMzAwQjdC
MkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCAqLywKIAkJCQkwRkE1ODFCOTE1MEU5NTJBMDBCOUEy
RDkgLyogREZHTm9kZVR5cGUuaCAqLywKIAkJCQkwRjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyog
REZHRWRnZS5oICovLAotCQkJCTBGNjIwMTcxMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdPcGVyYW5k
cy5oICovLAogCQkJCTg2RUM5REJGMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmNw
cCAqLywKIAkJCQk4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5oICov
LAogCQkJCTBGRDgyRTUyMTQxREFFREUwMDE3OUM5NCAvKiBERkdPU1JFbnRyeS5jcHAgKi8sCkBA
IC0yMTA1LDYgKzIxMDQsNyBAQAogCQkJCTBGQjU0Njc2MTRGNTlBRDEwMDJDMjk4OSAvKiBMYXp5
T3BlcmFuZFZhbHVlUHJvZmlsZS5oICovLAogCQkJCTBGMjFDMjdFMTRCRUFBODAwMEFEQzY0QiAv
KiBCeXRlY29kZUNvbnZlbnRpb25zLmggKi8sCiAJCQkJMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0
IC8qIExMSW50Q2FsbExpbmtJbmZvLmggKi8sCisJCQkJMEYyQkRDMkIxNTFGREU4QjAwQ0Q4OTEw
IC8qIE9wZXJhbmRzLmggKi8sCiAJCQkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHlt
b3JwaGljUHV0QnlJZExpc3QuY3BwICovLAogCQkJCTBGOUZDOEMwMTRFMUI1RkIwMEQ1MkFFMCAv
KiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8sCiAJCQkJMEY5RkM4QzExNEUxQjVGQjAwRDUy
QUUwIC8qIFB1dEtpbmQuaCAqLywKQEAgLTIyMzUsNyArMjIzNSw2IEBACiAJCQkJODZFQzlEQzgx
MzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOURD
QzEzMjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RUNBM0VBMTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjYyMDE3NTE0M0ZDRDM3MDA2OEI3N0MgLyogREZHT3BlcmFuZHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2RUM5REQwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkQ4MkU1NzE0MURBRjEwMDAxNzlDOTQgLyogREZHT1NSRW50cnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzA5NzZBMTQ2OEE2RjcwMENGMjQ0MiAvKiBERkdPU1JFeGl0
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDEsNiArMjUwMCw3IEBACiAJCQkJMEZBNTgxQkIxNTBF
OTUzMDAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBNTgx
QkMxNTBFOTUzMDAwQjlBMkQ5IC8qIERGR05vZGVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCREMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4dXBQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEYyQkRDMkMxNTFGREU5MTAwQ0Q4OTEwIC8qIE9wZXJhbmRzLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oCShyZXZp
c2lvbiAxMTIwMjQpCShmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmFuZHMu
aDoxMTIwMjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3BlcmFuZHMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR09wZXJhbmRzX2gKKyNkZWZpbmUgREZH
T3BlcmFuZHNfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoREZH
X0pJVCkKKworI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCisvLyBhcmd1bWVudCAwIGlzICd0
aGlzJy4KK2lubGluZSBib29sIG9wZXJhbmRJc0FyZ3VtZW50KGludCBvcGVyYW5kKSB7IHJldHVy
biBvcGVyYW5kIDwgMDsgfQoraW5saW5lIGludCBvcGVyYW5kVG9Bcmd1bWVudChpbnQgb3BlcmFu
ZCkgeyByZXR1cm4gLW9wZXJhbmQgKyBDYWxsRnJhbWU6OnRoaXNBcmd1bWVudE9mZnNldCgpOyB9
CitpbmxpbmUgaW50IGFyZ3VtZW50VG9PcGVyYW5kKGludCBhcmd1bWVudCkgeyByZXR1cm4gLWFy
Z3VtZW50ICsgQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKTsgfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgT3BlcmFuZFZhbHVlVHJhaXRzOworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorc3RydWN0IE9wZXJhbmRWYWx1ZVRyYWl0cyB7CisgICAgc3RhdGljIFQgZGVmYXVsdFZh
bHVlKCkgeyByZXR1cm4gVCgpOyB9CisgICAgc3RhdGljIHZvaWQgZHVtcChjb25zdCBUJiB2YWx1
ZSwgRklMRSogb3V0KSB7IHZhbHVlLmR1bXAob3V0KTsgfQorfTsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVHJhaXRzID0gT3BlcmFuZFZhbHVlVHJhaXRzPFQ+ID4KK2NsYXNzIE9w
ZXJhbmRzIHsKK3B1YmxpYzoKKyAgICBPcGVyYW5kcygpIHsgfQorICAgIAorICAgIGV4cGxpY2l0
IE9wZXJhbmRzKHNpemVfdCBudW1Bcmd1bWVudHMsIHNpemVfdCBudW1Mb2NhbHMpCisgICAgewor
ICAgICAgICBtX2FyZ3VtZW50cy5maWxsKFRyYWl0czo6ZGVmYXVsdFZhbHVlKCksIG51bUFyZ3Vt
ZW50cyk7CisgICAgICAgIG1fbG9jYWxzLmZpbGwoVHJhaXRzOjpkZWZhdWx0VmFsdWUoKSwgbnVt
TG9jYWxzKTsKKyAgICB9CisgICAgCisgICAgc2l6ZV90IG51bWJlck9mQXJndW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9hcmd1bWVudHMuc2l6ZSgpOyB9CisgICAgc2l6ZV90IG51bWJlck9mTG9j
YWxzKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbHMuc2l6ZSgpOyB9CisgICAgCisgICAgVCYgYXJn
dW1lbnQoc2l6ZV90IGlkeCkgeyByZXR1cm4gbV9hcmd1bWVudHNbaWR4XTsgfQorICAgIGNvbnN0
IFQmIGFyZ3VtZW50KHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1lbnRzW2lkeF07
IH0KKyAgICAKKyAgICBUJiBsb2NhbChzaXplX3QgaWR4KSB7IHJldHVybiBtX2xvY2Fsc1tpZHhd
OyB9CisgICAgY29uc3QgVCYgbG9jYWwoc2l6ZV90IGlkeCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bHNbaWR4XTsgfQorICAgIAorICAgIHZvaWQgZW5zdXJlTG9jYWxzKHNpemVfdCBzaXplKQorICAg
IHsKKyAgICAgICAgaWYgKHNpemUgPD0gbV9sb2NhbHMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9sb2NhbHMuc2l6ZSgpOworICAgICAg
ICBtX2xvY2Fscy5yZXNpemUoc2l6ZSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSBvbGRTaXpl
OyBpIDwgbV9sb2NhbHMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBtX2xvY2Fsc1tpXSA9IFRy
YWl0czo6ZGVmYXVsdFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0TG9jYWwoc2l6
ZV90IGlkeCwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICBlbnN1cmVMb2NhbHMoaWR4
ICsgMSk7CisgICAgICAgIAorICAgICAgICBtX2xvY2Fsc1tpZHhdID0gdmFsdWU7CisgICAgfQor
ICAgIAorICAgIFQgZ2V0TG9jYWwoc2l6ZV90IGlkeCkKKyAgICB7CisgICAgICAgIGlmIChpZHgg
Pj0gbV9sb2NhbHMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFRyYWl0czo6ZGVmYXVsdFZh
bHVlKCk7CisgICAgICAgIHJldHVybiBtX2xvY2Fsc1tpZHhdOworICAgIH0KKyAgICAKKyAgICB2
b2lkIHNldEFyZ3VtZW50Rmlyc3RUaW1lKHNpemVfdCBpZHgsIGNvbnN0IFQmIHZhbHVlKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fYXJndW1lbnRzW2lkeF0gPT0gVHJhaXRzOjpkZWZhdWx0VmFs
dWUoKSk7CisgICAgICAgIGFyZ3VtZW50KGlkeCkgPSB2YWx1ZTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBzZXRMb2NhbEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2YWx1ZSkKKyAgICB7
CisgICAgICAgIEFTU0VSVChpZHggPj0gbV9sb2NhbHMuc2l6ZSgpIHx8IG1fbG9jYWxzW2lkeF0g
PT0gVHJhaXRzOjpkZWZhdWx0VmFsdWUoKSk7CisgICAgICAgIHNldExvY2FsKGlkeCwgdmFsdWUp
OworICAgIH0KKyAgICAKKyAgICBUJiBvcGVyYW5kKGludCBvcGVyYW5kKQorICAgIHsKKyAgICAg
ICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KG9wZXJhbmQpKSB7CisgICAgICAgICAgICBpbnQgYXJn
dW1lbnQgPSBvcGVyYW5kVG9Bcmd1bWVudChvcGVyYW5kKTsKKyAgICAgICAgICAgIHJldHVybiBt
X2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVy
biBtX2xvY2Fsc1tvcGVyYW5kXTsKKyAgICB9CisgICAgCisgICAgY29uc3QgVCYgb3BlcmFuZChp
bnQgb3BlcmFuZCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxjb25zdCBUJj4oY29uc3RfY2Fz
dDxPcGVyYW5kcyo+KHRoaXMpLT5vcGVyYW5kKG9wZXJhbmQpKTsgfQorICAgIAorICAgIHZvaWQg
c2V0T3BlcmFuZChpbnQgb3BlcmFuZCwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICBp
ZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpIHsKKyAgICAgICAgICAgIGludCBhcmd1bWVu
dCA9IG9wZXJhbmRUb0FyZ3VtZW50KG9wZXJhbmQpOworICAgICAgICAgICAgbV9hcmd1bWVudHNb
YXJndW1lbnRdID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIHNldExvY2FsKG9wZXJhbmQsIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYXJn
dW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV9hcmd1bWVudHNbaV0gPSBUcmFpdHM6
OmRlZmF1bHRWYWx1ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbG9jYWxz
LnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV9sb2NhbHNbaV0gPSBUcmFpdHM6OmRlZmF1bHRW
YWx1ZSgpOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgVmVjdG9yPFQsIDg+IG1fYXJndW1l
bnRzOworICAgIFZlY3RvcjxULCAxNj4gbV9sb2NhbHM7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBUcmFpdHM+Cit2b2lkIGR1bXBPcGVyYW5kcyhPcGVyYW5kczxULCBUcmFp
dHM+JiBvcGVyYW5kcywgRklMRSogb3V0KQoreworICAgIGZvciAoc2l6ZV90IGFyZ3VtZW50ID0g
MDsgYXJndW1lbnQgPCBvcGVyYW5kcy5udW1iZXJPZkFyZ3VtZW50cygpOyArK2FyZ3VtZW50KSB7
CisgICAgICAgIGlmIChhcmd1bWVudCkKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiICIpOwor
ICAgICAgICBUcmFpdHM6OmR1bXAob3BlcmFuZHMuYXJndW1lbnQoYXJndW1lbnQpLCBvdXQpOwor
ICAgIH0KKyAgICBmcHJpbnRmKG91dCwgIiA6ICIpOworICAgIGZvciAoc2l6ZV90IGxvY2FsID0g
MDsgbG9jYWwgPCBvcGVyYW5kcy5udW1iZXJPZkxvY2FscygpOyArK2xvY2FsKSB7CisgICAgICAg
IGlmIChsb2NhbCkKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiICIpOworICAgICAgICBUcmFp
dHM6OmR1bXAob3BlcmFuZHMubG9jYWwobG9jYWwpLCBvdXQpOworICAgIH0KK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRp
ZiAvLyBERkdPcGVyYW5kc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGVyYW5kcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGVyYW5kcy5oCShyZXZpc2lvbiAxMTIwMjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvT3BlcmFuZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTcgKzIzLDEzIEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIERGR09wZXJhbmRzX2gKLSNkZWZpbmUgREZHT3Bl
cmFuZHNfaAotCi0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+Ci0KLSNpZiBFTkFCTEUoREZHX0pJ
VCkKKyNpZm5kZWYgT3BlcmFuZHNfaAorI2RlZmluZSBPcGVyYW5kc19oCiAKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKK25hbWVzcGFjZSBKU0MgewogCiAvLyBhcmd1bWVudCAwIGlzICd0aGlz
Jy4KIGlubGluZSBib29sIG9wZXJhbmRJc0FyZ3VtZW50KGludCBvcGVyYW5kKSB7IHJldHVybiBv
cGVyYW5kIDwgMDsgfQpAQCAtMTU3LDkgKzE1Myw3IEBAIHZvaWQgZHVtcE9wZXJhbmRzKE9wZXJh
bmRzPFQsIFRyYWl0cz4mIG8KICAgICB9CiB9CiAKLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
LQotI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRp
ZiAvLyBERkdPcGVyYW5kc19oCisjZW5kaWYgLy8gT3BlcmFuZHNfaAogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMTEyMDI0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0VmFsdWUuaCIKICNpbmNs
dWRlICJERkdOb2RlLmgiCi0jaW5jbHVkZSAiREZHT3BlcmFuZHMuaCIKKyNpbmNsdWRlICJPcGVy
YW5kcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxMTIwMjQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsOSArMzYsOSBAQAogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkRGR05v
ZGVGbGFncy5oIgogI2luY2x1ZGUgIkRGR05vZGVUeXBlLmgiCi0jaW5jbHVkZSAiREZHT3BlcmFu
ZHMuaCIKICNpbmNsdWRlICJERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCIKICNpbmNsdWRlICJKU1Zh
bHVlLmgiCisjaW5jbHVkZSAiT3BlcmFuZHMuaCIKICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgi
CiAjaW5jbHVkZSAiVmFsdWVQcm9maWxlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkVudHJ5LmgJKHJldmlzaW9uIDExMjAyNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAog
I2RlZmluZSBERkdPU1JFbnRyeV9oCiAKICNpbmNsdWRlICJERkdBYnN0cmFjdFZhbHVlLmgiCi0j
aW5jbHVkZSAiREZHT3BlcmFuZHMuaCIKKyNpbmNsdWRlICJPcGVyYW5kcy5oIgogI2luY2x1ZGUg
PHd0Zi9CaXRWZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXQuaAkocmV2aXNpb24gMTEyMDI0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkg
QEAKICNpbmNsdWRlICJERkdDb3JyZWN0YWJsZUp1bXBQb2ludC5oIgogI2luY2x1ZGUgIkRGR0V4
aXRQcm9maWxlLmgiCiAjaW5jbHVkZSAiREZHR1BSSW5mby5oIgotI2luY2x1ZGUgIkRGR09wZXJh
bmRzLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlLmgiCisjaW5jbHVkZSAiT3BlcmFuZHMuaCIKICNpbmNsdWRlICJW
YWx1ZVByb2ZpbGUuaCIKICNpbmNsdWRlICJWYWx1ZVJlY292ZXJ5LmgiCiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYW5kcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmFuZHMuaAko
cmV2aXNpb24gMTEyMDI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYW5k
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgREZHT3BlcmFuZHNfaAotI2RlZmlu
ZSBERkdPcGVyYW5kc19oCi0KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLQotI2lmIEVOQUJM
RShERkdfSklUKQotCi0jaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7Ci0KLS8vIGFyZ3VtZW50IDAg
aXMgJ3RoaXMnLgotaW5saW5lIGJvb2wgb3BlcmFuZElzQXJndW1lbnQoaW50IG9wZXJhbmQpIHsg
cmV0dXJuIG9wZXJhbmQgPCAwOyB9Ci1pbmxpbmUgaW50IG9wZXJhbmRUb0FyZ3VtZW50KGludCBv
cGVyYW5kKSB7IHJldHVybiAtb3BlcmFuZCArIENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0
KCk7IH0KLWlubGluZSBpbnQgYXJndW1lbnRUb09wZXJhbmQoaW50IGFyZ3VtZW50KSB7IHJldHVy
biAtYXJndW1lbnQgKyBDYWxsRnJhbWU6OnRoaXNBcmd1bWVudE9mZnNldCgpOyB9Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBPcGVyYW5kVmFsdWVUcmFpdHM7Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFQ+Ci1zdHJ1Y3QgT3BlcmFuZFZhbHVlVHJhaXRzIHsKLSAgICBzdGF0aWMgVCBkZWZh
dWx0VmFsdWUoKSB7IHJldHVybiBUKCk7IH0KLSAgICBzdGF0aWMgdm9pZCBkdW1wKGNvbnN0IFQm
IHZhbHVlLCBGSUxFKiBvdXQpIHsgdmFsdWUuZHVtcChvdXQpOyB9Ci19OwotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHMgPSBPcGVyYW5kVmFsdWVUcmFpdHM8VD4gPgotY2xh
c3MgT3BlcmFuZHMgewotcHVibGljOgotICAgIE9wZXJhbmRzKCkgeyB9Ci0gICAgCi0gICAgZXhw
bGljaXQgT3BlcmFuZHMoc2l6ZV90IG51bUFyZ3VtZW50cywgc2l6ZV90IG51bUxvY2FscykKLSAg
ICB7Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoVHJhaXRzOjpkZWZhdWx0VmFsdWUoKSwgbnVt
QXJndW1lbnRzKTsKLSAgICAgICAgbV9sb2NhbHMuZmlsbChUcmFpdHM6OmRlZmF1bHRWYWx1ZSgp
LCBudW1Mb2NhbHMpOwotICAgIH0KLSAgICAKLSAgICBzaXplX3QgbnVtYmVyT2ZBcmd1bWVudHMo
KSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50cy5zaXplKCk7IH0KLSAgICBzaXplX3QgbnVtYmVy
T2ZMb2NhbHMoKSBjb25zdCB7IHJldHVybiBtX2xvY2Fscy5zaXplKCk7IH0KLSAgICAKLSAgICBU
JiBhcmd1bWVudChzaXplX3QgaWR4KSB7IHJldHVybiBtX2FyZ3VtZW50c1tpZHhdOyB9Ci0gICAg
Y29uc3QgVCYgYXJndW1lbnQoc2l6ZV90IGlkeCkgY29uc3QgeyByZXR1cm4gbV9hcmd1bWVudHNb
aWR4XTsgfQotICAgIAotICAgIFQmIGxvY2FsKHNpemVfdCBpZHgpIHsgcmV0dXJuIG1fbG9jYWxz
W2lkeF07IH0KLSAgICBjb25zdCBUJiBsb2NhbChzaXplX3QgaWR4KSBjb25zdCB7IHJldHVybiBt
X2xvY2Fsc1tpZHhdOyB9Ci0gICAgCi0gICAgdm9pZCBlbnN1cmVMb2NhbHMoc2l6ZV90IHNpemUp
Ci0gICAgewotICAgICAgICBpZiAoc2l6ZSA8PSBtX2xvY2Fscy5zaXplKCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgc2l6ZV90IG9sZFNpemUgPSBtX2xvY2Fscy5zaXplKCk7Ci0g
ICAgICAgIG1fbG9jYWxzLnJlc2l6ZShzaXplKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IG9s
ZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fbG9jYWxzW2ld
ID0gVHJhaXRzOjpkZWZhdWx0VmFsdWUoKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzZXRMb2Nh
bChzaXplX3QgaWR4LCBjb25zdCBUJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGVuc3VyZUxvY2Fs
cyhpZHggKyAxKTsKLSAgICAgICAgCi0gICAgICAgIG1fbG9jYWxzW2lkeF0gPSB2YWx1ZTsKLSAg
ICB9Ci0gICAgCi0gICAgVCBnZXRMb2NhbChzaXplX3QgaWR4KQotICAgIHsKLSAgICAgICAgaWYg
KGlkeCA+PSBtX2xvY2Fscy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gVHJhaXRzOjpkZWZh
dWx0VmFsdWUoKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxzW2lkeF07Ci0gICAgfQotICAgIAot
ICAgIHZvaWQgc2V0QXJndW1lbnRGaXJzdFRpbWUoc2l6ZV90IGlkeCwgY29uc3QgVCYgdmFsdWUp
Ci0gICAgewotICAgICAgICBBU1NFUlQobV9hcmd1bWVudHNbaWR4XSA9PSBUcmFpdHM6OmRlZmF1
bHRWYWx1ZSgpKTsKLSAgICAgICAgYXJndW1lbnQoaWR4KSA9IHZhbHVlOwotICAgIH0KLSAgICAK
LSAgICB2b2lkIHNldExvY2FsRmlyc3RUaW1lKHNpemVfdCBpZHgsIGNvbnN0IFQmIHZhbHVlKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKGlkeCA+PSBtX2xvY2Fscy5zaXplKCkgfHwgbV9sb2NhbHNb
aWR4XSA9PSBUcmFpdHM6OmRlZmF1bHRWYWx1ZSgpKTsKLSAgICAgICAgc2V0TG9jYWwoaWR4LCB2
YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIFQmIG9wZXJhbmQoaW50IG9wZXJhbmQpCi0gICAgewot
ICAgICAgICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpIHsKLSAgICAgICAgICAgIGlu
dCBhcmd1bWVudCA9IG9wZXJhbmRUb0FyZ3VtZW50KG9wZXJhbmQpOwotICAgICAgICAgICAgcmV0
dXJuIG1fYXJndW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
cmV0dXJuIG1fbG9jYWxzW29wZXJhbmRdOwotICAgIH0KLSAgICAKLSAgICBjb25zdCBUJiBvcGVy
YW5kKGludCBvcGVyYW5kKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PGNvbnN0IFQmPihjb25z
dF9jYXN0PE9wZXJhbmRzKj4odGhpcyktPm9wZXJhbmQob3BlcmFuZCkpOyB9Ci0gICAgCi0gICAg
dm9pZCBzZXRPcGVyYW5kKGludCBvcGVyYW5kLCBjb25zdCBUJiB2YWx1ZSkKLSAgICB7Ci0gICAg
ICAgIGlmIChvcGVyYW5kSXNBcmd1bWVudChvcGVyYW5kKSkgewotICAgICAgICAgICAgaW50IGFy
Z3VtZW50ID0gb3BlcmFuZFRvQXJndW1lbnQob3BlcmFuZCk7Ci0gICAgICAgICAgICBtX2FyZ3Vt
ZW50c1thcmd1bWVudF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgc2V0TG9jYWwob3BlcmFuZCwgdmFsdWUpOwotICAgIH0KLSAgICAK
LSAgICB2b2lkIGNsZWFyKCkKLSAgICB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9hcmd1bWVudHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX2FyZ3VtZW50c1tpXSA9IFRy
YWl0czo6ZGVmYXVsdFZhbHVlKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9s
b2NhbHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX2xvY2Fsc1tpXSA9IFRyYWl0czo6ZGVm
YXVsdFZhbHVlKCk7Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8VCwgOD4gbV9h
cmd1bWVudHM7Ci0gICAgVmVjdG9yPFQsIDE2PiBtX2xvY2FsczsKLX07Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4KLXZvaWQgZHVtcE9wZXJhbmRzKE9wZXJhbmRzPFQs
IFRyYWl0cz4mIG9wZXJhbmRzLCBGSUxFKiBvdXQpCi17Ci0gICAgZm9yIChzaXplX3QgYXJndW1l
bnQgPSAwOyBhcmd1bWVudCA8IG9wZXJhbmRzLm51bWJlck9mQXJndW1lbnRzKCk7ICsrYXJndW1l
bnQpIHsKLSAgICAgICAgaWYgKGFyZ3VtZW50KQotICAgICAgICAgICAgZnByaW50ZihvdXQsICIg
Iik7Ci0gICAgICAgIFRyYWl0czo6ZHVtcChvcGVyYW5kcy5hcmd1bWVudChhcmd1bWVudCksIG91
dCk7Ci0gICAgfQotICAgIGZwcmludGYob3V0LCAiIDogIik7Ci0gICAgZm9yIChzaXplX3QgbG9j
YWwgPSAwOyBsb2NhbCA8IG9wZXJhbmRzLm51bWJlck9mTG9jYWxzKCk7ICsrbG9jYWwpIHsKLSAg
ICAgICAgaWYgKGxvY2FsKQotICAgICAgICAgICAgZnByaW50ZihvdXQsICIgIik7Ci0gICAgICAg
IFRyYWl0czo6ZHVtcChvcGVyYW5kcy5sb2NhbChsb2NhbCksIG91dCk7Ci0gICAgfQotfQotCi19
IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCi0KLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQot
I2VuZGlmIC8vIERGR09wZXJhbmRzX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCShyZXZpc2lvbiAxMTIwMjQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIERGR1ZhcmlhYmxlQWNjZXNzRGF0YV9o
CiAKICNpbmNsdWRlICJERkdOb2RlRmxhZ3MuaCIKLSNpbmNsdWRlICJERkdPcGVyYW5kcy5oIgor
I2luY2x1ZGUgIk9wZXJhbmRzLmgiCiAjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgogI2luY2x1
ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgo=
</data>
<flag name="review"
          id="137767"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>