<?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>150534</bug_id>
          
          <creation_ts>2015-10-24 12:39:31 -0700</creation_ts>
          <short_desc>StoreOpLoad pattern matching should check effects between the Store and Load</short_desc>
          <delta_ts>2015-10-29 16:43:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>150279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</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>1136271</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-24 12:39:31 -0700</bug_when>
    <thetext>This will require having some kind of alias analysis in B3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137634</commentid>
    <comment_count>1</comment_count>
      <attachid>264339</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 13:25:21 -0700</bug_when>
    <thetext>Created attachment 264339
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137635</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 13:26:50 -0700</bug_when>
    <thetext>Attachment 264339 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/testb3.cpp:390:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:391:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137636</commentid>
    <comment_count>3</comment_count>
      <attachid>264340</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 13:36:08 -0700</bug_when>
    <thetext>Created attachment 264340
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137637</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 13:37:47 -0700</bug_when>
    <thetext>Attachment 264340 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/testb3.cpp:390:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:391:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137653</commentid>
    <comment_count>5</comment_count>
      <attachid>264340</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-29 14:26:02 -0700</bug_when>
    <thetext>Comment on attachment 264340
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137712</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 16:43:14 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/191762</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264339</attachid>
            <date>2015-10-29 13:25:21 -0700</date>
            <delta_ts>2015-10-29 13:36:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13947</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDE1LTEwLTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3RvcmVPcExvYWQgcGF0dGVybiBtYXRjaGluZyBzaG91bGQgY2hlY2sgZWZmZWN0cyBiZXR3ZWVu
