<?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>136983</bug_id>
          
          <creation_ts>2014-09-21 12:56:18 -0700</creation_ts>
          <short_desc>Structure should have a method for concurrently getting all of the property map entries, and this method shouldn&apos;t involve copy-paste</short_desc>
          <delta_ts>2014-09-21 16:53:01 -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>136330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1036363</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-21 12:56:18 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036364</commentid>
    <comment_count>1</comment_count>
      <attachid>238429</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-21 13:01:06 -0700</bug_when>
    <thetext>Created attachment 238429
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036365</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-21 13:03:53 -0700</bug_when>
    <thetext>Attachment 238429 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/Structure.cpp:1115:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 4 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>1036367</commentid>
    <comment_count>3</comment_count>
      <attachid>238431</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-21 13:20:13 -0700</bug_when>
    <thetext>Created attachment 238431
the patch

For real this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036373</commentid>
    <comment_count>4</comment_count>
      <attachid>238431</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2014-09-21 14:10:04 -0700</bug_when>
    <thetext>Comment on attachment 238431
the patch

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

r=me with comments.

&gt; Source/JavaScriptCore/runtime/Structure.h:76
&gt; +struct PropertyMapEntry {

Maybe it makes sense to just pull this into its own header? It seems sort of weird to move it to Structure.h from PropertyMapHashTable.h.

&gt; Source/JavaScriptCore/runtime/StructureInlines.h:117
&gt; +        for (auto entry : *table) {

auto&amp; maybe? Do we want to copy each entry as we&apos;re iterating?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036395</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-21 16:50:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 238431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238431&amp;action=review
&gt; 
&gt; r=me with comments.
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Structure.h:76
&gt; &gt; +struct PropertyMapEntry {
&gt; 
&gt; Maybe it makes sense to just pull this into its own header? It seems sort of weird to move it to Structure.h from PropertyMapHashTable.h.

I would love to be able to do that.  Structure.h is included by everything in WebKit, so moving PropertyMapEntry into another head and including it from Structure.h would mean that there would be one more header that is included by everything in WebKit.  Last I checked, such things make kling and smfr sad.

&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/StructureInlines.h:117
&gt; &gt; +        for (auto entry : *table) {
&gt; 
&gt; auto&amp; maybe? Do we want to copy each entry as we&apos;re iterating?

Lol OK.  In this case it can&apos;t possibly matter.  The body of the loop will use the elements on entry.  If we use auto without the &amp; it means that initially clang will emit loads for all of the elements of PropertyMapEntry, which are all PODs so these are really just simple loads, and then llvm will DCE the loads that you didn&apos;t use.  If you use auto&amp;, then clang will emit the loads at the point of use.  It doesn&apos;t matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036396</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-21 16:53:01 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/173799</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238429</attachid>
            <date>2014-09-21 13:01:06 -0700</date>
            <delta_ts>2014-09-21 13:20:13 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8800</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTczNzk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE0LTA5LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3RydWN0dXJlIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciBjb25jdXJyZW50bHkgZ2V0dGluZyBh
bGwgb2YgdGhlIHByb3BlcnR5IG1hcCBlbnRyaWVzLCBhbmQgdGhpcyBtZXRob2Qgc2hvdWxkbid0
IGludm9sdmUgY29weS1wYXN0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TWFwRW50cnk6OlByb3BlcnR5TWFwRW50cnkpOiBNb3ZlZCBQcm9wZXJ0eU1h
cEVudHJ5IHN0cnVjdCB0byBTdHJ1Y3R1cmUuaCBzbyB0aGF0IFN0cnVjdHVyZSBjYW4gcmVmZXIg
dG8gaXQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmdldENvbmN1cnJlbnRseSk6IFN3aXRjaCB0byB1c2luZyB0aGUgbmV3IGZvckVh
Y2hQcm9wZXJ0eUNvbmN1cnJlbnRseSgpIG1ldGhvZC4KKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
OjpnZXRQcm9wZXJ0aWVzQ29uY3VycmVudGx5KTogVGhlIHN1YmplY3Qgb2YgdGhpcyBwYXRjaC4g
SXQgd2lsbCBiZSB1c2VmdWwgZm9yIG9iamVjdCBhbGxvY2F0aW9uIHNpbmtpbmcgKGJ1ZyAxMzYz
MzApLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmR1bXApOiBTd2l0Y2ggdG8gdXNpbmcgdGhl
IG5ldyBmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoKSBtZXRob2QuCisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVy
dHlNYXBFbnRyeSk6IE1vdmVkIGZyb20gUHJvcGVydHlNYXBIYXNoVGFibGUuaC4KKyAgICAgICAg
KiBydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
b3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkpOiBDYXB0dXJlIHRoaXMgdmVyeSBjb21tb24gY29u
Y3VycmVudCBzdHJ1Y3R1cmUgaXRlcmF0aW9uIHBhdHRlcm4gaW50byBhIHRlbXBsYXRlIG1ldGhv
ZC4KKwogMjAxNC0wOS0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFN0cnVjdHVyZTo6Z2V0Q29uY3VycmVudGx5KCkgZG9lc24ndCBuZWVkIHRvIHRha2UgYSBW
TSYgYXJndW1lbnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU1hcEhhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgJKHJldmlzaW9uIDE3Mzc5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc4LDE5ICs3OCw2IEBAIGlubGluZSB1bnNpZ25lZCBuZXh0UG93ZXJPZjIodW5zaWdu
ZWQgdikKICAgICByZXR1cm4gdjsKIH0KIAotc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewotICAg
IFN0cmluZ0ltcGwqIGtleTsKLSAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7Ci0gICAgdW5zaWdu
ZWQgYXR0cmlidXRlczsKLQotICAgIFByb3BlcnR5TWFwRW50cnkoU3RyaW5nSW1wbCoga2V5LCBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCi0gICAgICAgIDoga2V5
KGtleSkKLSAgICAgICAgLCBvZmZzZXQob2Zmc2V0KQotICAgICAgICAsIGF0dHJpYnV0ZXMoYXR0
cmlidXRlcykKLSAgICB7Ci0gICAgfQotfTsKLQogY2xhc3MgUHJvcGVydHlUYWJsZSA6IHB1Ymxp
YyBKU0NlbGwgewogCiAgICAgLy8gVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZm9yICdpdGVy
YXRvcicgYW5kICdjb25zdF9pdGVyYXRvcicsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE3Mzc5NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1Miwz
MyArODUyLDMyIEBAIFByb3BlcnR5VGFibGUqIFN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGEKIAog
UHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlk
LCB1bnNpZ25lZCYgYXR0cmlidXRlcykKIHsKLSAgICBWZWN0b3I8U3RydWN0dXJlKiwgOD4gc3Ry
dWN0dXJlczsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZTsKLSAgICBQcm9wZXJ0eVRhYmxlKiB0
YWJsZTsKLSAgICAKLSAgICBmaW5kU3RydWN0dXJlc0FuZE1hcEZvck1hdGVyaWFsaXphdGlvbihz
dHJ1Y3R1cmVzLCBzdHJ1Y3R1cmUsIHRhYmxlKTsKLSAgICAKLSAgICBpZiAodGFibGUpIHsKLSAg
ICAgICAgUHJvcGVydHlNYXBFbnRyeSogZW50cnkgPSB0YWJsZS0+Z2V0KHVpZCk7Ci0gICAgICAg
IGlmIChlbnRyeSkgewotICAgICAgICAgICAgYXR0cmlidXRlcyA9IGVudHJ5LT5hdHRyaWJ1dGVz
OwotICAgICAgICAgICAgUHJvcGVydHlPZmZzZXQgcmVzdWx0ID0gZW50cnktPm9mZnNldDsKLSAg
ICAgICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygpOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3R1cmUtPm1fbG9jay51bmxvY2soKTsK
LSAgICB9CisgICAgUHJvcGVydHlPZmZzZXQgcmVzdWx0ID0gaW52YWxpZE9mZnNldDsKICAgICAK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsgaS0tOykgewotICAgICAg
ICBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVzW2ldOwotICAgICAgICBpZiAoc3RydWN0dXJlLT5tX25h
bWVJblByZXZpb3VzLmdldCgpICE9IHVpZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAKLSAgICAgICAgYXR0cmlidXRlcyA9IHN0cnVjdHVyZS0+YXR0cmlidXRlc0luUHJldmlvdXMo
KTsKLSAgICAgICAgcmV0dXJuIHN0cnVjdHVyZS0+bV9vZmZzZXQ7Ci0gICAgfQorICAgIGZvckVh
Y2hQcm9wZXJ0eUNvbmN1cnJlbnRseSgKKyAgICAgICAgWyZdIChjb25zdCBQcm9wZXJ0eU1hcEVu
dHJ5JiBjYW5kaWRhdGUpIC0+IGJvb2wgeworICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS5rZXkg
IT0gdWlkKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgCisgICAg
ICAgICAgICByZXN1bHQgPSBjYW5kaWRhdGUub2Zmc2V0OworICAgICAgICAgICAgYXR0cmlidXRl
cyA9IGNhbmRpZGF0ZS5hdHRyaWJ1dGVzOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9KTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitWZWN0b3I8UHJvcGVydHlN
YXBFbnRyeT4gU3RydWN0dXJlOjpnZXRQcm9wZXJ0aWVzQ29uY3VycmVudGx5KCkKK3sKKyAgICBW
ZWN0b3I8UHJvcGVydHlNYXBFbnRyeT4gcmVzdWx0OworCisgICAgZm9yRWFjaFByb3BlcnR5Q29u
Y3VycmVudGx5KAorICAgICAgICBbJl0gKGNvbnN0IFByb3BlcnR5TWFwRW50cnkmIGVudHJ5KSAt
PiBib29sIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZW50cnkpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0pOwogICAgIAotICAgIHJldHVybiBpbnZhbGlkT2Zmc2V0
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6YWRk
KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcykK
QEAgLTExMTAsMzAgKzExMDksMTIgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgYwogewogICAgIG91dC5wcmludChSYXdQb2ludGVyKHRoaXMpLCAiOlsiLCBjbGFzc0lu
Zm8oKS0+Y2xhc3NOYW1lLCAiLCB7Iik7CiAgICAgCi0gICAgVmVjdG9yPFN0cnVjdHVyZSosIDg+
IHN0cnVjdHVyZXM7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7Ci0gICAgUHJvcGVydHlUYWJs
ZSogdGFibGU7Ci0gICAgCi0gICAgY29uc3RfY2FzdDxTdHJ1Y3R1cmUqPih0aGlzKS0+ZmluZFN0
cnVjdHVyZXNBbmRNYXBGb3JNYXRlcmlhbGl6YXRpb24oCi0gICAgICAgIHN0cnVjdHVyZXMsIHN0
cnVjdHVyZSwgdGFibGUpOwotICAgIAogICAgIENvbW1hUHJpbnRlciBjb21tYTsKICAgICAKLSAg
ICBpZiAodGFibGUpIHsKLSAgICAgICAgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRh
YmxlLT5iZWdpbigpOwotICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSB0YWJs
ZS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCBpdGVyLT5rZXksICI6Iiwgc3RhdGljX2Nhc3Q8aW50PihpdGVy
LT5vZmZzZXQpKTsKLSAgICAgICAgCi0gICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygp
OwotICAgIH0KLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsg
aS0tOykgewotICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZXNbaV07Ci0g
ICAgICAgIGlmICghc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzKQotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIG91dC5wcmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZp
b3VzLmdldCgpLCAiOiIsIHN0YXRpY19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOwot
ICAgIH0KKyAgICBmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoCisgICAgICAgIFsmXSAoY29u
c3QgUHJvcGVydHlNYXBFbnRyeSYgZW50cnkpIHsKKyAgICAgICAgICAgIG91dC5wcmludChjb21t
YSwgZW50cnkua2V5LCAiOiIsIHN0YXRpY19jYXN0PGludD4oZW50cnkub2Zmc2V0KSk7CisgICAg
ICAgIH0pOwogICAgIAogICAgIG91dC5wcmludCgifSwgIiwgSW5kZXhpbmdUeXBlRHVtcChpbmRl
eGluZ1R5cGUoKSkpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgJKHJldmlzaW9uIDE3Mzc5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3MywyNiBAQCBzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW5pdGlhbE91dE9mTGluZUNhCiAvLyBpbml0aWFsIGFsbG9jYXRp
b24uCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgb3V0T2ZMaW5lR3Jvd3RoRmFjdG9yID0gMjsKIAor
c3RydWN0IFByb3BlcnR5TWFwRW50cnkgeworICAgIFN0cmluZ0ltcGwqIGtleTsKKyAgICBQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQ7CisgICAgdW5zaWduZWQgYXR0cmlidXRlczsKKworICAgIFByb3Bl
cnR5TWFwRW50cnkoKQorICAgICAgICA6IGtleShudWxscHRyKQorICAgICAgICAsIG9mZnNldChp
bnZhbGlkT2Zmc2V0KQorICAgICAgICAsIGF0dHJpYnV0ZXMoMCkKKyAgICB7CisgICAgfQorICAg
IAorICAgIFByb3BlcnR5TWFwRW50cnkoU3RyaW5nSW1wbCoga2V5LCBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIDoga2V5KGtleSkKKyAgICAgICAg
LCBvZmZzZXQob2Zmc2V0KQorICAgICAgICAsIGF0dHJpYnV0ZXMoYXR0cmlidXRlcykKKyAgICB7
CisgICAgfQorfTsKKwogY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6
CiAgICAgZnJpZW5kIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTsKQEAgLTI2Miw5ICsy
ODIsMTggQEAgcHVibGljOgogICAgIFByb3BlcnR5T2Zmc2V0IGdldChWTSYsIFByb3BlcnR5TmFt
ZSk7CiAgICAgUHJvcGVydHlPZmZzZXQgZ2V0KFZNJiwgUHJvcGVydHlOYW1lLCB1bnNpZ25lZCYg
YXR0cmlidXRlcyk7CiAKKyAgICAvLyBUaGlzIGlzIGEgc29tZXdoYXQgaW50ZXJuYWxpc2ggbWV0
aG9kLiBJdCB3aWxsIGNhbGwgeW91ciBmdW5jdG9yIHdoaWxlIHBvc3NpYmx5IGhvbGRpbmcgdGhl
CisgICAgLy8gU3RydWN0dXJlJ3MgbG9jay4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHdoZXRoZXIg
dGhlIGxvY2sgaXMgaGVsZCBvciBub3QgaW4gYW55IHBhcnRpY3VsYXIKKyAgICAvLyBjYWxsLiBT
bywgeW91IGhhdmUgdG8gYXNzdW1lIHRoZSB3b3JzdC4gQWxzbywgdGhlIGZ1bmN0b3IgcmV0dXJu
cyB0cnVlIGlmIGl0IHdpc2hlcyBmb3IgeW91CisgICAgLy8gdG8gY29udGludWUgb3IgZmFsc2Ug
aWYgaXQncyBkb25lLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBm
b3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoY29uc3QgRnVuY3RvciYpOworICAgIAogICAgIFBy
b3BlcnR5T2Zmc2V0IGdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQpOwogICAgIFByb3Bl
cnR5T2Zmc2V0IGdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQsIHVuc2lnbmVkJiBhdHRy
aWJ1dGVzKTsKICAgICAKKyAgICBWZWN0b3I8UHJvcGVydHlNYXBFbnRyeT4gZ2V0UHJvcGVydGll
c0NvbmN1cnJlbnRseSgpOworICAgIAogICAgIHZvaWQgc2V0SGFzR2V0dGVyU2V0dGVyUHJvcGVy
dGllc1dpdGhQcm90b0NoZWNrKGJvb2wgaXNfX3Byb3RvX18pCiAgICAgewogICAgICAgICBzZXRI
YXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKHRydWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMTczNzk3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMDQsNiArMTA0LDM1IEBAIEFMV0FZU19JTkxJTkUgUHJvcGVydHlPZmZzZXQg
U3RydWN0dXJlOjoKICAgICByZXR1cm4gZW50cnktPm9mZnNldDsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rvcj4KK3ZvaWQgU3RydWN0dXJlOjpmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50
bHkoY29uc3QgRnVuY3RvciYgZnVuY3RvcikKK3sKKyAgICBWZWN0b3I8U3RydWN0dXJlKiwgOD4g
c3RydWN0dXJlczsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZTsKKyAgICBQcm9wZXJ0eVRhYmxl
KiB0YWJsZTsKKyAgICAKKyAgICBmaW5kU3RydWN0dXJlc0FuZE1hcEZvck1hdGVyaWFsaXphdGlv
bihzdHJ1Y3R1cmVzLCBzdHJ1Y3R1cmUsIHRhYmxlKTsKKyAgICAKKyAgICBpZiAodGFibGUpIHsK
KyAgICAgICAgZm9yIChhdXRvIGVudHJ5IDogKnRhYmxlKSB7CisgICAgICAgICAgICBpZiAoIWZ1
bmN0b3IoZW50cnkpKSB7CisgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5tX2xvY2sudW5sb2Nr
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygpOworICAgIH0KKyAgICAKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsgaS0tOykgeworICAgICAgICBzdHJ1Y3R1
cmUgPSBzdHJ1Y3R1cmVzW2ldOworICAgICAgICBpZiAoIXN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2
aW91cykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgaWYgKCFmdW5j
dG9yKFByb3BlcnR5TWFwRW50cnkoc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCBz
dHJ1Y3R1cmUtPm1fb2Zmc2V0LCBzdHJ1Y3R1cmUtPmF0dHJpYnV0ZXNJblByZXZpb3VzKCkpKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKIGlubGluZSBQcm9wZXJ0eU9mZnNldCBT
dHJ1Y3R1cmU6OmdldENvbmN1cnJlbnRseShTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgdW5zaWdu
ZWQgYXR0cmlidXRlc0lnbm9yZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238431</attachid>
            <date>2014-09-21 13:20:13 -0700</date>
            <delta_ts>2014-09-21 14:10:03 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8864</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTczNzk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE0LTA5LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3RydWN0dXJlIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciBjb25jdXJyZW50bHkgZ2V0dGluZyBh
bGwgb2YgdGhlIHByb3BlcnR5IG1hcCBlbnRyaWVzLCBhbmQgdGhpcyBtZXRob2Qgc2hvdWxkbid0
IGludm9sdmUgY29weS1wYXN0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TWFwRW50cnk6OlByb3BlcnR5TWFwRW50cnkpOiBNb3ZlZCBQcm9wZXJ0eU1h
cEVudHJ5IHN0cnVjdCB0byBTdHJ1Y3R1cmUuaCBzbyB0aGF0IFN0cnVjdHVyZSBjYW4gcmVmZXIg
dG8gaXQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmdldENvbmN1cnJlbnRseSk6IFN3aXRjaCB0byB1c2luZyB0aGUgbmV3IGZvckVh
Y2hQcm9wZXJ0eUNvbmN1cnJlbnRseSgpIG1ldGhvZC4KKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
OjpnZXRQcm9wZXJ0aWVzQ29uY3VycmVudGx5KTogVGhlIHN1YmplY3Qgb2YgdGhpcyBwYXRjaC4g
SXQgd2lsbCBiZSB1c2VmdWwgZm9yIG9iamVjdCBhbGxvY2F0aW9uIHNpbmtpbmcgKGJ1ZyAxMzYz
MzApLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmR1bXApOiBTd2l0Y2ggdG8gdXNpbmcgdGhl
IG5ldyBmb3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkoKSBtZXRob2QuCisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVy
dHlNYXBFbnRyeSk6IE1vdmVkIGZyb20gUHJvcGVydHlNYXBIYXNoVGFibGUuaC4KKyAgICAgICAg
KiBydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
b3JFYWNoUHJvcGVydHlDb25jdXJyZW50bHkpOiBDYXB0dXJlIHRoaXMgdmVyeSBjb21tb24gY29u
Y3VycmVudCBzdHJ1Y3R1cmUgaXRlcmF0aW9uIHBhdHRlcm4gaW50byBhIHRlbXBsYXRlIG1ldGhv
ZC4KKwogMjAxNC0wOS0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFN0cnVjdHVyZTo6Z2V0Q29uY3VycmVudGx5KCkgZG9lc24ndCBuZWVkIHRvIHRha2UgYSBW
TSYgYXJndW1lbnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU1hcEhhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgJKHJldmlzaW9uIDE3Mzc5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc4LDE5ICs3OCw2IEBAIGlubGluZSB1bnNpZ25lZCBuZXh0UG93ZXJPZjIodW5zaWdu
ZWQgdikKICAgICByZXR1cm4gdjsKIH0KIAotc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewotICAg
IFN0cmluZ0ltcGwqIGtleTsKLSAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7Ci0gICAgdW5zaWdu
ZWQgYXR0cmlidXRlczsKLQotICAgIFByb3BlcnR5TWFwRW50cnkoU3RyaW5nSW1wbCoga2V5LCBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCi0gICAgICAgIDoga2V5
KGtleSkKLSAgICAgICAgLCBvZmZzZXQob2Zmc2V0KQotICAgICAgICAsIGF0dHJpYnV0ZXMoYXR0
cmlidXRlcykKLSAgICB7Ci0gICAgfQotfTsKLQogY2xhc3MgUHJvcGVydHlUYWJsZSA6IHB1Ymxp
YyBKU0NlbGwgewogCiAgICAgLy8gVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZm9yICdpdGVy
YXRvcicgYW5kICdjb25zdF9pdGVyYXRvcicsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE3Mzc5NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1Miwz
MyArODUyLDMyIEBAIFByb3BlcnR5VGFibGUqIFN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGEKIAog
UHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlk
LCB1bnNpZ25lZCYgYXR0cmlidXRlcykKIHsKLSAgICBWZWN0b3I8U3RydWN0dXJlKiwgOD4gc3Ry
dWN0dXJlczsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZTsKLSAgICBQcm9wZXJ0eVRhYmxlKiB0
YWJsZTsKLSAgICAKLSAgICBmaW5kU3RydWN0dXJlc0FuZE1hcEZvck1hdGVyaWFsaXphdGlvbihz
dHJ1Y3R1cmVzLCBzdHJ1Y3R1cmUsIHRhYmxlKTsKLSAgICAKLSAgICBpZiAodGFibGUpIHsKLSAg
ICAgICAgUHJvcGVydHlNYXBFbnRyeSogZW50cnkgPSB0YWJsZS0+Z2V0KHVpZCk7Ci0gICAgICAg
IGlmIChlbnRyeSkgewotICAgICAgICAgICAgYXR0cmlidXRlcyA9IGVudHJ5LT5hdHRyaWJ1dGVz
OwotICAgICAgICAgICAgUHJvcGVydHlPZmZzZXQgcmVzdWx0ID0gZW50cnktPm9mZnNldDsKLSAg
ICAgICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygpOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3R1cmUtPm1fbG9jay51bmxvY2soKTsK
LSAgICB9CisgICAgUHJvcGVydHlPZmZzZXQgcmVzdWx0ID0gaW52YWxpZE9mZnNldDsKICAgICAK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsgaS0tOykgewotICAgICAg
ICBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVzW2ldOwotICAgICAgICBpZiAoc3RydWN0dXJlLT5tX25h
bWVJblByZXZpb3VzLmdldCgpICE9IHVpZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAKLSAgICAgICAgYXR0cmlidXRlcyA9IHN0cnVjdHVyZS0+YXR0cmlidXRlc0luUHJldmlvdXMo
KTsKLSAgICAgICAgcmV0dXJuIHN0cnVjdHVyZS0+bV9vZmZzZXQ7Ci0gICAgfQorICAgIGZvckVh
Y2hQcm9wZXJ0eUNvbmN1cnJlbnRseSgKKyAgICAgICAgWyZdIChjb25zdCBQcm9wZXJ0eU1hcEVu
dHJ5JiBjYW5kaWRhdGUpIC0+IGJvb2wgeworICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS5rZXkg
IT0gdWlkKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgCisgICAg
ICAgICAgICByZXN1bHQgPSBjYW5kaWRhdGUub2Zmc2V0OworICAgICAgICAgICAgYXR0cmlidXRl
cyA9IGNhbmRpZGF0ZS5hdHRyaWJ1dGVzOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9KTsKICAgICAKLSAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitWZWN0b3I8UHJvcGVydHlNYXBFbnRyeT4gU3RydWN0dXJlOjpnZXRQcm9wZXJ0
aWVzQ29uY3VycmVudGx5KCkKK3sKKyAgICBWZWN0b3I8UHJvcGVydHlNYXBFbnRyeT4gcmVzdWx0
OworCisgICAgZm9yRWFjaFByb3BlcnR5Q29uY3VycmVudGx5KAorICAgICAgICBbJl0gKGNvbnN0
IFByb3BlcnR5TWFwRW50cnkmIGVudHJ5KSAtPiBib29sIHsKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoZW50cnkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0pOworICAg
IAorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6YWRk
KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcykK
QEAgLTExMTAsMzAgKzExMDksMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgYwogewogICAgIG91dC5wcmludChSYXdQb2ludGVyKHRoaXMpLCAiOlsiLCBjbGFzc0lu
Zm8oKS0+Y2xhc3NOYW1lLCAiLCB7Iik7CiAgICAgCi0gICAgVmVjdG9yPFN0cnVjdHVyZSosIDg+
IHN0cnVjdHVyZXM7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7Ci0gICAgUHJvcGVydHlUYWJs
ZSogdGFibGU7Ci0gICAgCi0gICAgY29uc3RfY2FzdDxTdHJ1Y3R1cmUqPih0aGlzKS0+ZmluZFN0
cnVjdHVyZXNBbmRNYXBGb3JNYXRlcmlhbGl6YXRpb24oCi0gICAgICAgIHN0cnVjdHVyZXMsIHN0
cnVjdHVyZSwgdGFibGUpOwotICAgIAogICAgIENvbW1hUHJpbnRlciBjb21tYTsKICAgICAKLSAg
ICBpZiAodGFibGUpIHsKLSAgICAgICAgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRh
YmxlLT5iZWdpbigpOwotICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSB0YWJs
ZS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCBpdGVyLT5rZXksICI6Iiwgc3RhdGljX2Nhc3Q8aW50PihpdGVy
LT5vZmZzZXQpKTsKLSAgICAgICAgCi0gICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygp
OwotICAgIH0KLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsg
aS0tOykgewotICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZXNbaV07Ci0g
ICAgICAgIGlmICghc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzKQotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIG91dC5wcmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZp
b3VzLmdldCgpLCAiOiIsIHN0YXRpY19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOwot
ICAgIH0KKyAgICBjb25zdF9jYXN0PFN0cnVjdHVyZSo+KHRoaXMpLT5mb3JFYWNoUHJvcGVydHlD
b25jdXJyZW50bHkoCisgICAgICAgIFsmXSAoY29uc3QgUHJvcGVydHlNYXBFbnRyeSYgZW50cnkp
IC0+IGJvb2wgeworICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBlbnRyeS5rZXksICI6Iiwg
c3RhdGljX2Nhc3Q8aW50PihlbnRyeS5vZmZzZXQpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9KTsKICAgICAKICAgICBvdXQucHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1
bXAoaW5kZXhpbmdUeXBlKCkpKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxNzM3OTcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsMjYg
QEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxPdXRPZkxpbmVDYQogLy8gaW5pdGlhbCBh
bGxvY2F0aW9uLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG91dE9mTGluZUdyb3d0aEZhY3RvciA9
IDI7CiAKK3N0cnVjdCBQcm9wZXJ0eU1hcEVudHJ5IHsKKyAgICBTdHJpbmdJbXBsKiBrZXk7Cisg
ICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0OworICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CisKKyAg
ICBQcm9wZXJ0eU1hcEVudHJ5KCkKKyAgICAgICAgOiBrZXkobnVsbHB0cikKKyAgICAgICAgLCBv
ZmZzZXQoaW52YWxpZE9mZnNldCkKKyAgICAgICAgLCBhdHRyaWJ1dGVzKDApCisgICAgeworICAg
IH0KKyAgICAKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KFN0cmluZ0ltcGwqIGtleSwgUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQorICAgICAgICA6IGtleShrZXkpCisg
ICAgICAgICwgb2Zmc2V0KG9mZnNldCkKKyAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMp
CisgICAgeworICAgIH0KK307CisKIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewog
cHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU7CkBAIC0y
NjIsOSArMjgyLDE4IEBAIHB1YmxpYzoKICAgICBQcm9wZXJ0eU9mZnNldCBnZXQoVk0mLCBQcm9w
ZXJ0eU5hbWUpOwogICAgIFByb3BlcnR5T2Zmc2V0IGdldChWTSYsIFByb3BlcnR5TmFtZSwgdW5z
aWduZWQmIGF0dHJpYnV0ZXMpOwogCisgICAgLy8gVGhpcyBpcyBhIHNvbWV3aGF0IGludGVybmFs
aXNoIG1ldGhvZC4gSXQgd2lsbCBjYWxsIHlvdXIgZnVuY3RvciB3aGlsZSBwb3NzaWJseSBob2xk
aW5nIHRoZQorICAgIC8vIFN0cnVjdHVyZSdzIGxvY2suIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB3
aGV0aGVyIHRoZSBsb2NrIGlzIGhlbGQgb3Igbm90IGluIGFueSBwYXJ0aWN1bGFyCisgICAgLy8g
Y2FsbC4gU28sIHlvdSBoYXZlIHRvIGFzc3VtZSB0aGUgd29yc3QuIEFsc28sIHRoZSBmdW5jdG9y
IHJldHVybnMgdHJ1ZSBpZiBpdCB3aXNoZXMgZm9yIHlvdQorICAgIC8vIHRvIGNvbnRpbnVlIG9y
IGZhbHNlIGlmIGl0J3MgZG9uZS4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAg
IHZvaWQgZm9yRWFjaFByb3BlcnR5Q29uY3VycmVudGx5KGNvbnN0IEZ1bmN0b3ImKTsKKyAgICAK
ICAgICBQcm9wZXJ0eU9mZnNldCBnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlkKTsKICAg
ICBQcm9wZXJ0eU9mZnNldCBnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlkLCB1bnNpZ25l
ZCYgYXR0cmlidXRlcyk7CiAgICAgCisgICAgVmVjdG9yPFByb3BlcnR5TWFwRW50cnk+IGdldFBy
b3BlcnRpZXNDb25jdXJyZW50bHkoKTsKKyAgICAKICAgICB2b2lkIHNldEhhc0dldHRlclNldHRl
clByb3BlcnRpZXNXaXRoUHJvdG9DaGVjayhib29sIGlzX19wcm90b19fKQogICAgIHsKICAgICAg
ICAgc2V0SGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyh0cnVlKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgJKHJldmlzaW9uIDE3
Mzc5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTA0LDYgKzEwNCwzNSBAQCBBTFdBWVNfSU5MSU5FIFByb3BlcnR5
T2Zmc2V0IFN0cnVjdHVyZTo6CiAgICAgcmV0dXJuIGVudHJ5LT5vZmZzZXQ7CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cit2b2lkIFN0cnVjdHVyZTo6Zm9yRWFjaFByb3BlcnR5Q29u
Y3VycmVudGx5KGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFN0cnVjdHVy
ZSosIDg+IHN0cnVjdHVyZXM7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CisgICAgUHJvcGVy
dHlUYWJsZSogdGFibGU7CisgICAgCisgICAgZmluZFN0cnVjdHVyZXNBbmRNYXBGb3JNYXRlcmlh
bGl6YXRpb24oc3RydWN0dXJlcywgc3RydWN0dXJlLCB0YWJsZSk7CisgICAgCisgICAgaWYgKHRh
YmxlKSB7CisgICAgICAgIGZvciAoYXV0byBlbnRyeSA6ICp0YWJsZSkgeworICAgICAgICAgICAg
aWYgKCFmdW5jdG9yKGVudHJ5KSkgeworICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+bV9sb2Nr
LnVubG9jaygpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBzdHJ1Y3R1cmUtPm1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gc3RydWN0dXJlcy5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
c3RydWN0dXJlID0gc3RydWN0dXJlc1tpXTsKKyAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPm1fbmFt
ZUluUHJldmlvdXMpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIGlm
ICghZnVuY3RvcihQcm9wZXJ0eU1hcEVudHJ5KHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5n
ZXQoKSwgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5hdHRyaWJ1dGVzSW5QcmV2aW91
cygpKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorfQorCiBpbmxpbmUgUHJvcGVydHlP
ZmZzZXQgU3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkoU3RyaW5nSW1wbCogdWlkKQogewogICAg
IHVuc2lnbmVkIGF0dHJpYnV0ZXNJZ25vcmVkOwo=
</data>
<flag name="review"
          id="263165"
          type_id="1"
          status="+"
          setter="mhahnenb"
    />
          </attachment>
      

    </bug>

</bugzilla>