<?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>68726</bug_id>
          
          <creation_ts>2011-09-23 13:49:22 -0700</creation_ts>
          <short_desc>IndexedDB: Null key path gets stored as empty string key path</short_desc>
          <delta_ts>2011-09-26 15:21:34 -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>New Bugs</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472475</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-23 13:49:22 -0700</bug_when>
    <thetext>IndexedDB: Null key path gets stored as empty string key path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472479</commentid>
    <comment_count>1</comment_count>
      <attachid>108530</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-23 13:52:37 -0700</bug_when>
    <thetext>Created attachment 108530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472481</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-23 13:53:59 -0700</bug_when>
    <thetext>Chromium issue is http://code.google.com/p/chromium/issues/detail?id=90635

Tests to detect regressions across browser sessions will be added on the chromium side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472497</commentid>
    <comment_count>3</comment_count>
      <attachid>108530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-23 14:25:20 -0700</bug_when>
    <thetext>Comment on attachment 108530
Patch

Attachment 108530 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9831049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472500</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-09-23 14:33:03 -0700</bug_when>
    <thetext>Thanks! It will be very nice to get this landed.

The storage/indexeddb/migrate-basics.html layout test failed when I tried this locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472615</commentid>
    <comment_count>5</comment_count>
      <attachid>108558</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-23 16:41:56 -0700</bug_when>
    <thetext>Created attachment 108558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472619</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-23 16:45:37 -0700</bug_when>
    <thetext>Hooray for tests. Ensure we don&apos;t try and decode a stop key. Passes the storage layout tests now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472642</commentid>
    <comment_count>7</comment_count>
      <attachid>108558</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-23 17:19:59 -0700</bug_when>
    <thetext>Comment on attachment 108558
Patch

Attachment 108558 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9831125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472651</commentid>
    <comment_count>8</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-09-23 17:31:12 -0700</bug_when>
    <thetext>From that bot:
Source/WebCore/storage/IDBLevelDBBackingStore.cpp:225: error: unused variable &apos;p&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473116</commentid>
    <comment_count>9</comment_count>
      <attachid>108558</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-09-26 08:41:48 -0700</bug_when>
    <thetext>Comment on attachment 108558
Patch

Looks good, just a couple of nits.

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

&gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:226
&gt; +    ASSERT(p);

you want ASSERT_UNUSED(p, p);

&gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:291
&gt; +            hasKeyPath = *it-&gt;value().begin();

This works, but I would feel safer if we had specific encode/decode functions for bools. Would you like to add a FIXME about that?

&gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:409
&gt; +    if (!deleteRange(m_currentTransaction.get(), ObjectStoreMetaDataKey::encode(databaseId, objectStoreId, 0), ObjectStoreMetaDataKey::encode(databaseId, objectStoreId, INT64_MAX)))

We try to avoid using INT64_MAX in this file by calling various *encodeMaxKey functions instead. You can add a ObjectStoreMetaDataKey::encodeMaxKey(int databaseId, int objectStoreId) function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473156</commentid>
    <comment_count>10</comment_count>
      <attachid>108681</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-26 09:47:01 -0700</bug_when>
    <thetext>Created attachment 108681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473157</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-09-26 09:53:00 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=108681) [details]
&gt; Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473176</commentid>
    <comment_count>12</comment_count>
      <attachid>108681</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-26 10:21:24 -0700</bug_when>
    <thetext>Comment on attachment 108681
Patch

Tony, can you please review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473179</commentid>
    <comment_count>13</comment_count>
      <attachid>108681</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-09-26 10:28:26 -0700</bug_when>
    <thetext>Comment on attachment 108681
Patch

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

&gt; Source/WebCore/storage/IDBLevelDBBackingStore.cpp:215
&gt; +bool checkObjectStoreAndMetaDataType(const LevelDBIterator* it, const Vector&lt;char&gt;&amp; stopKey, int64_t objectStoreId, int64_t metaDataType)

Nit: Should this function be static?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473204</commentid>
    <comment_count>14</comment_count>
      <attachid>108687</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-26 10:53:36 -0700</bug_when>
    <thetext>Created attachment 108687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473205</commentid>
    <comment_count>15</comment_count>
      <attachid>108687</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-09-26 10:54:28 -0700</bug_when>
    <thetext>Comment on attachment 108687
Patch

Good call on static function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473439</commentid>
    <comment_count>16</comment_count>
      <attachid>108687</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 15:21:29 -0700</bug_when>
    <thetext>Comment on attachment 108687
Patch

Clearing flags on attachment: 108687

Committed r96007: &lt;http://trac.webkit.org/changeset/96007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473440</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 15:21:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108530</attachid>
            <date>2011-09-23 13:52:37 -0700</date>
            <delta_ts>2011-09-23 16:41:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68726-20110923135236.patch</filename>
            <type>text/plain</type>
            <size>6940</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOTI3ZjgzNjUzOGMzNDY5