IHRoZSBTdG9yZSBhbmQgTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSWYgd2UgdHVybjoKKworICAgICAgICAgICAgYSA9IExvYWQoYWRkcikKKyAg
ICAgICAgICAgIGIgPSBBZGQoYSwgNDIpCisgICAgICAgICAgICBTdG9yZShiLCBhZGRyKQorCisg
ICAgICAgIEludG86CisKKyAgICAgICAgICAgIEFkZCAkNDIsIChhZGRyKQorCisgICAgICAgIFRo
ZW4gd2UgbXVzdCBtYWtlIHN1cmUgdGhhdCB3ZSBkaWRuJ3QgcmVhbGx5IGhhdmUgdGhpcyB0byBi
ZWdpbiB3aXRoOgorCisgICAgICAgICAgICBhID0gTG9hZChhZGRyKQorICAgICAgICAgICAgU3Rv
cmUoNjY2LCBhZGRyKQorICAgICAgICAgICAgYiA9IEFkZChhLCA0MikKKyAgICAgICAgICAgIFN0
b3JlKGIsIGFkZHIpCisKKyAgICAgICAgVGhhdCdzIGJlY2F1c2UgcGF0dGVybiBtYXRjaGluZyBk
b2Vzbid0IGNhcmUgYWJvdXQgY29udHJvbCBmbG93LCBhbmQgaXQgZmluZHMgdGhlIExvYWQKKyAg
ICAgICAganVzdCB1c2luZyBkYXRhIGZsb3cuIFRoaXMgcGF0Y2ggZmxlc2hlcyBvdXQgQjMncyBh
bGlhc2luZyBhbmFseXNpcywgYW5kIG1ha2VzIGl0IHBvd2VyZnVsCisgICAgICAgIGVub3VnaCB0
byBicm9hZGx5IGFzayBxdWVzdGlvbnMgYWJvdXQgd2hldGhlciBzdWNoIGEgY29kZSBtb3Rpb24g
b2YgdGhlIExvYWQgaXMgbGVnYWwuCisKKyAgICAgICAgKiBiMy9CM0VmZmVjdHMuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6RWZmZWN0czo6aW50ZXJmZXJlcyk6CisgICAgICAgIChKU0M6OkIzOjpF
ZmZlY3RzOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0VmZmVjdHMuaDoKKyAgICAgICAgKEpTQzo6
QjM6OkVmZmVjdHM6Om11c3RFeGVjdXRlKToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3Bw
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpMb3dlclRvQWlyOjpjb21taXRJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6Okxvd2VyVG9BaXI6OmNyb3NzZXNJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjplZmZlY3RpdmVBZGRyKToKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6TG93ZXJUb0Fpcjo6bG9hZEFkZHIpOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6YWRkQmxvY2spOgorICAgICAgICAoSlNDOjpC
Mzo6UHJvY2VkdXJlOjpyZXNldFZhbHVlT3duZXJzKToKKyAgICAgICAgKEpTQzo6QjM6OlByb2Nl
ZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkpOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmg6Cisg
ICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZWZmZWN0
cyk6CisgICAgICAgICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
QWRkQW5kTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KToKKyAg
ICAgICAgKEpTQzo6QjM6OnJ1bik6CisKIDIwMTUtMTAtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggaU9TIGJ1aWxkLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5jcHAJKHJldmlzaW9uIDE5MTc0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VmZmVjdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw5ICsyOSw1MyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKK25hbWVzcGFjZSB7CisKKy8vIFRoZXNlIGhlbHBlcnMgY2FzY2Fk
ZSBpbiBzdWNoIGEgd2F5IHRoYXQgYWZ0ZXIgdGhlIGhlbHBlciBmb3IgdGVybWluYWwsIHdlIGRv
bid0IGhhdmUgdG8gd29ycnkKKy8vIGFib3V0IHRlcm1pbmFsIGFnYWluLCBzaW5jZSB0aGUgdGVy
bWluYWwgY2FzZSBjb25zaWRlcnMgYWxsIHdheXMgdGhhdCBhIHRlcm1pbmFsIG1heSBpbnRlcmZl
cmUKKy8vIHdpdGggc29tZXRoaW5nIGVsc2UuIEFuZCBhZnRlciB0aGUgZXhpdCBzaWRld2F5cyBj
YXNlLCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGVpdGhlcgorLy8gZXhpdHNTaWRld2F5
cyBvciB0ZXJtaW5hbC4gQW5kIHNvIG9uLi4uCisKK2Jvb2wgaW50ZXJmZXJlc1dpdGhUZXJtaW5h
bChjb25zdCBFZmZlY3RzJiB0ZXJtaW5hbCwgY29uc3QgRWZmZWN0cyYgb3RoZXIpCit7CisgICAg
aWYgKCF0ZXJtaW5hbC50ZXJtaW5hbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBvdGhlci50ZXJtaW5hbCB8fCBvdGhlci5jb250cm9sRGVwZW5kZW50IHx8IG90aGVyLndyaXRl
c1NTQVN0YXRlIHx8IG90aGVyLndyaXRlczsKK30KKworYm9vbCBpbnRlcmZlcmVzV2l0aEV4aXRT
aWRld2F5cyhjb25zdCBFZmZlY3RzJiBleGl0c1NpZGV3YXlzLCBjb25zdCBFZmZlY3RzJiBvdGhl
cikKK3sKKyAgICBpZiAoIWV4aXRzU2lkZXdheXMuZXhpdHNTaWRld2F5cykKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBvdGhlci5jb250cm9sRGVwZW5kZW50IHx8IG90aGVyLndy
aXRlczsKK30KKworYm9vbCBpbnRlcmZlcmVzV2l0aFdyaXRlc1NTQVN0YXRlKGNvbnN0IEVmZmVj
dHMmIHdyaXRlc1NTQVN0YXRlLCBjb25zdCBFZmZlY3RzJiBvdGhlcikKK3sKKyAgICBpZiAoIXdy
aXRlc1NTQVN0YXRlLndyaXRlc1NTQVN0YXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG90aGVyLndyaXRlc1NTQVN0YXRlIHx8IG90aGVyLnJlYWRzU1NBU3RhdGU7Cit9CisK
K30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitib29sIEVmZmVjdHM6OmludGVyZmVyZXMoY29u
c3QgRWZmZWN0cyYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKGludGVyZmVyZXNXaXRoVGVybWlu
YWwoKnRoaXMsIG90aGVyKSB8fCBpbnRlcmZlcmVzV2l0aFRlcm1pbmFsKG90aGVyLCAqdGhpcykp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChpbnRlcmZlcmVzV2l0aEV4aXRTaWRld2F5
cygqdGhpcywgb3RoZXIpIHx8IGludGVyZmVyZXNXaXRoRXhpdFNpZGV3YXlzKG90aGVyLCAqdGhp
cykpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChpbnRlcmZlcmVzV2l0aFdyaXRlc1NT
QVN0YXRlKCp0aGlzLCBvdGhlcikgfHwgaW50ZXJmZXJlc1dpdGhXcml0ZXNTU0FTdGF0ZShvdGhl
ciwgKnRoaXMpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gd3JpdGVzLm92ZXJs
YXBzKG90aGVyLndyaXRlcykKKyAgICAgICAgfHwgd3JpdGVzLm92ZXJsYXBzKG90aGVyLnJlYWRz
KQorICAgICAgICB8fCByZWFkcy5vdmVybGFwcyhvdGhlci53cml0ZXMpOworfQorCiB2b2lkIEVm
ZmVjdHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBDb21tYVByaW50ZXIg
Y29tbWEoInwiKTsKQEAgLTQzLDYgKzg3LDggQEAgdm9pZCBFZmZlY3RzOjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbgogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJDb250cm9sRGVwZW5kZW50
Iik7CiAgICAgaWYgKHdyaXRlc1NTQVN0YXRlKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJX
cml0ZXNTU0FTdGF0ZSIpOworICAgIGlmIChyZWFkc1NTQVN0YXRlKQorICAgICAgICBvdXQucHJp
bnQoY29tbWEsICJSZWFkc1NTQVN0YXRlIik7CiAgICAgaWYgKHdyaXRlcykKICAgICAgICAgb3V0
LnByaW50KGNvbW1hLCAiV3JpdGVzOiIsIHdyaXRlcyk7CiAgICAgaWYgKHJlYWRzKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VmZmVjdHMuaAkocmV2aXNpb24gMTkxNzQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw5IEBAIHN0cnVjdCBFZmZlY3RzIHsKICAgICAvLyBhbnl3YXkuCiAgICAgYm9vbCB3cml0
ZXNTU0FTdGF0ZSB7IGZhbHNlIH07CiAKKyAgICAvLyBUcnVlIGlmIHRoaXMgcmVhZHMgZnJvbSB0
aGUgU1NBIHN0YXRlLiBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgUGhpLgorICAgIGJvb2wgcmVhZHNT
U0FTdGF0ZSB7IGZhbHNlIH07CisKICAgICBIZWFwUmFuZ2Ugd3JpdGVzOwogICAgIEhlYXBSYW5n
ZSByZWFkczsKIApAQCAtNTcsNiArNjAsMTAgQEAgc3RydWN0IEVmZmVjdHMgewogICAgICAgICBy
ZXR1cm4gdGVybWluYWwgfHwgZXhpdHNTaWRld2F5cyB8fCB3cml0ZXNTU0FTdGF0ZSB8fCB3cml0
ZXM7CiAgICAgfQogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHJlb3JkZXJpbmcgaW5zdHJ1Y3Rp
b25zIHdpdGggdGhlc2UgcmVzcGVjdGl2ZSBlZmZlY3RzIHdvdWxkIGNoYW5nZSBwcm9ncmFtCisg
ICAgLy8gYmVoYXZpb3IgaW4gYW4gb2JzZXJ2YWJsZSB3YXkuCisgICAgYm9vbCBpbnRlcmZlcmVz
KGNvbnN0IEVmZmVjdHMmKSBjb25zdDsKKwogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdDsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTUgKzc0LDE5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICBzdGFja1RvU3RhY2suYWRkKHN0YWNrU2xvdFZhbHVlLCBjb2RlLmFk
ZFN0YWNrU2xvdChzdGFja1Nsb3RWYWx1ZSkpOwogICAgICAgICB9CiAKKyAgICAgICAgcHJvY2Vk
dXJlLnJlc2V0VmFsdWVPd25lcnMoKTsgLy8gVXNlZCBieSBjcm9zc2VzSW50ZXJmZXJlbmNlKCku
CisKICAgICAgICAgLy8gTG93ZXIgZGVmcyBiZWZvcmUgdXNlcyBvbiBhIGdsb2JhbCBsZXZlbC4g
VGhpcyBpcyBhIGdvb2QgaGV1cmlzdGljIHRvIGxvY2sgZG93biBhCiAgICAgICAgIC8vIGhvaXN0
ZWQgYWRkcmVzcyBleHByZXNzaW9uIGJlZm9yZSB3ZSBkdXBsaWNhdGUgaXQgYmFjayBpbnRvIHRo
ZSBsb29wLgogICAgICAgICBmb3IgKEIzOjpCYXNpY0Jsb2NrKiBibG9jayA6IHByb2NlZHVyZS5i
bG9ja3NJblByZU9yZGVyKCkpIHsKKyAgICAgICAgICAgIGN1cnJlbnRCbG9jayA9IGJsb2NrOwog
ICAgICAgICAgICAgLy8gUmVzZXQgc29tZSBzdGF0ZS4KICAgICAgICAgICAgIGluc3RzLnJlc2l6
ZSgwKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gUHJvY2VzcyBibG9ja3MgaW4gcmV2
ZXJzZSBvcmRlciBzbyB3ZSBzZWUgdXNlcyBiZWZvcmUgZGVmcy4gVGhhdCdzIHdoYXQgYWxsb3dz
IHVzCiAgICAgICAgICAgICAvLyB0byBtYXRjaCBwYXR0ZXJucyBlZmZlY3RpdmVseS4KICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IGJsb2NrLT5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
ICAgICAgICBjdXJyZW50SW5kZXggPSBpOwogICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSA9
IGJsb2NrLT5hdChpKTsKICAgICAgICAgICAgICAgICBpZiAobG9ja2VkLmNvbnRhaW5zKGN1cnJl
bnRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTQ0LDYgKzE0OCwy
OSBAQCBwdWJsaWM6CiAgICAgICAgIGxvY2tlZC5hZGQodmFsdWUpOwogICAgIH0KIAorICAgIGJv
b2wgY3Jvc3Nlc0ludGVyZmVyZW5jZShWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAgICAvLyBJ
ZiBpdCdzIGluIGEgZm9yZWlnbiBibG9jaywgdGhlbiBiZSBjb25zZXJ2YXRpdmUuIFdlIGNvdWxk
IGhhbmRsZSB0aGlzIGlmIHdlIHdlcmUKKyAgICAgICAgLy8gd2lsbGluZyB0byBkbyBoZWF2aWVy
IGFuYWx5c2lzLiBGb3IgZXhhbXBsZSwgaWYgd2UgaGFkIGxpdmVuZXNzLCB0aGVuIHdlIGNvdWxk
IGxhYmVsCisgICAgICAgIC8vIHZhbHVlcyBhcyAiY3Jvc3NpbmcgaW50ZXJmZXJlbmNlIiBpZiB0
aGV5IGludGVyZmVyZSB3aXRoIGFueXRoaW5nIHRoYXQgdGhleSBhcmUgbGl2ZQorICAgICAgICAv
LyBhY3Jvc3MuIEJ1dCwgaXQncyBub3QgY2xlYXIgaG93IHVzZWZ1bCB0aGlzIHdvdWxkIGJlLgor
ICAgICAgICBpZiAodmFsdWUtPm93bmVyICE9IGN1cnJlbnRWYWx1ZS0+b3duZXIpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBFZmZlY3RzIGVmZmVjdHMgPSB2YWx1ZS0+ZWZm
ZWN0cygpOworCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGN1cnJlbnRJbmRleDsgaS0tOykg
eworICAgICAgICAgICAgVmFsdWUqIG90aGVyVmFsdWUgPSBjdXJyZW50QmxvY2stPmF0KGkpOwor
ICAgICAgICAgICAgaWYgKG90aGVyVmFsdWUgPT0gdmFsdWUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGVmZmVjdHMuaW50ZXJmZXJlcyhvdGhlclZhbHVl
LT5lZmZlY3RzKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKwogICAgIC8vIFRoaXMgdHVybnMgdGhlIGdpdmVuIG9wZXJhbmQgaW50byBhbiBhZGRyZXNz
LgogICAgIEFyZyBlZmZlY3RpdmVBZGRyKFZhbHVlKiBhZGRyZXNzKQogICAgIHsKQEAgLTE4MSw2
ICsyMDgsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIWNhbkJlSW50ZXJuYWwobG9h
ZFZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBBcmcoKTsKKyAgICAgICAgaWYgKGNyb3NzZXNJ
bnRlcmZlcmVuY2UobG9hZFZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICAg
ICAgaWYgKGxvYWRWYWx1ZS0+b3Bjb2RlKCkgPT0gTG9hZCkKICAgICAgICAgICAgIHJldHVybiBh
ZGRyKGxvYWRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBBcmcoKTsKQEAgLTM2Niw2ICszOTUsOCBA
QCBwdWJsaWM6CiAgICAgVmVjdG9yPFZlY3RvcjxJbnN0LCA0Pj4gaW5zdHM7CiAgICAgVmVjdG9y
PEluc3Q+IHByb2xvZ3VlOwogCisgICAgQjM6OkJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jazsKKyAg
ICB1bnNpZ25lZCBjdXJyZW50SW5kZXg7CiAgICAgVmFsdWUqIGN1cnJlbnRWYWx1ZTsKIAogICAg
IC8vIFRoZSBhZGRyZXNzIHNlbGVjdG9yIHdpbGwgbWF0Y2ggYW55IHBhdHRlcm4gd2hlcmUgdGhl
IGlucHV0IG9wZXJhbmRzIGFyZSBhdmFpbGFibGUgYXMgVG1wcy4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMTkxNzQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsMTQgQEAgQmFzaWNCbG9jayogUHJvY2VkdXJlOjphZGRCbG9jayhkb3VibGUgZgogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgUHJvY2VkdXJlOjpyZXNldFZhbHVlT3duZXJzKCkK
K3sKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogKnRoaXMpIHsKKyAgICAgICAgZm9yIChW
YWx1ZSogdmFsdWUgOiAqYmxvY2spCisgICAgICAgICAgICB2YWx1ZS0+b3duZXIgPSBibG9jazsK
KyAgICB9Cit9CisKIHZvaWQgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpCiB7CiAgICAg
QjM6OnJlc2V0UmVhY2hhYmlsaXR5KG1fYmxvY2tzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1
bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhZGQoQXJndW1lbnRzLi4uKTsKIAorICAgIHZvaWQgcmVz
ZXRWYWx1ZU93bmVycygpOwogICAgIHZvaWQgcmVzZXRSZWFjaGFiaWxpdHkoKTsKIAogICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMTkxNzQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyAr
MTY4LDYgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBCZWxvdzoK
ICAgICBjYXNlIEFib3ZlRXF1YWw6CiAgICAgY2FzZSBCZWxvd0VxdWFsOgotICAgIGNhc2UgUGhp
OgogICAgICAgICBicmVhazsKICAgICBjYXNlIERpdjoKICAgICAgICAgcmVzdWx0LmNvbnRyb2xE
ZXBlbmRlbnQgPSB0cnVlOwpAQCAtMjA5LDYgKzIwOCw5IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVj
dHMoKSBjb25zdAogICAgIGNhc2UgVXBzaWxvbjoKICAgICAgICAgcmVzdWx0LndyaXRlc1NTQVN0
YXRlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQaGk6CisgICAgICAgIHJlc3Vs
dC5yZWFkc1NTQVN0YXRlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKdW1wOgog
ICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgcHJpdmF0ZToK
ICAgICBBZGphY2VuY3lMaXN0IG1fY2hpbGRyZW47CiAKIHB1YmxpYzoKLSAgICBCYXNpY0Jsb2Nr
KiBvd25lciB7IG51bGxwdHIgfTsgLy8gY29tcHV0ZWQgbGF6aWx5LgorICAgIEJhc2ljQmxvY2sq
IG93bmVyIHsgbnVsbHB0ciB9OyAvLyBjb21wdXRlZCBieSBQcm9jZWR1cmU6OnJlc2V0VmFsdWVP
d25lcnMoKS4KIH07CiAKIGNsYXNzIERlZXBWYWx1ZUR1bXAgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDE5MTc0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNiArMjM1LDMzIEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZChpbnQgYW1vdW50KQogICAgIENIRUNLKHNsb3QgPT0gMzcgKyBh
bW91bnQpOwogfQogCit2b2lkIHRlc3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UoaW50IGFtb3Vu
dCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIGludCBzbG90ID0gMzc7CisgICAgQ29uc3RQdHJWYWx1ZSogc2xvdFB0
ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Qp
OworICAgIEFyZ3VtZW50UmVnVmFsdWUqIG90aGVyU2xvdFB0ciA9CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKTsKKyAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA2NjYp
LAorICAgICAgICBvdGhlclNsb3RQdHIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCisgICAgICAgICAg
ICBsb2FkLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1v
dW50KSksCisgICAgICAgIHNsb3RQdHIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworCisgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCAmc2xvdCkpOworICAgIENIRUNLKHNsb3QgPT0gMzcgKyBh
bW91bnQpOworfQorCiB2b2lkIHRlc3RTdG9yZUFkZEFuZExvYWQoaW50IGFtb3VudCwgaW50IG1h
c2spCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0zMzEsNiArMzU4LDM5IEBAIHZvaWQgdGVz
dExvYWRPZmZzZXRVc2luZ0FkZCgpCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Mp
ID09IGFycmF5WzBdICsgYXJyYXlbMV0pOwogfQogCit2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdB
ZGRJbnRlcmZlcmVuY2UoKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKKyAg
ICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOworICAgIEFyZ3VtZW50UmVnVmFsdWUqIG90aGVyQXJy
YXlQdHIgPQorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgQ29uc3QzMlZhbHVlKiB0aGVO
dW1iZXJPZlRoZUJlYXN0ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDY2Nik7CisgICAgTWVtb3J5VmFsdWUqIGxlZnQgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LCBhcnJheVB0ciwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpKTsKKyAgICBNZW1vcnlWYWx1ZSogcmlnaHQgPSByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLCBhcnJheVB0ciwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc2l6ZW9mKGludCkpKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB0aGVOdW1i
ZXJPZlRoZUJlYXN0LCBvdGhlckFycmF5UHRyLCAwKTsKKyAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhl
QmVhc3QsIG90aGVyQXJyYXlQdHIsIHNpemVvZihpbnQpKTsKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
IGxlZnQsIHJpZ2h0KSk7CisgICAgCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
ICZhcnJheVswXSkgPT0gMSArIDIpOworICAgIENIRUNLKGFycmF5WzBdID09IDY2Nik7CisgICAg
Q0hFQ0soYXJyYXlbMV0gPT0gNjY2KTsKK30KKwogdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRk
Tm90Q29uc3RhbnQoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtNDQzLDEyICs1MDMsMTQg
QEAgdm9pZCBydW4oKQogICAgIFJVTih0ZXN0VHJ1bmMoKHN0YXRpY19jYXN0PGludDY0X3Q+KDEp
IDw8IDQwKSArIDQyKSk7CiAgICAgUlVOKHRlc3RBZGQxKDQ1KSk7CiAgICAgUlVOKHRlc3RTdG9y
ZUFkZExvYWQoNDYpKTsKKyAgICBSVU4odGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZSg1Mikp
OwogICAgIFJVTih0ZXN0U3RvcmVBZGRBbmRMb2FkKDQ3LCAweGZmZmYpKTsKICAgICBSVU4odGVz
dFN0b3JlQWRkQW5kTG9hZCg0NzAwMDAsIDB4ZmZmZikpOwogICAgIFJVTih0ZXN0QWRkMVVuY29t
bXV0ZWQoNDgpKTsKICAgICBSVU4odGVzdExvYWRPZmZzZXQoKSk7CiAgICAgUlVOKHRlc3RMb2Fk
T2Zmc2V0Tm90Q29uc3RhbnQoKSk7CiAgICAgUlVOKHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGQoKSk7
CisgICAgUlVOKHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UoKSk7CiAgICAgUlVO
KHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpKTsKICAgICBSVU4odGVzdEZyYW1l
UG9pbnRlcigpKTsKICAgICBSVU4odGVzdFN0YWNrU2xvdCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264340</attachid>
            <date>2015-10-29 13:36:08 -0700</date>
            <delta_ts>2015-10-29 14:26:02 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14672</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDE1LTEwLTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3RvcmVPcExvYWQgcGF0dGVybiBtYXRjaGluZyBzaG91bGQgY2hlY2sgZWZmZWN0cyBiZXR3ZWVu
