<?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>50209</bug_id>
          
          <creation_ts>2010-11-29 22:35:58 -0800</creation_ts>
          <short_desc>MediaPlayer should try all installed media engines</short_desc>
          <delta_ts>2010-12-15 09:28:39 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314864</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-29 22:35:58 -0800</bug_when>
    <thetext>When a file load fails before reaching HAVE_METADATA and there is more than one registered media engine, MediaPlayer.cpp should try loading with the next installed engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315424</commentid>
    <comment_count>1</comment_count>
      <attachid>75233</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-30 17:05:58 -0800</bug_when>
    <thetext>Created attachment 75233
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318814</commentid>
    <comment_count>2</comment_count>
      <attachid>75913</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-12-08 09:03:15 -0800</bug_when>
    <thetext>Created attachment 75913
Updated patch

Updated to behave correctly when retrying when there is no MIME type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318940</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-08 12:24:43 -0800</bug_when>
    <thetext>Attachment 75913 did not build on mac:
Build output: http://queues.webkit.org/results/6754115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318944</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-08 12:27:55 -0800</bug_when>
    <thetext>Attachment 75913 did not build on qt:
Build output: http://queues.webkit.org/results/6719133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318948</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-08 12:40:29 -0800</bug_when>
    <thetext>Attachment 75913 did not build on chromium:
Build output: http://queues.webkit.org/results/6862077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318999</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-08 13:45:27 -0800</bug_when>
    <thetext>Attachment 75913 did not build on win:
Build output: http://queues.webkit.org/results/6720123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319174</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-08 18:11:34 -0800</bug_when>
    <thetext>Attachment 75913 did not build on chromium:
Build output: http://queues.webkit.org/results/6759127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319459</commentid>
    <comment_count>8</comment_count>
      <attachid>76064</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-12-09 07:40:01 -0800</bug_when>
    <thetext>Created attachment 76064
Patch that might compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319866</commentid>
    <comment_count>9</comment_count>
      <attachid>76064</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-12-09 18:50:32 -0800</bug_when>
    <thetext>Comment on attachment 76064
Patch that might compile

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

