<?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>49119</bug_id>
          
          <creation_ts>2010-11-05 17:48:52 -0700</creation_ts>
          <short_desc>Add AudioNode custom bindings</short_desc>
          <delta_ts>2010-11-15 20:54:03 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>305678</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-05 17:48:52 -0700</bug_when>
    <thetext>Add AudioNode custom bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305680</commentid>
    <comment_count>1</comment_count>
      <attachid>73151</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-05 17:54:46 -0700</bug_when>
    <thetext>Created attachment 73151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305682</commentid>
    <comment_count>2</comment_count>
      <attachid>73152</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-05 17:57:52 -0700</bug_when>
    <thetext>Created attachment 73152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308187</commentid>
    <comment_count>3</comment_count>
      <attachid>73152</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-11 15:00:44 -0800</bug_when>
    <thetext>Comment on attachment 73152
Patch

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

Basically looks fine; r- for unnecessary checks.

&gt; WebCore/bindings/js/JSAudioNodeCustom.cpp:42
&gt; +    if (exec-&gt;argumentCount() &gt; 3)
&gt; +        return throwError(exec, createSyntaxError(exec, &quot;Too many arguments&quot;));

It isn&apos;t an error to pass too many arguments to a JavaScript function.

&gt; WebCore/bindings/js/JSAudioNodeCustom.cpp:68
&gt; +    if (exec-&gt;argumentCount() &gt; 1)
&gt; +        return throwError(exec, createSyntaxError(exec, &quot;Too many arguments&quot;));

Unnecessary check per above.

&gt; WebCore/bindings/v8/custom/V8AudioNodeCustom.cpp:45
&gt; +    if (args.Length() &gt; 3)
&gt; +        return throwError(&quot;Too many arguments&quot;, V8Proxy::SyntaxError);

Unnecessary check per above.

&gt; WebCore/bindings/v8/custom/V8AudioNodeCustom.cpp:77
&gt; +    if (args.Length() &gt; 1)
&gt; +        return throwError(&quot;Too many arguments&quot;, V8Proxy::SyntaxError);

Unnecessary check per above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308204</commentid>
    <comment_count>4</comment_count>
      <attachid>73671</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-11 15:25:44 -0800</bug_when>
    <thetext>Created attachment 73671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308207</commentid>
    <comment_count>5</comment_count>
      <attachid>73152</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-11 15:26:40 -0800</bug_when>
    <thetext>Comment on attachment 73152
Patch

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

&gt;&gt; WebCore/bindings/js/JSAudioNodeCustom.cpp:42
&gt;&gt; +        return throwError(exec, createSyntaxError(exec, &quot;Too many arguments&quot;));
&gt; 
&gt; It isn&apos;t an error to pass too many arguments to a JavaScript function.

FIXED

&gt;&gt; WebCore/bindings/js/JSAudioNodeCustom.cpp:68
&gt;&gt; +        return throwError(exec, createSyntaxError(exec, &quot;Too many arguments&quot;));
&gt; 
&gt; Unnecessary check per above.

FIXED

&gt;&gt; WebCore/bindings/v8/custom/V8AudioNodeCustom.cpp:45
&gt;&gt; +        return throwError(&quot;Too many arguments&quot;, V8Proxy::SyntaxError);
&gt; 
&gt; Unnecessary check per above.

FIXED

&gt;&gt; WebCore/bindings/v8/custom/V8AudioNodeCustom.cpp:77
&gt;&gt; +        return throwError(&quot;Too many arguments&quot;, V8Proxy::SyntaxError);
&gt; 
&gt; Unnecessary check per above.

FIXED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309453</commentid>
    <comment_count>6</comment_count>
      <attachid>73671</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-15 14:45:09 -0800</bug_when>
    <thetext>Comment on attachment 73671
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309504</commentid>
    <comment_count>7</comment_count>
      <attachid>73671</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 16:34:24 -0800</bug_when>
    <thetext>Comment on attachment 73671
Patch

