<?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>167324</bug_id>
          
          <creation_ts>2017-01-23 14:26:30 -0800</creation_ts>
          <short_desc>Maintain ordering when doing speculative loads</short_desc>
          <delta_ts>2017-02-01 06:02:02 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269183</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-23 14:26:30 -0800</bug_when>
    <thetext>Currently we randomize the ordering of speculative loads because they are serialized as a hash map. It would be better to load in the same order as the requests were originally issued as that is likely to match the order the document needs them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269187</commentid>
    <comment_count>1</comment_count>
      <attachid>299539</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-23 14:31:35 -0800</bug_when>
    <thetext>Created attachment 299539
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269198</commentid>
    <comment_count>2</comment_count>
      <attachid>299539</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-23 14:53:33 -0800</bug_when>
    <thetext>Comment on attachment 299539
patch

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

r=me

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:109
&gt; +    Vector&lt;SubresourceInfo&gt; result;

I think we should reserveInitialCapacity() and uncheckedAppend() since we know there will be at most subresourceLoads.size() items and the common case will be subresourceLoads.size() items.

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:49
&gt; +        , m_requestHeaders(request.httpHeaderFields())

It is a bit unfortunate that we are now copying those HashMaps for transient resources too now. I hope this does not show on PLT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269288</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-23 17:39:00 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/211068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269298</commentid>
    <comment_count>4</comment_count>
      <attachid>299539</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-23 18:02:28 -0800</bug_when>
    <thetext>Comment on attachment 299539
patch

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

&gt;&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:109
&gt;&gt; +    Vector&lt;SubresourceInfo&gt; result;
&gt; 
&gt; I think we should reserveInitialCapacity() and uncheckedAppend() since we know there will be at most subresourceLoads.size() items and the common case will be subresourceLoads.size() items.

The patch landed with a call to reserveCapacity/append, but reserveInitialCapacity/uncheckedAppend are more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269338</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-23 21:36:58 -0800</bug_when>
    <thetext>Oops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269342</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-23 22:03:30 -0800</bug_when>
    <thetext>Did that in https://trac.webkit.org/r211076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272120</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-01 06:02:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/30306314&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299539</attachid>
            <date>2017-01-23 14:31:35 -0800</date>
            <delta_ts>2017-01-23 14:53:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cache-speculative-ordering.patch</filename>
            <type>text/plain</type>
            <size>7918</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTA2MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYWludGFpbiBvcmRlcmluZyB3