&gt; WebCore/platform/graphics/MediaPlayer.cpp:233
&gt;      unsigned count = engines.size();
&gt;      for (unsigned ndx = 0; ndx &lt; count; ndx++) {

(see comment below)

&gt; WebCore/platform/graphics/MediaPlayer.cpp:257
&gt; +    Vector&lt;MediaPlayerFactory*&gt;&amp; engines = installedMediaEngines();
&gt; +    if (engines.isEmpty())
&gt; +        return 0;
&gt; +
&gt; +    MediaPlayerFactory* engine = 0;
&gt; +    unsigned count = engines.size();
&gt; +    for (unsigned ndx = 0; ndx &lt; count; ndx++) {

I recently learned that Vector::size() is size_t, and on 64bit systems may be 64bits,
but unsigned is always 32bits. Although it probably isn&apos;t an issue here (count and
ndx), its something to keep in mind for future code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322427</commentid>
    <comment_count>10</comment_count>
      <attachid>76064</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-14 18:30:52 -0800</bug_when>
    <thetext>Comment on attachment 76064
Patch that might compile

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

&gt; WebCore/platform/graphics/MediaPlayer.cpp:253
&gt; +    if (engines.isEmpty())
&gt; +        return 0;

No need for a special case. The normal code path handles an empty vector just fine.

&gt;&gt; WebCore/platform/graphics/MediaPlayer.cpp:257
&gt;&gt; +    for (unsigned ndx = 0; ndx &lt; count; ndx++) {
&gt; 
&gt; I recently learned that Vector::size() is size_t, and on 64bit systems may be 64bits,
&gt; but unsigned is always 32bits. Although it probably isn&apos;t an issue here (count and
&gt; ndx), its something to keep in mind for future code.

Yes, better style to use size_t here. Also, we normally prefer “i” over “ndx”. And I would call it size rather than count, just to make it clearer that it just reflects the size function result.

&gt; WebCore/platform/graphics/MediaPlayer.cpp:264
&gt; +        if (current) {
&gt; +            if (current == engines[ndx])
&gt; +                current = 0;
&gt; +            continue;
&gt; +        }
&gt; +        engine = engines[ndx];
&gt; +        break;

The logic here is a little convoluted. You could write this more clearly by just saying “if (!current) return first&quot; and for the non-zero case using the find function that vectors have without writing out a loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322630</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-12-15 09:28:39 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74118</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75233</attachid>
            <date>2010-11-30 17:05:58 -0800</date>
            <delta_ts>2010-12-08 09:03:15 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_3.txt</filename>
            <type>text/plain</type>
            <size>8405</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3Mjg4NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTEtMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWFQbGF5ZXIgc2hvdWxkIHRyeSBhbGwgaW5zdGFsbGVkIG1lZGlhIGVuZ2luZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjA5CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpiZXN0RW5naW5lRm9yVHlwZUFuZENvZGVjcyk6IFJlbmFtZSBmcm9tIGNob29zZUJlc3RF
bmdpbmVGb3JUeXBlQW5kQ29kZWNzLiBUYWtlIG9wdGlvbmFsCisgICAgICAgIHBhcmFtZXRlciBm
b3IgY3VycmVudCBlbmdpbmUuIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlh
UGxheWVyKTogSW5pdGlhbGl6ZSByZWxvYWQgdGltZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6bG9hZCk6IFN0b3JlIHVybCwgbWltZSB0eXBlLCBhbmQgY29kZWNzIHBhcmFtZXRl
ciBpbiBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Omxv
YWRXaXRoTmV4dE1lZGlhRW5naW5lKTogTmV3LCBpbml0aWF0ZSBsb2FkaW5nIHdpdGggdGhlIG5l
eHQgbWVkaWEgZW5naW5lLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRz
VHlwZSk6IE1ha2UgY29udGVudFR5cGUgcGFyYW1ldGVyIGNvbnN0LgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpOiBOZXcsIGNhbGwgbG9hZFdpdGhOZXh0
TWVkaWFFbmdpbmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRl
Q2hhbmdlZCk6IElmIG5ldHdvcmsgc3RhdGUgc2lnbmFscyBhIGZhaWx1cmUgYW5kIHRoZSBmaWxl
J3MKKyAgICAgICAgbWV0YWRhdGEgaGFzIG5vdCBsb2FkZWQsIGdpdmUgdGhlIG5leHQgaW5zdGFs
bGVkIGVuZ2luZSBhIHRyeS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorCiAyMDEwLTExLTI5ICBEYWkgTWlrdXJ1YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiA3Mjc5NykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEs
NyArMTYxLDcgQEAgc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSA6IE5vbmNvcHlhYmxlIAogfTsK
IAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIsIE1l
ZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKTsKLXN0YXRp
YyBNZWRpYVBsYXllckZhY3RvcnkqIGNob29zZUJlc3RFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpOworc3RhdGljIE1lZGlhUGxh
eWVyRmFjdG9yeSogYmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIGNvZGVjcywgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50ID0gMCk7
CiAKIHN0YXRpYyBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4mIGluc3RhbGxlZE1lZGlhRW5n
aW5lcygpIAogewpAQCAtMjA5LDEwICsyMDksMTIgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgY29kZWNzKCkKICAgICByZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJG
YWN0b3J5KiBjaG9vc2VCZXN0RW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVz
dEVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGNvZGVjcywgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogewotICAgIFZlY3RvcjxNZWRp
YVBsYXllckZhY3RvcnkqPiYgZW5naW5lcyA9IGluc3RhbGxlZE1lZGlhRW5naW5lcygpOworICAg
IGlmICh0eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBWZWN0b3I8TWVk
aWFQbGF5ZXJGYWN0b3J5Kj4mIGVuZ2luZXMgPSBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKTsKICAg
ICBpZiAoZW5naW5lcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yMjYsOSAr
MjI4LDEzIEBAIHN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGNob29zZUJlc3RFbmcKICAgICAK
ICAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IDA7CiAgICAgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7Ci0KICAg
ICB1bnNpZ25lZCBjb3VudCA9IGVuZ2luZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgbmR4
ID0gMDsgbmR4IDwgY291bnQ7IG5keCsrKSB7CisgICAgICAgIGlmIChjdXJyZW50KSB7CisgICAg
ICAgICAgICBpZiAoY3VycmVudCA9PSBlbmdpbmVzW25keF0pCisgICAgICAgICAgICAgICAgY3Vy
cmVudCA9IDA7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIGVuZ2luZVN1cHBvcnQgPSBlbmdpbmVzW25keF0tPnN1cHBv
cnRzVHlwZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MpOwogICAgICAgICBpZiAoZW5naW5lU3VwcG9y
dCA+IHN1cHBvcnRlZCkgewogICAgICAgICAgICAgc3VwcG9ydGVkID0gZW5naW5lU3VwcG9ydDsK
QEAgLTI0Myw2ICsyNDksNyBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjaG9vc2VCZXN0
RW5nCiAKIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50
KQogICAgIDogbV9tZWRpYVBsYXllckNsaWVudChjbGllbnQpCisgICAgLCBtX3JlbG9hZFRpbWVy
KHRoaXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJGaXJlZCkKICAgICAsIG1fcHJpdmF0ZShj
cmVhdGVOdWxsTWVkaWFQbGF5ZXIodGhpcykpCiAgICAgLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgw
KQogICAgICwgbV9mcmFtZVZpZXcoMCkKQEAgLTI4NiwxNSArMjkzLDIxIEBAIHZvaWQgTWVkaWFQ
bGF5ZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwKICAgICAgICAgfQogICAgIH0KIAotICAgIE1l
ZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0gMDsKLSAgICBpZiAoIXR5cGUuaXNFbXB0eSgpKQot
ICAgICAgICBlbmdpbmUgPSBjaG9vc2VCZXN0RW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0
eXBlQ29kZWNzKTsKKyAgICBtX3VybCA9IHVybDsKKyAgICBtX2NvbnRlbnRNSU1FVHlwZSA9IHR5
cGU7CisgICAgbV9jb250ZW50VHlwZUNvZGVjcyA9IHR5cGVDb2RlY3M7CisgICAgbG9hZFdpdGhO
ZXh0TWVkaWFFbmdpbmUoMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1l
ZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKK3sKKyAgICBNZWRpYVBsYXll
ckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1J
TUVUeXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBjdXJyZW50KTsKIAogICAgIC8vIElmIHdlIGRp
ZG4ndCBmaW5kIGFuIGVuZ2luZSBhbmQgbm8gTUlNRSB0eXBlIGlzIHNwZWNpZmllZCwganVzdCB1
c2UgdGhlIGZpcnN0IGVuZ2luZS4KLSAgICBpZiAoIWVuZ2luZSAmJiB0eXBlLmlzRW1wdHkoKSAm
JiAhaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuaXNFbXB0eSgpKQorICAgIGlmICghZW5naW5lICYm
IG1fY29udGVudE1JTUVUeXBlLmlzRW1wdHkoKSAmJiAhaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCku
aXNFbXB0eSgpICYmICFjdXJyZW50KQogICAgICAgICBlbmdpbmUgPSBpbnN0YWxsZWRNZWRpYUVu
Z2luZXMoKVswXTsKICAgICAKLSAgICAvLyBEb24ndCBkZWxldGUgYW5kIHJlY3JlYXRlIHRoZSBw
bGF5ZXIgdW5sZXNzIGl0IGNvbWVzIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lCisgICAgLy8gRG9u
J3QgZGVsZXRlIGFuZCByZWNyZWF0ZSB0aGUgcGxheWVyIHVubGVzcyBpdCBjb21lcyBmcm9tIGEg
ZGlmZmVyZW50IGVuZ2luZS4KICAgICBpZiAoIWVuZ2luZSkgewogICAgICAgICBtX2N1cnJlbnRN
ZWRpYUVuZ2luZSA9IGVuZ2luZTsKICAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CkBAIC0zMTAs
MTAgKzMyMywxMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsCiAg
ICAgfQogCiAgICAgaWYgKG1fcHJpdmF0ZSkKLSAgICAgICAgbV9wcml2YXRlLT5sb2FkKHVybCk7
CisgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybCk7CiAgICAgZWxzZQogICAgICAgICBtX3By
aXZhdGUuc2V0KGNyZWF0ZU51bGxNZWRpYVBsYXllcih0aGlzKSk7Ci19ICAgIAorfQogCiBib29s
IE1lZGlhUGxheWVyOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKIHsKQEAgLTU1Myw3
ICs1NjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpwYWludEN1cnJlbnRGcmFtZUluQ29uCiAgICAg
bV9wcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChwLCByKTsKIH0KIAotTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBl
IGNvbnRlbnRUeXBlKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3Vw
cG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICBTdHJpbmcg
dHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKS5sb3dlcigpOwogICAgIFN0cmluZyB0eXBlQ29kZWNz
ID0gY29udGVudFR5cGUucGFyYW1ldGVyKGNvZGVjcygpKTsKQEAgLTU2Myw3ICs1NzYsNyBAQCBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzCiAgICAgaWYgKHR5cGUgPT0g
YXBwbGljYXRpb25PY3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7
CiAKLSAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGNob29zZUJlc3RFbmdpbmVGb3JU
eXBlQW5kQ29kZWNzKHR5cGUsIHR5cGVDb2RlY3MpOworICAgIE1lZGlhUGxheWVyRmFjdG9yeSog
ZW5naW5lID0gYmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcyk7CiAg
ICAgaWYgKCFlbmdpbmUpCiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIApAQCAtNjQ2
LDkgKzY1OSwyNSBAQCBkb3VibGUgTWVkaWFQbGF5ZXI6Om1heGltdW1EdXJhdGlvblRvQ2FjCiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSgpOwog
fQogCit2b2lkIE1lZGlhUGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVy
PiopCit7CisgICAgbV9wcml2YXRlLT5jYW5jZWxMb2FkKCk7CisgICAgbG9hZFdpdGhOZXh0TWVk
aWFFbmdpbmUobV9jdXJyZW50TWVkaWFFbmdpbmUpOworfQorCisKIC8vIENsaWVudCBjYWxsYmFj
a3MuCiB2b2lkIE1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKKyAgICAvLyBJ
ZiBtb3JlIHRoYW4gb25lIG1lZGlhIGVuZ2luZSBpcyBpbnN0YWxsZWQgYW5kIHRoaXMgb25lIGZh
aWxlZCBiZWZvcmUgZmluZGluZyBtZXRhZGF0YSwKKyAgICAvLyBsZXQgdGhlIG5leHQgZW5naW5l
IHRyeS4KKyAgICBpZiAobV9wcml2YXRlLT5uZXR3b3JrU3RhdGUoKSA+PSBGb3JtYXRFcnJvcgor
ICAgICAgICAmJiBtX3ByaXZhdGUtPnJlYWR5U3RhdGUoKSA8IEhhdmVNZXRhZGF0YSAKKyAgICAg
ICAgJiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuc2l6ZSgpID4gMSAKKyAgICAgICAgJiYgYmVz
dEVuZ2luZUZvclR5cGVBbmRDb2RlY3MobV9jb250ZW50TUlNRVR5cGUsIG1fY29udGVudFR5cGVD
b2RlY3MsIG1fY3VycmVudE1lZGlhRW5naW5lKSkgeworICAgICAgICAgICAgbV9yZWxvYWRUaW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmICht
X21lZGlhUGxheWVyQ2xpZW50KQogICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBs
YXllck5ldHdvcmtTdGF0ZUNoYW5nZWQodGhpcyk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCShyZXZpc2lvbiA3Mjc5NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBA
QCBzdHJ1Y3QgUGxhdGZvcm1NZWRpYSB7CiAgICAgICAgIEdTdHJlYW1lckdXb3JsZFR5cGUsCiAg
ICAgICAgIENocm9taXVtTWVkaWFQbGF5ZXJUeXBlLAogICAgICAgICBRdE1lZGlhUGxheWVyVHlw
ZSwKKyAgICAgICAgQVZGb3VuZGF0aW9uTWVkaWFQbGF5ZXJUeXBlCiAgICAgfSB0eXBlOwogCiAg
ICAgdW5pb24gewpAQCAtOTEsNiArOTIsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFz
cyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIE1lZGlhUGxheWVyOworY2xhc3MgTWVk
aWFQbGF5ZXJGYWN0b3J5OwogY2xhc3MgVGltZVJhbmdlczsKIAogY2xhc3MgTWVkaWFQbGF5ZXJD
bGllbnQgewpAQCAtMTU3LDcgKzE1OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIG1lZGlhIGVuZ2lu
ZSBzdXBwb3J0CiAgICAgZW51bSBTdXBwb3J0c1R5cGUgeyBJc05vdFN1cHBvcnRlZCwgSXNTdXBw
b3J0ZWQsIE1heUJlU3VwcG9ydGVkIH07Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKTsKKyAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgQ29udGVudFR5cGUm
KTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsK
ICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCkBAIC0xNzksNyArMTgxLDcgQEAgcHVi
bGljOgogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKTsKICAgICAKLSAgICB2b2lkIGxvYWQoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSk7CisgICAgdm9p
ZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYpOwogICAgIHZvaWQg
Y2FuY2VsTG9hZCgpOwogICAgIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0OwpAQCAtMjgwLDEy
ICsyODIsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Kik7CisgICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXll
ckZhY3RvcnkqKTsKKyAgICB2b2lkIHJlbG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+
Kik7CiAKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWVkaWFFbmdpbmVzKCk7CiAKICAgICBN
ZWRpYVBsYXllckNsaWVudCogbV9tZWRpYVBsYXllckNsaWVudDsKKyAgICBUaW1lcjxNZWRpYVBs
YXllcj4gbV9yZWxvYWRUaW1lcjsKICAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlKj4gbV9wcml2YXRlOwotICAgIHZvaWQqIG1fY3VycmVudE1lZGlhRW5naW5lOworICAgIE1l
ZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CisgICAgU3RyaW5nIG1fdXJs
OworICAgIFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKKyAgICBTdHJpbmcgbV9jb250ZW50VHlw
ZUNvZGVjczsKICAgICBGcmFtZVZpZXcqIG1fZnJhbWVWaWV3OwogICAgIEludFNpemUgbV9zaXpl
OwogICAgIFByZWxvYWQgbV9wcmVsb2FkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75913</attachid>
            <date>2010-12-08 09:03:15 -0800</date>
            <delta_ts>2010-12-09 07:40:01 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_7.txt</filename>
            <type>text/plain</type>
            <size>8778</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMDggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWFQbGF5ZXIgc2hvdWxkIHRyeSBhbGwgaW5zdGFsbGVkIG1lZGlhIGVuZ2luZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjA5CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKTogUmVuYW1lIGZyb20gY2hvb3Nl
QmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3MuIFRha2Ugb3B0aW9uYWwKKyAgICAgICAgcGFyYW1l
dGVyIGZvciBjdXJyZW50IGVuZ2luZS4gCisgICAgICAgIChXZWJDb3JlOjpuZXh0TWVkaWFFbmdp
bmUpOiBOZXcsIHJldHVybiB0aGUgbmV4dCBtZWRpYSBlbmdpbmUgaW4gdGhlIGxpc3QuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOiBJbml0aWFsaXplIHJlbG9h
ZCB0aW1lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKTogU3RvcmUgdXJs
LCBtaW1lIHR5cGUsIGFuZCBjb2RlY3MgcGFyYW1ldGVyIGluIG1lbWJlciB2YXJpYWJsZXMuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUpOiBO
ZXcsIGluaXRpYXRlIGxvYWRpbmcgd2l0aCB0aGUgbmV4dCBtZWRpYSBlbmdpbmUuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKTogTWFrZSBjb250ZW50VHlwZSBw
YXJhbWV0ZXIgY29uc3QuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVsb2FkVGlt
ZXJGaXJlZCk6IE5ldywgY2FsbCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZS4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKTogSWYgbmV0d29yayBzdGF0
ZSBzaWduYWxzIGEgZmFpbHVyZSBhbmQgdGhlIGZpbGUncworICAgICAgICBtZXRhZGF0YSBoYXMg
bm90IGxvYWRlZCwgZ2l2ZSB0aGUgbmV4dCBpbnN0YWxsZWQgZW5naW5lIGEgdHJ5LgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisKIDIwMTAtMTItMDYgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgWWV0IHVucmV2aWV3ZWQgYW5v
dGhlciBMZW9wYXJkIGJ1aWxkIGZpeCBmb3IgcjczMzgwLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDczNDAxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3
ICsxNjEsNiBAQCBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IDogTm9uY29weWFibGUgCiB9Owog
CiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpOwotc3RhdGlj
IE1lZGlhUGxheWVyRmFjdG9yeSogY2hvb3NlQmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CiAKIHN0YXRpYyBWZWN0b3I8
TWVkaWFQbGF5ZXJGYWN0b3J5Kj4mIGluc3RhbGxlZE1lZGlhRW5naW5lcygpIAogewpAQCAtMjA5
LDEwICsyMDgsMTIgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkKICAgICBy
ZXR1cm4gY29kZWNzOwogfQogCi1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjaG9vc2VCZXN0
RW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzKQorc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlw
ZUFuZENvZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBNZWRp
YVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiB7Ci0gICAgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9y
eSo+JiBlbmdpbmVzID0gaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCk7CisgICAgaWYgKHR5cGUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKIAorICAgIFZlY3RvcjxNZWRpYVBsYXllckZhY3Rv
cnkqPiYgZW5naW5lcyA9IGluc3RhbGxlZE1lZGlhRW5naW5lcygpOwogICAgIGlmIChlbmdpbmVz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTIyNiw5ICsyMjcsMTMgQEAgc3Rh
dGljIE1lZGlhUGxheWVyRmFjdG9yeSogY2hvb3NlQmVzdEVuZwogICAgIAogICAgIE1lZGlhUGxh
eWVyRmFjdG9yeSogZW5naW5lID0gMDsKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRlZCA9IE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKLQogICAgIHVuc2lnbmVkIGNv
dW50ID0gZW5naW5lcy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBuZHggPSAwOyBuZHggPCBj
b3VudDsgbmR4KyspIHsKKyAgICAgICAgaWYgKGN1cnJlbnQpIHsKKyAgICAgICAgICAgIGlmIChj
dXJyZW50ID09IGVuZ2luZXNbbmR4XSkKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gMDsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgZW5naW5lU3VwcG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29k
ZWNzKHR5cGUsIGNvZGVjcyk7CiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVk
KSB7CiAgICAgICAgICAgICBzdXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMjM5LDEwICsy
NDQsMzIgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogY2hvb3NlQmVzdEVuZwogICAgIHJl
dHVybiBlbmdpbmU7CiB9CiAKK3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVu
Z2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCit7CisgICAgVmVjdG9yPE1lZGlhUGxh
eWVyRmFjdG9yeSo+JiBlbmdpbmVzID0gaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCk7CisgICAgaWYg
KGVuZ2luZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE1lZGlhUGxheWVy
RmFjdG9yeSogZW5naW5lID0gMDsKKyAgICB1bnNpZ25lZCBjb3VudCA9IGVuZ2luZXMuc2l6ZSgp
OworICAgIGZvciAodW5zaWduZWQgbmR4ID0gMDsgbmR4IDwgY291bnQ7IG5keCsrKSB7CisgICAg
ICAgIGlmIChjdXJyZW50KSB7CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBlbmdpbmVzW25k
eF0pCisgICAgICAgICAgICAgICAgY3VycmVudCA9IDA7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQorICAgICAgICBlbmdpbmUgPSBlbmdpbmVzW25keF07CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIHJldHVybiBlbmdpbmU7Cit9CisKIC8vIG1lZGlhIHBsYXllcgogCiBN
ZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICA6
IG1fbWVkaWFQbGF5ZXJDbGllbnQoY2xpZW50KQorICAgICwgbV9yZWxvYWRUaW1lcih0aGlzLCAm
TWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVs
bE1lZGlhUGxheWVyKHRoaXMpKQogICAgICwgbV9jdXJyZW50TWVkaWFFbmdpbmUoMCkKICAgICAs
IG1fZnJhbWVWaWV3KDApCkBAIC0yODksMTUgKzMxNiwyMSBAQCB2b2lkIE1lZGlhUGxheWVyOjps
b2FkKGNvbnN0IFN0cmluZyYgdXJsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBNZWRpYVBsYXll
ckZhY3RvcnkqIGVuZ2luZSA9IDA7Ci0gICAgaWYgKCF0eXBlLmlzRW1wdHkoKSkKLSAgICAgICAg
ZW5naW5lID0gY2hvb3NlQmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVj
cyk7CisgICAgbV91cmwgPSB1cmw7CisgICAgbV9jb250ZW50TUlNRVR5cGUgPSB0eXBlOworICAg
IG1fY29udGVudFR5cGVDb2RlY3MgPSB0eXBlQ29kZWNzOworICAgIGxvYWRXaXRoTmV4dE1lZGlh
RW5naW5lKDApOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2lu
ZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCit7CisgICAgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBlbmdpbmUgPSBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVU
eXBlLCBtX2NvbnRlbnRUeXBlQ29kZWNzLCBjdXJyZW50KTsKIAogICAgIC8vIElmIHdlIGRpZG4n
dCBmaW5kIGFuIGVuZ2luZSBhbmQgbm8gTUlNRSB0eXBlIGlzIHNwZWNpZmllZCwganVzdCB1c2Ug
dGhlIGZpcnN0IGVuZ2luZS4KLSAgICBpZiAoIWVuZ2luZSAmJiB0eXBlLmlzRW1wdHkoKSAmJiAh
aW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuaXNFbXB0eSgpKQotICAgICAgICBlbmdpbmUgPSBpbnN0
YWxsZWRNZWRpYUVuZ2luZXMoKVswXTsKKyAgICBpZiAoIWVuZ2luZSAmJiBtX2NvbnRlbnRNSU1F
VHlwZS5pc0VtcHR5KCkgJiYgIWluc3RhbGxlZE1lZGlhRW5naW5lcygpLmlzRW1wdHkoKSkKKyAg
ICAgICAgZW5naW5lID0gbmV4dE1lZGlhRW5naW5lKCk7CiAgICAgCi0gICAgLy8gRG9uJ3QgZGVs
ZXRlIGFuZCByZWNyZWF0ZSB0aGUgcGxheWVyIHVubGVzcyBpdCBjb21lcyBmcm9tIGEgZGlmZmVy
ZW50IGVuZ2luZQorICAgIC8vIERvbid0IGRlbGV0ZSBhbmQgcmVjcmVhdGUgdGhlIHBsYXllciB1
bmxlc3MgaXQgY29tZXMgZnJvbSBhIGRpZmZlcmVudCBlbmdpbmUuCiAgICAgaWYgKCFlbmdpbmUp
IHsKICAgICAgICAgbV9jdXJyZW50TWVkaWFFbmdpbmUgPSBlbmdpbmU7CiAgICAgICAgIG1fcHJp
dmF0ZS5jbGVhcigpOwpAQCAtMzE1LDcgKzM0OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWQo
Y29uc3QgU3RyaW5nJiB1cmwKICAgICB9CiAKICAgICBpZiAobV9wcml2YXRlKQotICAgICAgICBt
X3ByaXZhdGUtPmxvYWQodXJsKTsKKyAgICAgICAgbV9wcml2YXRlLT5sb2FkKG1fdXJsKTsKICAg
ICBlbHNlIHsKICAgICAgICAgbV9wcml2YXRlLnNldChjcmVhdGVOdWxsTWVkaWFQbGF5ZXIodGhp
cykpOwogICAgICAgICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKQEAgLTU2MSw3ICs1OTQsNyBA
QCB2b2lkIE1lZGlhUGxheWVyOjpwYWludEN1cnJlbnRGcmFtZUluQ29uCiAgICAgbV9wcml2YXRl
LT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChwLCByKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKENvbnRlbnRUeXBlIGNvbnRlbnRU
eXBlKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBl
KGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICBTdHJpbmcgdHlwZSA9IGNv
bnRlbnRUeXBlLnR5cGUoKS5sb3dlcigpOwogICAgIFN0cmluZyB0eXBlQ29kZWNzID0gY29udGVu
dFR5cGUucGFyYW1ldGVyKGNvZGVjcygpKTsKQEAgLTU3MSw3ICs2MDQsNyBAQCBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzCiAgICAgaWYgKHR5cGUgPT0gYXBwbGljYXRp
b25PY3RldFN0cmVhbSgpKQogICAgICAgICByZXR1cm4gSXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGNob29zZUJlc3RFbmdpbmVGb3JUeXBlQW5kQ29k
ZWNzKHR5cGUsIHR5cGVDb2RlY3MpOworICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0g
YmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0eXBlQ29kZWNzKTsKICAgICBp
ZiAoIWVuZ2luZSkKICAgICAgICAgcmV0dXJuIElzTm90U3VwcG9ydGVkOwogCkBAIC02NTQsOSAr
Njg3LDI1IEBAIGRvdWJsZSBNZWRpYVBsYXllcjo6bWF4aW11bUR1cmF0aW9uVG9DYWMKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5tYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lKCk7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+KikK
K3sKKyAgICBtX3ByaXZhdGUtPmNhbmNlbExvYWQoKTsKKyAgICBsb2FkV2l0aE5leHRNZWRpYUVu
Z2luZShtX2N1cnJlbnRNZWRpYUVuZ2luZSk7Cit9CisKKwogLy8gQ2xpZW50IGNhbGxiYWNrcy4K
IHZvaWQgTWVkaWFQbGF5ZXI6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogeworICAgIC8vIElmIG1v
cmUgdGhhbiBvbmUgbWVkaWEgZW5naW5lIGlzIGluc3RhbGxlZCBhbmQgdGhpcyBvbmUgZmFpbGVk
IGJlZm9yZSBmaW5kaW5nIG1ldGFkYXRhLAorICAgIC8vIGxldCB0aGUgbmV4dCBlbmdpbmUgdHJ5
LgorICAgIGlmIChtX3ByaXZhdGUtPm5ldHdvcmtTdGF0ZSgpID49IEZvcm1hdEVycm9yCisgICAg
ICAgICYmIG1fcHJpdmF0ZS0+cmVhZHlTdGF0ZSgpIDwgSGF2ZU1ldGFkYXRhIAorICAgICAgICAm
JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5zaXplKCkgPiAxIAorICAgICAgICAmJiBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBl
Q29kZWNzLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSkpIHsKKyAgICAgICAgICAgIG1fcmVsb2FkVGlt
ZXIuc3RhcnRPbmVTaG90KDApOworICAgICAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAo
bV9tZWRpYVBsYXllckNsaWVudCkKICAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQ
bGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKHRoaXMpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAkocmV2aXNpb24gNzM0MDEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDYgKzkxLDcg
QEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7
CiBjbGFzcyBNZWRpYVBsYXllcjsKK2NsYXNzIE1lZGlhUGxheWVyRmFjdG9yeTsKIGNsYXNzIFRp
bWVSYW5nZXM7CiAKIGNsYXNzIE1lZGlhUGxheWVyQ2xpZW50IHsKQEAgLTE1OSw3ICsxNjAsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBtZWRpYSBlbmdpbmUgc3VwcG9ydAogICAgIGVudW0gU3VwcG9y
dHNUeXBlIHsgSXNOb3RTdXBwb3J0ZWQsIElzU3VwcG9ydGVkLCBNYXlCZVN1cHBvcnRlZCB9Owot
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShDb250ZW50
VHlwZSBjb250ZW50VHlwZSk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFi
bGUoKTsKIApAQCAtMTgxLDcgKzE4Miw3IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSk7CiAgICAgCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5cGUpOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgQ29udGVudFR5cGUmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKICAgICAKICAgICBi
b29sIHZpc2libGUoKSBjb25zdDsKQEAgLTI4MiwxMiArMjgzLDE4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCopOworICAgIHZvaWQgbG9h
ZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CisgICAgdm9pZCByZWxv
YWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiopOwogCiAgICAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZU1lZGlhRW5naW5lcygpOwogCiAgICAgTWVkaWFQbGF5ZXJDbGllbnQqIG1fbWVkaWFQ
bGF5ZXJDbGllbnQ7CisgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7CiAgICAg
T3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSo+IG1fcHJpdmF0ZTsKLSAgICB2b2lk
KiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKKyAgICBNZWRpYVBsYXllckZhY3RvcnkqIG1fY3VycmVu
dE1lZGlhRW5naW5lOworICAgIFN0cmluZyBtX3VybDsKKyAgICBTdHJpbmcgbV9jb250ZW50TUlN
RVR5cGU7CisgICAgU3RyaW5nIG1fY29udGVudFR5cGVDb2RlY3M7CiAgICAgRnJhbWVWaWV3KiBt
X2ZyYW1lVmlldzsKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBQcmVsb2FkIG1fcHJlbG9hZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76064</attachid>
            <date>2010-12-09 07:40:01 -0800</date>
            <delta_ts>2010-12-14 18:30:51 -0800</delta_ts>
            <desc>Patch that might compile</desc>
            <filename>patch_8.txt</filename>
            <type>text/plain</type>
            <size>8995</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMDggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVkaWFQbGF5ZXIgc2hvdWxkIHRyeSBhbGwgaW5zdGFsbGVkIG1lZGlhIGVuZ2luZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjA5CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKTogUmVuYW1lIGZyb20gY2hvb3Nl
QmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3MuIFRha2Ugb3B0aW9uYWwKKyAgICAgICAgcGFyYW1l
dGVyIGZvciBjdXJyZW50IGVuZ2luZS4gCisgICAgICAgIChXZWJDb3JlOjpuZXh0TWVkaWFFbmdp
bmUpOiBOZXcsIHJldHVybiB0aGUgbmV4dCBtZWRpYSBlbmdpbmUgaW4gdGhlIGxpc3QuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOiBJbml0aWFsaXplIHJlbG9h
ZCB0aW1lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKTogU3RvcmUgdXJs
LCBtaW1lIHR5cGUsIGFuZCBjb2RlY3MgcGFyYW1ldGVyIGluIG1lbWJlciB2YXJpYWJsZXMuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUpOiBO
ZXcsIGluaXRpYXRlIGxvYWRpbmcgd2l0aCB0aGUgbmV4dCBtZWRpYSBlbmdpbmUuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKTogTWFrZSBjb250ZW50VHlwZSBw
YXJhbWV0ZXIgY29uc3QuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVsb2FkVGlt
ZXJGaXJlZCk6IE5ldywgY2FsbCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZS4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKTogSWYgbmV0d29yayBzdGF0
ZSBzaWduYWxzIGEgZmFpbHVyZSBhbmQgdGhlIGZpbGUncworICAgICAgICBtZXRhZGF0YSBoYXMg
bm90IGxvYWRlZCwgZ2l2ZSB0aGUgbmV4dCBpbnN0YWxsZWQgZW5naW5lIGEgdHJ5LgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisKIDIwMTAtMTItMDYgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgWWV0IHVucmV2aWV3ZWQgYW5v
dGhlciBMZW9wYXJkIGJ1aWxkIGZpeCBmb3IgcjczMzgwLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDczNDAxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3
ICsxNjEsOCBAQCBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IDogTm9uY29weWFibGUgCiB9Owog
CiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpOwotc3RhdGlj
IE1lZGlhUGxheWVyRmFjdG9yeSogY2hvb3NlQmVzdEVuZ2luZUZvclR5cGVBbmRDb2RlY3MoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyk7CitzdGF0aWMgTWVkaWFQbGF5
ZXJGYWN0b3J5KiBiZXN0TWVkaWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCA9
IDApOworc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxh
eWVyRmFjdG9yeSogY3VycmVudCk7CiAKIHN0YXRpYyBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5
Kj4mIGluc3RhbGxlZE1lZGlhRW5naW5lcygpIAogewpAQCAtMjA5LDEwICsyMTAsMTIgQEAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNzKCkKICAgICByZXR1cm4gY29kZWNzOwogfQog
Ci1zdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjaG9vc2VCZXN0RW5naW5lRm9yVHlwZUFuZENv
ZGVjcyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzKQorc3RhdGljIE1l
ZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBNZWRpYVBsYXllckZhY3RvcnkqIGN1
cnJlbnQpCiB7Ci0gICAgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBlbmdpbmVzID0gaW5z
dGFsbGVkTWVkaWFFbmdpbmVzKCk7CisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgZW5naW5lcyA9IGlu
c3RhbGxlZE1lZGlhRW5naW5lcygpOwogICAgIGlmIChlbmdpbmVzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKQEAgLTIyNiw5ICsyMjksMTMgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFj
dG9yeSogY2hvb3NlQmVzdEVuZwogICAgIAogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5l
ID0gMDsKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1lZGlhUGxh
eWVyOjpJc05vdFN1cHBvcnRlZDsKLQogICAgIHVuc2lnbmVkIGNvdW50ID0gZW5naW5lcy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBuZHggPSAwOyBuZHggPCBjb3VudDsgbmR4KyspIHsKKyAg
ICAgICAgaWYgKGN1cnJlbnQpIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50ID09IGVuZ2luZXNb
bmR4XSkKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gMDsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CiAgICAgICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgZW5naW5lU3Vw
cG9ydCA9IGVuZ2luZXNbbmR4XS0+c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHR5cGUsIGNvZGVjcyk7
CiAgICAgICAgIGlmIChlbmdpbmVTdXBwb3J0ID4gc3VwcG9ydGVkKSB7CiAgICAgICAgICAgICBz
dXBwb3J0ZWQgPSBlbmdpbmVTdXBwb3J0OwpAQCAtMjM5LDEwICsyNDYsMzIgQEAgc3RhdGljIE1l
ZGlhUGxheWVyRmFjdG9yeSogY2hvb3NlQmVzdEVuZwogICAgIHJldHVybiBlbmdpbmU7CiB9CiAK
K3N0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZh
Y3RvcnkqIGN1cnJlbnQpCit7CisgICAgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBlbmdp
bmVzID0gaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCk7CisgICAgaWYgKGVuZ2luZXMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0g
MDsKKyAgICB1bnNpZ25lZCBjb3VudCA9IGVuZ2luZXMuc2l6ZSgpOworICAgIGZvciAodW5zaWdu
ZWQgbmR4ID0gMDsgbmR4IDwgY291bnQ7IG5keCsrKSB7CisgICAgICAgIGlmIChjdXJyZW50KSB7
CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBlbmdpbmVzW25keF0pCisgICAgICAgICAgICAg
ICAgY3VycmVudCA9IDA7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAg
ICBlbmdpbmUgPSBlbmdpbmVzW25keF07CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiBlbmdpbmU7Cit9CisKIC8vIG1lZGlhIHBsYXllcgogCiBNZWRpYVBsYXllcjo6TWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fbWVkaWFQbGF5ZXJDbGll
bnQoY2xpZW50KQorICAgICwgbV9yZWxvYWRUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9h
ZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMp
KQogICAgICwgbV9jdXJyZW50TWVkaWFFbmdpbmUoMCkKICAgICAsIG1fZnJhbWVWaWV3KDApCkBA
IC0yODksMTUgKzMxOCwyMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0IFN0cmluZyYg
dXJsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9
IDA7Ci0gICAgaWYgKCF0eXBlLmlzRW1wdHkoKSkKLSAgICAgICAgZW5naW5lID0gY2hvb3NlQmVz
dEVuZ2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcyk7CisgICAgbV91cmwgPSB1
cmw7CisgICAgbV9jb250ZW50TUlNRVR5cGUgPSB0eXBlOworICAgIG1fY29udGVudFR5cGVDb2Rl
Y3MgPSB0eXBlQ29kZWNzOworICAgIGxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKDApOworfQorCit2
b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3Rv
cnkqIGN1cnJlbnQpCit7CisgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBiZXN0TWVk
aWFFbmdpbmVGb3JUeXBlQW5kQ29kZWNzKG1fY29udGVudE1JTUVUeXBlLCBtX2NvbnRlbnRUeXBl
Q29kZWNzLCBjdXJyZW50KTsKIAogICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFuIGVuZ2luZSBh
bmQgbm8gTUlNRSB0eXBlIGlzIHNwZWNpZmllZCwganVzdCB1c2UgdGhlIGZpcnN0IGVuZ2luZS4K
LSAgICBpZiAoIWVuZ2luZSAmJiB0eXBlLmlzRW1wdHkoKSAmJiAhaW5zdGFsbGVkTWVkaWFFbmdp
bmVzKCkuaXNFbXB0eSgpKQotICAgICAgICBlbmdpbmUgPSBpbnN0YWxsZWRNZWRpYUVuZ2luZXMo
KVswXTsKKyAgICBpZiAoIWVuZ2luZSAmJiBtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgJiYg
IWluc3RhbGxlZE1lZGlhRW5naW5lcygpLmlzRW1wdHkoKSkKKyAgICAgICAgZW5naW5lID0gbmV4
dE1lZGlhRW5naW5lKGN1cnJlbnQpOwogICAgIAotICAgIC8vIERvbid0IGRlbGV0ZSBhbmQgcmVj
cmVhdGUgdGhlIHBsYXllciB1bmxlc3MgaXQgY29tZXMgZnJvbSBhIGRpZmZlcmVudCBlbmdpbmUK
KyAgICAvLyBEb24ndCBkZWxldGUgYW5kIHJlY3JlYXRlIHRoZSBwbGF5ZXIgdW5sZXNzIGl0IGNv
bWVzIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lLgogICAgIGlmICghZW5naW5lKSB7CiAgICAgICAg
IG1fY3VycmVudE1lZGlhRW5naW5lID0gZW5naW5lOwogICAgICAgICBtX3ByaXZhdGUuY2xlYXIo
KTsKQEAgLTMxNSw3ICszNTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0IFN0cmlu
ZyYgdXJsCiAgICAgfQogCiAgICAgaWYgKG1fcHJpdmF0ZSkKLSAgICAgICAgbV9wcml2YXRlLT5s
b2FkKHVybCk7CisgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybCk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIG1fcHJpdmF0ZS5zZXQoY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpKTsKICAgICAg
ICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCkBAIC01NjEsNyArNTk2LDcgQEAgdm9pZCBNZWRp
YVBsYXllcjo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbgogICAgIG1fcHJpdmF0ZS0+cGFpbnRDdXJy
ZW50RnJhbWVJbkNvbnRleHQocCwgcik7CiB9CiAKLU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZSBjb250ZW50VHlwZSkKK01lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5cGUpCiB7CiAgICAgU3RyaW5nIHR5cGUgPSBjb250ZW50VHlwZS50
eXBlKCkubG93ZXIoKTsKICAgICBTdHJpbmcgdHlwZUNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFt
ZXRlcihjb2RlY3MoKSk7CkBAIC01NzEsNyArNjA2LDcgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBNZWRpYVBsYXllcjo6cwogICAgIGlmICh0eXBlID09IGFwcGxpY2F0aW9uT2N0ZXRTdHJl
YW0oKSkKICAgICAgICAgcmV0dXJuIElzTm90U3VwcG9ydGVkOwogCi0gICAgTWVkaWFQbGF5ZXJG
YWN0b3J5KiBlbmdpbmUgPSBjaG9vc2VCZXN0RW5naW5lRm9yVHlwZUFuZENvZGVjcyh0eXBlLCB0
eXBlQ29kZWNzKTsKKyAgICBNZWRpYVBsYXllckZhY3RvcnkqIGVuZ2luZSA9IGJlc3RNZWRpYUVu
Z2luZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgdHlwZUNvZGVjcyk7CiAgICAgaWYgKCFlbmdpbmUp
CiAgICAgICAgIHJldHVybiBJc05vdFN1cHBvcnRlZDsKIApAQCAtNjU0LDkgKzY4OSwyNSBAQCBk
b3VibGUgTWVkaWFQbGF5ZXI6Om1heGltdW1EdXJhdGlvblRvQ2FjCiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSgpOwogfQogCit2b2lkIE1lZGlh
UGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiopCit7CisgICAgbV9w
cml2YXRlLT5jYW5jZWxMb2FkKCk7CisgICAgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUobV9jdXJy
ZW50TWVkaWFFbmdpbmUpOworfQorCisKIC8vIENsaWVudCBjYWxsYmFja3MuCiB2b2lkIE1lZGlh
UGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKKyAgICAvLyBJZiBtb3JlIHRoYW4gb25l
IG1lZGlhIGVuZ2luZSBpcyBpbnN0YWxsZWQgYW5kIHRoaXMgb25lIGZhaWxlZCBiZWZvcmUgZmlu
ZGluZyBtZXRhZGF0YSwKKyAgICAvLyBsZXQgdGhlIG5leHQgZW5naW5lIHRyeS4KKyAgICBpZiAo
bV9wcml2YXRlLT5uZXR3b3JrU3RhdGUoKSA+PSBGb3JtYXRFcnJvcgorICAgICAgICAmJiBtX3By
aXZhdGUtPnJlYWR5U3RhdGUoKSA8IEhhdmVNZXRhZGF0YSAKKyAgICAgICAgJiYgaW5zdGFsbGVk
TWVkaWFFbmdpbmVzKCkuc2l6ZSgpID4gMSAKKyAgICAgICAgJiYgYmVzdE1lZGlhRW5naW5lRm9y
VHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9j
dXJyZW50TWVkaWFFbmdpbmUpKSB7CisgICAgICAgICAgICBtX3JlbG9hZFRpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaWYgKG1fbWVkaWFQbGF5
ZXJDbGllbnQpCiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTmV0d29y
a1N0YXRlQ2hhbmdlZCh0aGlzKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgJKHJldmlzaW9uIDczNDAxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSw3IEBAIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgTWVk
aWFQbGF5ZXI7CitjbGFzcyBNZWRpYVBsYXllckZhY3Rvcnk7CiBjbGFzcyBUaW1lUmFuZ2VzOwog
CiBjbGFzcyBNZWRpYVBsYXllckNsaWVudCB7CkBAIC0xNTksNyArMTYwLDcgQEAgcHVibGljOgog
CiAgICAgLy8gbWVkaWEgZW5naW5lIHN1cHBvcnQKICAgICBlbnVtIFN1cHBvcnRzVHlwZSB7IElz
Tm90U3VwcG9ydGVkLCBJc1N1cHBvcnRlZCwgTWF5QmVTdXBwb3J0ZWQgfTsKLSAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoQ29udGVudFR5cGUgY29udGVu
dFR5cGUpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBDb250ZW50VHlwZSYpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKQEAg
LTE4MSw3ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpOwogICAg
IAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNv
bnRlbnRUeXBlKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IENvbnRl
bnRUeXBlJik7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAgICAgCiAgICAgYm9vbCB2aXNpYmxl
KCkgY29uc3Q7CkBAIC0yODIsMTIgKzI4MywxOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqKTsKKyAgICB2b2lkIGxvYWRXaXRoTmV4dE1l
ZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSopOworICAgIHZvaWQgcmVsb2FkVGltZXJGaXJl
ZChUaW1lcjxNZWRpYVBsYXllcj4qKTsKIAogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNZWRp
YUVuZ2luZXMoKTsKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50KiBtX21lZGlhUGxheWVyQ2xpZW50
OworICAgIFRpbWVyPE1lZGlhUGxheWVyPiBtX3JlbG9hZFRpbWVyOwogICAgIE93blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UqPiBtX3ByaXZhdGU7Ci0gICAgdm9pZCogbV9jdXJyZW50
TWVkaWFFbmdpbmU7CisgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRNZWRpYUVuZ2lu
ZTsKKyAgICBTdHJpbmcgbV91cmw7CisgICAgU3RyaW5nIG1fY29udGVudE1JTUVUeXBlOworICAg
IFN0cmluZyBtX2NvbnRlbnRUeXBlQ29kZWNzOwogICAgIEZyYW1lVmlldyogbV9mcmFtZVZpZXc7
CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUHJlbG9hZCBtX3ByZWxvYWQ7Cg==
</data>
<flag name="review"
          id="66944"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>