<?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>152963</bug_id>
          
          <creation_ts>2016-01-10 11:24:04 -0800</creation_ts>
          <short_desc>It should be possible to run liveness over registers without also tracking Tmps</short_desc>
          <delta_ts>2016-01-10 16:59:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1154237</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-10 11:24:04 -0800</bug_when>
    <thetext>Tracking Tmps is expensive, tracking Regs is cheap.  We sometimes need to compute liveness of Regs only.  That should be cheap and not expensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154249</commentid>
    <comment_count>1</comment_count>
      <attachid>268660</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-10 11:46:46 -0800</bug_when>
    <thetext>Created attachment 268660
the patch

Not ready for review yet because I haven&apos;t run all of the tests yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154250</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-10 12:05:32 -0800</bug_when>
    <thetext>Attachment 268660 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirInstInlines.h:82:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 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>1154267</commentid>
    <comment_count>3</comment_count>
      <attachid>268660</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-10 14:01:43 -0800</bug_when>
    <thetext>Comment on attachment 268660
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=268660&amp;action=review

r=me

&gt; Source/WTF/ChangeLog:15
&gt; +        BitVector other than this, so it doesn&apos;t make sense to made it harder to access.

made=&gt;make</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154290</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-10 16:59:08 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194834</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268660</attachid>
            <date>2016-01-10 11:46:46 -0800</date>
            <delta_ts>2016-01-10 14:01:43 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16180</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0ODI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDE2LTAxLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJ1biBsaXZlbmVzcyBvdmVyIHJlZ2lzdGVycyB3aXRo
