<?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>85288</bug_id>
          
          <creation_ts>2012-05-01 09:16:18 -0700</creation_ts>
          <short_desc>IndexedDB: Optimize single-key get()</short_desc>
          <delta_ts>2012-06-06 20:39:56 -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>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>613444</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-01 09:16:18 -0700</bug_when>
    <thetext>We recently refactored get() to take a key range, and simplified the IDBObjectStore/IDBIndex.get(key) to just call IDBKeyRange.only(), which means when we get to the backend we are always iterating, even if the original intent from the user was just a get(key). We should optimize the backend to recognize when the upper and lower bounds of an IDBKeyRange are identical, and transform that into an actual LevelDBDatabase-&gt;get()

One nice thing about this is that we&apos;ll get the benefit of bloom filters, and provide a nice optimized path for get(IDBKeyRange.bound(foo, foo, true, true)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637520</commentid>
    <comment_count>1</comment_count>
      <attachid>144891</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-30 12:14:08 -0700</bug_when>
    <thetext>Created attachment 144891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637521</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-30 12:15:05 -0700</bug_when>
    <thetext>tony@ - r? cq? A pretty quick one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637629</commentid>
    <comment_count>3</comment_count>
      <attachid>144891</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-30 13:32:48 -0700</bug_when>
    <thetext>Comment on attachment 144891
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBKeyRange.h:90
&gt; +        return m_lower == m_upper
&gt; +                &amp;&amp; m_lowerType == LowerBoundOpen
&gt; +                &amp;&amp; m_upperType == UpperBoundClosed;

Nit: I would just keep this on one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637637</commentid>
    <comment_count>4</comment_count>
      <attachid>144912</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-30 13:36:15 -0700</bug_when>
    <thetext>Created attachment 144912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637640</commentid>
    <comment_count>5</comment_count>
      <attachid>144912</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-30 13:37:17 -0700</bug_when>
    <thetext>Comment on attachment 144912
Patch

tony@ - thanks - still waiting on commit paperwork, mind another r/cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637939</commentid>
    <comment_count>6</comment_count>
      <attachid>144912</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 19:25:49 -0700</bug_when>
    <thetext>Comment on attachment 144912
Patch

Rejecting attachment 144912 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:

Hunk #1 succeeded at 149 with fuzz 2 (offset -11 lines).
patching file Source/WebCore/Modules/indexeddb/IDBKeyRange.h
patching file Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp
Hunk #1 FAILED at 108.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Tony Chang&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12866058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642862</commentid>
    <comment_count>7</comment_count>
      <attachid>146121</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-06 15:10:43 -0700</bug_when>
    <thetext>Created attachment 146121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642863</commentid>
    <comment_count>8</comment_count>
      <attachid>146121</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-06 15:11:34 -0700</bug_when>
    <thetext>Comment on attachment 146121
Patch

tony@ - r? cq? 

one more pass at this? I collided with myself in the commit queue...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643139</commentid>
    <comment_count>9</comment_count>
      <attachid>146121</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-06 20:39:52 -0700</bug_when>
    <thetext>Comment on attachment 146121
Patch

Clearing flags on attachment: 146121

Committed r119671: &lt;http://trac.webkit.org/changeset/119671&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643140</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-06 20:39:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144891</attachid>
            <date>2012-05-30 12:14:08 -0700</date>
            <delta_ts>2012-05-30 13:36:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85288-20120530121408.patch</filename>
            <type>text/plain</type>
            <size>6454</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkOTc1MDEyYmU5ODhh
OWVjYjk4ZWM1MGYxNmU5ZTNjNzliN2IyYy4uN2VhMDlkNGZiNDBmMDk3YzAyZjNmZmQzZDZmZDA1
MTIyYzFkZWFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE9w
dGltaXplIHNpbmdsZS1rZXkgZ2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1Mjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgYW4gb3B0aW1pemF0aW9u
LgorCisgICAgICAgIEFmdGVyIGEgcmVjZW50IHJlZmFjdG9yaW5nLCB3ZSBzdGFydGVkIGNyZWF0
aW5nCisgICAgICAgIGFuIGludGVybmFsIGN1cnNvciB3aXRoIGV2ZXJ5IGNhbGwgdG8gZ2V0KCku
IFRoZQorICAgICAgICBtb3N0IGNvbW1vbiB1c2Ugb2YgZ2V0KCkgaXMgd2l0aCBhIHNpbmdsZSBr
ZXksCisgICAgICAgIHNvIHByb3ZpZGUgYSBmYXN0LXBhdGggdG8gYXZvaWQgY3JlYXRpbmcgdGhl
IGN1cnNvci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0QnlSYW5n
ZUludGVybmFsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmlzT25seUtleSk6CisgICAgICAgIChJREJL
ZXlSYW5nZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpnZXRCeVJhbmdlSW50ZXJuYWwpOgorCiAyMDEyLTA1LTI5ICBWaWN0b3IgQ2FyYnVuZSAgPHZp
Y3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIERpc3BsYXkgY3VlcyBpbiB0aGUgY29udHJvbHMg
YXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcAppbmRleCAwZTBlNTJmNDI0NzQ4YjY1OWQ1MjU1M2NmM2U0MmRm
MTIxODc0ZDY0Li44ODEzMDRkYzc0OTQyZjViZGVlZmNhZjljMWVlZGVkYjU5YTU1NTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJh
Y2tlbmRJbXBsLmNwcApAQCAtMTYwLDIyICsxNjAsMjcgQEAgdm9pZCBJREJJbmRleEJhY2tlbmRJ
bXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHIKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4QmFja2VuZEltcGw6OmdldEJ5UmFuZ2VJbnRl
cm5hbCIpOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3Rv
cmVDdXJzb3IgPQotICAgICAgICAgICAgaW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhD
dXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5p
ZCgpLCBpbmRleC0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7Ci0KLSAg
ICBpZiAoIWJhY2tpbmdTdG9yZUN1cnNvcikgewotICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vz
cyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkpOwotICAgICAgICByZXR1
cm47CisgICAgUmVmUHRyPElEQktleT4ga2V5OworCisgICAgaWYgKGtleVJhbmdlLT5pc09ubHlL
ZXkoKSkKKyAgICAgICAga2V5ID0ga2V5UmFuZ2UtPmxvd2VyKCk7CisgICAgZWxzZSB7CisgICAg
ICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yID0g
aW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhDdXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQo
KSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwga2V5UmFu
Z2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7CisKKyAgICAgICAgaWYgKCFiYWNraW5nU3RvcmVD
dXJzb3IpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAga2V5ID0gYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKTsKKyAgICAgICAgYmFj
a2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogICAgIH0KIAotICAgIFN0cmluZyB2YWx1ZSA9IGlu
ZGV4LT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQo
KSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmJhY2tp
bmdTdG9yZUN1cnNvci0+a2V5KCkpOworICAgIFN0cmluZyB2YWx1ZSA9IGluZGV4LT5iYWNraW5n
U3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1f
b2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmtleSk7CiAgICAgaWYgKHZh
bHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNv
ci0+Y2xvc2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYWxsYmFja3MtPm9uU3Vj
Y2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKHZhbHVlKSk7Ci0gICAg
YmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogfQogCiB2b2lkIElEQkluZGV4QmFja2VuZElt
cGw6OmdldEtleUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QkluZGV4QmFja2VuZEltcGw+IGluZGV4LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggMWQzYzVkZjdkYTQ2MTA1ZWVmYWFkMjljMDNl
NmYxOTU0OTRkYWRiZS4uNjk2MzJmZTkwZDdiMTIwZThmYzNkZWM1MzEzOWQwODA4N2ZmZTRkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBA
IC04Myw2ICs4MywxMyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiBib3VuZChQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NSZWZQdHI8SURC
S2V5PiB1cHBlciwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuLCBFeGNlcHRpb25Db2Rl
Jik7CiAKKyAgICBib29sIGlzT25seUtleSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9sb3dl
ciA9PSBtX3VwcGVyCisgICAgICAgICAgICAgICAgJiYgbV9sb3dlclR5cGUgPT0gTG93ZXJCb3Vu
ZE9wZW4KKyAgICAgICAgICAgICAgICAmJiBtX3VwcGVyVHlwZSA9PSBVcHBlckJvdW5kQ2xvc2Vk
OworICAgIH0KKwogcHJpdmF0ZToKICAgICBJREJLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4g
bG93ZXIsIFBhc3NSZWZQdHI8SURCS2V5PiB1cHBlciwgTG93ZXJCb3VuZFR5cGUgbG93ZXJUeXBl
LCBVcHBlckJvdW5kVHlwZSB1cHBlclR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CmluZGV4IGViNDIzOTUzNzY0OTEyMGMwNDU4NDFlODVhOTllY2Q3NWMxN2JiOWMuLmY4Y2JlYjYz
NmYzMzE1ODFjZTExOWM1NTkzNmNkYmVhMDA0YThlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC0xMDgsMjEgKzEwOCwyNiBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw6OmdldChQYXNzUmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgUGFzc1JlZgogdm9p
ZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2Jq
ZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6Z2V0QnlSYW5nZUludGVybmFsIik7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3IgPSBvYmplY3RTdG9yZS0+YmFja2luZ1N0
b3JlKCktPm9wZW5PYmplY3RTdG9yZUN1cnNvcihvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBv
YmplY3RTdG9yZS0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7Ci0gICAg
aWYgKCFiYWNraW5nU3RvcmVDdXJzb3IpIHsKLSAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJu
OworICAgIFJlZlB0cjxJREJLZXk+IGtleTsKKyAgICBpZiAoa2V5UmFuZ2UtPmlzT25seUtleSgp
KQorICAgICAgICBrZXkgPSBrZXlSYW5nZS0+bG93ZXIoKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
UmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3IgPSBvYmpl
Y3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPm9wZW5PYmplY3RTdG9yZUN1cnNvcihvYmplY3RTdG9y
ZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1
cnNvcjo6TkVYVCk7CisgICAgICAgIGlmICghYmFja2luZ1N0b3JlQ3Vyc29yKSB7CisgICAgICAg
ICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5l
ZFZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGtleSA9
IGJhY2tpbmdTdG9yZUN1cnNvci0+a2V5KCk7CisgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+
Y2xvc2UoKTsKICAgICB9CiAKLSAgICBTdHJpbmcgd2lyZURhdGEgPSBvYmplY3RTdG9yZS0+YmFj
a2luZ1N0b3JlKCktPmdldE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlk
KCksIG9iamVjdFN0b3JlLT5pZCgpLCAqYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKSk7CisgICAg
U3RyaW5nIHdpcmVEYXRhID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5nZXRPYmplY3RT
dG9yZVJlY29yZChvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwg
KmtleSk7CiAgICAgaWYgKHdpcmVEYXRhLmlzTnVsbCgpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+
b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7Ci0gICAg
ICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
RnJvbVdpcmUod2lyZURhdGEpKTsKLSAgICBiYWNraW5nU3RvcmVDdXJzb3ItPmNsb3NlKCk7CiB9
CiAKIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Z2V0SW50ZXJuYWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2Jq
ZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144912</attachid>
            <date>2012-05-30 13:36:15 -0700</date>
            <delta_ts>2012-06-06 15:10:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85288-20120530133614.patch</filename>
            <type>text/plain</type>
            <size>6420</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkOTc1MDEyYmU5ODhh
OWVjYjk4ZWM1MGYxNmU5ZTNjNzliN2IyYy4uN2VhMDlkNGZiNDBmMDk3YzAyZjNmZmQzZDZmZDA1
MTIyYzFkZWFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE9w
dGltaXplIHNpbmdsZS1rZXkgZ2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1Mjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgYW4gb3B0aW1pemF0aW9u
LgorCisgICAgICAgIEFmdGVyIGEgcmVjZW50IHJlZmFjdG9yaW5nLCB3ZSBzdGFydGVkIGNyZWF0
aW5nCisgICAgICAgIGFuIGludGVybmFsIGN1cnNvciB3aXRoIGV2ZXJ5IGNhbGwgdG8gZ2V0KCku
IFRoZQorICAgICAgICBtb3N0IGNvbW1vbiB1c2Ugb2YgZ2V0KCkgaXMgd2l0aCBhIHNpbmdsZSBr
ZXksCisgICAgICAgIHNvIHByb3ZpZGUgYSBmYXN0LXBhdGggdG8gYXZvaWQgY3JlYXRpbmcgdGhl
IGN1cnNvci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0QnlSYW5n
ZUludGVybmFsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmlzT25seUtleSk6CisgICAgICAgIChJREJL
ZXlSYW5nZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpnZXRCeVJhbmdlSW50ZXJuYWwpOgorCiAyMDEyLTA1LTI5ICBWaWN0b3IgQ2FyYnVuZSAgPHZp
Y3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIERpc3BsYXkgY3VlcyBpbiB0aGUgY29udHJvbHMg
YXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcAppbmRleCAwZTBlNTJmNDI0NzQ4YjY1OWQ1MjU1M2NmM2U0MmRm
MTIxODc0ZDY0Li44ODEzMDRkYzc0OTQyZjViZGVlZmNhZjljMWVlZGVkYjU5YTU1NTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJh
Y2tlbmRJbXBsLmNwcApAQCAtMTYwLDIyICsxNjAsMjcgQEAgdm9pZCBJREJJbmRleEJhY2tlbmRJ
bXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHIKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4QmFja2VuZEltcGw6OmdldEJ5UmFuZ2VJbnRl
cm5hbCIpOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3Rv
cmVDdXJzb3IgPQotICAgICAgICAgICAgaW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhD
dXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5p
ZCgpLCBpbmRleC0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7Ci0KLSAg
ICBpZiAoIWJhY2tpbmdTdG9yZUN1cnNvcikgewotICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vz
cyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkpOwotICAgICAgICByZXR1
cm47CisgICAgUmVmUHRyPElEQktleT4ga2V5OworCisgICAgaWYgKGtleVJhbmdlLT5pc09ubHlL
ZXkoKSkKKyAgICAgICAga2V5ID0ga2V5UmFuZ2UtPmxvd2VyKCk7CisgICAgZWxzZSB7CisgICAg
ICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yID0g
aW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhDdXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQo
KSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwga2V5UmFu
Z2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7CisKKyAgICAgICAgaWYgKCFiYWNraW5nU3RvcmVD
dXJzb3IpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAga2V5ID0gYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKTsKKyAgICAgICAgYmFj
a2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogICAgIH0KIAotICAgIFN0cmluZyB2YWx1ZSA9IGlu
ZGV4LT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQo
KSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmJhY2tp
bmdTdG9yZUN1cnNvci0+a2V5KCkpOworICAgIFN0cmluZyB2YWx1ZSA9IGluZGV4LT5iYWNraW5n
U3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1f
b2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmtleSk7CiAgICAgaWYgKHZh
bHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNv
ci0+Y2xvc2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYWxsYmFja3MtPm9uU3Vj
Y2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKHZhbHVlKSk7Ci0gICAg
YmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogfQogCiB2b2lkIElEQkluZGV4QmFja2VuZElt
cGw6OmdldEtleUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QkluZGV4QmFja2VuZEltcGw+IGluZGV4LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggMWQzYzVkZjdkYTQ2MTA1ZWVmYWFkMjljMDNl
NmYxOTU0OTRkYWRiZS4uOGM3OTA5ZDA4MTUwYzJkYjNmYmU3ODVhMmZjYzdjMGEzYTgwNWMxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBA
IC04Myw2ICs4MywxMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiBib3VuZChQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NSZWZQdHI8SURC
S2V5PiB1cHBlciwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuLCBFeGNlcHRpb25Db2Rl
Jik7CiAKKyAgICBib29sIGlzT25seUtleSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9sb3dl
ciA9PSBtX3VwcGVyICYmIG1fbG93ZXJUeXBlID09IExvd2VyQm91bmRPcGVuICYmIG1fdXBwZXJU
eXBlID09IFVwcGVyQm91bmRDbG9zZWQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIElEQktleVJh
bmdlKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBM
b3dlckJvdW5kVHlwZSBsb3dlclR5cGUsIFVwcGVyQm91bmRUeXBlIHVwcGVyVHlwZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggZWI0MjM5NTM3NjQ5MTIwYzA0NTg0MWU4NWE5
OWVjZDc1YzE3YmI5Yy4uZjhjYmViNjM2ZjMzMTU4MWNlMTE5YzU1OTM2Y2RiZWEwMDRhOGU0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTEwOCwyMSArMTA4LDI2IEBAIHZvaWQg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBy
cEtleVJhbmdlLCBQYXNzUmVmCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldEJ5
UmFuZ2VJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgSURC
X1RSQUNFKCJJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwiKTsK
LSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9
IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29yKG9iamVj
dFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCBrZXlSYW5nZS5nZXQoKSwg
SURCQ3Vyc29yOjpORVhUKTsKLSAgICBpZiAoIWJhY2tpbmdTdG9yZUN1cnNvcikgewotICAgICAg
ICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZh
bHVlKCkpOwotICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPElEQktleT4ga2V5OworICAgIGlm
IChrZXlSYW5nZS0+aXNPbmx5S2V5KCkpCisgICAgICAgIGtleSA9IGtleVJhbmdlLT5sb3dlcigp
OworICAgIGVsc2UgeworICAgICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJh
Y2tpbmdTdG9yZUN1cnNvciA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+b3Blbk9iamVj
dFN0b3JlQ3Vyc29yKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgp
LCBrZXlSYW5nZS5nZXQoKSwgSURCQ3Vyc29yOjpORVhUKTsKKyAgICAgICAgaWYgKCFiYWNraW5n
U3RvcmVDdXJzb3IpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAga2V5ID0gYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKTsKKyAgICAg
ICAgYmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogICAgIH0KIAotICAgIFN0cmluZyB3aXJl
RGF0YSA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0U3RvcmVSZWNvcmQo
b2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICpiYWNraW5nU3Rv
cmVDdXJzb3ItPmtleSgpKTsKKyAgICBTdHJpbmcgd2lyZURhdGEgPSBvYmplY3RTdG9yZS0+YmFj
a2luZ1N0b3JlKCktPmdldE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlk
KCksIG9iamVjdFN0b3JlLT5pZCgpLCAqa2V5KTsKICAgICBpZiAod2lyZURhdGEuaXNOdWxsKCkp
IHsKICAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1
bmRlZmluZWRWYWx1ZSgpKTsKLSAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZSh3aXJlRGF0YSkpOwotICAgIGJhY2tpbmdT
dG9yZUN1cnNvci0+Y2xvc2UoKTsKIH0KIAogdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpnZXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146121</attachid>
            <date>2012-06-06 15:10:43 -0700</date>
            <delta_ts>2012-06-06 20:39:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85288-20120606151042.patch</filename>
            <type>text/plain</type>
            <size>6460</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkYWYwZTFmNGRjZmIx
NDI5Zjk3OTI5N2UxYjhkYjIxYTQ1Mzg5Mi4uZTQ1ZDZkYmMyYjAwMjQ3ZTA0NTdiN2VjN2Q4ZTdk
MjZjMjM4ZThjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE9w
dGltaXplIHNpbmdsZS1rZXkgZ2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1Mjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgYW4gb3B0aW1pemF0aW9u
LgorCisgICAgICAgIEFmdGVyIGEgcmVjZW50IHJlZmFjdG9yaW5nLCB3ZSBzdGFydGVkIGNyZWF0
aW5nCisgICAgICAgIGFuIGludGVybmFsIGN1cnNvciB3aXRoIGV2ZXJ5IGNhbGwgdG8gZ2V0KCku
IFRoZQorICAgICAgICBtb3N0IGNvbW1vbiB1c2Ugb2YgZ2V0KCkgaXMgd2l0aCBhIHNpbmdsZSBr
ZXksCisgICAgICAgIHNvIHByb3ZpZGUgYSBmYXN0LXBhdGggdG8gYXZvaWQgY3JlYXRpbmcgdGhl
IGN1cnNvci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0QnlSYW5n
ZUludGVybmFsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmlzT25seUtleSk6CisgICAgICAgIChJREJL
ZXlSYW5nZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpnZXRCeVJhbmdlSW50ZXJuYWwpOgorCiAyMDEyLTA2LTA2ICBFdWdlbmUgS2x5dWNobmlrb3Yg
IDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBoZWxwL3Nl
dHRpbmdzIHNjcmVlbiBkb2VzIG5vdCBvdmVybGF5IGNvbnNvbGUgaW4gc3BsaXQgc2NyZWVuIG1v
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggOWVmZTU0ODI5YWYwNzA1NDIwYjgzMDYzZjBlNzMzNjIz
YTJmZjM0OC4uNmZjMzczMTdjYWE3ZTQ2MDQxNDg4MDYyOTQ4MzRmZThlNjAxZDdkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNr
ZW5kSW1wbC5jcHAKQEAgLTE0OSwyMiArMTQ5LDI3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Z2V0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCSW5k
CiB7CiAgICAgSURCX1RSQUNFKCJJREJJbmRleEJhY2tlbmRJbXBsOjpnZXRJbnRlcm5hbCIpOwog
Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3Ig
PQotICAgICAgICAgICAgaW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhDdXJzb3IoaW5k
ZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRl
eC0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7Ci0KLSAgICBpZiAoIWJh
Y2tpbmdTdG9yZUN1cnNvcikgewotICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkpOwotICAgICAgICByZXR1cm47CisgICAg
UmVmUHRyPElEQktleT4ga2V5OworCisgICAgaWYgKGtleVJhbmdlLT5pc09ubHlLZXkoKSkKKyAg
ICAgICAga2V5ID0ga2V5UmFuZ2UtPmxvd2VyKCk7CisgICAgZWxzZSB7CisgICAgICAgIFJlZlB0
cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gaW5kZXgtPmJh
Y2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhDdXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgt
Pm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwga2V5UmFuZ2UuZ2V0KCks
IElEQkN1cnNvcjo6TkVYVCk7CisKKyAgICAgICAgaWYgKCFiYWNraW5nU3RvcmVDdXJzb3IpIHsK
KyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
dW5kZWZpbmVkVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAga2V5ID0gYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKTsKKyAgICAgICAgYmFja2luZ1N0b3Jl
Q3Vyc29yLT5jbG9zZSgpOwogICAgIH0KIAotICAgIFN0cmluZyB2YWx1ZSA9IGluZGV4LT5iYWNr
aW5nU3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgt
Pm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmJhY2tpbmdTdG9yZUN1
cnNvci0+a2V5KCkpOworICAgIFN0cmluZyB2YWx1ZSA9IGluZGV4LT5iYWNraW5nU3RvcmUoKS0+
Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3Rv
cmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmtleSk7CiAgICAgaWYgKHZhbHVlLmlzTnVs
bCgpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6dW5kZWZpbmVkVmFsdWUoKSk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2Uo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKHZhbHVlKSk7Ci0gICAgYmFja2luZ1N0
b3JlQ3Vyc29yLT5jbG9zZSgpOwogfQogCiB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmdldEtl
eUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdl
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggMWQzYzVkZjdkYTQ2MTA1ZWVm
YWFkMjljMDNlNmYxOTU0OTRkYWRiZS4uOGM3OTA5ZDA4MTUwYzJkYjNmYmU3ODVhMmZjYzdjMGEz
YTgwNWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZS5oCkBAIC04Myw2ICs4MywxMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiBib3VuZChQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NS
ZWZQdHI8SURCS2V5PiB1cHBlciwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuLCBFeGNl
cHRpb25Db2RlJik7CiAKKyAgICBib29sIGlzT25seUtleSgpCisgICAgeworICAgICAgICByZXR1
cm4gbV9sb3dlciA9PSBtX3VwcGVyICYmIG1fbG93ZXJUeXBlID09IExvd2VyQm91bmRPcGVuICYm
IG1fdXBwZXJUeXBlID09IFVwcGVyQm91bmRDbG9zZWQ7CisgICAgfQorCiBwcml2YXRlOgogICAg
IElEQktleVJhbmdlKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+
IHVwcGVyLCBMb3dlckJvdW5kVHlwZSBsb3dlclR5cGUsIFVwcGVyQm91bmRUeXBlIHVwcGVyVHlw
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggYjU1ZDFlMTI2MWZiYzQ0ODM2
ZWMzNmFiZDFiYzI1MGIzZjVhZjEyYS4uYWM0Mzg4NzAxZjk3NDQ0OTFiN2RiMWViOTUxYjg5NTg4
MWRlMmU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTk1LDIyICs5NSwyNyBA
QCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldChQYXNzUmVmUHRyPElEQktleVJh
bmdlPiBwcnBLZXlSYW5nZSwgUGFzc1JlZgogCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw6OmdldEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKLSAgICBJ
REJfVFJBQ0UoIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldEludGVybmFsIik7Ci0gICAg
UmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3IgPSBvYmpl
Y3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPm9wZW5PYmplY3RTdG9yZUN1cnNvcihvYmplY3RTdG9y
ZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1
cnNvcjo6TkVYVCk7Ci0gICAgaWYgKCFiYWNraW5nU3RvcmVDdXJzb3IpIHsKLSAgICAgICAgY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSgp
KTsKLSAgICAgICAgcmV0dXJuOworICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6Z2V0QnlSYW5nZUludGVybmFsIik7CisgICAgUmVmUHRyPElEQktleT4ga2V5OworICAg
IGlmIChrZXlSYW5nZS0+aXNPbmx5S2V5KCkpCisgICAgICAgIGtleSA9IGtleVJhbmdlLT5sb3dl
cigpOworICAgIGVsc2UgeworICAgICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+
IGJhY2tpbmdTdG9yZUN1cnNvciA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+b3Blbk9i
amVjdFN0b3JlQ3Vyc29yKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5p
ZCgpLCBrZXlSYW5nZS5nZXQoKSwgSURCQ3Vyc29yOjpORVhUKTsKKyAgICAgICAgaWYgKCFiYWNr
aW5nU3RvcmVDdXJzb3IpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAga2V5ID0gYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKTsKKyAg
ICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwogICAgIH0KIAotICAgIFN0cmluZyB3
aXJlRGF0YSA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0U3RvcmVSZWNv
cmQob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICpiYWNraW5n
U3RvcmVDdXJzb3ItPmtleSgpKTsKKyAgICBTdHJpbmcgd2lyZURhdGEgPSBvYmplY3RTdG9yZS0+
YmFja2luZ1N0b3JlKCktPmdldE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3JlLT5kYXRhYmFz
ZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCAqa2V5KTsKICAgICBpZiAod2lyZURhdGEuaXNOdWxs
KCkpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVl
Ojp1bmRlZmluZWRWYWx1ZSgpKTsKLSAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZSh3aXJlRGF0YSkpOwotICAgIGJhY2tp
bmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBm
ZXRjaEtleUZyb21LZXlQYXRoKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogdmFsdWUsIGNvbnN0IElE
QktleVBhdGgmIGtleVBhdGgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>