Rejecting patch 73671 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
do ...............................
editing/unsupported-content .........
fast/backgrounds ..........................
fast/backgrounds/repeat .......
fast/backgrounds/size ..........................
fast/block/basic ...............................
fast/block/float ...............
fast/block/float/015.html -&gt; failed

Exiting early after 1 failures. 5611 tests run.
97.38s total testing time

5610 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
3 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/6051078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309557</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-11-15 20:21:48 -0800</bug_when>
    <thetext>putting back in commit queue.  It previously failed on a completely unrelated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309561</commentid>
    <comment_count>9</comment_count>
      <attachid>73671</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 20:53:57 -0800</bug_when>
    <thetext>Comment on attachment 73671
Patch

Clearing flags on attachment: 73671

Committed r72057: &lt;http://trac.webkit.org/changeset/72057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309562</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 20:54:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73151</attachid>
            <date>2010-11-05 17:54:46 -0700</date>
            <delta_ts>2010-11-05 17:57:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49119-20101105175445.patch</filename>
            <type>text/plain</type>
            <size>8705</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQ2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMDUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Ob2RlIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkxMTkKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ug
YXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRp
b05vZGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb05vZGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhBdWRpb05vZGU6OmNvbm5lY3RDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOEF1ZGlvTm9kZTo6ZGlzY29ubmVjdENhbGxiYWNrKToKKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorCiAyMDEwLTExLTA1ICBKaWFuIExpICA8
amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3Yu
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworI2luY2x1ZGUgIkpTQXVkaW9Ob2RlLmgiCisK
KyNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSlNDOjpKU1ZhbHVlIEpTQXVkaW9Ob2RlOjpjb25uZWN0KEpT
Qzo6RXhlY1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVj
LCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpID4gMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIlRvbyBtYW55IGFyZ3VtZW50cyIpKTsKKworICAgIHVuc2lnbmVkIG91dHB1dElu
ZGV4ID0gMDsKKyAgICB1bnNpZ25lZCBpbnB1dEluZGV4ID0gMDsKKyAgICAKKyAgICBBdWRpb05v
ZGUqIGRlc3RpbmF0aW9uTm9kZSA9IHRvQXVkaW9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBpZiAoIWRlc3RpbmF0aW9uTm9kZSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQgZGVzdGluYXRpb24gbm9kZSIpKTsKKyAg
ICAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkKKyAgICAgICAgb3V0cHV0SW5k
ZXggPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOworCisgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGlucHV0SW5kZXggPSBleGVjLT5hcmd1bWVudCgy
KS50b0ludDMyKGV4ZWMpOworCisgICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSBzdGF0aWNfY2Fz
dDxBdWRpb05vZGUqPihpbXBsKCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+Y29u
bmVjdChkZXN0aW5hdGlvbk5vZGUsIG91dHB1dEluZGV4LCBpbnB1dEluZGV4KTsKKyAgICBpZiAo
IXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVy
cm9yKGV4ZWMsICJJbnZhbGlkIGluZGV4IHBhcmFtZXRlciIpKTsKKyAgICAKKyAgICByZXR1cm4g
SlNDOjpqc1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTVmFsdWUgSlNBdWRpb05vZGU6OmRpc2Nv
bm5lY3QoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCit7ICAgIAorICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPiAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50
YXhFcnJvcihleGVjLCAiVG9vIG1hbnkgYXJndW1lbnRzIikpOworICAgIAorICAgIHVuc2lnbmVk
IG91dHB1dEluZGV4ID0gMDsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCkKKyAg
ICAgICAgb3V0cHV0SW5kZXggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOworCisg
ICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSBzdGF0aWNfY2FzdDxBdWRpb05vZGUqPihpbXBsKCkp
OworICAgIGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChvdXRwdXRJbmRleCk7CisgICAgcmV0dXJuIEpT
Qzo6anNVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
QXVkaW9Ob2RlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorCisjaW5jbHVkZSAiVjhBdWRpb05vZGUuaCIKKworI2luY2x1ZGUgIkF1ZGlv
Tm9kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb05vZGU6
OmNvbm5lY3RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreyAgICAKKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKworICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIlRvbyBtYW55IGFyZ3VtZW50
cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICAKKyAgICBBdWRpb05vZGUqIGRlc3RpbmF0
aW9uTm9kZSA9IHRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOworICAgIGlmICghZGVzdGlu
YXRpb25Ob2RlKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiSW52YWxpZCBkZXN0aW5hdGlv
biBub2RlIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIAorICAgIHVuc2lnbmVkIG91dHB1
dCA9IDA7CisgICAgdW5zaWduZWQgaW5wdXQgPSAwOworICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgb3V0cHV0ID0gdG9JbnQzMihhcmdz
WzFdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiSW52YWxpZCBpbmRleCBwYXJhbWV0ZXJzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAg
IH0KKworICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMikgeworICAgICAgICBpbnB1dCA9IHRvSW50
MzIoYXJnc1syXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6OlN5bnRheEVycm9y
KTsKKyAgICB9CisgICAgICAgIAorICAgIEF1ZGlvTm9kZSogYXVkaW9Ob2RlID0gdG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CisgICAgYm9vbCBzdWNjZXNzID0gYXVkaW9Ob2RlLT5jb25uZWN0KGRl
c3RpbmF0aW9uTm9kZSwgb3V0cHV0LCBpbnB1dCk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcigiSW52YWxpZCBpbmRleCBwYXJhbWV0ZXIiLCBWOFByb3h5OjpT
eW50YXhFcnJvcik7CisKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb05vZGU6OmRpc2Nvbm5lY3RDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQoreyAgICAKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDEpCisgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJUb28gbWFueSBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50
YXhFcnJvcik7CisgICAgCisgICAgdW5zaWduZWQgb3V0cHV0ID0gMDsKKyAgICBib29sIG9rID0g
ZmFsc2U7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwKQorICAgICAgICBvdXRwdXQgPSB0b0lu
dDMyKGFyZ3NbMF0sIG9rKTsKKworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlcnMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisK
KyAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAg
IGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChvdXRwdXQpOworICAgIGlmICgh
c3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1l
dGVyIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwJKHJldmlzaW9uIDcxNDYwKQorKysgV2Vi
Q29yZS93ZWJhdWRpby9BdWRpb05vZGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCwx
MCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBudW1iZXJPZklucHV0czsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbnVtYmVyT2ZPdXRwdXRzOwogCi0gICAgICAgIFtDdXN0b21dIHZvaWQgY29ubmVjdChp
biBBdWRpb05vZGUgZGVzdGluYXRpb24sIGluIHVuc2lnbmVkIGxvbmcgb3V0cHV0LCBpbiB1bnNp
Z25lZCBsb25nIGlucHV0KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBkaXNjb25uZWN0KGluIHVu
c2lnbmVkIGxvbmcgb3V0cHV0KTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBjb25uZWN0KGluIEF1
ZGlvTm9kZSBkZXN0aW5hdGlvbiwgaW4gdW5zaWduZWQgbG9uZyBvdXRwdXQsIGluIHVuc2lnbmVk
IGxvbmcgaW5wdXQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAg
ICBbQ3VzdG9tXSB2b2lkIGRpc2Nvbm5lY3QoaW4gdW5zaWduZWQgbG9uZyBvdXRwdXQpCisgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73152</attachid>
            <date>2010-11-05 17:57:52 -0700</date>
            <delta_ts>2010-11-11 15:26:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49119-20101105175751.patch</filename>
            <type>text/plain</type>
            <size>8720</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQ2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMDUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Ob2RlIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkxMTkKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ug
YXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRp
b05vZGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb05vZGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhBdWRpb05vZGU6OmNvbm5lY3RDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOEF1ZGlvTm9kZTo6ZGlzY29ubmVjdENhbGxiYWNrKToKKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorCiAyMDEwLTExLTA1ICBKaWFuIExpICA8
amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3Yu
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworI2luY2x1ZGUgIkpTQXVkaW9Ob2RlLmgiCisK
KyNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSlNDOjpKU1ZhbHVlIEpTQXVkaW9Ob2RlOjpjb25uZWN0KEpT
Qzo6RXhlY1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVj
LCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpID4gMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIlRvbyBtYW55IGFyZ3VtZW50cyIpKTsKKworICAgIHVuc2lnbmVkIG91dHB1dElu
ZGV4ID0gMDsKKyAgICB1bnNpZ25lZCBpbnB1dEluZGV4ID0gMDsKKyAgICAKKyAgICBBdWRpb05v
ZGUqIGRlc3RpbmF0aW9uTm9kZSA9IHRvQXVkaW9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBpZiAoIWRlc3RpbmF0aW9uTm9kZSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQgZGVzdGluYXRpb24gbm9kZSIpKTsKKyAg
ICAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkKKyAgICAgICAgb3V0cHV0SW5k
ZXggPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOworCisgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGlucHV0SW5kZXggPSBleGVjLT5hcmd1bWVudCgy
KS50b0ludDMyKGV4ZWMpOworCisgICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSBzdGF0aWNfY2Fz
dDxBdWRpb05vZGUqPihpbXBsKCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+Y29u
bmVjdChkZXN0aW5hdGlvbk5vZGUsIG91dHB1dEluZGV4LCBpbnB1dEluZGV4KTsKKyAgICBpZiAo
IXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVy
cm9yKGV4ZWMsICJJbnZhbGlkIGluZGV4IHBhcmFtZXRlciIpKTsKKyAgICAKKyAgICByZXR1cm4g
SlNDOjpqc1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTVmFsdWUgSlNBdWRpb05vZGU6OmRpc2Nv
bm5lY3QoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCit7ICAgIAorICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPiAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50
YXhFcnJvcihleGVjLCAiVG9vIG1hbnkgYXJndW1lbnRzIikpOworICAgIAorICAgIHVuc2lnbmVk
IG91dHB1dEluZGV4ID0gMDsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCkKKyAg
ICAgICAgb3V0cHV0SW5kZXggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOworCisg
ICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSBzdGF0aWNfY2FzdDxBdWRpb05vZGUqPihpbXBsKCkp
OworICAgIGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChvdXRwdXRJbmRleCk7CisgICAgcmV0dXJuIEpT
Qzo6anNVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
QXVkaW9Ob2RlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorCisjaW5jbHVkZSAiVjhBdWRpb05vZGUuaCIKKworI2luY2x1ZGUgIkF1ZGlv
Tm9kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb05vZGU6
OmNvbm5lY3RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreyAgICAKKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKworICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIlRvbyBtYW55IGFyZ3VtZW50
cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICAKKyAgICBBdWRpb05vZGUqIGRlc3RpbmF0
aW9uTm9kZSA9IHRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOworICAgIGlmICghZGVzdGlu
YXRpb25Ob2RlKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiSW52YWxpZCBkZXN0aW5hdGlv
biBub2RlIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIAorICAgIHVuc2lnbmVkIG91dHB1
dCA9IDA7CisgICAgdW5zaWduZWQgaW5wdXQgPSAwOworICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgb3V0cHV0ID0gdG9JbnQzMihhcmdz
WzFdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiSW52YWxpZCBpbmRleCBwYXJhbWV0ZXJzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAg
IH0KKworICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMikgeworICAgICAgICBpbnB1dCA9IHRvSW50
MzIoYXJnc1syXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6OlN5bnRheEVycm9y
KTsKKyAgICB9CisgICAgICAgIAorICAgIEF1ZGlvTm9kZSogYXVkaW9Ob2RlID0gdG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CisgICAgYm9vbCBzdWNjZXNzID0gYXVkaW9Ob2RlLT5jb25uZWN0KGRl
c3RpbmF0aW9uTm9kZSwgb3V0cHV0LCBpbnB1dCk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcigiSW52YWxpZCBpbmRleCBwYXJhbWV0ZXIiLCBWOFByb3h5OjpT
eW50YXhFcnJvcik7CisKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb05vZGU6OmRpc2Nvbm5lY3RDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQoreyAgICAKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDEpCisgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJUb28gbWFueSBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50
YXhFcnJvcik7CisgICAgCisgICAgdW5zaWduZWQgb3V0cHV0ID0gMDsKKyAgICBib29sIG9rID0g
ZmFsc2U7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIG91dHB1dCA9IHRv
SW50MzIoYXJnc1swXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6OlN5bnRheEVy
cm9yKTsKKyAgICB9CisKKyAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChvdXRw
dXQpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFs
aWQgaW5kZXggcGFyYW1ldGVyIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwJKHJldmlzaW9u
IDcxNDYwKQorKysgV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCwxMCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0czsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzOwogCi0gICAgICAgIFtDdXN0b21d
IHZvaWQgY29ubmVjdChpbiBBdWRpb05vZGUgZGVzdGluYXRpb24sIGluIHVuc2lnbmVkIGxvbmcg
b3V0cHV0LCBpbiB1bnNpZ25lZCBsb25nIGlucHV0KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBk
aXNjb25uZWN0KGluIHVuc2lnbmVkIGxvbmcgb3V0cHV0KTsKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCBjb25uZWN0KGluIEF1ZGlvTm9kZSBkZXN0aW5hdGlvbiwgaW4gdW5zaWduZWQgbG9uZyBvdXRw
dXQsIGluIHVuc2lnbmVkIGxvbmcgaW5wdXQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICBbQ3VzdG9tXSB2b2lkIGRpc2Nvbm5lY3QoaW4gdW5zaWduZWQgbG9u
ZyBvdXRwdXQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73671</attachid>
            <date>2010-11-11 15:25:44 -0800</date>
            <delta_ts>2010-11-15 20:53:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49119-20101111152543.patch</filename>
            <type>text/plain</type>
            <size>8267</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMTEgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Ob2RlIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkxMTkKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ug
YXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRp
b05vZGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb05vZGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhBdWRpb05vZGU6OmNvbm5lY3RDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOEF1ZGlvTm9kZTo6ZGlzY29ubmVjdENhbGxiYWNrKToKKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorCiAyMDEwLTExLTEwICBaaGVueWFvIE1v
ICA8em1vQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxs
LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpbmNsdWRlICJKU0F1ZGlvTm9kZS5oIgor
CisjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTQzo6SlNWYWx1ZSBKU0F1ZGlvTm9kZTo6Y29ubmVjdChK
U0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhl
YywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworCisgICAgdW5zaWduZWQgb3V0cHV0SW5kZXgg
PSAwOworICAgIHVuc2lnbmVkIGlucHV0SW5kZXggPSAwOworICAgIAorICAgIEF1ZGlvTm9kZSog
ZGVzdGluYXRpb25Ob2RlID0gdG9BdWRpb05vZGUoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlm
ICghZGVzdGluYXRpb25Ob2RlKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVh
dGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBkZXN0aW5hdGlvbiBub2RlIikpOworICAgIAor
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxKQorICAgICAgICBvdXRwdXRJbmRleCA9
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CisKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gMikKKyAgICAgICAgaW5wdXRJbmRleCA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRv
SW50MzIoZXhlYyk7CisKKyAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHN0YXRpY19jYXN0PEF1
ZGlvTm9kZSo+KGltcGwoKSk7CisgICAgYm9vbCBzdWNjZXNzID0gYXVkaW9Ob2RlLT5jb25uZWN0
KGRlc3RpbmF0aW9uTm9kZSwgb3V0cHV0SW5kZXgsIGlucHV0SW5kZXgpOworICAgIGlmICghc3Vj
Y2VzcykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3Io
ZXhlYywgIkludmFsaWQgaW5kZXggcGFyYW1ldGVyIikpOworICAgIAorICAgIHJldHVybiBKU0M6
OmpzVW5kZWZpbmVkKCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0F1ZGlvTm9kZTo6ZGlzY29ubmVj
dChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sgICAgCisgICAgdW5zaWduZWQgb3V0cHV0SW5kZXgg
PSAwOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwKQorICAgICAgICBvdXRwdXRJ
bmRleCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisKKyAgICBBdWRpb05vZGUq
IGF1ZGlvTm9kZSA9IHN0YXRpY19jYXN0PEF1ZGlvTm9kZSo+KGltcGwoKSk7CisgICAgYXVkaW9O
b2RlLT5kaXNjb25uZWN0KG91dHB1dEluZGV4KTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5l
ZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb05vZGVDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9O
b2RlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXVkaW9Ob2RlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisK
KyNpbmNsdWRlICJWOEF1ZGlvTm9kZS5oIgorCisjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlvTm9kZTo6Y29ubmVjdENhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7ICAgIAorICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRz
IiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisgICAgQXVkaW9Ob2RlKiBkZXN0aW5hdGlvbk5v
ZGUgPSB0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKKyAgICBpZiAoIWRlc3RpbmF0aW9u
Tm9kZSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgZGVzdGluYXRpb24gbm9k
ZSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICAKKyAgICB1bnNpZ25lZCBvdXRwdXQgPSAw
OworICAgIHVuc2lnbmVkIGlucHV0ID0gMDsKKyAgICBib29sIG9rID0gZmFsc2U7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPiAxKSB7CisgICAgICAgIG91dHB1dCA9IHRvSW50MzIoYXJnc1sxXSwg
b2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIklu
dmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICB9CisK
KyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDIpIHsKKyAgICAgICAgaW5wdXQgPSB0b0ludDMyKGFy
Z3NbMl0sIG9rKTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlcnMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Cisg
ICAgfQorICAgICAgICAKKyAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+Y29ubmVjdChkZXN0aW5h
dGlvbk5vZGUsIG91dHB1dCwgaW5wdXQpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVyIiwgVjhQcm94eTo6U3ludGF4
RXJyb3IpOworCisgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKK30KKwordjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4QXVkaW9Ob2RlOjpkaXNjb25uZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKK3sgICAgCisgICAgdW5zaWduZWQgb3V0cHV0ID0gMDsKKyAgICBib29sIG9r
ID0gZmFsc2U7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIG91dHB1dCA9
IHRvSW50MzIoYXJnc1swXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6OlN5bnRh
eEVycm9yKTsKKyAgICB9CisKKyAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChv
dXRwdXQpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIklu
dmFsaWQgaW5kZXggcGFyYW1ldGVyIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwJKHJldmlz
aW9uIDcxNzcwKQorKysgV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCwxMCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0czsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzOwogCi0gICAgICAgIFtDdXN0
b21dIHZvaWQgY29ubmVjdChpbiBBdWRpb05vZGUgZGVzdGluYXRpb24sIGluIHVuc2lnbmVkIGxv
bmcgb3V0cHV0LCBpbiB1bnNpZ25lZCBsb25nIGlucHV0KTsKLSAgICAgICAgW0N1c3RvbV0gdm9p
ZCBkaXNjb25uZWN0KGluIHVuc2lnbmVkIGxvbmcgb3V0cHV0KTsKKyAgICAgICAgW0N1c3RvbV0g
dm9pZCBjb25uZWN0KGluIEF1ZGlvTm9kZSBkZXN0aW5hdGlvbiwgaW4gdW5zaWduZWQgbG9uZyBv
dXRwdXQsIGluIHVuc2lnbmVkIGxvbmcgaW5wdXQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKworICAgICAgICBbQ3VzdG9tXSB2b2lkIGRpc2Nvbm5lY3QoaW4gdW5zaWduZWQg
bG9uZyBvdXRwdXQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9Owog
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>