MDA5ZjAyNzMxOWMwNWQzM2FiNTRkZWYwLi4yMWYxMTEwNjhiMjEzNzI3ZmY1MWM2OTk4ODFiNzVh
MDU0MzUyZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjMgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE51bGwg
a2V5IHBhdGggZ2V0cyBzdG9yZWQgYXMgZW1wdHkgc3RyaW5nIGtleSBwYXRoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGFkZGl0aW9uYWwgZmxh
ZyB0byBpbmRpY2F0ZSBpZiBvYmplY3Qgc3RvcmUga2V5IHBhdGgKKyAgICAgICAgaXMgbnVsbCB2
cy4gZW1wdHkuIEFkZGVkIGFkZGl0aW9uYWwgcnVudGltZSB0ZXN0cyBmb3IgaW50ZWdyaXR5Cisg
ICAgICAgIG9mIG9iamVjdCBzdG9yZSBtZXRhZGF0YS4KKworICAgICAgICAqIHN0b3JhZ2UvSURC
TGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja09iamVjdFN0
b3JlQW5kTWV0YURhdGFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5n
U3RvcmU6OmdldE9iamVjdFN0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFj
a2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJMZXZl
bERCQ29kaW5nLmNwcDoKKwogMjAxMS0wOS0yMiAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIERlZmluZSBleHBvcnQgc3ltYm9sIGNvcnJlY3RseSBkdWUgdG8gcmVu
YW1lIG9mIHBhZ2VTY2FsZUZhY3RvciB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMGEwYTI0NzFjNTQ4MjhhNGI4YzBhM2Zk
MjhlZDYwN2ZiOGU0MDdjNi4uNTE3NzM5NDRiZWM4NWI0ZjYzMmI0ZThiYTkzMGIyYjg0NzYzN2Rh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwCkBAIC0yMTIsNTkgKzIxMiw4OSBAQCBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6
OnNldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdAogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIGNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUo
Y29uc3QgTGV2ZWxEQkl0ZXJhdG9yKiBpdCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IG1ldGFEYXRhVHlwZSkKK3sKKyAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIE9iamVjdFN0b3JlTWV0YURhdGFLZXkgbWV0YURhdGFLZXk7CisgICAg
Y29uc3QgY2hhciogcCA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmRlY29kZShpdC0+a2V5KCku
YmVnaW4oKSwgaXQtPmtleSgpLmVuZCgpLCAmbWV0YURhdGFLZXkpOworICAgIEFTU0VSVChwKTsK
KyAgICBpZiAobWV0YURhdGFLZXkub2JqZWN0U3RvcmVJZCgpICE9IG9iamVjdFN0b3JlSWQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobWV0YURhdGFLZXkubWV0YURhdGFUeXBlKCkg
IT0gbWV0YURhdGFUeXBlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0T2JqZWN0U3RvcmVzKGludDY0
X3QgZGF0YWJhc2VJZCwgVmVjdG9yPGludDY0X3Q+JiBmb3VuZElkcywgVmVjdG9yPFN0cmluZz4m
IGZvdW5kTmFtZXMsIFZlY3RvcjxTdHJpbmc+JiBmb3VuZEtleVBhdGhzLCBWZWN0b3I8Ym9vbD4m
IGZvdW5kQXV0b0luY3JlbWVudEZsYWdzKQogewogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdGFy
dEtleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCAxLCAwKTsK
ICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RvcEtleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6
OmVuY29kZU1heEtleShkYXRhYmFzZUlkKTsKIAogICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+
IGl0ID0gbV9kYi0+Y3JlYXRlSXRlcmF0b3IoKTsKLSAgICBmb3IgKGl0LT5zZWVrKHN0YXJ0S2V5
KTsgaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMDsg
aXQtPm5leHQoKSkgeworICAgIGl0LT5zZWVrKHN0YXJ0S2V5KTsKKyAgICB3aGlsZSAoaXQtPmlz
VmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpIDwgMCkgewogICAgICAg
ICBjb25zdCBjaGFyICpwID0gaXQtPmtleSgpLmJlZ2luKCk7CiAgICAgICAgIGNvbnN0IGNoYXIg
KmxpbWl0ID0gaXQtPmtleSgpLmVuZCgpOwogCiAgICAgICAgIE9iamVjdFN0b3JlTWV0YURhdGFL
ZXkgbWV0YURhdGFLZXk7CiAgICAgICAgIHAgPSBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjpkZWNv
ZGUocCwgbGltaXQsICZtZXRhRGF0YUtleSk7CiAgICAgICAgIEFTU0VSVChwKTsKKyAgICAgICAg
aWYgKG1ldGFEYXRhS2V5Lm1ldGFEYXRhVHlwZSgpKSB7CisgICAgICAgICAgICBMT0dfRVJST1Io
IkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSWQgPSBtZXRhRGF0YUtleS5vYmpl
Y3RTdG9yZUlkKCk7Ci0KICAgICAgICAgU3RyaW5nIG9iamVjdFN0b3JlTmFtZSA9IGRlY29kZVN0
cmluZyhpdC0+dmFsdWUoKS5iZWdpbigpLCBpdC0+dmFsdWUoKS5lbmQoKSk7CiAKICAgICAgICAg
aXQtPm5leHQoKTsKLSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7CisgICAgICAgIGlmICgh
Y2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwgb2JqZWN0U3RvcmVJZCwg
MSkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4i
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBTdHJpbmcga2V5UGF0
aCA9IGRlY29kZVN0cmluZyhpdC0+dmFsdWUoKS5iZWdpbigpLCBpdC0+dmFsdWUoKS5lbmQoKSk7
CisgICAgICAgIGJvb2wgaGFzS2V5UGF0aCA9IHRydWU7CiAKICAgICAgICAgaXQtPm5leHQoKTsK
LSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7CisgICAgICAgIGlmICghY2hlY2tPYmplY3RT
dG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwgb2JqZWN0U3RvcmVJZCwgMikpIHsKICAgICAg
ICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBib29sIGF1dG9JbmNyZW1lbnQgPSAqaXQt
PnZhbHVlKCkuYmVnaW4oKTsKIAogICAgICAgICBpdC0+bmV4dCgpOyAvLyBJcyBldmljYXRibGUu
Ci0gICAgICAgIGlmICghaXQtPmlzVmFsaWQoKSkgeworICAgICAgICBpZiAoIWNoZWNrT2JqZWN0
U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQuZ2V0KCksIG9iamVjdFN0b3JlSWQsIDMpKSB7CiAgICAg
ICAgICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpdC0+bmV4dCgpOyAvLyBMYXN0IHZl
cnNpb24uCi0gICAgICAgIGlmICghaXQtPmlzVmFsaWQoKSkgeworICAgICAgICBpZiAoIWNoZWNr
T2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQuZ2V0KCksIG9iamVjdFN0b3JlSWQsIDQpKSB7
CiAgICAgICAgICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpdC0+bmV4dCgpOyAvLyBN
YXhpdW0gaW5kZXggaWQgYWxsb2NhdGVkLgotICAgICAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgaWYgKCFjaGVja09iamVjdFN0b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBv
YmplY3RTdG9yZUlkLCA1KSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRl
eGVkIERCIGVycm9yLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAg
ICAgaXQtPm5leHQoKTsgLy8gW29wdGlvbmFsXSBoYXMga2V5IHBhdGggKGlzIG5vdCBudWxsKQor
ICAgICAgICBpZiAoY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwgb2Jq
ZWN0U3RvcmVJZCwgNikpIHsKKyAgICAgICAgICAgIGhhc0tleVBhdGggPSAqaXQtPnZhbHVlKCku
YmVnaW4oKTsKKyAgICAgICAgICAgIGlmIChoYXNLZXlQYXRoICYmICFrZXlQYXRoLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJv
ci4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpdC0+bmV4dCgpOworICAgICAgICB9CisKICAgICAgICAgZm91bmRJZHMuYXBwZW5kKG9iamVj
dFN0b3JlSWQpOwogICAgICAgICBmb3VuZE5hbWVzLmFwcGVuZChvYmplY3RTdG9yZU5hbWUpOwot
ICAgICAgICBmb3VuZEtleVBhdGhzLmFwcGVuZChrZXlQYXRoKTsKKyAgICAgICAgZm91bmRLZXlQ
YXRocy5hcHBlbmQoaGFzS2V5UGF0aCA/IGtleVBhdGggOiBTdHJpbmcoKSk7CiAgICAgICAgIGZv
dW5kQXV0b0luY3JlbWVudEZsYWdzLmFwcGVuZChhdXRvSW5jcmVtZW50KTsKICAgICB9CiB9CkBA
IC0yOTgsNiArMzI4LDcgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmpl
Y3RTdG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYKICAgICBjb25zdCBWZWN0
b3I8Y2hhcj4gZXZpY3RhYmxlS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRh
dGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIDMpOwogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBsYXN0
VmVyc2lvbktleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkLCA0KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gbWF4SW5kZXhJZEtleSA9
IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
LCA1KTsKKyAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaGFzS2V5UGF0aEtleSAgPSBPYmplY3RTdG9y
ZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgNik7CiAgICAg
Y29uc3QgVmVjdG9yPGNoYXI+IG5hbWVzS2V5ID0gT2JqZWN0U3RvcmVOYW1lc0tleTo6ZW5jb2Rl
KGRhdGFiYXNlSWQsIG5hbWUpOwogCiAgICAgYm9vbCBvayA9IHB1dFN0cmluZyhtX2N1cnJlbnRU
cmFuc2FjdGlvbi5nZXQoKSwgbmFtZUtleSwgbmFtZSk7CkBAIC0zMzYsNiArMzY3LDEyIEBAIGJv
b2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBkYXRh
YmFzZUlkLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAg
ICBvayA9IHB1dEludChtX2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgaGFzS2V5UGF0aEtleSwg
IWtleVBhdGguaXNOdWxsKCkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgTE9HX0VSUk9SKCJJ
bnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCiAgICAgb2sgPSBwdXRJbnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIG5hbWVzS2V5
LCBvYmplY3RTdG9yZUlkKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIExPR19FUlJPUigiSW50
ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxl
dmVsREJDb2RpbmcuY3BwCmluZGV4IDc1MzFjODVjZGQ2OGNkNGY5N2RhY2MyOTRjMjJiMmYzYWFj
MzhlYWUuLmY2ZmY3NjZhNTg0M2UzM2QyMmY4OGFiYWU1MTZjOTMwODg1YjcwOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcApAQCAtNzEsNiArNzEsNyBA
QAogLy8gICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwgNTAsIG9iamVjdCBzdG9yZSBpZCwgMz4gPT4g
aXMgZXZpY3RhYmxlIFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQogLy8gICAgIDxkYXRhYmFzZSBp
ZCwgMCwgMCwgNTAsIG9iamVjdCBzdG9yZSBpZCwgND4gPT4gbGFzdCAidmVyc2lvbiIgbnVtYmVy
IFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQogLy8gICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwgNTAs
IG9iamVjdCBzdG9yZSBpZCwgNT4gPT4gbWF4aW11bSBpbmRleCBpZCBldmVyIGFsbG9jYXRlZCBb
T2JqZWN0U3RvcmVNZXRhRGF0YUtleV0KKy8vICAgICA8ZGF0YWJhc2UgaWQsIDAsIDAsIDUwLCBv
YmplY3Qgc3RvcmUgaWQsIDY+ID0+IGhhcyBrZXkgcGF0aCAodnMuIG51bGwpIFtPYmplY3RTdG9y
ZU1ldGFEYXRhS2V5XQogLy8KIC8vCiAvLyBJbmRleCBtZXRhLWRhdGE6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108558</attachid>
            <date>2011-09-23 16:41:56 -0700</date>
            <delta_ts>2011-09-26 09:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68726-20110923164155.patch</filename>
            <type>text/plain</type>
            <size>8085</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOTI3ZjgzNjUzOGMzNDY5