b3V0IGFsc28gdHJhY2tpbmcgVG1wcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUyOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgUmVnTGl2ZW5lc3NBZGFwdGVyIHNvIHRoYXQgd2Ug
Y2FuIHJ1biBMaXZlbmVzcyBvdmVyIHJlZ2lzdGVycy4gVGhpcyBtYWtlcyBpdAorICAgICAgICBl
YXNpZXIgdG8gd3JpdGUgY2VydGFpbiBraW5kcyBvZiBwaGFzZXMsIGxpa2UgUmVwb3J0VXNlZFJl
Z2lzdGVycy4gSSBhbnRpY2lwYXRlIHdyaXRpbmcgbW9yZQorICAgICAgICBjb2RlIGxpa2UgdGhh
dCBmb3IgaGFuZGxpbmcgY29sZCBmdW5jdGlvbiBjYWxscy4gSXQgYWxzbyBtYWtlcyBjb2RlIGxp
a2UgdGhhdCBzb21ld2hhdCBtb3JlCisgICAgICAgIHNjYWxhYmxlLCBzaW5jZSB3ZSdyZSBubyBs
b25nZXIgdXNpbmcgSGFzaFNldHMuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgd2F5IHdlIHRy
YWNrIHNldHMgb2YgcmVnaXN0ZXJzIGlzIHdpdGggYSBCaXRWZWN0b3IuIE5vcm1hbGx5LCB3ZSB1
c2UgdGhlCisgICAgICAgIFJlZ2lzdGVyU2V0IGNsYXNzLCB3aGljaCB3cmFwcyBCaXRWZWN0b3Is
IHNvIHRoYXQgd2UgY2FuIGFkZCgpL2NvbnRhaW5zKCkgb24gUmVnJ3MuIEJ1dCBpbgorICAgICAg
ICB0aGUgbGl2ZW5lc3MgYW5hbHlzaXMsIGV2ZXJ5dGhpbmcgZ2V0cyB0dXJuZWQgaW50byBhbiBp
bmRleC4gU28sIHdlIHdhbnQgdG8gdXNlIEJpdFZlY3RvcgorICAgICAgICBkaXJlY3RseS4gVG8g
ZG8gdGhhdCwgSSBuZWVkZWQgdG8gbWFrZSB0aGUgQml0VmVjdG9yIEFQSSBsb29rIGEgYml0IG1v
cmUgbGlrZSBhIHNldCBBUEkuIEkKKyAgICAgICAgdGhpbmsgdGhhdCB0aGlzIGlzIGdvb2QsIGJl
Y2F1c2UgdGhlIGxhY2sgb2Ygc2V0IG1ldGhvZHMgKGFkZC9yZW1vdmUvY29udGFpbnMpIGhhcyBj
YXVzZWQKKyAgICAgICAgYnVncyBpbiB0aGUgcGFzdC4gVGhpcyBtYWtlcyBCaXRWZWN0b3IgaGF2
ZSBtZXRob2RzIGJvdGggZm9yIHNldCBvcGVyYXRpb25zIG9uIGJpdHMgYW5kIGFycmF5CisgICAg
ICAgIG9wZXJhdGlvbnMgb24gYml0cy4gSSB0aGluayB0aGF0J3MgZ29vZCwgc2luY2UgQml0VmVj
dG9yIGdldHMgdXNlZCBpbiBib3RoIGNvbnRleHRzLgorCisgICAgICAgICogYjMvQjNJbmRleFNl
dC5oOgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6Okl0ZXJhYmxlOjppdGVyYXRvcjo6aXRl
cmF0b3IpOgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6Okl0ZXJhYmxlOjpiZWdpbik6Cisg
ICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6ZHVtcCk6CisgICAgICAgICogYjMvYWlyL0Fpcklu
c3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkZvckVhY2g8VG1wPjo6Zm9yRWFj
aCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkZvckVhY2g8QXJnPjo6Zm9yRWFjaCk6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OkZvckVhY2g8UmVnPjo6Zm9yRWFjaCk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okluc3Q6OmZvckVhY2gpOgorICAgICAgICAqIGIzL2Fpci9BaXJMaXZlbmVzcy5o
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpSZWdMaXZlbmVzc0FkYXB0ZXI6OlJlZ0xpdmVuZXNz
QWRhcHRlcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlJlZ0xpdmVuZXNzQWRhcHRlcjo6bWF4
SW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpSZWdMaXZlbmVzc0FkYXB0ZXI6OmFjY2Vw
dHNUeXBlKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UmVnTGl2ZW5lc3NBZGFwdGVyOjp2YWx1
ZVRvSW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpSZWdMaXZlbmVzc0FkYXB0ZXI6Omlu
ZGV4VG9WYWx1ZSk6CisgICAgICAgICogYjMvYWlyL0FpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3Bw
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpyZXBvcnRVc2VkUmVnaXN0ZXJzKToKKyAgICAgICAg
KiBqaXQvUmVnLmg6CisgICAgICAgIChKU0M6OlJlZzo6bmV4dCk6CisgICAgICAgIChKU0M6OlJl
Zzo6aW5kZXgpOgorICAgICAgICAoSlNDOjpSZWc6Om1heEluZGV4KToKKyAgICAgICAgKEpTQzo6
UmVnOjppc1NldCk6CisgICAgICAgIChKU0M6OlJlZzo6b3BlcmF0b3IgYm9vbCk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyU2V0Lmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0Ojpmb3JFYWNo
KToKKwogMjAxNi0wMS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFpciBzaG91bGQgc3VwcG9ydCBCcmFuY2g2NCB3aXRoIGltbWVkaWF0ZXMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4U2V0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzSW5kZXhTZXQuaAkocmV2aXNpb24gMTk0ODI3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5kZXhTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtODUs
NyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGl0ZXJhdG9yKGNvbnN0IENvbGxlY3Rpb25UeXBlJiBjb2xsZWN0aW9uLCBCaXRWZWN0
b3I6OlNldEJpdHNJdGVyYWJsZTo6aXRlcmF0b3IgaXRlcikKKyAgICAgICAgICAgIGl0ZXJhdG9y
KGNvbnN0IENvbGxlY3Rpb25UeXBlJiBjb2xsZWN0aW9uLCBCaXRWZWN0b3I6Oml0ZXJhdG9yIGl0
ZXIpCiAgICAgICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oJmNvbGxlY3Rpb24pCiAgICAgICAg
ICAgICAgICAgLCBtX2l0ZXIoaXRlcikKICAgICAgICAgICAgIHsKQEAgLTExNCw3ICsxMTQsNyBA
QCBwdWJsaWM6CiAKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbnN0IENvbGxlY3Rp
b25UeXBlKiBtX2NvbGxlY3Rpb247Ci0gICAgICAgICAgICBCaXRWZWN0b3I6OlNldEJpdHNJdGVy
YWJsZTo6aXRlcmF0b3IgbV9pdGVyOworICAgICAgICAgICAgQml0VmVjdG9yOjppdGVyYXRvciBt
X2l0ZXI7CiAgICAgICAgIH07CiAKICAgICAgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJl
dHVybiBpdGVyYXRvcihtX2NvbGxlY3Rpb24sIG1fc2V0LmJlZ2luKCkpOyB9CkBAIC0xNDEsNyAr
MTQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
ICAgIHsKICAgICAgICAgQ29tbWFQcmludGVyIGNvbW1hOwotICAgICAgICBmb3IgKHNpemVfdCBp
bmRleCA6IGluZGljZXMoKS5zZXRCaXRzKCkpCisgICAgICAgIGZvciAoc2l6ZV90IGluZGV4IDog
aW5kaWNlcygpKQogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBUOjpkdW1wUHJlZml4LCBp
bmRleCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c3RJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJJbnN0SW5saW5lcy5oCShyZXZpc2lvbiAxOTQ4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxUbXA+IHsKICAgICAgICAgaW5zdC5mb3JFYWNo
VG1wKGZ1bmN0b3IpOwogICAgIH0KIH07CisKIHRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8QXJn
PiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KICAgICBzdGF0aWMgdm9pZCBmb3JF
YWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCkBAIC01MCw2ICs1MSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8QXJnPiB7CiAgICAgICAgIGluc3QuZm9yRWFjaEFy
ZyhmdW5jdG9yKTsKICAgICB9CiB9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFN0YWNr
U2xvdCo+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgogICAgIHN0YXRpYyB2b2lk
IGZvckVhY2goSW5zdCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKQEAgLTcyLDYgKzc0
LDIyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8U3RhY2tTbG90Kj4gewogICAgIH0KIH07
CiAKK3RlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8UmVnPiB7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBpbnN0LmZvckVhY2hUbXAoCisgICAgICAg
ICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6
V2lkdGggd2lkdGgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygpKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJl
ZygpOworICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7Cisg
ICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAgICB9Cit9
OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZywgdHlwZW5hbWUgRnVuY3Rvcj4KIHZvaWQgSW5z
dDo6Zm9yRWFjaChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQogewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTGl2ZW5lc3MuaAkocmV2aXNpb24gMTk0ODI3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVzcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC03Niw2ICs3NiwyMiBAQCBwcml2YXRlOgogICAgIENvZGUmIG1fY29kZTsKIH07CiAKK3N0cnVj
dCBSZWdMaXZlbmVzc0FkYXB0ZXIgeworICAgIHR5cGVkZWYgUmVnIFRoaW5nOworICAgIHR5cGVk
ZWYgQml0VmVjdG9yIEluZGV4U2V0OworCisgICAgUmVnTGl2ZW5lc3NBZGFwdGVyKENvZGUmKSB7
IH0KKworICAgIHN0YXRpYyB1bnNpZ25lZCBtYXhJbmRleChDb2RlJikKKyAgICB7CisgICAgICAg
IHJldHVybiBSZWc6Om1heEluZGV4KCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgYWNjZXB0
c1R5cGUoQXJnOjpUeXBlKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIHVuc2lnbmVkIHZh
bHVlVG9JbmRleChSZWcgcmVnKSB7IHJldHVybiByZWcuaW5kZXgoKTsgfQorICAgIFJlZyBpbmRl
eFRvVmFsdWUodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIFJlZzo6ZnJvbUluZGV4KGluZGV4KTsg
fQorfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRlcj4KIGNsYXNzIEFic3RyYWN0TGl2ZW5l
c3MgOiBwcml2YXRlIEFkYXB0ZXIgewogICAgIHN0cnVjdCBXb3Jrc2V0OwpAQCAtMzQ0LDYgKzM2
MCw3IEBAIHVzaW5nIFRtcExpdmVuZXNzID0gQWJzdHJhY3RMaXZlbmVzczxUbXAKIHR5cGVkZWYg
QWJzdHJhY3RMaXZlbmVzczxUbXBMaXZlbmVzc0FkYXB0ZXI8QXJnOjpHUD4+IEdQTGl2ZW5lc3M7
CiB0eXBlZGVmIEFic3RyYWN0TGl2ZW5lc3M8VG1wTGl2ZW5lc3NBZGFwdGVyPEFyZzo6RlA+PiBG
UExpdmVuZXNzOwogdHlwZWRlZiBBYnN0cmFjdExpdmVuZXNzPFN0YWNrU2xvdExpdmVuZXNzQWRh
cHRlcj4gU3RhY2tTbG90TGl2ZW5lc3M7Cit0eXBlZGVmIEFic3RyYWN0TGl2ZW5lc3M8UmVnTGl2
ZW5lc3NBZGFwdGVyPiBSZWdMaXZlbmVzczsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6
OkFpcgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclJlcG9ydFVzZWRS
ZWdpc3RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHJldmlzaW9uIDE5NDgyNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzksMzEgKzM5LDIwIEBAIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhDb2RlJiBjb2Rl
KQogewogICAgIFBoYXNlU2NvcGUgcGhhc2VTY29wZShjb2RlLCAicmVwb3J0VXNlZFJlZ2lzdGVy
cyIpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB0ZWxsIGxpdmVuZXNzIHRvIG9ubHkgdHJh
Y2sgUmVncy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwNzUxCi0gICAgR1BMaXZlbmVzcyBncExpdmVuZXNzKGNvZGUpOwotICAgIEZQTGl2ZW5lc3Mg
ZnBMaXZlbmVzcyhjb2RlKTsKKyAgICBSZWdMaXZlbmVzcyBsaXZlbmVzcyhjb2RlKTsKIAogICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7Ci0gICAgICAgIEdQTGl2ZW5lc3M6Okxv
Y2FsQ2FsYyBncExvY2FsQ2FsYyhncExpdmVuZXNzLCBibG9jayk7Ci0gICAgICAgIEZQTGl2ZW5l
c3M6OkxvY2FsQ2FsYyBmcExvY2FsQ2FsYyhmcExpdmVuZXNzLCBibG9jayk7CisgICAgICAgIFJl
Z0xpdmVuZXNzOjpMb2NhbENhbGMgbG9jYWxDYWxjKGxpdmVuZXNzLCBibG9jayk7CiAKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpbnN0SW5kZXggPSBibG9jay0+c2l6ZSgpOyBpbnN0SW5kZXgtLTsp
IHsKICAgICAgICAgICAgIEluc3QmIGluc3QgPSBibG9jay0+YXQoaW5zdEluZGV4KTsKICAgICAg
ICAgICAgIGlmIChpbnN0Lmhhc1NwZWNpYWwoKSkgewogICAgICAgICAgICAgICAgIFJlZ2lzdGVy
U2V0IHJlZ2lzdGVyU2V0OwotICAgICAgICAgICAgICAgIGZvciAoVG1wIHRtcCA6IGdwTG9jYWxD
YWxjLmxpdmUoKSkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQodG1wLmlzR1AoKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyU2V0LnNldCh0bXAucmVnKCkpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBmb3IgKFRtcCB0bXAgOiBmcExvY2FsQ2FsYy5saXZl
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHRtcC5pc0ZQKCkpOwotICAgICAgICAg
ICAgICAgICAgICByZWdpc3RlclNldC5zZXQodG1wLnJlZygpKTsKLSAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgZm9yIChSZWcgcmVnIDogbG9jYWxDYWxjLmxpdmUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVnaXN0ZXJTZXQuc2V0KHJlZyk7CiAgICAgICAgICAgICAgICAgaW5z
dC5yZXBvcnRVc2VkUmVnaXN0ZXJzKHJlZ2lzdGVyU2V0KTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGdwTG9jYWxDYWxjLmV4ZWN1dGUoaW5zdEluZGV4KTsKLSAgICAgICAgICAgIGZwTG9j
YWxDYWxjLmV4ZWN1dGUoaW5zdEluZGV4KTsKKyAgICAgICAgICAgIGxvY2FsQ2FsYy5leGVjdXRl
KGluc3RJbmRleCk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnLmgJKHJldmlzaW9uIDE5NDgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVn
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTEwMyw2ICsxMDMsMTEgQEAgcHVibGljOgogICAgIH0KICAgICAK
ICAgICB1bnNpZ25lZCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7IH0KKworICAgIHN0
YXRpYyB1bnNpZ25lZCBtYXhJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gbGFzdCgpLmlu
ZGV4KCk7CisgICAgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX2lu
ZGV4ICE9IGludmFsaWQoKTsgfQogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7
IHJldHVybiBpc1NldCgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lz
dGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clNldC5oCShyZXZpc2lvbiAxOTQ4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CiAgICAgdm9pZCBmb3JFYWNoKGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CiAgICAgewotICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA6
IG1fdmVjdG9yLnNldEJpdHMoKSkKKyAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBtX3ZlY3Rv
cikKICAgICAgICAgICAgIGZ1bmN0b3IoUmVnOjpmcm9tSW5kZXgoaW5kZXgpKTsKICAgICB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkocmV2aXNpb24gMTk0ODI3KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw0NiBAQAorMjAxNi0wMS0xMCAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBydW4g
bGl2ZW5lc3Mgb3ZlciByZWdpc3RlcnMgd2l0aG91dCBhbHNvIHRyYWNraW5nIFRtcHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjk2MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzZXQgbWV0aG9k
cyAoYWRkL2NvbnRhaW5zL3JlbW92ZSkgdG8gQml0VmVjdG9yLCBzaW5jZSBpdCBnZXRzIHVzZWQg
YXMgYSBzZXQgaW4gYSBsb3Qgb2YKKyAgICAgICAgcGxhY2VzLiBUaGlzIGFsc28gbWFrZXMgQml0
VmVjdG9yIGEgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgSGFzaFNldDx1bnNpZ25lZD4gaW4gYSBs
b3Qgb2YKKyAgICAgICAgcGxhY2VzLgorCisgICAgICAgIEFsc28gbWFkZSB0aGUgaXRlcmF0b3Ig
bWV0aG9kcyBvZiBCaXRWZWN0b3IgbGl2ZSBvbiBCaXRWZWN0b3IgZGlyZWN0bHkgcmF0aGVyIHRo
YW4gYmVoaW5kIHRoZQorICAgICAgICB0aGluZyByZXR1cm5lZCBmcm9tIHNldEJpdHMoKS4gVGhp
cyBtYWtlcyBzZW5zZSBzaW5jZSB0aGF0IG1ha2VzIEJpdFZlY3RvciBldmVuIG1vcmUgb2YgYQor
ICAgICAgICBkcm9wLWluIGZvciBIYXNoU2V0LiBJdCdzIG5vdCBoYXJtZnVsIHNpbmNlIHdlJ3Zl
IG5ldmVyIGFkZGVkIGFueSBvdGhlciBtb2RlIG9mIGl0ZXJhdGluZyBhCisgICAgICAgIEJpdFZl
Y3RvciBvdGhlciB0aGFuIHRoaXMsIHNvIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBtYWRlIGl0
IGhhcmRlciB0byBhY2Nlc3MuCisKKyAgICAgICAgKiB3dGYvQml0VmVjdG9yLmg6CisgICAgICAg
IChXVEY6OkJpdFZlY3Rvcjo6Z2V0KToKKyAgICAgICAgKFdURjo6Qml0VmVjdG9yOjpjb250YWlu
cyk6CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6c2V0KToKKyAgICAgICAgKFdURjo6Qml0VmVj
dG9yOjphZGQpOgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6OmVuc3VyZVNpemVBbmRTZXQpOgor
ICAgICAgICAoV1RGOjpCaXRWZWN0b3I6OmNsZWFyKToKKyAgICAgICAgKFdURjo6Qml0VmVjdG9y
OjpyZW1vdmUpOgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6Omhhc2gpOgorICAgICAgICAoV1RG
OjpCaXRWZWN0b3I6Oml0ZXJhdG9yOjppdGVyYXRvcik6CisgICAgICAgIChXVEY6OkJpdFZlY3Rv
cjo6aXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6aXRlcmF0
b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6Oml0ZXJhdG9yOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdURjo6Qml0VmVjdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6
CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6YmVnaW4pOgorICAgICAgICAoV1RGOjpCaXRWZWN0
b3I6OmVuZCk6CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6Yml0c0luUG9pbnRlcik6CisgICAg
ICAgIChXVEY6OkJpdFZlY3Rvcjo6U2V0Qml0c0l0ZXJhYmxlOjpTZXRCaXRzSXRlcmFibGUpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6OlNldEJpdHNJdGVyYWJsZTo6aXRlcmF0
b3I6Oml0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6Qml0VmVjdG9yOjpTZXRCaXRz
SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVyYXRvciopOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpC
aXRWZWN0b3I6OlNldEJpdHNJdGVyYWJsZTo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6OlNldEJpdHNJdGVyYWJsZTo6aXRlcmF0b3I6Om9w
ZXJhdG9yPT0pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpCaXRWZWN0b3I6OlNldEJpdHNJdGVy
YWJsZTo6aXRlcmF0b3I6Om9wZXJhdG9yIT0pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpCaXRW
ZWN0b3I6OlNldEJpdHNJdGVyYWJsZTo6YmVnaW4pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpC
aXRWZWN0b3I6OlNldEJpdHNJdGVyYWJsZTo6ZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
Qml0VmVjdG9yOjpzZXRCaXRzKTogRGVsZXRlZC4KKwogMjAxNi0wMS0wOSAgQW5kcmVhcyBLbGlu
ZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIE5ldmVyRGVzdHJveWVkIGluc3Rl
YWQgb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9CaXRWZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9CaXRWZWN0b3IuaAko
cmV2aXNpb24gMTk0ODI3KQorKysgU291cmNlL1dURi93dGYvQml0VmVjdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTE1MSw2ICsxNTEsMTEgQEAgcHVibGljOiAKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHF1aWNrR2V0KGJpdCk7CiAgICAgfQorCisg
ICAgYm9vbCBjb250YWlucyhzaXplX3QgYml0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IGdldChiaXQpOworICAgIH0KICAgICAKICAgICBib29sIHNldChzaXplX3QgYml0KQogICAgIHsK
QEAgLTE1OCw2ICsxNjMsMTMgQEAgcHVibGljOiAKICAgICAgICAgcmV0dXJuIHF1aWNrU2V0KGJp
dCk7CiAgICAgfQogCisgICAgLy8gVGhpcyB3b3JrcyBsaWtlIHRoZSBhZGQgbWV0aG9kcyBvZiBz
ZXRzLiBJbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgcHJldmlvdXMgdmFsdWUsIGxpa2Ugc2V0KCks
CisgICAgLy8gaXQgcmV0dXJucyB3aGV0aGVyIHRoZSBiaXQgdHJhbnNpdGlvbmVkIGZyb20gZmFs
c2UgdG8gdHJ1ZS4KKyAgICBib29sIGFkZChzaXplX3QgYml0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuICFzZXQoYml0KTsKKyAgICB9CisKICAgICBib29sIGVuc3VyZVNpemVBbmRTZXQoc2l6ZV90
IGJpdCwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBlbnN1cmVTaXplKHNpemUpOwpAQCAt
MTcwLDYgKzE4MiwxMSBAQCBwdWJsaWM6IAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICByZXR1cm4gcXVpY2tDbGVhcihiaXQpOwogICAgIH0KKworICAgIGJvb2wgcmVtb3ZlKHNp
emVfdCBiaXQpCisgICAgeworICAgICAgICByZXR1cm4gY2xlYXIoYml0KTsKKyAgICB9CiAgICAg
CiAgICAgYm9vbCBzZXQoc2l6ZV90IGJpdCwgYm9vbCB2YWx1ZSkKICAgICB7CkBAIC0yNjksNTgg
KzI4Niw0NiBAQCBwdWJsaWM6IAogICAgICAgICByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+Ojpo
YXNoKHZhbHVlKTsKICAgICB9CiAgICAgCi0gICAgY2xhc3MgU2V0Qml0c0l0ZXJhYmxlIHsKKyAg
ICBjbGFzcyBpdGVyYXRvciB7CiAgICAgcHVibGljOgotICAgICAgICBTZXRCaXRzSXRlcmFibGUo
Y29uc3QgQml0VmVjdG9yJiBiaXRWZWN0b3IpCi0gICAgICAgICAgICA6IG1fYml0VmVjdG9yKGJp
dFZlY3RvcikKKyAgICAgICAgaXRlcmF0b3IoKQorICAgICAgICAgICAgOiBtX2JpdFZlY3Rvcihu
dWxscHRyKQorICAgICAgICAgICAgLCBtX2luZGV4KDApCiAgICAgICAgIHsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgY2xhc3MgaXRlcmF0b3IgewotICAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICBpdGVyYXRvcigpCi0gICAgICAgICAgICAgICAgOiBtX2JpdFZlY3RvcihudWxscHRy
KQotICAgICAgICAgICAgICAgICwgbV9pbmRleCgwKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdGVyYXRvcihjb25zdCBCaXRWZWN0b3Im
IGJpdFZlY3Rvciwgc2l6ZV90IGluZGV4KQotICAgICAgICAgICAgICAgIDogbV9iaXRWZWN0b3Io
JmJpdFZlY3RvcikKLSAgICAgICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNpemVfdCBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBtX2luZGV4ID0gbV9iaXRWZWN0b3ItPmZpbmRCaXQobV9pbmRleCArIDEsIHRydWUpOwotICAg
ICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5t
X2luZGV4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIGNvbnN0IEJpdFZlY3RvciogbV9iaXRWZWN0b3I7
Ci0gICAgICAgICAgICBzaXplX3QgbV9pbmRleDsKLSAgICAgICAgfTsKKyAgICAgICAgaXRlcmF0
b3IoY29uc3QgQml0VmVjdG9yJiBiaXRWZWN0b3IsIHNpemVfdCBpbmRleCkKKyAgICAgICAgICAg
IDogbV9iaXRWZWN0b3IoJmJpdFZlY3RvcikKKyAgICAgICAgICAgICwgbV9pbmRleChpbmRleCkK
KyAgICAgICAgeworICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpdGVyYXRvciBiZWdpbigp
IGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKG1fYml0VmVjdG9yLCBtX2JpdFZlY3Rvci5maW5kQml0
KDAsIHRydWUpKTsgfQotICAgICAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVy
YXRvcihtX2JpdFZlY3RvciwgbV9iaXRWZWN0b3Iuc2l6ZSgpKTsgfQorICAgICAgICBzaXplX3Qg
b3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQogICAgICAgICAKKyAgICAgICAg
aXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2luZGV4ID0g
bV9iaXRWZWN0b3ItPmZpbmRCaXQobV9pbmRleCArIDEsIHRydWUpOworICAgICAgICAgICAgcmV0
dXJuICp0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4OworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KICAgICBw
cml2YXRlOgotICAgICAgICBjb25zdCBCaXRWZWN0b3ImIG1fYml0VmVjdG9yOworICAgICAgICBj
b25zdCBCaXRWZWN0b3IqIG1fYml0VmVjdG9yOworICAgICAgICBzaXplX3QgbV9pbmRleDsKICAg
ICB9OwotICAgIAotICAgIFNldEJpdHNJdGVyYWJsZSBzZXRCaXRzKCkgY29uc3QgeyByZXR1cm4g
U2V0Qml0c0l0ZXJhYmxlKCp0aGlzKTsgfQotICAgIAorCisgICAgLy8gVXNlIHRoaXMgdG8gaXRl
cmF0ZSBvdmVyIHNldCBiaXRzLgorICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4g
aXRlcmF0b3IoKnRoaXMsIGZpbmRCaXQoMCwgdHJ1ZSkpOyB9CisgICAgaXRlcmF0b3IgZW5kKCkg
Y29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICAgICAgCiBwcml2
YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBiaXRzSW5Qb2ludGVyKCkKICAgICB7Cg==
</data>
<flag name="review"
          id="293640"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>