IHRoZSBTdG9yZSBhbmQgTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSWYgd2UgdHVybjoKKworICAgICAgICAgICAgYSA9IExvYWQoYWRkcikKKyAg
ICAgICAgICAgIGIgPSBBZGQoYSwgNDIpCisgICAgICAgICAgICBTdG9yZShiLCBhZGRyKQorCisg
ICAgICAgIEludG86CisKKyAgICAgICAgICAgIEFkZCAkNDIsIChhZGRyKQorCisgICAgICAgIFRo
ZW4gd2UgbXVzdCBtYWtlIHN1cmUgdGhhdCB3ZSBkaWRuJ3QgcmVhbGx5IGhhdmUgdGhpcyB0byBi
ZWdpbiB3aXRoOgorCisgICAgICAgICAgICBhID0gTG9hZChhZGRyKQorICAgICAgICAgICAgU3Rv
cmUoNjY2LCBhZGRyKQorICAgICAgICAgICAgYiA9IEFkZChhLCA0MikKKyAgICAgICAgICAgIFN0
b3JlKGIsIGFkZHIpCisKKyAgICAgICAgVGhhdCdzIGJlY2F1c2UgcGF0dGVybiBtYXRjaGluZyBk
b2Vzbid0IGNhcmUgYWJvdXQgY29udHJvbCBmbG93LCBhbmQgaXQgZmluZHMgdGhlIExvYWQKKyAg
ICAgICAganVzdCB1c2luZyBkYXRhIGZsb3cuIFRoaXMgcGF0Y2ggZmxlc2hlcyBvdXQgQjMncyBh
bGlhc2luZyBhbmFseXNpcywgYW5kIG1ha2VzIGl0IHBvd2VyZnVsCisgICAgICAgIGVub3VnaCB0
byBicm9hZGx5IGFzayBxdWVzdGlvbnMgYWJvdXQgd2hldGhlciBzdWNoIGEgY29kZSBtb3Rpb24g
b2YgdGhlIExvYWQgaXMgbGVnYWwuCisKKyAgICAgICAgKiBiMy9CM0VmZmVjdHMuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6RWZmZWN0czo6aW50ZXJmZXJlcyk6CisgICAgICAgIChKU0M6OkIzOjpF
ZmZlY3RzOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0VmZmVjdHMuaDoKKyAgICAgICAgKEpTQzo6
QjM6OkVmZmVjdHM6Om11c3RFeGVjdXRlKToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3Bw
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpMb3dlclRvQWlyOjpjb21taXRJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6Okxvd2VyVG9BaXI6OmNyb3NzZXNJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjplZmZlY3RpdmVBZGRyKToKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6TG93ZXJUb0Fpcjo6bG9hZEFkZHIpOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6YWRkQmxvY2spOgorICAgICAgICAoSlNDOjpC
Mzo6UHJvY2VkdXJlOjpyZXNldFZhbHVlT3duZXJzKToKKyAgICAgICAgKEpTQzo6QjM6OlByb2Nl
ZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkpOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmg6Cisg
ICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZWZmZWN0
cyk6CisgICAgICAgICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
QWRkQW5kTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KToKKyAg
ICAgICAgKEpTQzo6QjM6OnJ1bik6CisKIDIwMTUtMTAtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggaU9TIGJ1aWxkLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5jcHAJKHJldmlzaW9uIDE5MTc0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VmZmVjdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw5ICsyOSw1MyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKK25hbWVzcGFjZSB7CisKKy8vIFRoZXNlIGhlbHBlcnMgY2FzY2Fk
ZSBpbiBzdWNoIGEgd2F5IHRoYXQgYWZ0ZXIgdGhlIGhlbHBlciBmb3IgdGVybWluYWwsIHdlIGRv
bid0IGhhdmUgdG8gd29ycnkKKy8vIGFib3V0IHRlcm1pbmFsIGFnYWluLCBzaW5jZSB0aGUgdGVy
bWluYWwgY2FzZSBjb25zaWRlcnMgYWxsIHdheXMgdGhhdCBhIHRlcm1pbmFsIG1heSBpbnRlcmZl
cmUKKy8vIHdpdGggc29tZXRoaW5nIGVsc2UuIEFuZCBhZnRlciB0aGUgZXhpdCBzaWRld2F5cyBj
YXNlLCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGVpdGhlcgorLy8gZXhpdHNTaWRld2F5
cyBvciB0ZXJtaW5hbC4gQW5kIHNvIG9uLi4uCisKK2Jvb2wgaW50ZXJmZXJlc1dpdGhUZXJtaW5h
bChjb25zdCBFZmZlY3RzJiB0ZXJtaW5hbCwgY29uc3QgRWZmZWN0cyYgb3RoZXIpCit7CisgICAg
aWYgKCF0ZXJtaW5hbC50ZXJtaW5hbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBvdGhlci50ZXJtaW5hbCB8fCBvdGhlci5jb250cm9sRGVwZW5kZW50IHx8IG90aGVyLndyaXRl
c1NTQVN0YXRlIHx8IG90aGVyLndyaXRlczsKK30KKworYm9vbCBpbnRlcmZlcmVzV2l0aEV4aXRT
aWRld2F5cyhjb25zdCBFZmZlY3RzJiBleGl0c1NpZGV3YXlzLCBjb25zdCBFZmZlY3RzJiBvdGhl
cikKK3sKKyAgICBpZiAoIWV4aXRzU2lkZXdheXMuZXhpdHNTaWRld2F5cykKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBvdGhlci5jb250cm9sRGVwZW5kZW50IHx8IG90aGVyLndy
aXRlczsKK30KKworYm9vbCBpbnRlcmZlcmVzV2l0aFdyaXRlc1NTQVN0YXRlKGNvbnN0IEVmZmVj
dHMmIHdyaXRlc1NTQVN0YXRlLCBjb25zdCBFZmZlY3RzJiBvdGhlcikKK3sKKyAgICBpZiAoIXdy
aXRlc1NTQVN0YXRlLndyaXRlc1NTQVN0YXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG90aGVyLndyaXRlc1NTQVN0YXRlIHx8IG90aGVyLnJlYWRzU1NBU3RhdGU7Cit9CisK
K30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitib29sIEVmZmVjdHM6OmludGVyZmVyZXMoY29u
c3QgRWZmZWN0cyYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKGludGVyZmVyZXNXaXRoVGVybWlu
YWwoKnRoaXMsIG90aGVyKSB8fCBpbnRlcmZlcmVzV2l0aFRlcm1pbmFsKG90aGVyLCAqdGhpcykp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChpbnRlcmZlcmVzV2l0aEV4aXRTaWRld2F5
cygqdGhpcywgb3RoZXIpIHx8IGludGVyZmVyZXNXaXRoRXhpdFNpZGV3YXlzKG90aGVyLCAqdGhp
cykpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChpbnRlcmZlcmVzV2l0aFdyaXRlc1NT
QVN0YXRlKCp0aGlzLCBvdGhlcikgfHwgaW50ZXJmZXJlc1dpdGhXcml0ZXNTU0FTdGF0ZShvdGhl
ciwgKnRoaXMpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gd3JpdGVzLm92ZXJs
YXBzKG90aGVyLndyaXRlcykKKyAgICAgICAgfHwgd3JpdGVzLm92ZXJsYXBzKG90aGVyLnJlYWRz
KQorICAgICAgICB8fCByZWFkcy5vdmVybGFwcyhvdGhlci53cml0ZXMpOworfQorCiB2b2lkIEVm
ZmVjdHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBDb21tYVByaW50ZXIg
Y29tbWEoInwiKTsKQEAgLTQzLDYgKzg3LDggQEAgdm9pZCBFZmZlY3RzOjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbgogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJDb250cm9sRGVwZW5kZW50
Iik7CiAgICAgaWYgKHdyaXRlc1NTQVN0YXRlKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJX
cml0ZXNTU0FTdGF0ZSIpOworICAgIGlmIChyZWFkc1NTQVN0YXRlKQorICAgICAgICBvdXQucHJp
bnQoY29tbWEsICJSZWFkc1NTQVN0YXRlIik7CiAgICAgaWYgKHdyaXRlcykKICAgICAgICAgb3V0
LnByaW50KGNvbW1hLCAiV3JpdGVzOiIsIHdyaXRlcyk7CiAgICAgaWYgKHJlYWRzKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VmZmVjdHMuaAkocmV2aXNpb24gMTkxNzQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw5IEBAIHN0cnVjdCBFZmZlY3RzIHsKICAgICAvLyBhbnl3YXkuCiAgICAgYm9vbCB3cml0
ZXNTU0FTdGF0ZSB7IGZhbHNlIH07CiAKKyAgICAvLyBUcnVlIGlmIHRoaXMgcmVhZHMgZnJvbSB0
aGUgU1NBIHN0YXRlLiBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgUGhpLgorICAgIGJvb2wgcmVhZHNT
U0FTdGF0ZSB7IGZhbHNlIH07CisKICAgICBIZWFwUmFuZ2Ugd3JpdGVzOwogICAgIEhlYXBSYW5n
ZSByZWFkczsKIApAQCAtNTcsNiArNjAsMTAgQEAgc3RydWN0IEVmZmVjdHMgewogICAgICAgICBy
ZXR1cm4gdGVybWluYWwgfHwgZXhpdHNTaWRld2F5cyB8fCB3cml0ZXNTU0FTdGF0ZSB8fCB3cml0
ZXM7CiAgICAgfQogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHJlb3JkZXJpbmcgaW5zdHJ1Y3Rp
b25zIHdpdGggdGhlc2UgcmVzcGVjdGl2ZSBlZmZlY3RzIHdvdWxkIGNoYW5nZSBwcm9ncmFtCisg
ICAgLy8gYmVoYXZpb3IgaW4gYW4gb2JzZXJ2YWJsZSB3YXkuCisgICAgYm9vbCBpbnRlcmZlcmVz
KGNvbnN0IEVmZmVjdHMmKSBjb25zdDsKKwogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdDsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTUgKzc0LDE5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICBzdGFja1RvU3RhY2suYWRkKHN0YWNrU2xvdFZhbHVlLCBjb2RlLmFk
ZFN0YWNrU2xvdChzdGFja1Nsb3RWYWx1ZSkpOwogICAgICAgICB9CiAKKyAgICAgICAgcHJvY2Vk
dXJlLnJlc2V0VmFsdWVPd25lcnMoKTsgLy8gVXNlZCBieSBjcm9zc2VzSW50ZXJmZXJlbmNlKCku
CisKICAgICAgICAgLy8gTG93ZXIgZGVmcyBiZWZvcmUgdXNlcyBvbiBhIGdsb2JhbCBsZXZlbC4g
VGhpcyBpcyBhIGdvb2QgaGV1cmlzdGljIHRvIGxvY2sgZG93biBhCiAgICAgICAgIC8vIGhvaXN0
ZWQgYWRkcmVzcyBleHByZXNzaW9uIGJlZm9yZSB3ZSBkdXBsaWNhdGUgaXQgYmFjayBpbnRvIHRo
ZSBsb29wLgogICAgICAgICBmb3IgKEIzOjpCYXNpY0Jsb2NrKiBibG9jayA6IHByb2NlZHVyZS5i
bG9ja3NJblByZU9yZGVyKCkpIHsKKyAgICAgICAgICAgIGN1cnJlbnRCbG9jayA9IGJsb2NrOwog
ICAgICAgICAgICAgLy8gUmVzZXQgc29tZSBzdGF0ZS4KICAgICAgICAgICAgIGluc3RzLnJlc2l6
ZSgwKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gUHJvY2VzcyBibG9ja3MgaW4gcmV2
ZXJzZSBvcmRlciBzbyB3ZSBzZWUgdXNlcyBiZWZvcmUgZGVmcy4gVGhhdCdzIHdoYXQgYWxsb3dz
IHVzCiAgICAgICAgICAgICAvLyB0byBtYXRjaCBwYXR0ZXJucyBlZmZlY3RpdmVseS4KICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IGJsb2NrLT5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
ICAgICAgICBjdXJyZW50SW5kZXggPSBpOwogICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSA9
IGJsb2NrLT5hdChpKTsKICAgICAgICAgICAgICAgICBpZiAobG9ja2VkLmNvbnRhaW5zKGN1cnJl
bnRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTQ0LDYgKzE0OCwy
OSBAQCBwdWJsaWM6CiAgICAgICAgIGxvY2tlZC5hZGQodmFsdWUpOwogICAgIH0KIAorICAgIGJv
b2wgY3Jvc3Nlc0ludGVyZmVyZW5jZShWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAgICAvLyBJ
ZiBpdCdzIGluIGEgZm9yZWlnbiBibG9jaywgdGhlbiBiZSBjb25zZXJ2YXRpdmUuIFdlIGNvdWxk
IGhhbmRsZSB0aGlzIGlmIHdlIHdlcmUKKyAgICAgICAgLy8gd2lsbGluZyB0byBkbyBoZWF2aWVy
IGFuYWx5c2lzLiBGb3IgZXhhbXBsZSwgaWYgd2UgaGFkIGxpdmVuZXNzLCB0aGVuIHdlIGNvdWxk
IGxhYmVsCisgICAgICAgIC8vIHZhbHVlcyBhcyAiY3Jvc3NpbmcgaW50ZXJmZXJlbmNlIiBpZiB0
aGV5IGludGVyZmVyZSB3aXRoIGFueXRoaW5nIHRoYXQgdGhleSBhcmUgbGl2ZQorICAgICAgICAv
LyBhY3Jvc3MuIEJ1dCwgaXQncyBub3QgY2xlYXIgaG93IHVzZWZ1bCB0aGlzIHdvdWxkIGJlLgor
ICAgICAgICBpZiAodmFsdWUtPm93bmVyICE9IGN1cnJlbnRWYWx1ZS0+b3duZXIpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBFZmZlY3RzIGVmZmVjdHMgPSB2YWx1ZS0+ZWZm
ZWN0cygpOworCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGN1cnJlbnRJbmRleDsgaS0tOykg
eworICAgICAgICAgICAgVmFsdWUqIG90aGVyVmFsdWUgPSBjdXJyZW50QmxvY2stPmF0KGkpOwor
ICAgICAgICAgICAgaWYgKG90aGVyVmFsdWUgPT0gdmFsdWUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGVmZmVjdHMuaW50ZXJmZXJlcyhvdGhlclZhbHVl
LT5lZmZlY3RzKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKwogICAgIC8vIFRoaXMgdHVybnMgdGhlIGdpdmVuIG9wZXJhbmQgaW50byBhbiBhZGRyZXNz
LgogICAgIEFyZyBlZmZlY3RpdmVBZGRyKFZhbHVlKiBhZGRyZXNzKQogICAgIHsKQEAgLTE3OSwx
MSArMjA2LDEzIEBAIHB1YmxpYzoKIAogICAgIEFyZyBsb2FkQWRkcihWYWx1ZSogbG9hZFZhbHVl
KQogICAgIHsKKyAgICAgICAgaWYgKGxvYWRWYWx1ZS0+b3Bjb2RlKCkgIT0gTG9hZCkKKyAgICAg
ICAgICAgIHJldHVybiBBcmcoKTsKICAgICAgICAgaWYgKCFjYW5CZUludGVybmFsKGxvYWRWYWx1
ZSkpCiAgICAgICAgICAgICByZXR1cm4gQXJnKCk7Ci0gICAgICAgIGlmIChsb2FkVmFsdWUtPm9w
Y29kZSgpID09IExvYWQpCi0gICAgICAgICAgICByZXR1cm4gYWRkcihsb2FkVmFsdWUpOwotICAg
ICAgICByZXR1cm4gQXJnKCk7CisgICAgICAgIGlmIChjcm9zc2VzSW50ZXJmZXJlbmNlKGxvYWRW
YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gQXJnKCk7CisgICAgICAgIHJldHVybiBhZGRyKGxv
YWRWYWx1ZSk7CiAgICAgfQogCiAgICAgQXJnIGltbShWYWx1ZSogdmFsdWUpCkBAIC0yODksMTEg
KzMxOCw2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxBaXI6Ok9wY29kZSBvcGNvZGUsIENvbW11
dGF0aXZpdHkgY29tbXV0YXRpdml0eSA9IE5vdENvbW11dGF0aXZlPgogICAgIGJvb2wgdHJ5QXBw
ZW5kU3RvcmVCaW5PcChWYWx1ZSogbGVmdCwgVmFsdWUqIHJpZ2h0KQogICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IFRoaXMgZmFpbHMgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBlZmZlY3RzIGJl
dHdlZW4gdGhlIExvYWQgYW5kIHRoZSBTdG9yZSB0aGF0Ci0gICAgICAgIC8vIGNvdWxkIGNsb2Ji
ZXIgdGhlIGxvYWRlZCB2YWx1ZS4gV2UgbmVlZCB0byBjaGVjayBzdWNoIHRoaW5ncyBiZWNhdXNl
IHdlIGFyZSBlZmZlY3RpdmVseQotICAgICAgICAvLyBzaW5raW5nIHRoZSBsb2FkLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNTM0Ci0gICAg
ICAgIAogICAgICAgICBBcmcgc3RvcmVBZGRyID0gYWRkcihjdXJyZW50VmFsdWUpOwogICAgICAg
ICBBU1NFUlQoc3RvcmVBZGRyKTsKIApAQCAtMzY2LDYgKzM5MCw4IEBAIHB1YmxpYzoKICAgICBW
ZWN0b3I8VmVjdG9yPEluc3QsIDQ+PiBpbnN0czsKICAgICBWZWN0b3I8SW5zdD4gcHJvbG9ndWU7
CiAKKyAgICBCMzo6QmFzaWNCbG9jayogY3VycmVudEJsb2NrOworICAgIHVuc2lnbmVkIGN1cnJl
bnRJbmRleDsKICAgICBWYWx1ZSogY3VycmVudFZhbHVlOwogCiAgICAgLy8gVGhlIGFkZHJlc3Mg
c2VsZWN0b3Igd2lsbCBtYXRjaCBhbnkgcGF0dGVybiB3aGVyZSB0aGUgaW5wdXQgb3BlcmFuZHMg
YXJlIGF2YWlsYWJsZSBhcyBUbXBzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuY3BwCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxNCBAQCBCYXNp
Y0Jsb2NrKiBQcm9jZWR1cmU6OmFkZEJsb2NrKGRvdWJsZSBmCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAordm9pZCBQcm9jZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQoreworICAgIGZvciAoQmFz
aWNCbG9jayogYmxvY2sgOiAqdGhpcykgeworICAgICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICpi
bG9jaykKKyAgICAgICAgICAgIHZhbHVlLT5vd25lciA9IGJsb2NrOworICAgIH0KK30KKwogdm9p
ZCBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkKIHsKICAgICBCMzo6cmVzZXRSZWFjaGFi
aWxpdHkobV9ibG9ja3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgJKHJldmlzaW9uIDE5MTc0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBWYWx1
ZVR5cGUqIGFkZChBcmd1bWVudHMuLi4pOwogCisgICAgdm9pZCByZXNldFZhbHVlT3duZXJzKCk7
CiAgICAgdm9pZCByZXNldFJlYWNoYWJpbGl0eSgpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCShyZXZpc2lvbiAxOTE3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3ICsxNjgsNiBAQCBFZmZlY3Rz
IFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEJlbG93OgogICAgIGNhc2UgQWJvdmVF
cXVhbDoKICAgICBjYXNlIEJlbG93RXF1YWw6Ci0gICAgY2FzZSBQaGk6CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGl2OgogICAgICAgICByZXN1bHQuY29udHJvbERlcGVuZGVudCA9IHRydWU7
CkBAIC0yMDksNiArMjA4LDkgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAg
Y2FzZSBVcHNpbG9uOgogICAgICAgICByZXN1bHQud3JpdGVzU1NBU3RhdGUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBoaToKKyAgICAgICAgcmVzdWx0LnJlYWRzU1NBU3RhdGUg
PSB0cnVlOworICAgICAgICBicmVhazsKICAgICBjYXNlIEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6
CiAgICAgY2FzZSBTd2l0Y2g6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJl
dmlzaW9uIDE5MTc0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE5Nyw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIEFkamFjZW5jeUxp
c3QgbV9jaGlsZHJlbjsKIAogcHVibGljOgotICAgIEJhc2ljQmxvY2sqIG93bmVyIHsgbnVsbHB0
ciB9OyAvLyBjb21wdXRlZCBsYXppbHkuCisgICAgQmFzaWNCbG9jayogb3duZXIgeyBudWxscHRy
IH07IC8vIGNvbXB1dGVkIGJ5IFByb2NlZHVyZTo6cmVzZXRWYWx1ZU93bmVycygpLgogfTsKIAog
Y2xhc3MgRGVlcFZhbHVlRHVtcCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNw
cAkocmV2aXNpb24gMTkxNzQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMzMgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkKGludCBhbW91bnQpCiAgICAgQ0hFQ0soc2xvdCA9PSAzNyArIGFtb3VudCk7CiB9CiAKK3Zv
aWQgdGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZShpbnQgYW1vdW50KQoreworICAgIFByb2Nl
ZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAg
aW50IHNsb3QgPSAzNzsKKyAgICBDb25zdFB0clZhbHVlKiBzbG90UHRyID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCk7CisgICAgQXJndW1lbnRS
ZWdWYWx1ZSogb3RoZXJTbG90UHRyID0KKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1l
bW9yeVZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDY2NiksCisgICAgICAgIG90aGVy
U2xvdFB0cik7CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJv
YywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGxvYWQsIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKKyAgICAgICAg
c2xvdFB0cik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisKKyAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsICZzbG90KSk7CisgICAgQ0hFQ0soc2xvdCA9PSAzNyArIGFtb3VudCk7Cit9CisKIHZv
aWQgdGVzdFN0b3JlQWRkQW5kTG9hZChpbnQgYW1vdW50LCBpbnQgbWFzaykKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKQEAgLTMzMSw2ICszNTgsMzkgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5n
QWRkKCkKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gYXJyYXlbMF0gKyBh
cnJheVsxXSk7CiB9CiAKK3ZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSgp
Cit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OworICAgIENvbnN0UHRyVmFsdWUq
IGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhcnJheSk7CisgICAgQXJndW1lbnRSZWdWYWx1ZSogb3RoZXJBcnJheVB0ciA9CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKKyAgICBDb25zdDMyVmFsdWUqIHRoZU51bWJlck9mVGhlQmVhc3Qg
PSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNjY2KTsKKyAg
ICBNZW1vcnlWYWx1ZSogbGVmdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAg
ICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGFycmF5UHRyLAorICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSkpOworICAgIE1lbW9yeVZhbHVlKiByaWdodCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGFycmF5
UHRyLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBzaXplb2YoaW50KSkpKTsKKyAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90
aGVyQXJyYXlQdHIsIDApOworICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJh
eVB0ciwgc2l6ZW9mKGludCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgbGVmdCwgcmlnaHQpKTsK
KyAgICAKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmFycmF5WzBdKSA9PSAx
ICsgMik7CisgICAgQ0hFQ0soYXJyYXlbMF0gPT0gNjY2KTsKKyAgICBDSEVDSyhhcnJheVsxXSA9
PSA2NjYpOworfQorCiB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC00NDMsMTIgKzUwMywxNCBAQCB2b2lkIHJ1bigpCiAg
ICAgUlVOKHRlc3RUcnVuYygoc3RhdGljX2Nhc3Q8aW50NjRfdD4oMSkgPDwgNDApICsgNDIpKTsK
ICAgICBSVU4odGVzdEFkZDEoNDUpKTsKICAgICBSVU4odGVzdFN0b3JlQWRkTG9hZCg0NikpOwor
ICAgIFJVTih0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKDUyKSk7CiAgICAgUlVOKHRlc3RT
dG9yZUFkZEFuZExvYWQoNDcsIDB4ZmZmZikpOwogICAgIFJVTih0ZXN0U3RvcmVBZGRBbmRMb2Fk
KDQ3MDAwMCwgMHhmZmZmKSk7CiAgICAgUlVOKHRlc3RBZGQxVW5jb21tdXRlZCg0OCkpOwogICAg
IFJVTih0ZXN0TG9hZE9mZnNldCgpKTsKICAgICBSVU4odGVzdExvYWRPZmZzZXROb3RDb25zdGFu
dCgpKTsKICAgICBSVU4odGVzdExvYWRPZmZzZXRVc2luZ0FkZCgpKTsKKyAgICBSVU4odGVzdExv
YWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSgpKTsKICAgICBSVU4odGVzdExvYWRPZmZzZXRV
c2luZ0FkZE5vdENvbnN0YW50KCkpOwogICAgIFJVTih0ZXN0RnJhbWVQb2ludGVyKCkpOwogICAg
IFJVTih0ZXN0U3RhY2tTbG90KCkpOwo=
</data>
<flag name="review"
          id="289469"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>