MDA5ZjAyNzMxOWMwNWQzM2FiNTRkZWYwLi4yMWYxMTEwNjhiMjEzNzI3ZmY1MWM2OTk4ODFiNzVh
MDU0MzUyZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjMgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE51bGwg
a2V5IHBhdGggZ2V0cyBzdG9yZWQgYXMgZW1wdHkgc3RyaW5nIGtleSBwYXRoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGFkZGl0aW9uYWwgZmxh
ZyB0byBpbmRpY2F0ZSBpZiBvYmplY3Qgc3RvcmUga2V5IHBhdGgKKyAgICAgICAgaXMgbnVsbCB2
cy4gZW1wdHkuIEFkZGVkIGFkZGl0aW9uYWwgcnVudGltZSB0ZXN0cyBmb3IgaW50ZWdyaXR5Cisg
ICAgICAgIG9mIG9iamVjdCBzdG9yZSBtZXRhZGF0YS4KKworICAgICAgICAqIHN0b3JhZ2UvSURC
TGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja09iamVjdFN0
b3JlQW5kTWV0YURhdGFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5n
U3RvcmU6OmdldE9iamVjdFN0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFj
a2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJMZXZl
bERCQ29kaW5nLmNwcDoKKwogMjAxMS0wOS0yMiAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIERlZmluZSBleHBvcnQgc3ltYm9sIGNvcnJlY3RseSBkdWUgdG8gcmVu
YW1lIG9mIHBhZ2VTY2FsZUZhY3RvciB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMGEwYTI0NzFjNTQ4MjhhNGI4YzBhM2Zk
MjhlZDYwN2ZiOGU0MDdjNi4uYjkxYzM2YThmZGI3NTlkNmRlNmZjNjFmNDc3MjFiYzhlOWUzZWM0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwCkBAIC00NSw2ICs0NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBJREJMZXZlbERCQ29kaW5nOwogCisjaWZuZGVmIElOVDY0X01BWAorI2RlZmluZSBJ
TlQ2NF9NQVggMHg3ZmZmZmZmZmZmZmZmZmZmTEwKKyNlbmRpZgorCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgREJPclRyYW5zYWN0aW9uPgogc3RhdGljIGJvb2wgZ2V0SW50KERCT3JUcmFuc2FjdGlvbiog
ZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90JiBmb3VuZEludCkKIHsKQEAgLTIx
Miw1OSArMjE2LDg5IEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6c2V0SURCRGF0YWJh
c2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK2Jvb2wgY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShjb25zdCBMZXZlbERC
SXRlcmF0b3IqIGl0LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHN0b3BLZXksIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBtZXRhRGF0YVR5cGUpCit7CisgICAgaWYgKCFpdC0+aXNWYWxpZCgp
IHx8IGNvbXBhcmVLZXlzKGl0LT5rZXkoKSwgc3RvcEtleSkgPj0gMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgT2JqZWN0U3RvcmVNZXRhRGF0YUtleSBtZXRhRGF0YUtleTsKKyAgICBj
b25zdCBjaGFyKiBwID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZGVjb2RlKGl0LT5rZXkoKS5i
ZWdpbigpLCBpdC0+a2V5KCkuZW5kKCksICZtZXRhRGF0YUtleSk7CisgICAgQVNTRVJUKHApOwor
ICAgIGlmIChtZXRhRGF0YUtleS5vYmplY3RTdG9yZUlkKCkgIT0gb2JqZWN0U3RvcmVJZCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtZXRhRGF0YUtleS5tZXRhRGF0YVR5cGUoKSAh
PSBtZXRhRGF0YVR5cGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogdm9pZCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpnZXRPYmplY3RTdG9yZXMoaW50NjRf
dCBkYXRhYmFzZUlkLCBWZWN0b3I8aW50NjRfdD4mIGZvdW5kSWRzLCBWZWN0b3I8U3RyaW5nPiYg
Zm91bmROYW1lcywgVmVjdG9yPFN0cmluZz4mIGZvdW5kS2V5UGF0aHMsIFZlY3Rvcjxib29sPiYg
Zm91bmRBdXRvSW5jcmVtZW50RmxhZ3MpCiB7CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0YXJ0
S2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIDEsIDApOwog
ICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdG9wS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6
ZW5jb2RlTWF4S2V5KGRhdGFiYXNlSWQpOwogCiAgICAgT3duUHRyPExldmVsREJJdGVyYXRvcj4g
aXQgPSBtX2RiLT5jcmVhdGVJdGVyYXRvcigpOwotICAgIGZvciAoaXQtPnNlZWsoc3RhcnRLZXkp
OyBpdC0+aXNWYWxpZCgpICYmIGNvbXBhcmVLZXlzKGl0LT5rZXkoKSwgc3RvcEtleSkgPCAwOyBp
dC0+bmV4dCgpKSB7CisgICAgaXQtPnNlZWsoc3RhcnRLZXkpOworICAgIHdoaWxlIChpdC0+aXNW
YWxpZCgpICYmIGNvbXBhcmVLZXlzKGl0LT5rZXkoKSwgc3RvcEtleSkgPCAwKSB7CiAgICAgICAg
IGNvbnN0IGNoYXIgKnAgPSBpdC0+a2V5KCkuYmVnaW4oKTsKICAgICAgICAgY29uc3QgY2hhciAq
bGltaXQgPSBpdC0+a2V5KCkuZW5kKCk7CiAKICAgICAgICAgT2JqZWN0U3RvcmVNZXRhRGF0YUtl
eSBtZXRhRGF0YUtleTsKICAgICAgICAgcCA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmRlY29k
ZShwLCBsaW1pdCwgJm1ldGFEYXRhS2V5KTsKICAgICAgICAgQVNTRVJUKHApOworICAgICAgICBp
ZiAobWV0YURhdGFLZXkubWV0YURhdGFUeXBlKCkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigi
SW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQogCiAgICAgICAgIGludDY0X3Qgb2JqZWN0U3RvcmVJZCA9IG1ldGFEYXRhS2V5Lm9iamVj
dFN0b3JlSWQoKTsKLQogICAgICAgICBTdHJpbmcgb2JqZWN0U3RvcmVOYW1lID0gZGVjb2RlU3Ry
aW5nKGl0LT52YWx1ZSgpLmJlZ2luKCksIGl0LT52YWx1ZSgpLmVuZCgpKTsKIAogICAgICAgICBp
dC0+bmV4dCgpOwotICAgICAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKCFj
aGVja09iamVjdFN0b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBzdG9wS2V5LCBvYmplY3RT
dG9yZUlkLCAxKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERC
IGVycm9yLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIFN0cmlu
ZyBrZXlQYXRoID0gZGVjb2RlU3RyaW5nKGl0LT52YWx1ZSgpLmJlZ2luKCksIGl0LT52YWx1ZSgp
LmVuZCgpKTsKKyAgICAgICAgYm9vbCBoYXNLZXlQYXRoID0gdHJ1ZTsKIAogICAgICAgICBpdC0+
bmV4dCgpOwotICAgICAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKCFjaGVj
a09iamVjdFN0b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBzdG9wS2V5LCBvYmplY3RTdG9y
ZUlkLCAyKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVy
cm9yLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGJvb2wgYXV0
b0luY3JlbWVudCA9ICppdC0+dmFsdWUoKS5iZWdpbigpOwogCiAgICAgICAgIGl0LT5uZXh0KCk7
IC8vIElzIGV2aWNhdGJsZS4KLSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7CisgICAgICAg
IGlmICghY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwgc3RvcEtleSwg
b2JqZWN0U3RvcmVJZCwgMykpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5k
ZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAg
ICAgIGl0LT5uZXh0KCk7IC8vIExhc3QgdmVyc2lvbi4KLSAgICAgICAgaWYgKCFpdC0+aXNWYWxp
ZCgpKSB7CisgICAgICAgIGlmICghY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5n
ZXQoKSwgc3RvcEtleSwgb2JqZWN0U3RvcmVJZCwgNCkpIHsKICAgICAgICAgICAgIExPR19FUlJP
UigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCiAgICAgICAgIGl0LT5uZXh0KCk7IC8vIE1heGl1bSBpbmRleCBpZCBhbGxvY2F0
ZWQuCi0gICAgICAgIGlmICghaXQtPmlzVmFsaWQoKSkgeworICAgICAgICBpZiAoIWNoZWNrT2Jq
ZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQuZ2V0KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQs
IDUpKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3Iu
Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBpdC0+bmV4dCgp
OyAvLyBbb3B0aW9uYWxdIGhhcyBrZXkgcGF0aCAoaXMgbm90IG51bGwpCisgICAgICAgIGlmIChj
aGVja09iamVjdFN0b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBzdG9wS2V5LCBvYmplY3RT
dG9yZUlkLCA2KSkgeworICAgICAgICAgICAgaGFzS2V5UGF0aCA9ICppdC0+dmFsdWUoKS5iZWdp
bigpOworICAgICAgICAgICAgaWYgKCFoYXNLZXlQYXRoICYmICFrZXlQYXRoLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4i
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp
dC0+bmV4dCgpOworICAgICAgICB9CisKICAgICAgICAgZm91bmRJZHMuYXBwZW5kKG9iamVjdFN0
b3JlSWQpOwogICAgICAgICBmb3VuZE5hbWVzLmFwcGVuZChvYmplY3RTdG9yZU5hbWUpOwotICAg
ICAgICBmb3VuZEtleVBhdGhzLmFwcGVuZChrZXlQYXRoKTsKKyAgICAgICAgZm91bmRLZXlQYXRo
cy5hcHBlbmQoaGFzS2V5UGF0aCA/IGtleVBhdGggOiBTdHJpbmcoKSk7CiAgICAgICAgIGZvdW5k
QXV0b0luY3JlbWVudEZsYWdzLmFwcGVuZChhdXRvSW5jcmVtZW50KTsKICAgICB9CiB9CkBAIC0y
OTgsNiArMzMyLDcgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYKICAgICBjb25zdCBWZWN0b3I8
Y2hhcj4gZXZpY3RhYmxlS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFi
YXNlSWQsIG9iamVjdFN0b3JlSWQsIDMpOwogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBsYXN0VmVy
c2lvbktleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmpl
Y3RTdG9yZUlkLCA0KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gbWF4SW5kZXhJZEtleSA9IE9i
amVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCA1
KTsKKyAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaGFzS2V5UGF0aEtleSAgPSBPYmplY3RTdG9yZU1l
dGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgNik7CiAgICAgY29u
c3QgVmVjdG9yPGNoYXI+IG5hbWVzS2V5ID0gT2JqZWN0U3RvcmVOYW1lc0tleTo6ZW5jb2RlKGRh
dGFiYXNlSWQsIG5hbWUpOwogCiAgICAgYm9vbCBvayA9IHB1dFN0cmluZyhtX2N1cnJlbnRUcmFu
c2FjdGlvbi5nZXQoKSwgbmFtZUtleSwgbmFtZSk7CkBAIC0zMzYsNiArMzcxLDEyIEBAIGJvb2wg
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBkYXRhYmFz
ZUlkLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBv
ayA9IHB1dEludChtX2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgaGFzS2V5UGF0aEtleSwgIWtl
eVBhdGguaXNOdWxsKCkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgTE9HX0VSUk9SKCJJbnRl
cm5hbCBJbmRleGVkIERCIGVycm9yLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CiAgICAgb2sgPSBwdXRJbnQobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIG5hbWVzS2V5LCBv
YmplY3RTdG9yZUlkKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIExPR19FUlJPUigiSW50ZXJu
YWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKQEAgLTM2NSw3ICs0MDYsNyBAQCB2b2lkIElEQkxldmVs
REJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplYwogICAgIFN0cmluZyBvYmplY3RTdG9yZU5hbWU7CiAgICAgZ2V0U3RyaW5nKG1f
Y3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUo
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgMCksIG9iamVjdFN0b3JlTmFtZSk7CiAKLSAgICBp
ZiAoIWRlbGV0ZVJhbmdlKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBPYmplY3RTdG9yZU1l
dGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgMCksIE9iamVjdFN0
b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCA2KSkpCisg
ICAgaWYgKCFkZWxldGVSYW5nZShtX2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgT2JqZWN0U3Rv
cmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIDApLCBPYmpl
Y3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgSU5U
NjRfTUFYKSkpCiAgICAgICAgIHJldHVybjsgLy8gRklYTUU6IFJlcG9ydCBlcnJvci4KIAogICAg
IG1fY3VycmVudFRyYW5zYWN0aW9uLT5yZW1vdmUoT2JqZWN0U3RvcmVOYW1lc0tleTo6ZW5jb2Rl
KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlTmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNzUzMWM4NWNkZDY4Y2Q0Zjk3ZGFjYzI5NGMyMmIy
ZjNhYWMzOGVhZS4uZjZmZjc2NmE1ODQzZTMzZDIyZjg4YWJhZTUxNmM5MzA4ODViNzA5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3BwCkBAIC03MSw2ICs3
MSw3IEBACiAvLyAgICAgPGRhdGFiYXNlIGlkLCAwLCAwLCA1MCwgb2JqZWN0IHN0b3JlIGlkLCAz
PiA9PiBpcyBldmljdGFibGUgW09iamVjdFN0b3JlTWV0YURhdGFLZXldCiAvLyAgICAgPGRhdGFi
YXNlIGlkLCAwLCAwLCA1MCwgb2JqZWN0IHN0b3JlIGlkLCA0PiA9PiBsYXN0ICJ2ZXJzaW9uIiBu
dW1iZXIgW09iamVjdFN0b3JlTWV0YURhdGFLZXldCiAvLyAgICAgPGRhdGFiYXNlIGlkLCAwLCAw
LCA1MCwgb2JqZWN0IHN0b3JlIGlkLCA1PiA9PiBtYXhpbXVtIGluZGV4IGlkIGV2ZXIgYWxsb2Nh
dGVkIFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQorLy8gICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwg
NTAsIG9iamVjdCBzdG9yZSBpZCwgNj4gPT4gaGFzIGtleSBwYXRoICh2cy4gbnVsbCkgW09iamVj
dFN0b3JlTWV0YURhdGFLZXldCiAvLwogLy8KIC8vIEluZGV4IG1ldGEtZGF0YToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108681</attachid>
            <date>2011-09-26 09:47:01 -0700</date>
            <delta_ts>2011-09-26 10:53:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68726-20110926094700.patch</filename>
            <type>text/plain</type>
            <size>9125</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOTI3ZjgzNjUzOGMzNDY5
