<?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>133935</bug_id>
          
          <creation_ts>2014-06-15 22:06:42 -0700</creation_ts>
          <short_desc>[ftlopt] DFG OSR entry should have a crystal-clear story for when it&apos;s safe to enter at a block with a set of values</short_desc>
          <delta_ts>2014-06-16 11:06:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>133918</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015814</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-15 22:06:42 -0700</bug_when>
    <thetext>Currently we record the abstract values at the head of a block at the time that the backend runs.  This causes weirdness if a subsequent run of the CFA proves less things (or different things) than a past run, and we had already performed optimizations based on the past run.

The solution is to save the intersection of all proofs.

This makes constant folding a lot easier to reason about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015815</commentid>
    <comment_count>1</comment_count>
      <attachid>233151</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-15 22:09:19 -0700</bug_when>
    <thetext>Created attachment 233151
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015894</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-16 11:06:51 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/170016</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233151</attachid>
            <date>2014-06-15 22:09:19 -0700</date>
            <delta_ts>2014-06-16 10:09:42 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16004</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwMDAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE0LTA2LTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2Z0bG9wdF0gREZHIE9TUiBlbnRyeSBzaG91bGQgaGF2ZSBhIGNyeXN0YWwtY2xlYXIgc3Rvcnkg
Zm9yIHdoZW4gaXQncyBzYWZlIHRvIGVudGVyIGF0IGEgYmxvY2sgd2l0aCBhIHNldCBvZiB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzkz
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0
ZWNvZGUvT3BlcmFuZHMuaDoKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Ok9wZXJhbmRzKToKKyAg
ICAgICAgKEpTQzo6T3BlcmFuZHM6OmVuc3VyZUxvY2Fscyk6CisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmZpbHRl
cik6IE5vdyB3ZSBjYW4gY29tcHV0ZSBpbnRlcnNlY3Rpb25zIG9mIGFic3RyYWN0IHZhbHVlcyEK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0VmFsdWU6Om1ha2VGdWxsVG9wKTogQ29tcGxldGVuZXNzLgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0VmFsdWU6OmJ5dGVjb2RlVG9wKTogQ29tcGxldGVuZXNzLgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmZ1bGxUb3ApOiBDb21wbGV0ZW5lc3MuIFdlIGVuZCB1
cCB1c2luZyB0aGlzIG9uZS4KKyAgICAgICAgKiBkZmcvREZHQmFzaWNCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6QmFzaWNCbG9jazo6QmFzaWNCbG9jayk6CisgICAgICAgIChKU0M6OkRG
Rzo6QmFzaWNCbG9jazo6ZW5zdXJlTG9jYWxzKToKKyAgICAgICAgKiBkZmcvREZHQmFzaWNCbG9j
ay5oOiBSZW1lbWJlciB0aGUgaW50ZXJzZWN0aW9uIG9mIGFsbCB0aGluZ3MgZXZlciBwcm92ZW4u
CisgICAgICAgICogZGZnL0RGR0NGQVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDRkFQ
aGFzZTo6cnVuKTogQ29tcHV0ZSB0aGUgaW50ZXJzZWN0aW9uLgorICAgICAgICAqIGRmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xk
aW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOiBObyBuZWVkIGZvciB0aGUgd2VpcmRvIG1lcmdlIGNo
ZWNrIHNpbmNlIHRoaXMgZml4ZXMgdGhlIHJvb3Qgb2YgdGhlIHByb2JsZW0uCisgICAgICAgICog
ZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVtcEJsb2NrSGVh
ZGVyKTogQmV0dGVyIGR1bXBpbmcuCisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOiBC
ZXR0ZXIgZHVtcGluZy4KKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb21waWxlcjo6bm90aWNlT1NSRW50cnkpOiBVc2UgdGhlIGludGVyc2Vj
dGVkIGFic3RyYWN0IHZhbHVlLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDdXJyZW50QmxvY2sp
OiBBc3NlcnQgaWYgdGhlIGludGVyc2VjdGVkIHN0YXRlIGluZGljYXRlcyB0aGUgYmxvY2sgc2hv
dWxkbid0IGV4ZWN1dGUuCisKIDIwMTQtMDYtMTIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBbZnRsb3B0XSBBIERGRyBpbmxpbmVkIEJ5SWQgYWNjZXNzIHZhcmlh
bnQgc2hvdWxkIG5vdCBzcGVhayBvZiBhIGNoYWluLCBidXQgb25seSBvZiB3aGF0IHN0cnVjdHVy
ZXMgdG8gdGVzdCB0aGUgYmFzZSBmb3IsIHdoZXRoZXIgdG8gdXNlIGEgY29uc3RhbnQgYXMgYW4g
YWx0ZXJuYXRlIGJhc2UgZm9yIHRoZSBhY3R1YWwgYWNjZXNzLCBhbmQgd2hhdCBzdHJ1Y3R1cmVz
IHRvIGNoZWNrIG9uIHdoYXQgYWRkaXRpb25hbCBjZWxsIGNvbnN0YW50cwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgJKHJldmlzaW9uIDE2OTk5NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MiwxMCArNTIsMTAgQEAgY2xhc3MgT3BlcmFuZHMgewogcHVibGljOgogICAgIE9wZXJh
bmRzKCkgeyB9CiAgICAgCi0gICAgZXhwbGljaXQgT3BlcmFuZHMoc2l6ZV90IG51bUFyZ3VtZW50
cywgc2l6ZV90IG51bUxvY2FscykKKyAgICBleHBsaWNpdCBPcGVyYW5kcyhzaXplX3QgbnVtQXJn
dW1lbnRzLCBzaXplX3QgbnVtTG9jYWxzLCBjb25zdCBUJiBpbml0aWFsVmFsdWUgPSBUcmFpdHM6
OmRlZmF1bHRWYWx1ZSgpKQogICAgIHsKLSAgICAgICAgbV9hcmd1bWVudHMuZmlsbChUcmFpdHM6
OmRlZmF1bHRWYWx1ZSgpLCBudW1Bcmd1bWVudHMpOwotICAgICAgICBtX2xvY2Fscy5maWxsKFRy
YWl0czo6ZGVmYXVsdFZhbHVlKCksIG51bUxvY2Fscyk7CisgICAgICAgIG1fYXJndW1lbnRzLmZp
bGwoaW5pdGlhbFZhbHVlLCBudW1Bcmd1bWVudHMpOworICAgICAgICBtX2xvY2Fscy5maWxsKGlu
aXRpYWxWYWx1ZSwgbnVtTG9jYWxzKTsKICAgICB9CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVSwgdHlwZW5hbWUgT3RoZXJUcmFpdHM+CkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGxvY2FsKGlkeCk7CiAgICAgfQogICAgIAotICAgIHZvaWQgZW5zdXJlTG9j
YWxzKHNpemVfdCBzaXplKQorICAgIHZvaWQgZW5zdXJlTG9jYWxzKHNpemVfdCBzaXplLCBjb25z
dCBUJiBlbnN1cmVkVmFsdWUgPSBUcmFpdHM6OmRlZmF1bHRWYWx1ZSgpKQogICAgIHsKICAgICAg
ICAgaWYgKHNpemUgPD0gbV9sb2NhbHMuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG9sZFNpemUgPSBtX2xvY2Fs
cy5zaXplKCk7CiAgICAgICAgIG1fbG9jYWxzLnJlc2l6ZShzaXplKTsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IG9sZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkKLSAgICAgICAgICAg
IG1fbG9jYWxzW2ldID0gVHJhaXRzOjpkZWZhdWx0VmFsdWUoKTsKKyAgICAgICAgICAgIG1fbG9j
YWxzW2ldID0gZW5zdXJlZFZhbHVlOwogICAgIH0KICAgICAKICAgICB2b2lkIHNldExvY2FsKHNp
emVfdCBpZHgsIGNvbnN0IFQmIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCShyZXZpc2lvbiAxNjk5OTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjksNiArMjI5LDM5IEBAIEZpbHRyYXRpb25SZXN1bHQgQWJzdHJhY3RWYWx1ZTo6ZmlsdGVy
QnkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitGaWx0cmF0aW9uUmVzdWx0IEFic3RyYWN0VmFs
dWU6OmZpbHRlcihjb25zdCBBYnN0cmFjdFZhbHVlJiBvdGhlcikKK3sKKyAgICBtX3R5cGUgJj0g
b3RoZXIubV90eXBlOworICAgIG1fc3RydWN0dXJlLmZpbHRlcihvdGhlci5tX3N0cnVjdHVyZSk7
CisgICAgbV9hcnJheU1vZGVzICY9IG90aGVyLm1fYXJyYXlNb2RlczsKKworICAgIG1fc3RydWN0
dXJlLmZpbHRlcihtX3R5cGUpOworICAgIGZpbHRlckFycmF5TW9kZXNCeVR5cGUoKTsKKyAgICBm
aWx0ZXJWYWx1ZUJ5VHlwZSgpOworICAgIAorICAgIGlmIChub3JtYWxpemVDbGFyaXR5KCkgPT0g
Q29udHJhZGljdGlvbikKKyAgICAgICAgcmV0dXJuIENvbnRyYWRpY3Rpb247CisgICAgCisgICAg
aWYgKG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZSkKKyAgICAgICAgcmV0dXJuIEZpbHRyYXRpb25P
SzsKKyAgICAKKyAgICAvLyBOZWl0aGVyIG9mIHVzIGFyZSBCT1RUT00sIHNvIGFuIGVtcHR5IHZh
bHVlIG1lYW5zIFRPUC4KKyAgICBpZiAoIW1fdmFsdWUpIHsKKyAgICAgICAgLy8gV2UgcHJldmlv
dXNseSBkaWRuJ3QgcHJvdmUgYSB2YWx1ZSBidXQgbm93IHdlIGhhdmUgZG9uZSBzby4KKyAgICAg
ICAgbV92YWx1ZSA9IG90aGVyLm1fdmFsdWU7IAorICAgICAgICByZXR1cm4gRmlsdHJhdGlvbk9L
OworICAgIH0KKyAgICAKKyAgICBpZiAoIW90aGVyLm1fdmFsdWUpIHsKKyAgICAgICAgLy8gV2Ug
aGFkIHByb3ZlZCBhIHZhbHVlIGJ1dCB0aGUgb3RoZXIgZ3V5IGhhZG4ndCwgc28ga2VlcCBvdXIg
cHJvb2YuCisgICAgICAgIHJldHVybiBGaWx0cmF0aW9uT0s7CisgICAgfQorICAgIAorICAgIC8v
IFdlIGJvdGggcHJvdmVkIHRoZXJlIHRvIGJlIGEgc3BlY2lmaWMgdmFsdWUgYnV0IHRoZXkgYXJl
IGRpZmZlcmVudC4KKyAgICBjbGVhcigpOworICAgIHJldHVybiBDb250cmFkaWN0aW9uOworfQor
CiB2b2lkIEFic3RyYWN0VmFsdWU6OmZpbHRlclZhbHVlQnlUeXBlKCkKIHsKICAgICAvLyBXZSBj
b3VsZCBnbyBmdXJ0aGVyLCBhbmQgZW5zdXJlIHRoYXQgaWYgdGhlIGZ1dHVyZVBvc3NpYmxlU3Ry
dWN0dXJlIGNvbnRyYXZlbmVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0VmFsdWUuaAkocmV2aXNpb24gMTY5OTk2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEx
IEBAIHN0cnVjdCBBYnN0cmFjdFZhbHVlIHsKICAgICAgICAgbWFrZVRvcChTcGVjQnl0ZWNvZGVU
b3ApOwogICAgIH0KICAgICAKKyAgICB2b2lkIG1ha2VGdWxsVG9wKCkKKyAgICB7CisgICAgICAg
IG1ha2VUb3AoU3BlY0Z1bGxUb3ApOworICAgIH0KKyAgICAKICAgICB2b2lkIGNsb2JiZXJTdHJ1
Y3R1cmVzKCkKICAgICB7CiAgICAgICAgIGlmIChtX3R5cGUgJiBTcGVjQ2VsbCkgewpAQCAtMTc0
LDYgKzE3OSwyMCBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZSB7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogICAgIAorICAgIHN0YXRpYyBBYnN0cmFjdFZhbHVlIGJ5dGVjb2RlVG9wKCkK
KyAgICB7CisgICAgICAgIEFic3RyYWN0VmFsdWUgcmVzdWx0OworICAgICAgICByZXN1bHQubWFr
ZUJ5dGVjb2RlVG9wKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBBYnN0cmFjdFZhbHVlIGZ1bGxUb3AoKQorICAgIHsKKyAgICAgICAgQWJzdHJhY3RW
YWx1ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tYWtlRnVsbFRvcCgpOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKyAgICAKICAgICB2b2lkIHNldE9TUkVudHJ5VmFsdWUoR3JhcGgm
LCBjb25zdCBGcm96ZW5WYWx1ZSYpOwogICAgIAogICAgIHZvaWQgc2V0KEdyYXBoJiwgY29uc3Qg
RnJvemVuVmFsdWUmLCBTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUpOwpAQCAtMjU5LDEzICsyNzgsMTIg
QEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgIH0KICAgICAKICAgICBGaWx0cmF0aW9uUmVz
dWx0IGZpbHRlcihHcmFwaCYsIGNvbnN0IFN0cnVjdHVyZVNldCYpOwotICAgIAogICAgIEZpbHRy
YXRpb25SZXN1bHQgZmlsdGVyQXJyYXlNb2RlcyhBcnJheU1vZGVzIGFycmF5TW9kZXMpOwotICAg
IAogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyKFNwZWN1bGF0ZWRUeXBlIHR5cGUpOwotICAg
IAogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQnlWYWx1ZShjb25zdCBGcm96ZW5WYWx1ZSYg
dmFsdWUpOwogICAgIAorICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyKGNvbnN0IEFic3RyYWN0
VmFsdWUmKTsKKyAgICAKICAgICBib29sIHZhbGlkYXRlKEpTVmFsdWUgdmFsdWUpIGNvbnN0CiAg
ICAgewogICAgICAgICBpZiAoaXNIZWFwVG9wKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDE2OTk5NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDYgKzUyLDggQEAgQmFzaWNCbG9jazo6QmFzaWNCbG9jaygKICAgICAsIHZhcmlhYmxlc0F0VGFp
bChudW1Bcmd1bWVudHMsIG51bUxvY2FscykKICAgICAsIHZhbHVlc0F0SGVhZChudW1Bcmd1bWVu
dHMsIG51bUxvY2FscykKICAgICAsIHZhbHVlc0F0VGFpbChudW1Bcmd1bWVudHMsIG51bUxvY2Fs
cykKKyAgICAsIGludGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZChudW1Bcmd1bWVudHMsIG51
bUxvY2FscywgQWJzdHJhY3RWYWx1ZTo6ZnVsbFRvcCgpKQorICAgICwgaW50ZXJzZWN0aW9uT2ZD
RkFIYXNWaXNpdGVkKHRydWUpCiAgICAgLCBleGVjdXRpb25Db3VudChleGVjdXRpb25Db3VudCkK
IHsKIH0KQEAgLTY0LDYgKzY2LDcgQEAgdm9pZCBCYXNpY0Jsb2NrOjplbnN1cmVMb2NhbHModW5z
aWduZWQgbgogICAgIHZhcmlhYmxlc0F0VGFpbC5lbnN1cmVMb2NhbHMobmV3TnVtTG9jYWxzKTsK
ICAgICB2YWx1ZXNBdEhlYWQuZW5zdXJlTG9jYWxzKG5ld051bUxvY2Fscyk7CiAgICAgdmFsdWVz
QXRUYWlsLmVuc3VyZUxvY2FscyhuZXdOdW1Mb2NhbHMpOworICAgIGludGVyc2VjdGlvbk9mUGFz
dFZhbHVlc0F0SGVhZC5lbnN1cmVMb2NhbHMobmV3TnVtTG9jYWxzLCBBYnN0cmFjdFZhbHVlOjpm
dWxsVG9wKCkpOwogfQogCiBib29sIEJhc2ljQmxvY2s6OmlzSW5QaGlzKE5vZGUqIG5vZGUpIGNv
bnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAkocmV2
aXNpb24gMTY5OTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2Nr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2ICsxMzQsMjYgQEAgc3RydWN0IEJhc2ljQmxvY2sg
OiBSZWZDb3VudGVkPEJhc2ljQmxvYwogICAgIE9wZXJhbmRzPEFic3RyYWN0VmFsdWU+IHZhbHVl
c0F0SGVhZDsKICAgICBPcGVyYW5kczxBYnN0cmFjdFZhbHVlPiB2YWx1ZXNBdFRhaWw7CiAgICAg
CisgICAgLy8gVGhlIGludGVyc2VjdGlvbiBvZiBhc3N1bXB0aW9ucyB3ZSBoYXZlIG1hZGUgcHJl
dmlvdXNseSBhdCB0aGUgaGVhZCBvZiB0aGlzIGJsb2NrLiBOb3RlCisgICAgLy8gdGhhdCB1bmRl
ciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgZWFjaCB0aW1lIHdlIHJ1biB0aGUgQ0ZBLCB3ZSB3aWxs
IGdldCBzdHJpY3RseSBtb3JlIHByZWNpc2UKKyAgICAvLyByZXN1bHRzLiBCdXQgd2UgZG9uJ3Qg
YWN0dWFsbHkgcmVxdWlyZSB0aGlzIHRvIGJlIHRoZSBjYXNlLiBJdCdzIGZpbmUgZm9yIHRoZSBD
RkEgdG8gbG9vc2VuCisgICAgLy8gdXAgZm9yIGFueSBvZGQgcmVhc29uLiBJdCdzIGZpbmUgd2hl
biB0aGlzIGhhcHBlbnMsIGJlY2F1c2UgYW55dGhpbmcgdGhhdCB0aGUgQ0ZBIHByb3ZlcworICAg
IC8vIG11c3QgYmUgdHJ1ZSBmcm9tIHRoYXQgcG9pbnQgZm9yd2FyZCwgZXhjZXB0IGlmIHNvbWUg
cmVnaXN0ZXJlZCB3YXRjaHBvaW50IGZpcmVzLCBpbiB3aGljaAorICAgIC8vIGNhc2UgdGhlIGNv
ZGUgd29uJ3QgZXZlciBydW4uIFNvLCB0aGUgQ0ZBIHByb3Zpbmcgc29tZXRoaW5nIGxlc3MgcHJl
Y2lzZSBsYXRlciBvbiBpcyBqdXN0IGFuCisgICAgLy8gb3V0Y29tZSBvZiB0aGUgQ0ZBIGJlaW5n
IGltcGVyZmVjdDsgdGhlIG1vcmUgcHJlY2lzZSB0aGluZyB0aGF0IGl0IGhhZCBwcm92ZWQgZWFy
bGllciBpcyBubworICAgIC8vIGxlc3MgdHJ1ZS4KKyAgICAvLworICAgIC8vIEJ1dCBmb3IgdGhl
IHB1cnBvc2Ugb2YgT1NSIGVudHJ5LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHJlbWVt
YmVyIHdoYXQgYXNzdW1wdGlvbnMgd2UKKyAgICAvLyBoYWQgdXNlZCBmb3Igb3B0aW1pemluZyBh
bnkgZ2l2ZW4gYmFzaWMgYmxvY2suIFRoYXQncyB3aGF0IHRoaXMgaXMgZm9yLgorICAgIC8vCisg
ICAgLy8gSXQncyBpbnRlcmVzdGluZyB0aGF0IHdlIGNvdWxkIHVzZSB0aGlzIHRvIG1ha2UgdGhl
IENGQSBtb3JlIHByZWNpc2U6IGFsbCBmdXR1cmUgQ0ZBcyBjb3VsZAorICAgIC8vIGZpbHRlciB0
aGVpciByZXN1bHRzIHdpdGggdGhpcyB0aGluZyB0byBzb3J0IG9mIG1haW50YWluIG1heGltYWwg
cHJlY2lzaW9uLiBCZWNhdXNlIHdlCisgICAgLy8gZXhwZWN0IENGQSB0byB1c3VhbGx5IGJlIG1v
bm90b25pY2FsbHkgbW9yZSBwcmVjaXNlIGVhY2ggdGltZSB3ZSBydW4gaXQgdG8gZml4cG9pbnQs
IHRoaXMKKyAgICAvLyB3b3VsZCBub3QgYmUgYSBwcm9kdWN0aXZlIG9wdGltaXphdGlvbjogaXQg
d291bGQgbWFrZSBzZXR0aW5nIHVwIGEgYmFzaWMgYmxvY2sgbW9yZQorICAgIC8vIGV4cGVuc2l2
ZSBhbmQgd291bGQgb25seSBiZW5lZml0IGJpemFycmUgcGF0aG9sb2dpY2FsIGNhc2VzLgorICAg
IE9wZXJhbmRzPEFic3RyYWN0VmFsdWU+IGludGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZDsK
KyAgICBib29sIGludGVyc2VjdGlvbk9mQ0ZBSGFzVmlzaXRlZDsKKyAgICAKICAgICBmbG9hdCBl
eGVjdXRpb25Db3VudDsKICAgICAKICAgICAvLyBUaGVzZSBmaWVsZHMgYXJlIHJlc2VydmVkIGZv
ciBOYXR1cmFsTG9vcHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGQVBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGQVBo
YXNlLmNwcAkocmV2aXNpb24gMTY5OTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDRkFQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDE5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHBlcmZvcm1Gb3J3YXJkQ0ZBKCk7CiAgICAgICAgIH0gd2hpbGUgKG1fY2hh
bmdlZCk7CiAgICAgICAgIAorICAgICAgICBpZiAobV9ncmFwaC5tX2Zvcm0gIT0gU1NBKSB7Cisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgcmVjb3JkIHRoZSBpbnRlcnNlY3Rpb24gb2YgYWxs
IHByb29mcyB0aGF0IHdlIGV2ZXIgYWxsb3dlZCB0aGUKKyAgICAgICAgICAgIC8vIGNvbXBpbGVy
IHRvIHJlbHkgdXBvbi4KKyAgICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0g
bV9ncmFwaC5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgICAg
ICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBibG9jay0+aW50ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkICY9IGJsb2NrLT5jZmFI
YXNWaXNpdGVkOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGJsb2NrLT5pbnRl
cnNlY3Rpb25PZlBhc3RWYWx1ZXNBdEhlYWQuc2l6ZSgpOyBpLS07KQorICAgICAgICAgICAgICAg
ICAgICBibG9jay0+aW50ZXJzZWN0aW9uT2ZQYXN0VmFsdWVzQXRIZWFkW2ldLmZpbHRlcihibG9j
ay0+dmFsdWVzQXRIZWFkW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAJKHJldmlz
aW9uIDE2OTk5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsMTcgKzI4MSw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBpZiAoISp2YWx1ZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbWVyZ2luZyB0aGUgYWJzdHJhY3Qg
dmFsdWUgb2YgdGhlIGNvbnN0YW50IGludG8gdGhlIGFic3RyYWN0IHZhbHVlCi0gICAgICAgICAg
ICAvLyB3ZSd2ZSBwcm92ZW4gZm9yIHRoaXMgbm9kZSB3b3VsZG4ndCB3aWRlbiB0aGUgcHJvb2Yu
IElmIGl0IHdpZGVucyB0aGUgcHJvb2YKLSAgICAgICAgICAgIC8vIChpLmUuIHNheXMgdGhhdCB0
aGUgc2V0IGNvbnRhaW5zIG1vcmUgdGhpbmdzIGluIGl0IHRoYW4gaXQgcHJldmlvdXNseSBkaWQp
Ci0gICAgICAgICAgICAvLyB0aGVuIHdlIHJlZnVzZSB0byBmb2xkLgotICAgICAgICAgICAgQWJz
dHJhY3RWYWx1ZSBvbGRWYWx1ZSA9IG1fc3RhdGUuZm9yTm9kZShub2RlKTsKLSAgICAgICAgICAg
IEFic3RyYWN0VmFsdWUgY29uc3RhbnRWYWx1ZTsKLSAgICAgICAgICAgIGNvbnN0YW50VmFsdWUu
c2V0KG1fZ3JhcGgsICp2YWx1ZSwgbV9zdGF0ZS5zdHJ1Y3R1cmVDbG9iYmVyU3RhdGUoKSk7Ci0g
ICAgICAgICAgICBjb25zdGFudFZhbHVlLmZpeFR5cGVGb3JSZXByZXNlbnRhdGlvbihub2RlKTsK
LSAgICAgICAgICAgIGlmIChvbGRWYWx1ZS5tZXJnZShjb25zdGFudFZhbHVlKSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIE5vZGVPcmln
aW4gb3JpZ2luID0gbm9kZS0+b3JpZ2luOwogICAgICAgICAgICAgQWRqYWNlbmN5TGlzdCBjaGls
ZHJlbiA9IG5vZGUtPmNoaWxkcmVuOwogICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTY5OTk2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2NCw3ICszNjQs
NyBAQCB2b2lkIEdyYXBoOjpkdW1wKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0CiAKIHZvaWQgR3Jh
cGg6OmR1bXBCbG9ja0hlYWRlcihQcmludFN0cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBwcmVmaXgs
IEJhc2ljQmxvY2sqIGJsb2NrLCBQaGlOb2RlRHVtcE1vZGUgcGhpTm9kZUR1bXBNb2RlLCBEdW1w
Q29udGV4dCogY29udGV4dCkKIHsKLSAgICBvdXQucHJpbnQocHJlZml4LCAiQmxvY2sgIiwgKmJs
b2NrLCAiICgiLCBpbkNvbnRleHQoYmxvY2stPmF0KDApLT5vcmlnaW4uc2VtYW50aWMsIGNvbnRl
eHQpLCAiKToiLCBibG9jay0+aXNSZWFjaGFibGUgPyAiIiA6ICIgKHNraXBwZWQpIiwgYmxvY2st
PmlzT1NSVGFyZ2V0ID8gIiAoT1NSIHRhcmdldCkiIDogIiIsIGJsb2NrLT5jZmFIYXNWaXNpdGVk
ID8gIiIgOiAiIChDRkEtdW5yZWFjaGFibGUpIiwgIlxuIik7CisgICAgb3V0LnByaW50KHByZWZp
eCwgIkJsb2NrICIsICpibG9jaywgIiAoIiwgaW5Db250ZXh0KGJsb2NrLT5hdCgwKS0+b3JpZ2lu
LnNlbWFudGljLCBjb250ZXh0KSwgIik6IiwgYmxvY2stPmlzUmVhY2hhYmxlID8gIiIgOiAiIChz
a2lwcGVkKSIsIGJsb2NrLT5pc09TUlRhcmdldCA/ICIgKE9TUiB0YXJnZXQpIiA6ICIiLCAiXG4i
KTsKICAgICBpZiAoYmxvY2stPmV4ZWN1dGlvbkNvdW50ID09IGJsb2NrLT5leGVjdXRpb25Db3Vu
dCkKICAgICAgICAgb3V0LnByaW50KHByZWZpeCwgIiAgRXhlY3V0aW9uIGNvdW50OiAiLCBibG9j
ay0+ZXhlY3V0aW9uQ291bnQsICJcbiIpOwogICAgIG91dC5wcmludChwcmVmaXgsICIgIFByZWRl
Y2Vzc29yczoiKTsKQEAgLTQ0Nyw3ICs0NDcsMTIgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0
cmVhbSYgb3V0LCBEdW1wQwogICAgICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGR1bXBCbG9ja0hlYWRlcihvdXQsICIiLCBibG9jaywgRHVtcEFsbFBoaXMs
IGNvbnRleHQpOwotICAgICAgICBvdXQucHJpbnQoIiAgU3RhdGVzOiAiLCBibG9jay0+Y2ZhU3Ry
dWN0dXJlQ2xvYmJlclN0YXRlQXRIZWFkLCAiXG4iKTsKKyAgICAgICAgb3V0LnByaW50KCIgIFN0
YXRlczogIiwgYmxvY2stPmNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZCk7CisgICAgICAg
IGlmICghYmxvY2stPmNmYUhhc1Zpc2l0ZWQpCisgICAgICAgICAgICBvdXQucHJpbnQoIiwgQ3Vy
cmVudGx5Q0ZBVW5yZWFjaGFibGUiKTsKKyAgICAgICAgaWYgKCFibG9jay0+aW50ZXJzZWN0aW9u
T2ZDRkFIYXNWaXNpdGVkKQorICAgICAgICAgICAgb3V0LnByaW50KCIsIENGQVVucmVhY2hhYmxl
Iik7CisgICAgICAgIG91dC5wcmludCgiXG4iKTsKICAgICAgICAgc3dpdGNoIChtX2Zvcm0pIHsK
ICAgICAgICAgY2FzZSBMb2FkU3RvcmU6CiAgICAgICAgIGNhc2UgVGhyZWFkZWRDUFM6IHsKQEAg
LTQ1Nyw2ICs0NjIsMTIgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBEdW1w
QwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG91dC5wcmludCgiPGVtcHR5PiIp
OwogICAgICAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgICAgICAgICAgb3V0LnByaW50KCIg
IEludGVyc2VjdGVkIFZhcnMgQmVmb3JlOiAiKTsKKyAgICAgICAgICAgIGlmIChibG9jay0+aW50
ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkKQorICAgICAgICAgICAgICAgIG91dC5wcmludChpbkNv
bnRleHQoYmxvY2stPmludGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZCwgY29udGV4dCkpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG91dC5wcmludCgiPGVtcHR5PiIpOwor
ICAgICAgICAgICAgb3V0LnByaW50KCJcbiIpOwogICAgICAgICAgICAgb3V0LnByaW50KCIgIFZh
ciBMaW5rczogIiwgYmxvY2stPnZhcmlhYmxlc0F0SGVhZCwgIlxuIik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpAQCAtNDczLDcgKzQ4NCwxMCBAQCB2b2lkIEdyYXBoOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQsIER1bXBDCiAgICAgICAgICAgICBkdW1wKG91dCwgIiIsIGJsb2NrLT5h
dChpKSwgY29udGV4dCk7CiAgICAgICAgICAgICBsYXN0Tm9kZSA9IGJsb2NrLT5hdChpKTsKICAg
ICAgICAgfQotICAgICAgICBvdXQucHJpbnQoIiAgU3RhdGVzOiAiLCBibG9jay0+Y2ZhQnJhbmNo
RGlyZWN0aW9uLCAiLCAiLCBibG9jay0+Y2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsLCAi
XG4iKTsKKyAgICAgICAgb3V0LnByaW50KCIgIFN0YXRlczogIiwgYmxvY2stPmNmYUJyYW5jaERp
cmVjdGlvbiwgIiwgIiwgYmxvY2stPmNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0VGFpbCk7Cisg
ICAgICAgIGlmICghYmxvY2stPmNmYURpZEZpbmlzaCkKKyAgICAgICAgICAgIG91dC5wcmludCgi
LCBDRkFJbnZhbGlkYXRlZCIpOworICAgICAgICBvdXQucHJpbnQoIlxuIik7CiAgICAgICAgIHN3
aXRjaCAobV9mb3JtKSB7CiAgICAgICAgIGNhc2UgTG9hZFN0b3JlOgogICAgICAgICBjYXNlIFRo
cmVhZGVkQ1BTOiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBp
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5oCShyZXZpc2lvbiAxNjk5OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvbXBpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3MCwxMiArMjcwLDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIG5vdGljZU9TUkVudHJ5KEJhc2ljQmxvY2smIGJhc2ljQmxvY2ssIEpJVENv
bXBpbGVyOjpMYWJlbCBibG9ja0hlYWQsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgewog
ICAgICAgICAvLyBPU1IgZW50cnkgaXMgbm90IGFsbG93ZWQgaW50byBibG9ja3MgZGVlbWVkIHVu
cmVhY2hhYmxlIGJ5IGNvbnRyb2wgZmxvdyBhbmFseXNpcy4KLSAgICAgICAgaWYgKCFiYXNpY0Js
b2NrLmNmYUhhc1Zpc2l0ZWQpCisgICAgICAgIGlmICghYmFzaWNCbG9jay5pbnRlcnNlY3Rpb25P
ZkNGQUhhc1Zpc2l0ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBP
U1JFbnRyeURhdGEqIGVudHJ5ID0gbV9qaXRDb2RlLT5hcHBlbmRPU1JFbnRyeURhdGEoYmFzaWNC
bG9jay5ieXRlY29kZUJlZ2luLCBsaW5rQnVmZmVyLm9mZnNldE9mKGJsb2NrSGVhZCkpOwogICAg
ICAgICAKLSAgICAgICAgZW50cnktPm1fZXhwZWN0ZWRWYWx1ZXMgPSBiYXNpY0Jsb2NrLnZhbHVl
c0F0SGVhZDsKKyAgICAgICAgZW50cnktPm1fZXhwZWN0ZWRWYWx1ZXMgPSBiYXNpY0Jsb2NrLmlu
dGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZDsKICAgICAgICAgCiAgICAgICAgIC8vIEZpeCB0
aGUgZXhwZWN0ZWQgdmFsdWVzOiBpbiBvdXIgcHJvdG9jb2wsIGEgZGVhZCB2YXJpYWJsZSB3aWxs
IGhhdmUgYW4gZXhwZWN0ZWQKICAgICAgICAgLy8gdmFsdWUgb2YgKE5vbmUsIFtdKS4gQnV0IHRo
ZSBvbGQgSklUIG1heSBzdGFzaCBzb21lIHZhbHVlcyB0aGVyZS4gU28gd2UgcmVhbGx5CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAko
cmV2aXNpb24gMTY5OTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNTMsNyArMTM1Myw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVDdXJyZW50QmxvY2sKICAgICAKICAgICBtX2ppdC5ibG9ja0hl
YWRzKClbbV9ibG9jay0+aW5kZXhdID0gbV9qaXQubGFiZWwoKTsKIAotICAgIGlmICghbV9ibG9j
ay0+Y2ZhSGFzVmlzaXRlZCkgeworICAgIGlmICghbV9ibG9jay0+aW50ZXJzZWN0aW9uT2ZDRkFI
YXNWaXNpdGVkKSB7CiAgICAgICAgIC8vIERvbid0IGdlbmVyYXRlIGNvZGUgZm9yIGJhc2ljIGJs
b2NrcyB0aGF0IGFyZSB1bnJlYWNoYWJsZSBhY2NvcmRpbmcgdG8gQ0ZBLgogICAgICAgICAvLyBC
dXQgdG8gYmUgc3VyZSB0aGF0IG5vYm9keSBoYXMgZ2VuZXJhdGVkIGEganVtcCB0byB0aGlzIGJs
b2NrLCBkcm9wIGluIGEKICAgICAgICAgLy8gYnJlYWtwb2ludCBoZXJlLgo=
</data>
<flag name="review"
          id="257643"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>