aGVuIGRvaW5nIHNwZWN1bGF0aXZlIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjczMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgd2UgcmFuZG9taXplIHRoZSBvcmRlcmluZyBv
ZiBzcGVjdWxhdGl2ZSBsb2FkcyBiZWNhdXNlIHRoZXkgYXJlIHNlcmlhbGl6ZWQgYXMgYSBoYXNo
IG1hcC4KKyAgICAgICAgSXQgd291bGQgYmUgYmV0dGVyIHRvIGxvYWQgaW4gdGhlIHNhbWUgb3Jk
ZXIgYXMgdGhlIHJlcXVlc3RzIHdlcmUgb3JpZ2luYWxseSBpc3N1ZWQgYXMgdGhhdCBpcworICAg
ICAgICBsaWtlbHkgdG8gbWF0Y2ggdGhlIG9yZGVyIHRoZSBkb2N1bWVudCBuZWVkcyB0aGVtLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVM
b2FkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRp
dmVMb2FkTWFuYWdlcjo6c3RhcnRTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJjZUluZm86OmRlY29kZSk6
CisKKyAgICAgICAgICAgIEluY2x1ZGUga2V5IGludG8gU3VicmVzb3VyY2VJbmZvLgorCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6bWFrZVN1YnJlc291cmNlc1ZlY3Rvcik6CisKKyAg
ICAgICAgICAgIERlZHVwbGljYXRlIHRoZSBlbnRyaWVzLgorCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6U3VicmVzb3VyY2VzRW50cnk6OlN1YnJlc291cmNlc0VudHJ5KToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJjZXNFbnRyeTo6dXBkYXRlU3VicmVz
b3VyY2VMb2Fkcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3VicmVzb3VyY2VzRW50cnkuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJy
ZXNvdXJjZUluZm86OlN1YnJlc291cmNlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3VicmVzb3VyY2VJbmZvOjprZXkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OlN1YnJlc291cmNlSW5mbzo6c2V0VHJhbnNpZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhY2hlOjpTdWJyZXNvdXJjZXNFbnRyeTo6c3VicmVzb3VyY2VzKToKKworICAgICAgICAg
ICAgS2VlcCB0aGUgcmVzb3VyY2VzIGluIGEgVmVjdG9yIGluc3RlYWQgb2YgYSBIYXNoTWFwIHRv
IG1haW50YWluIG9yZGVyLgorCiAyMDE3LTAxLTIzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQXNzZXJ0cyBzZWVuIG9wZW5p
bmcgYW5kIGNsb3NpbmcgUmVtb3RlIFdlYiBJbnNwZWN0b3Igd2luZG93cwpJbmRleDogU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAJKHJldmlzaW9uIDIx
MTA0OSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTQsOSArNTE0
LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpwcmVsb2FkRW50cgogCiB2b2lkIFNw
ZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnN0YXJ0U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24oY29uc3Qg
R2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgU3VicmVzb3VyY2VzRW50cnkmIGVudHJ5KQogewotICAg
IGZvciAoYXV0byYgc3VicmVzb3VyY2VQYWlyIDogZW50cnkuc3VicmVzb3VyY2VzKCkpIHsKLSAg
ICAgICAgYXV0byYga2V5ID0gc3VicmVzb3VyY2VQYWlyLmtleTsKLSAgICAgICAgYXV0byYgc3Vi
cmVzb3VyY2VJbmZvID0gc3VicmVzb3VyY2VQYWlyLnZhbHVlOworICAgIGZvciAoYXV0byYgc3Vi
cmVzb3VyY2VJbmZvIDogZW50cnkuc3VicmVzb3VyY2VzKCkpIHsKKyAgICAgICAgYXV0byYga2V5
ID0gc3VicmVzb3VyY2VJbmZvLmtleSgpOwogICAgICAgICBpZiAoIXN1YnJlc291cmNlSW5mby5p
c1RyYW5zaWVudCgpKQogICAgICAgICAgICAgcHJlbG9hZEVudHJ5KGtleSwgc3VicmVzb3VyY2VJ
bmZvLCBmcmFtZUlEKTsKICAgICAgICAgZWxzZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3VicmVzb3VyY2VzRW50cnkuY3BwCShyZXZpc2lvbiAyMTEwNDkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7
CiAKIHZvaWQgU3VicmVzb3VyY2VJbmZvOjplbmNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKKyAgICBlbmNvZGVyIDw8IG1fa2V5OwogICAgIGVuY29kZXIg
PDwgbV9pc1RyYW5zaWVudDsKIAogICAgIC8vIERvIG5vdCBib3RoZXIgc2VyaWFsaXppbmcgb3Ro
ZXIgZGF0YSBtZW1iZXJzIG9mIHRyYW5zaWVudCByZXNvdXJjZXMgYXMgdGhleSBhcmUgZW1wdHku
CkBAIC00OSw2ICs1MCw5IEBAIHZvaWQgU3VicmVzb3VyY2VJbmZvOjplbmNvZGUoV1RGOjpQZXJz
aXMKIAogYm9vbCBTdWJyZXNvdXJjZUluZm86OmRlY29kZShXVEY6OlBlcnNpc3RlbmNlOjpEZWNv
ZGVyJiBkZWNvZGVyLCBTdWJyZXNvdXJjZUluZm8mIGluZm8pCiB7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLm1fa2V5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLm1faXNUcmFuc2llbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTk5LDI0ICsxMDMsNDEgQEAgU3VicmVzb3VyY2VzRW50cnk6OlN1YnJlc291cmNlc0Vu
dHJ5KGNvbgogewogICAgIEFTU0VSVChtX2tleS50eXBlKCkgPT0gIlN1YlJlc291cmNlcyIpOwog
fQorICAgIAorc3RhdGljIFZlY3RvcjxTdWJyZXNvdXJjZUluZm8+IG1ha2VTdWJyZXNvdXJjZXNW
ZWN0b3IoY29uc3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNvdXJjZUxvYWQ+PiYgc3Vi
cmVzb3VyY2VMb2FkcykKK3sKKyAgICBWZWN0b3I8U3VicmVzb3VyY2VJbmZvPiByZXN1bHQ7Cisg
ICAgCisgICAgSGFzaFNldDxLZXk+IHNlZW5LZXlzOworICAgIGZvciAoYXV0byYgbG9hZCA6IHN1
YnJlc291cmNlTG9hZHMpIHsKKyAgICAgICAgaWYgKCFzZWVuS2V5cy5hZGQobG9hZC0+a2V5KS5p
c05ld0VudHJ5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
eyBsb2FkLT5rZXksIGxvYWQtPnJlcXVlc3QgfSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KIAogU3VicmVzb3VyY2VzRW50cnk6OlN1YnJlc291cmNlc0VudHJ5KEtleSYmIGtleSwg
Y29uc3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNvdXJjZUxvYWQ+PiYgc3VicmVzb3Vy
Y2VMb2FkcykKICAgICA6IG1fa2V5KFdURk1vdmUoa2V5KSkKICAgICAsIG1fdGltZVN0YW1wKHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpKQorICAgICwgbV9zdWJyZXNvdXJjZXMobWFr
ZVN1YnJlc291cmNlc1ZlY3RvcihzdWJyZXNvdXJjZUxvYWRzKSkKIHsKICAgICBBU1NFUlQobV9r
ZXkudHlwZSgpID09ICJTdWJSZXNvdXJjZXMiKTsKLSAgICBmb3IgKGF1dG8mIHN1YnJlc291cmNl
TG9hZCA6IHN1YnJlc291cmNlTG9hZHMpCi0gICAgICAgIG1fc3VicmVzb3VyY2VzLmFkZChzdWJy
ZXNvdXJjZUxvYWQtPmtleSwgU3VicmVzb3VyY2VJbmZvKHN1YnJlc291cmNlTG9hZC0+cmVxdWVz
dCkpOwogfQogCiB2b2lkIFN1YnJlc291cmNlc0VudHJ5Ojp1cGRhdGVTdWJyZXNvdXJjZUxvYWRz
KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U3VicmVzb3VyY2VMb2FkPj4mIHN1YnJlc291
cmNlTG9hZHMpCiB7Ci0gICAgYXV0byBvbGRTdWJyZXNvdXJjZXMgPSBXVEZNb3ZlKG1fc3VicmVz
b3VyY2VzKTsKKyAgICBIYXNoU2V0PEtleT4gcHJldmlvdXNLZXlzOworICAgIGZvciAoYXV0byYg
aW5mbyA6IG1fc3VicmVzb3VyY2VzKQorICAgICAgICBwcmV2aW91c0tleXMuYWRkKGluZm8ua2V5
KCkpOworICAgIAorICAgIG1fc3VicmVzb3VyY2VzID0gbWFrZVN1YnJlc291cmNlc1ZlY3Rvcihz
dWJyZXNvdXJjZUxvYWRzKTsKIAotICAgIC8vIE1hcmsga2V5cyB0aGF0IGFyZSBjb21tb24gd2l0
aCBsYXN0IGxvYWQgYXMgbm9uLVRyYW5zaWVudC4KLSAgICBmb3IgKGF1dG8mIHN1YnJlc291cmNl
TG9hZCA6IHN1YnJlc291cmNlTG9hZHMpIHsKLSAgICAgICAgYm9vbCBpc1RyYW5zaWVudCA9ICFv
bGRTdWJyZXNvdXJjZXMuY29udGFpbnMoc3VicmVzb3VyY2VMb2FkLT5rZXkpOwotICAgICAgICBt
X3N1YnJlc291cmNlcy5hZGQoc3VicmVzb3VyY2VMb2FkLT5rZXksIFN1YnJlc291cmNlSW5mbyhz
dWJyZXNvdXJjZUxvYWQtPnJlcXVlc3QsIGlzVHJhbnNpZW50KSk7CisgICAgLy8gTWFyayBrZXlz
IHRoYXQgYXJlIG5vdCBjb21tb24gd2l0aCBsYXN0IGxvYWQgYXMgdHJhbnNpZW50LgorICAgIGZv
ciAoYXV0byYgc3VicmVzb3VyY2VJbmZvIDogbV9zdWJyZXNvdXJjZXMpIHsKKyAgICAgICAgaWYg
KCFwcmV2aW91c0tleXMuY29udGFpbnMoc3VicmVzb3VyY2VJbmZvLmtleSgpKSkKKyAgICAgICAg
ICAgIHN1YnJlc291cmNlSW5mby5zZXRUcmFuc2llbnQoKTsKICAgICB9CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNl
c0VudHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaAkocmV2aXNpb24gMjExMDQ5KQorKysg
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMjEgKzQzLDI1IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlciYsIFN1YnJlc291
cmNlSW5mbyYpOwogCiAgICAgU3VicmVzb3VyY2VJbmZvKCkgPSBkZWZhdWx0OwotICAgIFN1YnJl
c291cmNlSW5mbyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wg
aXNUcmFuc2llbnQgPSBmYWxzZSkKLSAgICAgICAgOiBtX2lzVHJhbnNpZW50KGlzVHJhbnNpZW50
KQotICAgICAgICAsIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMoaXNUcmFuc2llbnQgPyBXZWJDb3Jl
OjpVUkwoKSA6IHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSkKLSAgICAgICAgLCBtX3Jl
cXVlc3RIZWFkZXJzKGlzVHJhbnNpZW50ID8gV2ViQ29yZTo6SFRUUEhlYWRlck1hcCgpIDogcmVx
dWVzdC5odHRwSGVhZGVyRmllbGRzKCkpCisgICAgU3VicmVzb3VyY2VJbmZvKGNvbnN0IEtleSYg
a2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCisgICAgICAgIDog
bV9rZXkoa2V5KQorICAgICAgICAsIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC5maXJz
dFBhcnR5Rm9yQ29va2llcygpKQorICAgICAgICAsIG1fcmVxdWVzdEhlYWRlcnMocmVxdWVzdC5o
dHRwSGVhZGVyRmllbGRzKCkpCiAgICAgICAgICwgbV9wcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5
KCkpCiAgICAgewogICAgIH0KIAorICAgIGNvbnN0IEtleSYga2V5KCkgY29uc3QgeyByZXR1cm4g
bV9rZXk7IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1RyYW5z
aWVudDsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSBj
b25zdCB7IEFTU0VSVCghbV9pc1RyYW5zaWVudCk7IHJldHVybiBtX2ZpcnN0UGFydHlGb3JDb29r
aWVzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMo
KSBjb25zdCB7IEFTU0VSVCghbV9pc1RyYW5zaWVudCk7IHJldHVybiBtX3JlcXVlc3RIZWFkZXJz
OyB9CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSBjb25zdCB7
IEFTU0VSVCghbV9pc1RyYW5zaWVudCk7IHJldHVybiBtX3ByaW9yaXR5OyB9CisgICAgCisgICAg
dm9pZCBzZXRUcmFuc2llbnQoKSB7IG1faXNUcmFuc2llbnQgPSB0cnVlOyB9CiAKIHByaXZhdGU6
Ci0gICAgYm9vbCBtX2lzVHJhbnNpZW50IHsgdHJ1ZSB9OworICAgIEtleSBtX2tleTsKKyAgICBi
b29sIG1faXNUcmFuc2llbnQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlVSTCBtX2ZpcnN0UGFy
dHlGb3JDb29raWVzOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9yZXF1ZXN0SGVhZGVy
czsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OwpAQCAtODYs
MTQgKzkwLDE0IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEtleSYga2V5KCkgY29uc3QgeyByZXR1
cm4gbV9rZXk7IH0KICAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZVN0YW1wOyB9Ci0gICAgY29uc3QgSGFzaE1h
cDxLZXksIFN1YnJlc291cmNlSW5mbz4mIHN1YnJlc291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1f
c3VicmVzb3VyY2VzOyB9CisgICAgY29uc3QgVmVjdG9yPFN1YnJlc291cmNlSW5mbz4mIHN1YnJl
c291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3VicmVzb3VyY2VzOyB9CiAKICAgICB2b2lkIHVw
ZGF0ZVN1YnJlc291cmNlTG9hZHMoY29uc3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNv
dXJjZUxvYWQ+PiYpOwogCiBwcml2YXRlOgogICAgIEtleSBtX2tleTsKICAgICBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1fdGltZVN0YW1wOwotICAgIEhhc2hNYXA8S2V5
LCBTdWJyZXNvdXJjZUluZm8+IG1fc3VicmVzb3VyY2VzOworICAgIFZlY3RvcjxTdWJyZXNvdXJj
ZUluZm8+IG1fc3VicmVzb3VyY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="321476"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>