MDA5ZjAyNzMxOWMwNWQzM2FiNTRkZWYwLi4yMWYxMTEwNjhiMjEzNzI3ZmY1MWM2OTk4ODFiNzVh
MDU0MzUyZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjMgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE51bGwg
a2V5IHBhdGggZ2V0cyBzdG9yZWQgYXMgZW1wdHkgc3RyaW5nIGtleSBwYXRoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGFkZGl0aW9uYWwgZmxh
ZyB0byBpbmRpY2F0ZSBpZiBvYmplY3Qgc3RvcmUga2V5IHBhdGgKKyAgICAgICAgaXMgbnVsbCB2
cy4gZW1wdHkuIEFkZGVkIGFkZGl0aW9uYWwgcnVudGltZSB0ZXN0cyBmb3IgaW50ZWdyaXR5Cisg
ICAgICAgIG9mIG9iamVjdCBzdG9yZSBtZXRhZGF0YS4KKworICAgICAgICAqIHN0b3JhZ2UvSURC
TGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja09iamVjdFN0
b3JlQW5kTWV0YURhdGFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5n
U3RvcmU6OmdldE9iamVjdFN0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFj
a2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJMZXZl
bERCQ29kaW5nLmNwcDoKKwogMjAxMS0wOS0yMiAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIERlZmluZSBleHBvcnQgc3ltYm9sIGNvcnJlY3RseSBkdWUgdG8gcmVu
YW1lIG9mIHBhZ2VTY2FsZUZhY3RvciB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMGEwYTI0NzFjNTQ4MjhhNGI4YzBhM2Zk
MjhlZDYwN2ZiOGU0MDdjNi4uZWZkNjFiZmIzMzcwNTQ4Yzc4MzBjYmJhZTI4NzQ0ZTY5ZDc3NGUz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwCkBAIC0yMTIsNTkgKzIxMiw5MSBAQCBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6
OnNldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdAogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIGNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUo
Y29uc3QgTGV2ZWxEQkl0ZXJhdG9yKiBpdCwgY29uc3QgVmVjdG9yPGNoYXI+JiBzdG9wS2V5LCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbWV0YURhdGFUeXBlKQoreworICAgIGlmICgh
aXQtPmlzVmFsaWQoKSB8fCBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkpID49IDApCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE9iamVjdFN0b3JlTWV0YURhdGFLZXkgbWV0YURh
dGFLZXk7CisgICAgY29uc3QgY2hhciogcCA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmRlY29k
ZShpdC0+a2V5KCkuYmVnaW4oKSwgaXQtPmtleSgpLmVuZCgpLCAmbWV0YURhdGFLZXkpOworICAg
IEFTU0VSVF9VTlVTRUQocCwgcCk7CisgICAgaWYgKG1ldGFEYXRhS2V5Lm9iamVjdFN0b3JlSWQo
KSAhPSBvYmplY3RTdG9yZUlkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1ldGFE
YXRhS2V5Lm1ldGFEYXRhVHlwZSgpICE9IG1ldGFEYXRhVHlwZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6
OmdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFiYXNlSWQsIFZlY3RvcjxpbnQ2NF90PiYgZm91
bmRJZHMsIFZlY3RvcjxTdHJpbmc+JiBmb3VuZE5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgZm91bmRL
ZXlQYXRocywgVmVjdG9yPGJvb2w+JiBmb3VuZEF1dG9JbmNyZW1lbnRGbGFncykKIHsKICAgICBj
b25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNv
ZGUoZGF0YWJhc2VJZCwgMSwgMCk7CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0b3BLZXkgPSBP
YmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGVNYXhLZXkoZGF0YWJhc2VJZCk7CiAKICAgICBP
d25QdHI8TGV2ZWxEQkl0ZXJhdG9yPiBpdCA9IG1fZGItPmNyZWF0ZUl0ZXJhdG9yKCk7Ci0gICAg
Zm9yIChpdC0+c2VlayhzdGFydEtleSk7IGl0LT5pc1ZhbGlkKCkgJiYgY29tcGFyZUtleXMoaXQt
PmtleSgpLCBzdG9wS2V5KSA8IDA7IGl0LT5uZXh0KCkpIHsKKyAgICBpdC0+c2VlayhzdGFydEtl
eSk7CisgICAgd2hpbGUgKGl0LT5pc1ZhbGlkKCkgJiYgY29tcGFyZUtleXMoaXQtPmtleSgpLCBz
dG9wS2V5KSA8IDApIHsKICAgICAgICAgY29uc3QgY2hhciAqcCA9IGl0LT5rZXkoKS5iZWdpbigp
OwogICAgICAgICBjb25zdCBjaGFyICpsaW1pdCA9IGl0LT5rZXkoKS5lbmQoKTsKIAogICAgICAg
ICBPYmplY3RTdG9yZU1ldGFEYXRhS2V5IG1ldGFEYXRhS2V5OwogICAgICAgICBwID0gT2JqZWN0
U3RvcmVNZXRhRGF0YUtleTo6ZGVjb2RlKHAsIGxpbWl0LCAmbWV0YURhdGFLZXkpOwogICAgICAg
ICBBU1NFUlQocCk7CisgICAgICAgIGlmIChtZXRhRGF0YUtleS5tZXRhRGF0YVR5cGUoKSkgewor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgaW50NjRfdCBvYmplY3RTdG9y
ZUlkID0gbWV0YURhdGFLZXkub2JqZWN0U3RvcmVJZCgpOwotCiAgICAgICAgIFN0cmluZyBvYmpl
Y3RTdG9yZU5hbWUgPSBkZWNvZGVTdHJpbmcoaXQtPnZhbHVlKCkuYmVnaW4oKSwgaXQtPnZhbHVl
KCkuZW5kKCkpOwogCiAgICAgICAgIGl0LT5uZXh0KCk7Ci0gICAgICAgIGlmICghaXQtPmlzVmFs
aWQoKSkgeworICAgICAgICBpZiAoIWNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQu
Z2V0KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQsIDEpKSB7CiAgICAgICAgICAgICBMT0dfRVJS
T1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgU3RyaW5nIGtleVBhdGggPSBkZWNvZGVTdHJpbmcoaXQtPnZhbHVl
KCkuYmVnaW4oKSwgaXQtPnZhbHVlKCkuZW5kKCkpOworICAgICAgICBib29sIGhhc0tleVBhdGgg
PSB0cnVlOwogCiAgICAgICAgIGl0LT5uZXh0KCk7Ci0gICAgICAgIGlmICghaXQtPmlzVmFsaWQo
KSkgeworICAgICAgICBpZiAoIWNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQuZ2V0
KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQsIDIpKSB7CiAgICAgICAgICAgICBMT0dfRVJST1Io
IkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KKyAgICAgICAgLy8gRklYTUU6IEFkZCBlbmNvZGUvZGVjb2RlIGZ1bmN0aW9ucyBmb3Ig
Ym9vbHMKICAgICAgICAgYm9vbCBhdXRvSW5jcmVtZW50ID0gKml0LT52YWx1ZSgpLmJlZ2luKCk7
CiAKICAgICAgICAgaXQtPm5leHQoKTsgLy8gSXMgZXZpY2F0YmxlLgotICAgICAgICBpZiAoIWl0
LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKCFjaGVja09iamVjdFN0b3JlQW5kTWV0YURhdGFU
eXBlKGl0LmdldCgpLCBzdG9wS2V5LCBvYmplY3RTdG9yZUlkLCAzKSkgewogICAgICAgICAgICAg
TE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKICAgICAgICAgaXQtPm5leHQoKTsgLy8gTGFzdCB2ZXJzaW9uLgot
ICAgICAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKCFjaGVja09iamVjdFN0
b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBzdG9wS2V5LCBvYmplY3RTdG9yZUlkLCA0KSkg
ewogICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgaXQtPm5leHQoKTsgLy8g
TWF4aXVtIGluZGV4IGlkIGFsbG9jYXRlZC4KLSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7
CisgICAgICAgIGlmICghY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwg
c3RvcEtleSwgb2JqZWN0U3RvcmVJZCwgNSkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiSW50
ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCisgICAgICAgIGl0LT5uZXh0KCk7IC8vIFtvcHRpb25hbF0gaGFzIGtleSBwYXRoIChpcyBu
b3QgbnVsbCkKKyAgICAgICAgaWYgKGNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQu
Z2V0KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQsIDYpKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogQWRkIGVuY29kZS9kZWNvZGUgZnVuY3Rpb25zIGZvciBib29scworICAgICAgICAgICAgaGFz
S2V5UGF0aCA9ICppdC0+dmFsdWUoKS5iZWdpbigpOworICAgICAgICAgICAgaWYgKCFoYXNLZXlQ
YXRoICYmICFrZXlQYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExPR19FUlJPUigi
SW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpdC0+bmV4dCgpOworICAgICAgICB9CisKICAgICAg
ICAgZm91bmRJZHMuYXBwZW5kKG9iamVjdFN0b3JlSWQpOwogICAgICAgICBmb3VuZE5hbWVzLmFw
cGVuZChvYmplY3RTdG9yZU5hbWUpOwotICAgICAgICBmb3VuZEtleVBhdGhzLmFwcGVuZChrZXlQ
YXRoKTsKKyAgICAgICAgZm91bmRLZXlQYXRocy5hcHBlbmQoaGFzS2V5UGF0aCA/IGtleVBhdGgg
OiBTdHJpbmcoKSk7CiAgICAgICAgIGZvdW5kQXV0b0luY3JlbWVudEZsYWdzLmFwcGVuZChhdXRv
SW5jcmVtZW50KTsKICAgICB9CiB9CkBAIC0yOTgsNiArMzMwLDcgQEAgYm9vbCBJREJMZXZlbERC
QmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0
IFN0cmluZyYKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gZXZpY3RhYmxlS2V5ID0gT2JqZWN0U3Rv
cmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIDMpOwogICAg
IGNvbnN0IFZlY3RvcjxjaGFyPiBsYXN0VmVyc2lvbktleSA9IE9iamVjdFN0b3JlTWV0YURhdGFL
ZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCA0KTsKICAgICBjb25zdCBWZWN0
b3I8Y2hhcj4gbWF4SW5kZXhJZEtleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShk
YXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCA1KTsKKyAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaGFz
S2V5UGF0aEtleSAgPSBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwg
b2JqZWN0U3RvcmVJZCwgNik7CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IG5hbWVzS2V5ID0gT2Jq
ZWN0U3RvcmVOYW1lc0tleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG5hbWUpOwogCiAgICAgYm9vbCBv
ayA9IHB1dFN0cmluZyhtX2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgbmFtZUtleSwgbmFtZSk7
CkBAIC0zMzYsNiArMzY5LDEyIEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRl
T2JqZWN0U3RvcmUoaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBvayA9IHB1dEludChtX2N1cnJlbnRUcmFuc2FjdGlv
bi5nZXQoKSwgaGFzS2V5UGF0aEtleSwgIWtleVBhdGguaXNOdWxsKCkpOworICAgIGlmICghb2sp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgb2sgPSBwdXRJbnQobV9jdXJyZW50VHJh
bnNhY3Rpb24uZ2V0KCksIG5hbWVzS2V5LCBvYmplY3RTdG9yZUlkKTsKICAgICBpZiAoIW9rKSB7
CiAgICAgICAgIExPR19FUlJPUigiSW50ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKQEAgLTM2
NSw3ICs0MDQsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0
b3JlKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplYwogICAgIFN0cmluZyBvYmplY3RT
dG9yZU5hbWU7CiAgICAgZ2V0U3RyaW5nKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBPYmpl
Y3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgMCks
IG9iamVjdFN0b3JlTmFtZSk7CiAKLSAgICBpZiAoIWRlbGV0ZVJhbmdlKG1fY3VycmVudFRyYW5z
YWN0aW9uLmdldCgpLCBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwg
b2JqZWN0U3RvcmVJZCwgMCksIE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZUlkLCA2KSkpCisgICAgaWYgKCFkZWxldGVSYW5nZShtX2N1cnJlbnRU
cmFuc2FjdGlvbi5nZXQoKSwgT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIDApLCBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGVNYXhL
ZXkoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpKQogICAgICAgICByZXR1cm47IC8vIEZJWE1F
OiBSZXBvcnQgZXJyb3IuCiAKICAgICBtX2N1cnJlbnRUcmFuc2FjdGlvbi0+cmVtb3ZlKE9iamVj
dFN0b3JlTmFtZXNLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZU5hbWUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuY3BwCmluZGV4IDc1MzFjODVj
ZGQ2OGNkNGY5N2RhY2MyOTRjMjJiMmYzYWFjMzhlYWUuLjE5MWY2MWVmZmQ2OWU5YWNlYWUzODNi
YmQ2YzZkODQ5MTIzN2YzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
TGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERC
Q29kaW5nLmNwcApAQCAtNzEsNiArNzEsNyBAQAogLy8gICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwg
NTAsIG9iamVjdCBzdG9yZSBpZCwgMz4gPT4gaXMgZXZpY3RhYmxlIFtPYmplY3RTdG9yZU1ldGFE
YXRhS2V5XQogLy8gICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwgNTAsIG9iamVjdCBzdG9yZSBpZCwg
ND4gPT4gbGFzdCAidmVyc2lvbiIgbnVtYmVyIFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQogLy8g
ICAgIDxkYXRhYmFzZSBpZCwgMCwgMCwgNTAsIG9iamVjdCBzdG9yZSBpZCwgNT4gPT4gbWF4aW11
bSBpbmRleCBpZCBldmVyIGFsbG9jYXRlZCBbT2JqZWN0U3RvcmVNZXRhRGF0YUtleV0KKy8vICAg
ICA8ZGF0YWJhc2UgaWQsIDAsIDAsIDUwLCBvYmplY3Qgc3RvcmUgaWQsIDY+ID0+IGhhcyBrZXkg
cGF0aCAodnMuIG51bGwpIFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQogLy8KIC8vCiAvLyBJbmRl
eCBtZXRhLWRhdGE6CkBAIC04NzcsNiArODc4LDExIEBAIFZlY3RvcjxjaGFyPiBPYmplY3RTdG9y
ZU1ldGFEYXRhS2V5OjplbmNvZGVNYXhLZXkoaW50NjRfdCBkYXRhYmFzZUlkKQogICAgIHJldHVy
biBlbmNvZGUoZGF0YWJhc2VJZCwgSU5UNjRfTUFYLCBJTlQ2NF9NQVgpOwogfQogCitWZWN0b3I8
Y2hhcj4gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlTWF4S2V5KGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQoreworICAgIHJldHVybiBlbmNvZGUoZGF0YWJh
c2VJZCwgb2JqZWN0U3RvcmVJZCwgSU5UNjRfTUFYKTsKK30KKwogaW50NjRfdCBPYmplY3RTdG9y
ZU1ldGFEYXRhS2V5OjpvYmplY3RTdG9yZUlkKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9vYmpl
Y3RTdG9yZUlkID49IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJM
ZXZlbERCQ29kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2Rpbmcu
aAppbmRleCA0ZTcwMmNkZmVhMDhiNzQ1ZDdkZjA1ODJhMWE2YWQ0MWQ4NTlkOWZhLi40NTVjNjEx
YmFjNmVhYjRmMThjNWFlOTczODZlZGU1MWM1NThhOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQkxldmVsREJDb2RpbmcuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3QgY2hhciogZGVjb2RlKGNvbnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBjaGFyKiBs
aW1pdCwgT2JqZWN0U3RvcmVNZXRhRGF0YUtleSogcmVzdWx0KTsKICAgICBzdGF0aWMgVmVjdG9y
PGNoYXI+IGVuY29kZShpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBtZXRhRGF0YVR5cGUpOwogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4gZW5jb2RlTWF4
S2V5KGludDY0X3QgZGF0YWJhc2VJZCk7CisgICAgc3RhdGljIFZlY3RvcjxjaGFyPiBlbmNvZGVN
YXhLZXkoaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogICAgIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCgpIGNvbnN0OwogICAgIGludDY0X3QgbWV0YURhdGFUeXBlKCkg
Y29uc3Q7CiAgICAgaW50IGNvbXBhcmUoY29uc3QgT2JqZWN0U3RvcmVNZXRhRGF0YUtleSYgb3Ro
ZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108687</attachid>
            <date>2011-09-26 10:53:36 -0700</date>
            <delta_ts>2011-09-26 15:21:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68726-20110926105335.patch</filename>
            <type>text/plain</type>
            <size>9175</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNzU5YzhlZGRhNjkxM2Mw
NDNkNTM3OWJhMTVjMjI1NThiMTk4NjJmLi5jNTY0Y2I2ZjdlOWU1MTc4NTVlZjFlYTUwMzQ2ODk4
ZTk5NGQ5N2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjYgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE51bGwg
a2V5IHBhdGggZ2V0cyBzdG9yZWQgYXMgZW1wdHkgc3RyaW5nIGtleSBwYXRoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGFkZGl0aW9uYWwgZmxh
ZyB0byBpbmRpY2F0ZSBpZiBvYmplY3Qgc3RvcmUga2V5IHBhdGgKKyAgICAgICAgaXMgbnVsbCB2
cy4gZW1wdHkuIEFkZGVkIGFkZGl0aW9uYWwgcnVudGltZSB0ZXN0cyBmb3IgaW50ZWdyaXR5Cisg
ICAgICAgIG9mIG9iamVjdCBzdG9yZSBtZXRhZGF0YS4KKworICAgICAgICAqIHN0b3JhZ2UvSURC
TGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja09iamVjdFN0
b3JlQW5kTWV0YURhdGFUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5n
U3RvcmU6OmdldE9iamVjdFN0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFj
a2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJMZXZl
bERCQ29kaW5nLmNwcDoKKwogMjAxMS0wOS0yNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFttYWNdIFRpbWVzdGFtcCBwYXJhbWV0ZXIgdG8gcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIGlzIGJ1c3RlZCBpbiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
VElNRVIpIHBhdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxE
QkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNr
aW5nU3RvcmUuY3BwCmluZGV4IDBhMGEyNDcxYzU0ODI4YTRiOGMwYTNmZDI4ZWQ2MDdmYjhlNDA3
YzYuLmU2NmVkNjI0YWQyM2IxNDQ4MWZmODE2ZDI1ODkwMDM1YjJiZWUwMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcApAQCAtMjEy
LDU5ICsyMTIsOTEgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpzZXRJREJEYXRhYmFz
ZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorc3RhdGljIGJvb2wgY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShjb25zdCBM
ZXZlbERCSXRlcmF0b3IqIGl0LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHN0b3BLZXksIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBtZXRhRGF0YVR5cGUpCit7CisgICAgaWYgKCFpdC0+aXNW
YWxpZCgpIHx8IGNvbXBhcmVLZXlzKGl0LT5rZXkoKSwgc3RvcEtleSkgPj0gMCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgT2JqZWN0U3RvcmVNZXRhRGF0YUtleSBtZXRhRGF0YUtleTsK
KyAgICBjb25zdCBjaGFyKiBwID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZGVjb2RlKGl0LT5r
ZXkoKS5iZWdpbigpLCBpdC0+a2V5KCkuZW5kKCksICZtZXRhRGF0YUtleSk7CisgICAgQVNTRVJU
X1VOVVNFRChwLCBwKTsKKyAgICBpZiAobWV0YURhdGFLZXkub2JqZWN0U3RvcmVJZCgpICE9IG9i
amVjdFN0b3JlSWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobWV0YURhdGFLZXku
bWV0YURhdGFUeXBlKCkgIT0gbWV0YURhdGFUeXBlKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0T2Jq
ZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgVmVjdG9yPGludDY0X3Q+JiBmb3VuZElkcywg
VmVjdG9yPFN0cmluZz4mIGZvdW5kTmFtZXMsIFZlY3RvcjxTdHJpbmc+JiBmb3VuZEtleVBhdGhz
LCBWZWN0b3I8Ym9vbD4mIGZvdW5kQXV0b0luY3JlbWVudEZsYWdzKQogewogICAgIGNvbnN0IFZl
Y3RvcjxjaGFyPiBzdGFydEtleSA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRh
YmFzZUlkLCAxLCAwKTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RvcEtleSA9IE9iamVjdFN0
b3JlTWV0YURhdGFLZXk6OmVuY29kZU1heEtleShkYXRhYmFzZUlkKTsKIAogICAgIE93blB0cjxM
ZXZlbERCSXRlcmF0b3I+IGl0ID0gbV9kYi0+Y3JlYXRlSXRlcmF0b3IoKTsKLSAgICBmb3IgKGl0
LT5zZWVrKHN0YXJ0S2V5KTsgaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCks
IHN0b3BLZXkpIDwgMDsgaXQtPm5leHQoKSkgeworICAgIGl0LT5zZWVrKHN0YXJ0S2V5KTsKKyAg
ICB3aGlsZSAoaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BLZXkp
IDwgMCkgewogICAgICAgICBjb25zdCBjaGFyICpwID0gaXQtPmtleSgpLmJlZ2luKCk7CiAgICAg
ICAgIGNvbnN0IGNoYXIgKmxpbWl0ID0gaXQtPmtleSgpLmVuZCgpOwogCiAgICAgICAgIE9iamVj
dFN0b3JlTWV0YURhdGFLZXkgbWV0YURhdGFLZXk7CiAgICAgICAgIHAgPSBPYmplY3RTdG9yZU1l
dGFEYXRhS2V5OjpkZWNvZGUocCwgbGltaXQsICZtZXRhRGF0YUtleSk7CiAgICAgICAgIEFTU0VS
VChwKTsKKyAgICAgICAgaWYgKG1ldGFEYXRhS2V5Lm1ldGFEYXRhVHlwZSgpKSB7CisgICAgICAg
ICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSWQgPSBt
ZXRhRGF0YUtleS5vYmplY3RTdG9yZUlkKCk7Ci0KICAgICAgICAgU3RyaW5nIG9iamVjdFN0b3Jl
TmFtZSA9IGRlY29kZVN0cmluZyhpdC0+dmFsdWUoKS5iZWdpbigpLCBpdC0+dmFsdWUoKS5lbmQo
KSk7CiAKICAgICAgICAgaXQtPm5leHQoKTsKLSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7
CisgICAgICAgIGlmICghY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwg
c3RvcEtleSwgb2JqZWN0U3RvcmVJZCwgMSkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiSW50
ZXJuYWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBTdHJpbmcga2V5UGF0aCA9IGRlY29kZVN0cmluZyhpdC0+dmFsdWUoKS5iZWdp
bigpLCBpdC0+dmFsdWUoKS5lbmQoKSk7CisgICAgICAgIGJvb2wgaGFzS2V5UGF0aCA9IHRydWU7
CiAKICAgICAgICAgaXQtPm5leHQoKTsKLSAgICAgICAgaWYgKCFpdC0+aXNWYWxpZCgpKSB7Cisg
ICAgICAgIGlmICghY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwgc3Rv
cEtleSwgb2JqZWN0U3RvcmVJZCwgMikpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiSW50ZXJu
YWwgSW5kZXhlZCBEQiBlcnJvci4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
ICAgICAgICAvLyBGSVhNRTogQWRkIGVuY29kZS9kZWNvZGUgZnVuY3Rpb25zIGZvciBib29scwog
ICAgICAgICBib29sIGF1dG9JbmNyZW1lbnQgPSAqaXQtPnZhbHVlKCkuYmVnaW4oKTsKIAogICAg
ICAgICBpdC0+bmV4dCgpOyAvLyBJcyBldmljYXRibGUuCi0gICAgICAgIGlmICghaXQtPmlzVmFs
aWQoKSkgeworICAgICAgICBpZiAoIWNoZWNrT2JqZWN0U3RvcmVBbmRNZXRhRGF0YVR5cGUoaXQu
Z2V0KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQsIDMpKSB7CiAgICAgICAgICAgICBMT0dfRVJS
T1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAogICAgICAgICBpdC0+bmV4dCgpOyAvLyBMYXN0IHZlcnNpb24uCi0gICAgICAg
IGlmICghaXQtPmlzVmFsaWQoKSkgeworICAgICAgICBpZiAoIWNoZWNrT2JqZWN0U3RvcmVBbmRN
ZXRhRGF0YVR5cGUoaXQuZ2V0KCksIHN0b3BLZXksIG9iamVjdFN0b3JlSWQsIDQpKSB7CiAgICAg
ICAgICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpdC0+bmV4dCgpOyAvLyBNYXhpdW0g
aW5kZXggaWQgYWxsb2NhdGVkLgotICAgICAgICBpZiAoIWl0LT5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgaWYgKCFjaGVja09iamVjdFN0b3JlQW5kTWV0YURhdGFUeXBlKGl0LmdldCgpLCBzdG9wS2V5
LCBvYmplY3RTdG9yZUlkLCA1KSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJ
bmRleGVkIERCIGVycm9yLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAg
ICAgICAgaXQtPm5leHQoKTsgLy8gW29wdGlvbmFsXSBoYXMga2V5IHBhdGggKGlzIG5vdCBudWxs
KQorICAgICAgICBpZiAoY2hlY2tPYmplY3RTdG9yZUFuZE1ldGFEYXRhVHlwZShpdC5nZXQoKSwg
c3RvcEtleSwgb2JqZWN0U3RvcmVJZCwgNikpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQg
ZW5jb2RlL2RlY29kZSBmdW5jdGlvbnMgZm9yIGJvb2xzCisgICAgICAgICAgICBoYXNLZXlQYXRo
ID0gKml0LT52YWx1ZSgpLmJlZ2luKCk7CisgICAgICAgICAgICBpZiAoIWhhc0tleVBhdGggJiYg
IWtleVBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnRlcm5h
bCBJbmRleGVkIERCIGVycm9yLiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGl0LT5uZXh0KCk7CisgICAgICAgIH0KKwogICAgICAgICBmb3Vu
ZElkcy5hcHBlbmQob2JqZWN0U3RvcmVJZCk7CiAgICAgICAgIGZvdW5kTmFtZXMuYXBwZW5kKG9i
amVjdFN0b3JlTmFtZSk7Ci0gICAgICAgIGZvdW5kS2V5UGF0aHMuYXBwZW5kKGtleVBhdGgpOwor
ICAgICAgICBmb3VuZEtleVBhdGhzLmFwcGVuZChoYXNLZXlQYXRoID8ga2V5UGF0aCA6IFN0cmlu
ZygpKTsKICAgICAgICAgZm91bmRBdXRvSW5jcmVtZW50RmxhZ3MuYXBwZW5kKGF1dG9JbmNyZW1l
bnQpOwogICAgIH0KIH0KQEAgLTI5OCw2ICszMzAsNyBAQCBib29sIElEQkxldmVsREJCYWNraW5n
U3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5n
JgogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBldmljdGFibGVLZXkgPSBPYmplY3RTdG9yZU1ldGFE
YXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgMyk7CiAgICAgY29uc3Qg
VmVjdG9yPGNoYXI+IGxhc3RWZXJzaW9uS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5j
b2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIDQpOwogICAgIGNvbnN0IFZlY3RvcjxjaGFy
PiBtYXhJbmRleElkS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIDUpOworICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBoYXNLZXlQYXRo
S2V5ICA9IE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RT
dG9yZUlkLCA2KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gbmFtZXNLZXkgPSBPYmplY3RTdG9y
ZU5hbWVzS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgbmFtZSk7CiAKICAgICBib29sIG9rID0gcHV0
U3RyaW5nKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBuYW1lS2V5LCBuYW1lKTsKQEAgLTMz
Niw2ICszNjksMTIgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAorICAgIG9rID0gcHV0SW50KG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgp
LCBoYXNLZXlQYXRoS2V5LCAha2V5UGF0aC5pc051bGwoKSk7CisgICAgaWYgKCFvaykgeworICAg
ICAgICBMT0dfRVJST1IoIkludGVybmFsIEluZGV4ZWQgREIgZXJyb3IuIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBvayA9IHB1dEludChtX2N1cnJlbnRUcmFuc2FjdGlv
bi5nZXQoKSwgbmFtZXNLZXksIG9iamVjdFN0b3JlSWQpOwogICAgIGlmICghb2spIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJJbnRlcm5hbCBJbmRleGVkIERCIGVycm9yLiIpOwpAQCAtMzY1LDcgKzQw
NCw3IEBAIHZvaWQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjCiAgICAgU3RyaW5nIG9iamVjdFN0b3JlTmFt
ZTsKICAgICBnZXRTdHJpbmcobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIE9iamVjdFN0b3Jl
TWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCAwKSwgb2JqZWN0
U3RvcmVOYW1lKTsKIAotICAgIGlmICghZGVsZXRlUmFuZ2UobV9jdXJyZW50VHJhbnNhY3Rpb24u
Z2V0KCksIE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RT
dG9yZUlkLCAwKSwgT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9i
amVjdFN0b3JlSWQsIDYpKSkKKyAgICBpZiAoIWRlbGV0ZVJhbmdlKG1fY3VycmVudFRyYW5zYWN0
aW9uLmdldCgpLCBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2Jq
ZWN0U3RvcmVJZCwgMCksIE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OmVuY29kZU1heEtleShkYXRh
YmFzZUlkLCBvYmplY3RTdG9yZUlkKSkpCiAgICAgICAgIHJldHVybjsgLy8gRklYTUU6IFJlcG9y
dCBlcnJvci4KIAogICAgIG1fY3VycmVudFRyYW5zYWN0aW9uLT5yZW1vdmUoT2JqZWN0U3RvcmVO
YW1lc0tleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlTmFtZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQ29kaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNzUzMWM4NWNkZDY4Y2Q0
Zjk3ZGFjYzI5NGMyMmIyZjNhYWMzOGVhZS4uMTkxZjYxZWZmZDY5ZTlhY2VhZTM4M2JiZDZjNmQ4
NDkxMjM3ZjMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERC
Q29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJDb2Rpbmcu
Y3BwCkBAIC03MSw2ICs3MSw3IEBACiAvLyAgICAgPGRhdGFiYXNlIGlkLCAwLCAwLCA1MCwgb2Jq
ZWN0IHN0b3JlIGlkLCAzPiA9PiBpcyBldmljdGFibGUgW09iamVjdFN0b3JlTWV0YURhdGFLZXld
CiAvLyAgICAgPGRhdGFiYXNlIGlkLCAwLCAwLCA1MCwgb2JqZWN0IHN0b3JlIGlkLCA0PiA9PiBs
YXN0ICJ2ZXJzaW9uIiBudW1iZXIgW09iamVjdFN0b3JlTWV0YURhdGFLZXldCiAvLyAgICAgPGRh
dGFiYXNlIGlkLCAwLCAwLCA1MCwgb2JqZWN0IHN0b3JlIGlkLCA1PiA9PiBtYXhpbXVtIGluZGV4
IGlkIGV2ZXIgYWxsb2NhdGVkIFtPYmplY3RTdG9yZU1ldGFEYXRhS2V5XQorLy8gICAgIDxkYXRh
YmFzZSBpZCwgMCwgMCwgNTAsIG9iamVjdCBzdG9yZSBpZCwgNj4gPT4gaGFzIGtleSBwYXRoICh2
cy4gbnVsbCkgW09iamVjdFN0b3JlTWV0YURhdGFLZXldCiAvLwogLy8KIC8vIEluZGV4IG1ldGEt
ZGF0YToKQEAgLTg3Nyw2ICs4NzgsMTEgQEAgVmVjdG9yPGNoYXI+IE9iamVjdFN0b3JlTWV0YURh
dGFLZXk6OmVuY29kZU1heEtleShpbnQ2NF90IGRhdGFiYXNlSWQpCiAgICAgcmV0dXJuIGVuY29k
ZShkYXRhYmFzZUlkLCBJTlQ2NF9NQVgsIElOVDY0X01BWCk7CiB9CiAKK1ZlY3RvcjxjaGFyPiBP
YmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGVNYXhLZXkoaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQpCit7CisgICAgcmV0dXJuIGVuY29kZShkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkLCBJTlQ2NF9NQVgpOworfQorCiBpbnQ2NF90IE9iamVjdFN0b3JlTWV0YURh
dGFLZXk6Om9iamVjdFN0b3JlSWQoKSBjb25zdAogewogICAgIEFTU0VSVChtX29iamVjdFN0b3Jl
SWQgPj0gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJD
b2RpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5oCmluZGV4
IDRlNzAyY2RmZWEwOGI3NDVkN2RmMDU4MmExYTZhZDQxZDg1OWQ5ZmEuLjQ1NWM2MTFiYWM2ZWFi
NGYxOGM1YWU5NzM4NmVkZTUxYzU1OGE5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCTGV2ZWxEQkNvZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
TGV2ZWxEQkNvZGluZy5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBkZWNvZGUoY29uc3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGxpbWl0LCBP
YmplY3RTdG9yZU1ldGFEYXRhS2V5KiByZXN1bHQpOwogICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4g
ZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IG1ldGFEYXRhVHlwZSk7CiAgICAgc3RhdGljIFZlY3RvcjxjaGFyPiBlbmNvZGVNYXhLZXkoaW50
NjRfdCBkYXRhYmFzZUlkKTsKKyAgICBzdGF0aWMgVmVjdG9yPGNoYXI+IGVuY29kZU1heEtleShp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAgICAgaW50NjRfdCBv
YmplY3RTdG9yZUlkKCkgY29uc3Q7CiAgICAgaW50NjRfdCBtZXRhRGF0YVR5cGUoKSBjb25zdDsK
ICAgICBpbnQgY29tcGFyZShjb25zdCBPYmplY3RTdG9yZU1ldGFEYXRhS2V5JiBvdGhlcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>