<?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>54045</bug_id>
          
          <creation_ts>2011-02-08 16:20:53 -0800</creation_ts>
          <short_desc>Fix scaling and thread safety of FFTFrameFFTW</short_desc>
          <delta_ts>2011-02-09 12:03:38 -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>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>347786</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-08 16:20:53 -0800</bug_when>
    <thetext>Fix scaling and thread safety of FFTFrameFFTW</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347790</commentid>
    <comment_count>1</comment_count>
      <attachid>81714</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-08 16:25:05 -0800</bug_when>
    <thetext>Created attachment 81714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347817</commentid>
    <comment_count>2</comment_count>
      <attachid>81714</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-08 17:01:38 -0800</bug_when>
    <thetext>Comment on attachment 81714
Patch

This mostly looks good -- thanks for fixing my bugs -- but as we discussed offline we should add a static initialize() method to FFTFrame to allow the mutex to be created from a known good place, before multithreaded allocation of FFTFrames might start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347840</commentid>
    <comment_count>3</comment_count>
      <attachid>81722</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-08 17:27:49 -0800</bug_when>
    <thetext>Created attachment 81722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347844</commentid>
    <comment_count>4</comment_count>
      <attachid>81723</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-08 17:30:57 -0800</bug_when>
    <thetext>Created attachment 81723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347845</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-08 17:31:54 -0800</bug_when>
    <thetext>Added the static initialize() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347849</commentid>
    <comment_count>6</comment_count>
      <attachid>81723</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-08 17:34:46 -0800</bug_when>
    <thetext>Comment on attachment 81723
Patch

Looks fine. Please regenerate the ChangeLog when landing to pick up the changes to newly modified files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348436</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-02-09 12:03:38 -0800</bug_when>
    <thetext>Committed r78102: &lt;http://trac.webkit.org/changeset/78102&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81714</attachid>
            <date>2011-02-08 16:25:05 -0800</date>
            <delta_ts>2011-02-08 17:27:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54045-20110208162504.patch</filename>
            <type>text/plain</type>
            <size>7068</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3OTg2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDggIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXggc2NhbGluZyBhbmQgdGhyZWFkIHNhZmV0eSBvZiBGRlRG
cmFtZUZGVFcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MDQ1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIGFwaSBpcyBub3QgeWV0
IGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9mZnR3L0ZGVEZyYW1lRkZUVy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OmRvRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZG
VEZyYW1lOjppbWFnRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZmZ0d1BsYW5G
b3JTaXplKToKKwogMjAxMS0wMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgJKHJldmlzaW9uIDc3OTc1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYs
NyBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZv
cm0uaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMTMwLDkgKzEzMSwxNCBAQCBwcml2YXRlOgogICAgICAgICBCYWNrd2FyZAogICAgIH07
CiAKLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsKLSAgICBBdWRpb0Zsb2F0QXJyYXkg
bV9pbWFnRGF0YTsKKyAgICAvLyBCb3RoIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBhcmUg
c3RvcmVkIGhlcmUuCisgICAgLy8gVGhlIHJlYWwgZGF0YSBpcyBzdG9yZWQgZmlyc3QsIGZvbGxv
d2VkIGJ5IHRocmVlIGZsb2F0IHZhbHVlcyBvZiBwYWRkaW5nLgorICAgIC8vIFRoZSBpbWFnaW5h
cnkgZGF0YSBpcyBzdG9yZWQgYWZ0ZXIgdGhlIHBhZGRpbmcgYW5kIGlzIDE2LWJ5dGUgYWxpZ25l
ZCAoaWYgbV9kYXRhIGl0c2VsZiBpcyBhbGlnbmVkKS4KKyAgICAvLyBUaGUgcmVhc29uIHdlIGRv
bid0IHVzZSBzZXBhcmF0ZSBhcnJheXMgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBpcyBiZWNhdXNl
IHRoZSBGRlRXIHBsYW5zIGFyZSBzaGFyZWQKKyAgICAvLyBiZXR3ZWVuIEZGVEZyYW1lIGluc3Rh
bmNlcyBhbmQgcmVxdWlyZSB0aGF0IHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBwb2ludGVy
cyBiZSB0aGUgc2FtZSBkaXN0YW5jZSBhcGFydC4KKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9kYXRh
OwogCisgICAgc3RhdGljIE11dGV4ICpzX3BsYW5Mb2NrOwogICAgIHN0YXRpYyBmZnR3Zl9wbGFu
KiBmZnR3Rm9yd2FyZFBsYW5zOwogICAgIHN0YXRpYyBmZnR3Zl9wbGFuKiBmZnR3QmFja3dhcmRQ
bGFuczsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZmZ0dy9GRlRGcmFt
ZUZGVFcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Zm
dHcvRkZURnJhbWVGRlRXLmNwcAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9mZnR3L0ZGVEZyYW1lRkZUVy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDYgKzQwLDggQEAgY29uc3QgaW50IGtNYXhGRlRQb3cyU2l6ZSA9IDI0OwogZmZ0d2ZfcGxhbiog
RkZURnJhbWU6OmZmdHdGb3J3YXJkUGxhbnMgPSAwOwogZmZ0d2ZfcGxhbiogRkZURnJhbWU6OmZm
dHdCYWNrd2FyZFBsYW5zID0gMDsKIAorTXV0ZXgqIEZGVEZyYW1lOjpzX3BsYW5Mb2NrID0gMDsK
KwogbmFtZXNwYWNlIHsKIAogdW5zaWduZWQgdW5wYWNrZWRGRlRXRGF0YVNpemUodW5zaWduZWQg
ZmZ0U2l6ZSkKQEAgLTU2LDggKzU4LDcgQEAgRkZURnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZm
dFNpemUpCiAgICAgLCBtX2xvZzJGRlRTaXplKHN0YXRpY19jYXN0PHVuc2lnbmVkPihsb2cyKGZm
dFNpemUpKSkKICAgICAsIG1fZm9yd2FyZFBsYW4oMCkKICAgICAsIG1fYmFja3dhcmRQbGFuKDAp
Ci0gICAgLCBtX3JlYWxEYXRhKHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUpKQotICAgICwg
bV9pbWFnRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShmZnRTaXplKSkKKyAgICAsIG1fZGF0YSgy
ICogKDMgKyB1bnBhY2tlZEZGVFdEYXRhU2l6ZShmZnRTaXplKSkpIC8vIGVub3VnaCBzcGFjZSBm
b3IgcmVhbCBhbmQgaW1hZ2luYXJ5IGRhdGEgcGx1cyAxNi1ieXRlIGFsaWdubWVudCBwYWRkaW5n
CiB7CiAgICAgLy8gV2Ugb25seSBhbGxvdyBwb3dlciBvZiB0d28uCiAgICAgQVNTRVJUKDFVTCA8
PCBtX2xvZzJGRlRTaXplID09IG1fRkZUU2l6ZSk7CkBAIC03NCw4ICs3NSw2IEBAIEZGVEZyYW1l
OjpGRlRGcmFtZSh1bnNpZ25lZCBmZnRTaXplKQogICAgIC8vIG92ZXJoZWFkLiBGb3IgdGhlIHRp
bWUgYmVpbmcsIHdlIGp1c3QgYXNzdW1lIHVuYWxpZ25lZCBkYXRhIGFuZAogICAgIC8vIHBhc3Mg
YSB0ZW1wb3JhcnkgcG9pbnRlciBkb3duLgogCi0gICAgLy8gRklYTUU6IHdlIHNob3VsZCBwcm9i
YWJseSBhbGxvY2F0ZSBib3RoIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uCi0gICAgLy8gYXJy
YXlzIGluIHRoaXMgY2xhc3MgYW5kIG1lbWNweSB0aGUgZGF0YSBpbiBhbmQgb3V0IG9mIHRoZW0u
CiAgICAgZmxvYXQgdGVtcG9yYXJ5OwogICAgIG1fZm9yd2FyZFBsYW4gPSBmZnR3UGxhbkZvclNp
emUoZmZ0U2l6ZSwgRm9yd2FyZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZ0ZW1wb3JhcnksIHJlYWxEYXRhKCksIGltYWdEYXRhKCkpOwpAQCAtOTgsOCArOTcsNyBAQCBG
RlRGcmFtZTo6RkZURnJhbWUoY29uc3QgRkZURnJhbWUmIGZyYW1lCiAgICAgLCBtX2xvZzJGRlRT
aXplKGZyYW1lLm1fbG9nMkZGVFNpemUpCiAgICAgLCBtX2ZvcndhcmRQbGFuKDApCiAgICAgLCBt
X2JhY2t3YXJkUGxhbigwKQotICAgICwgbV9yZWFsRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShm
cmFtZS5tX0ZGVFNpemUpKQotICAgICwgbV9pbWFnRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShm
cmFtZS5tX0ZGVFNpemUpKQorICAgICwgbV9kYXRhKDIgKiAoMyArIHVucGFja2VkRkZUV0RhdGFT
aXplKGZmdFNpemUoKSkpKSAvLyBlbm91Z2ggc3BhY2UgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBk
YXRhIHBsdXMgMTYtYnl0ZSBhbGlnbm1lbnQgcGFkZGluZwogewogICAgIC8vIFNlZSB0aGUgbm9y
bWFsIGNvbnN0cnVjdG9yIGZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgdGVtcG9yYXJ5IHBvaW50
ZXIuCiAgICAgZmxvYXQgdGVtcG9yYXJ5OwpAQCAtMTYyLDI2ICsxNjAsMzEgQEAgdm9pZCBGRlRG
cmFtZTo6ZG9GRlQoZmxvYXQqIGRhdGEpCiAgICAgLy8gb3Igb3RoZXIgaW50cmluc2ljcyB0byBh
Y2NlbGVyYXRlIGl0LgogICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMjsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSB1bnBhY2tlZEZGVFdEYXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5n
dGggPT0gbV9yZWFsRGF0YS5zaXplKCkpOworICAgIGZsb2F0KiByZWFsRGF0YSA9IHRoaXMtPnJl
YWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdEYXRhID0gdGhpcy0+aW1hZ0RhdGEoKTsKKwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBtX3JlYWxE
YXRhW2ldID0gbV9yZWFsRGF0YVtpXSAqIHNjYWxlRmFjdG9yOwotICAgICAgICBtX2ltYWdEYXRh
W2ldID0gbV9pbWFnRGF0YVtpXSAqIHNjYWxlRmFjdG9yOworICAgICAgICByZWFsRGF0YVtpXSA9
IHJlYWxEYXRhW2ldICogc2NhbGVGYWN0b3I7CisgICAgICAgIGltYWdEYXRhW2ldID0gaW1hZ0Rh
dGFbaV0gKiBzY2FsZUZhY3RvcjsKICAgICB9CiAKICAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNv
bXBvbmVudCB0byB0aGUgbG9jYXRpb24gZXhwZWN0ZWQgYnkgdGhlCiAgICAgLy8gRkZURnJhbWUg
QVBJLgotICAgIG1faW1hZ0RhdGFbMF0gPSBtX3JlYWxEYXRhW2xlbmd0aCAtIDFdOworICAgIGlt
YWdEYXRhWzBdID0gcmVhbERhdGFbbGVuZ3RoIC0gMV07CiB9CiAKIHZvaWQgRkZURnJhbWU6OmRv
SW52ZXJzZUZGVChmbG9hdCogZGF0YSkKIHsKLSAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBv
bmVudCB0byB0aGUgbG9jYXRpb24gZXhwZWN0ZWQgYnkgRkZUVy4KICAgICB1bnNpZ25lZCBsZW5n
dGggPSB1bnBhY2tlZEZGVFdEYXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5ndGgg
PSBtX3JlYWxEYXRhLnNpemUoKSk7Ci0gICAgbV9yZWFsRGF0YVtsZW5ndGggLSAxXSA9IG1faW1h
Z0RhdGFbMF07Ci0gICAgbV9pbWFnRGF0YVswXSA9IDA7CisgICAgZmxvYXQqIHJlYWxEYXRhID0g
dGhpcy0+cmVhbERhdGEoKTsKKyAgICBmbG9hdCogaW1hZ0RhdGEgPSB0aGlzLT5pbWFnRGF0YSgp
OwogCi0gICAgZmZ0d2ZfZXhlY3V0ZV9zcGxpdF9kZnRfYzJyKG1fYmFja3dhcmRQbGFuLCByZWFs
RGF0YSgpLCBpbWFnRGF0YSgpLCBkYXRhKTsKKyAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBv
bmVudCB0byB0aGUgbG9jYXRpb24gZXhwZWN0ZWQgYnkgRkZUVy4KKyAgICByZWFsRGF0YVtsZW5n
dGggLSAxXSA9IGltYWdEYXRhWzBdOworICAgIGltYWdEYXRhW2xlbmd0aCAtIDFdID0gMDsKKyAg
ICBpbWFnRGF0YVswXSA9IDA7CisKKyAgICBmZnR3Zl9leGVjdXRlX3NwbGl0X2RmdF9jMnIobV9i
YWNrd2FyZFBsYW4sIHJlYWxEYXRhLCBpbWFnRGF0YSwgZGF0YSk7CiAKICAgICAvLyBSZXN0b3Jl
IHRoZSBvcmlnaW5hbCBzY2FsaW5nIG9mIHRoZSB0aW1lIGRvbWFpbiBkYXRhLgogICAgIC8vIEZJ
WE1FOiBpZiB3ZSBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgRkZURnJhbWUgdG8gZWxpbWluYXRl
IHRoZQpAQCAtMTg5LDEyICsxOTIsMTMgQEAgdm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZs
b2F0KiBkYXRhKQogICAgIC8vIGxvb3AgdHVybnMgb3V0IHRvIGJlIGhvdCB0aGVuIHdlIHNob3Vs
ZCB1c2UgU1NFIG9yIG90aGVyCiAgICAgLy8gaW50cmluc2ljcyB0byBhY2NlbGVyYXRlIGl0Lgog
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wIC8gKDIuMCAqIGZmdFNpemUoKSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgIHVuc2lnbmVkIG4gPSBmZnRT
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICAgZGF0
YVtpXSAqPSBzY2FsZUZhY3RvcjsKIAogICAgIC8vIE1vdmUgdGhlIE55cXVpc3QgY29tcG9uZW50
IGJhY2sgdG8gdGhlIGxvY2F0aW9uIGV4cGVjdGVkIGJ5IHRoZQogICAgIC8vIEZGVEZyYW1lIEFQ
SS4KLSAgICBtX2ltYWdEYXRhWzBdID0gbV9yZWFsRGF0YVtsZW5ndGggLSAxXTsKKyAgICBpbWFn
RGF0YVswXSA9IHJlYWxEYXRhW2xlbmd0aCAtIDFdOwogfQogCiB2b2lkIEZGVEZyYW1lOjpjbGVh
bnVwKCkKQEAgLTIxOCwxMiArMjIyLDEzIEBAIHZvaWQgRkZURnJhbWU6OmNsZWFudXAoKQogCiBm
bG9hdCogRkZURnJhbWU6OnJlYWxEYXRhKCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29uc3RfY2Fz
dDxmbG9hdCo+KG1fcmVhbERhdGEuZGF0YSgpKTsKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9h
dCo+KG1fZGF0YS5kYXRhKCkpOwogfQogCiBmbG9hdCogRkZURnJhbWU6OmltYWdEYXRhKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1faW1hZ0RhdGEuZGF0YSgpKTsK
KyAgICAvLyBJbWFnaW5hcnkgZGF0YSBpcyBzdG9yZWQgZm9sbG93aW5nIHRoZSByZWFsIGRhdGEg
d2l0aCBlbm91Z2ggcGFkZGluZyBmb3IgMTYtYnl0ZSBhbGlnbm1lbnQuCisgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8ZmxvYXQqPihyZWFsRGF0YSgpICsgdW5wYWNrZWRGRlRXRGF0YVNpemUoZmZ0U2l6
ZSgpKSArIDMpOwogfQogCiBmZnR3Zl9wbGFuIEZGVEZyYW1lOjpmZnR3UGxhbkZvclNpemUodW5z
aWduZWQgZmZ0U2l6ZSwgRGlyZWN0aW9uIGRpcmVjdGlvbiwKQEAgLTI0Myw2ICsyNDgsMTAgQEAg
ZmZ0d2ZfcGxhbiBGRlRGcmFtZTo6ZmZ0d1BsYW5Gb3JTaXplKHVucwogICAgIEFTU0VSVChwb3cy
c2l6ZSA8IGtNYXhGRlRQb3cyU2l6ZSk7CiAgICAgZmZ0d2ZfcGxhbiogcGxhbnMgPSAoZGlyZWN0
aW9uID09IEZvcndhcmQpID8gZmZ0d0ZvcndhcmRQbGFucyA6IGZmdHdCYWNrd2FyZFBsYW5zOwog
ICAgIGlmICghcGxhbnNbcG93MnNpemVdKSB7CisgICAgICAgIGlmICghc19wbGFuTG9jaykKKyAg
ICAgICAgICAgIHNfcGxhbkxvY2sgPSBuZXcgTXV0ZXgoKTsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKCpzX3BsYW5Mb2NrKTsKKwogICAgICAgICBmZnR3Zl9pb2RpbSBkaW1lbnNpb247CiAg
ICAgICAgIGRpbWVuc2lvbi5uID0gZmZ0U2l6ZTsKICAgICAgICAgZGltZW5zaW9uLmlzID0gMTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81722</attachid>
            <date>2011-02-08 17:27:49 -0800</date>
            <delta_ts>2011-02-08 17:30:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54045-20110208172748.patch</filename>
            <type>text/plain</type>
            <size>10056</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3OTg2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDggIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXggc2NhbGluZyBhbmQgdGhyZWFkIHNhZmV0eSBvZiBGRlRG
cmFtZUZGVFcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MDQ1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIGFwaSBpcyBub3QgeWV0
IGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9mZnR3L0ZGVEZyYW1lRkZUVy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OmRvRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZG
VEZyYW1lOjppbWFnRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZmZ0d1BsYW5G
b3JTaXplKToKKwogMjAxMS0wMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgJKHJldmlzaW9uIDc3OTc1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYs
NyBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZv
cm0uaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjEsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgRkZURnJhbWUoY29uc3QgRkZURnJhbWUm
IGZyYW1lKTsKICAgICB+RkZURnJhbWUoKTsKIAorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUo
KTsKICAgICBzdGF0aWMgdm9pZCBjbGVhbnVwKCk7CiAgICAgdm9pZCBkb0ZGVChmbG9hdCogZGF0
YSk7CiAgICAgdm9pZCBkb0ludmVyc2VGRlQoZmxvYXQqIGRhdGEpOwpAQCAtMTMwLDkgKzEzMiwx
NCBAQCBwcml2YXRlOgogICAgICAgICBCYWNrd2FyZAogICAgIH07CiAKLSAgICBBdWRpb0Zsb2F0
QXJyYXkgbV9yZWFsRGF0YTsKLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyAgICAv
LyBCb3RoIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBhcmUgc3RvcmVkIGhlcmUuCisgICAg
Ly8gVGhlIHJlYWwgZGF0YSBpcyBzdG9yZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IHRocmVlIGZsb2F0
IHZhbHVlcyBvZiBwYWRkaW5nLgorICAgIC8vIFRoZSBpbWFnaW5hcnkgZGF0YSBpcyBzdG9yZWQg
YWZ0ZXIgdGhlIHBhZGRpbmcgYW5kIGlzIDE2LWJ5dGUgYWxpZ25lZCAoaWYgbV9kYXRhIGl0c2Vs
ZiBpcyBhbGlnbmVkKS4KKyAgICAvLyBUaGUgcmVhc29uIHdlIGRvbid0IHVzZSBzZXBhcmF0ZSBh
cnJheXMgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBpcyBiZWNhdXNlIHRoZSBGRlRXIHBsYW5zIGFy
ZSBzaGFyZWQKKyAgICAvLyBiZXR3ZWVuIEZGVEZyYW1lIGluc3RhbmNlcyBhbmQgcmVxdWlyZSB0
aGF0IHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBwb2ludGVycyBiZSB0aGUgc2FtZSBkaXN0
YW5jZSBhcGFydC4KKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9kYXRhOwogCisgICAgc3RhdGljIE11
dGV4ICpzX3BsYW5Mb2NrOwogICAgIHN0YXRpYyBmZnR3Zl9wbGFuKiBmZnR3Rm9yd2FyZFBsYW5z
OwogICAgIHN0YXRpYyBmZnR3Zl9wbGFuKiBmZnR3QmFja3dhcmRQbGFuczsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZmZ0dy9GRlRGcmFtZUZGVFcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ZmdHcvRkZURnJhbWVGRlRXLmNw
cAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9mZnR3
L0ZGVEZyYW1lRkZUVy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAgY29uc3Qg
aW50IGtNYXhGRlRQb3cyU2l6ZSA9IDI0OwogZmZ0d2ZfcGxhbiogRkZURnJhbWU6OmZmdHdGb3J3
YXJkUGxhbnMgPSAwOwogZmZ0d2ZfcGxhbiogRkZURnJhbWU6OmZmdHdCYWNrd2FyZFBsYW5zID0g
MDsKIAorTXV0ZXgqIEZGVEZyYW1lOjpzX3BsYW5Mb2NrID0gMDsKKwogbmFtZXNwYWNlIHsKIAog
dW5zaWduZWQgdW5wYWNrZWRGRlRXRGF0YVNpemUodW5zaWduZWQgZmZ0U2l6ZSkKQEAgLTU2LDgg
KzU4LDcgQEAgRkZURnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCiAgICAgLCBtX2xv
ZzJGRlRTaXplKHN0YXRpY19jYXN0PHVuc2lnbmVkPihsb2cyKGZmdFNpemUpKSkKICAgICAsIG1f
Zm9yd2FyZFBsYW4oMCkKICAgICAsIG1fYmFja3dhcmRQbGFuKDApCi0gICAgLCBtX3JlYWxEYXRh
KHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUpKQotICAgICwgbV9pbWFnRGF0YSh1bnBhY2tl
ZEZGVFdEYXRhU2l6ZShmZnRTaXplKSkKKyAgICAsIG1fZGF0YSgyICogKDMgKyB1bnBhY2tlZEZG
VFdEYXRhU2l6ZShmZnRTaXplKSkpIC8vIGVub3VnaCBzcGFjZSBmb3IgcmVhbCBhbmQgaW1hZ2lu
YXJ5IGRhdGEgcGx1cyAxNi1ieXRlIGFsaWdubWVudCBwYWRkaW5nCiB7CiAgICAgLy8gV2Ugb25s
eSBhbGxvdyBwb3dlciBvZiB0d28uCiAgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09
IG1fRkZUU2l6ZSk7CkBAIC03NCw4ICs3NSw2IEBAIEZGVEZyYW1lOjpGRlRGcmFtZSh1bnNpZ25l
ZCBmZnRTaXplKQogICAgIC8vIG92ZXJoZWFkLiBGb3IgdGhlIHRpbWUgYmVpbmcsIHdlIGp1c3Qg
YXNzdW1lIHVuYWxpZ25lZCBkYXRhIGFuZAogICAgIC8vIHBhc3MgYSB0ZW1wb3JhcnkgcG9pbnRl
ciBkb3duLgogCi0gICAgLy8gRklYTUU6IHdlIHNob3VsZCBwcm9iYWJseSBhbGxvY2F0ZSBib3Ro
IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uCi0gICAgLy8gYXJyYXlzIGluIHRoaXMgY2xhc3Mg
YW5kIG1lbWNweSB0aGUgZGF0YSBpbiBhbmQgb3V0IG9mIHRoZW0uCiAgICAgZmxvYXQgdGVtcG9y
YXJ5OwogICAgIG1fZm9yd2FyZFBsYW4gPSBmZnR3UGxhbkZvclNpemUoZmZ0U2l6ZSwgRm9yd2Fy
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0ZW1wb3JhcnksIHJlYWxE
YXRhKCksIGltYWdEYXRhKCkpOwpAQCAtOTgsOCArOTcsNyBAQCBGRlRGcmFtZTo6RkZURnJhbWUo
Y29uc3QgRkZURnJhbWUmIGZyYW1lCiAgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9nMkZG
VFNpemUpCiAgICAgLCBtX2ZvcndhcmRQbGFuKDApCiAgICAgLCBtX2JhY2t3YXJkUGxhbigwKQot
ICAgICwgbV9yZWFsRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShmcmFtZS5tX0ZGVFNpemUpKQot
ICAgICwgbV9pbWFnRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShmcmFtZS5tX0ZGVFNpemUpKQor
ICAgICwgbV9kYXRhKDIgKiAoMyArIHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUoKSkpKSAv
LyBlbm91Z2ggc3BhY2UgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRhIHBsdXMgMTYtYnl0ZSBh
bGlnbm1lbnQgcGFkZGluZwogewogICAgIC8vIFNlZSB0aGUgbm9ybWFsIGNvbnN0cnVjdG9yIGZv
ciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgdGVtcG9yYXJ5IHBvaW50ZXIuCiAgICAgZmxvYXQgdGVt
cG9yYXJ5OwpAQCAtMTYyLDI2ICsxNjAsMzEgQEAgdm9pZCBGRlRGcmFtZTo6ZG9GRlQoZmxvYXQq
IGRhdGEpCiAgICAgLy8gb3Igb3RoZXIgaW50cmluc2ljcyB0byBhY2NlbGVyYXRlIGl0LgogICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gMjsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB1bnBhY2tlZEZG
VFdEYXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5ndGggPT0gbV9yZWFsRGF0YS5z
aXplKCkpOworICAgIGZsb2F0KiByZWFsRGF0YSA9IHRoaXMtPnJlYWxEYXRhKCk7CisgICAgZmxv
YXQqIGltYWdEYXRhID0gdGhpcy0+aW1hZ0RhdGEoKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBtX3JlYWxEYXRhW2ldID0gbV9yZWFsRGF0
YVtpXSAqIHNjYWxlRmFjdG9yOwotICAgICAgICBtX2ltYWdEYXRhW2ldID0gbV9pbWFnRGF0YVtp
XSAqIHNjYWxlRmFjdG9yOworICAgICAgICByZWFsRGF0YVtpXSA9IHJlYWxEYXRhW2ldICogc2Nh
bGVGYWN0b3I7CisgICAgICAgIGltYWdEYXRhW2ldID0gaW1hZ0RhdGFbaV0gKiBzY2FsZUZhY3Rv
cjsKICAgICB9CiAKICAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9j
YXRpb24gZXhwZWN0ZWQgYnkgdGhlCiAgICAgLy8gRkZURnJhbWUgQVBJLgotICAgIG1faW1hZ0Rh
dGFbMF0gPSBtX3JlYWxEYXRhW2xlbmd0aCAtIDFdOworICAgIGltYWdEYXRhWzBdID0gcmVhbERh
dGFbbGVuZ3RoIC0gMV07CiB9CiAKIHZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChmbG9hdCog
ZGF0YSkKIHsKLSAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9jYXRp
b24gZXhwZWN0ZWQgYnkgRkZUVy4KICAgICB1bnNpZ25lZCBsZW5ndGggPSB1bnBhY2tlZEZGVFdE
YXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5ndGggPSBtX3JlYWxEYXRhLnNpemUo
KSk7Ci0gICAgbV9yZWFsRGF0YVtsZW5ndGggLSAxXSA9IG1faW1hZ0RhdGFbMF07Ci0gICAgbV9p
bWFnRGF0YVswXSA9IDA7CisgICAgZmxvYXQqIHJlYWxEYXRhID0gdGhpcy0+cmVhbERhdGEoKTsK
KyAgICBmbG9hdCogaW1hZ0RhdGEgPSB0aGlzLT5pbWFnRGF0YSgpOwogCi0gICAgZmZ0d2ZfZXhl
Y3V0ZV9zcGxpdF9kZnRfYzJyKG1fYmFja3dhcmRQbGFuLCByZWFsRGF0YSgpLCBpbWFnRGF0YSgp
LCBkYXRhKTsKKyAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9jYXRp
b24gZXhwZWN0ZWQgYnkgRkZUVy4KKyAgICByZWFsRGF0YVtsZW5ndGggLSAxXSA9IGltYWdEYXRh
WzBdOworICAgIGltYWdEYXRhW2xlbmd0aCAtIDFdID0gMDsKKyAgICBpbWFnRGF0YVswXSA9IDA7
CisKKyAgICBmZnR3Zl9leGVjdXRlX3NwbGl0X2RmdF9jMnIobV9iYWNrd2FyZFBsYW4sIHJlYWxE
YXRhLCBpbWFnRGF0YSwgZGF0YSk7CiAKICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzY2Fs
aW5nIG9mIHRoZSB0aW1lIGRvbWFpbiBkYXRhLgogICAgIC8vIEZJWE1FOiBpZiB3ZSBjaGFuZ2Ug
dGhlIGRlZmluaXRpb24gb2YgRkZURnJhbWUgdG8gZWxpbWluYXRlIHRoZQpAQCAtMTg5LDEyICsx
OTIsMjggQEAgdm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZsb2F0KiBkYXRhKQogICAgIC8v
IGxvb3AgdHVybnMgb3V0IHRvIGJlIGhvdCB0aGVuIHdlIHNob3VsZCB1c2UgU1NFIG9yIG90aGVy
CiAgICAgLy8gaW50cmluc2ljcyB0byBhY2NlbGVyYXRlIGl0LgogICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gMS4wIC8gKDIuMCAqIGZmdFNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKQorICAgIHVuc2lnbmVkIG4gPSBmZnRTaXplKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICAgZGF0YVtpXSAqPSBzY2FsZUZhY3Rv
cjsKIAogICAgIC8vIE1vdmUgdGhlIE55cXVpc3QgY29tcG9uZW50IGJhY2sgdG8gdGhlIGxvY2F0
aW9uIGV4cGVjdGVkIGJ5IHRoZQogICAgIC8vIEZGVEZyYW1lIEFQSS4KLSAgICBtX2ltYWdEYXRh
WzBdID0gbV9yZWFsRGF0YVtsZW5ndGggLSAxXTsKKyAgICBpbWFnRGF0YVswXSA9IHJlYWxEYXRh
W2xlbmd0aCAtIDFdOworfQorCit2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKK3sKKyAgICBp
ZiAoIWZmdHdGb3J3YXJkUGxhbnMpIHsKKyAgICAgICAgZmZ0d0ZvcndhcmRQbGFucyA9IG5ldyBm
ZnR3Zl9wbGFuW2tNYXhGRlRQb3cyU2l6ZV07CisgICAgICAgIGZmdHdCYWNrd2FyZFBsYW5zID0g
bmV3IGZmdHdmX3BsYW5ba01heEZGVFBvdzJTaXplXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBrTWF4RkZUUG93MlNpemU7ICsraSkgeworICAgICAgICAgICAgZmZ0d0ZvcndhcmRQbGFu
c1tpXSA9IDA7CisgICAgICAgICAgICBmZnR3QmFja3dhcmRQbGFuc1tpXSA9IDA7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoIXNfcGxhbkxvY2spCisgICAgICAgIHNfcGxhbkxvY2sgPSBu
ZXcgTXV0ZXgoKTsKIH0KIAogdm9pZCBGRlRGcmFtZTo6Y2xlYW51cCgpCkBAIC0yMTQsMzUgKzIz
Myw0MCBAQCB2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKIAogICAgIGZmdHdGb3J3YXJkUGxhbnMg
PSAwOwogICAgIGZmdHdCYWNrd2FyZFBsYW5zID0gMDsKKyAgICAKKyAgICBkZWxldGUgc19wbGFu
TG9jazsKKyAgICBzX3BsYW5Mb2NrID0gMDsKIH0KIAogZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0
YSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRh
dGEoKSk7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX2RhdGEuZGF0YSgpKTsKIH0K
IAogZmxvYXQqIEZGVEZyYW1lOjppbWFnRGF0YSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8ZmxvYXQqPihtX2ltYWdEYXRhLmRhdGEoKSk7CisgICAgLy8gSW1hZ2luYXJ5IGRhdGEg
aXMgc3RvcmVkIGZvbGxvd2luZyB0aGUgcmVhbCBkYXRhIHdpdGggZW5vdWdoIHBhZGRpbmcgZm9y
IDE2LWJ5dGUgYWxpZ25tZW50LgorICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4ocmVhbERh
dGEoKSArIHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUoKSkgKyAzKTsKIH0KIAogZmZ0d2Zf
cGxhbiBGRlRGcmFtZTo6ZmZ0d1BsYW5Gb3JTaXplKHVuc2lnbmVkIGZmdFNpemUsIERpcmVjdGlv
biBkaXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQq
IGRhdGExLCBmbG9hdCogZGF0YTIsIGZsb2F0KiBkYXRhMykKIHsKLSAgICBpZiAoIWZmdHdGb3J3
YXJkUGxhbnMpIHsKLSAgICAgICAgZmZ0d0ZvcndhcmRQbGFucyA9IG5ldyBmZnR3Zl9wbGFuW2tN
YXhGRlRQb3cyU2l6ZV07Ci0gICAgICAgIGZmdHdCYWNrd2FyZFBsYW5zID0gbmV3IGZmdHdmX3Bs
YW5ba01heEZGVFBvdzJTaXplXTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTWF4RkZU
UG93MlNpemU7ICsraSkgewotICAgICAgICAgICAgZmZ0d0ZvcndhcmRQbGFuc1tpXSA9IDA7Ci0g
ICAgICAgICAgICBmZnR3QmFja3dhcmRQbGFuc1tpXSA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0K
KyAgICAvLyBpbml0aWFsaXplKCkgbXVzdCBiZSBjYWxsZWQgZmlyc3QuCisgICAgQVNTRVJUKGZm
dHdGb3J3YXJkUGxhbnMpOworICAgIGlmICghZmZ0d0ZvcndhcmRQbGFucykKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIAogICAgIEFTU0VSVChmZnRTaXplKTsKICAgICBpbnQgcG93MnNpemUg
PSBzdGF0aWNfY2FzdDxpbnQ+KGxvZzIoZmZ0U2l6ZSkpOwogICAgIEFTU0VSVChwb3cyc2l6ZSA8
IGtNYXhGRlRQb3cyU2l6ZSk7CiAgICAgZmZ0d2ZfcGxhbiogcGxhbnMgPSAoZGlyZWN0aW9uID09
IEZvcndhcmQpID8gZmZ0d0ZvcndhcmRQbGFucyA6IGZmdHdCYWNrd2FyZFBsYW5zOwogICAgIGlm
ICghcGxhbnNbcG93MnNpemVdKSB7CisgICAgICAgIEFTU0VSVChzX3BsYW5Mb2NrKTsKKyAgICAg
ICAgaWYgKCFzX3BsYW5Mb2NrKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcigqc19wbGFuTG9jayk7CisKICAgICAgICAgZmZ0d2ZfaW9kaW0gZGltZW5z
aW9uOwogICAgICAgICBkaW1lbnNpb24ubiA9IGZmdFNpemU7CiAgICAgICAgIGRpbWVuc2lvbi5p
cyA9IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvRkZURnJhbWVN
YWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9G
RlRGcmFtZU1hYy5jcHAJKHJldmlzaW9uIDc3OTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0ZGVEZyYW1lTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDYgKzE2
MiwxMCBAQCBGRlRTZXR1cCBGRlRGcmFtZTo6ZmZ0U2V0dXBGb3JTaXplKHVuc2lnCiAgICAgcmV0
dXJuIGZmdFNldHVwc1twb3cyc2l6ZV07CiB9CiAKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxpemUo
KQoreworfQorCiB2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKIHsKICAgICBpZiAoIWZmdFNldHVw
cykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21rbC9GRlRGcmFtZU1LTC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWtsL0ZGVEZy
YW1lTUtMLmNwcAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9ta2wvRkZURnJhbWVNS0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDEw
IEBAIHZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChmbG9hdCogZGF0YSkKICAgICBBU1NFUlQo
RGZ0aUVycm9yQ2xhc3Moc3RhdHVzLCBERlRJX05PX0VSUk9SKSk7CiB9CiAKK3ZvaWQgRkZURnJh
bWU6OmluaXRpYWxpemUoKQoreworfQorCiB2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKIHsKICAg
ICBpZiAoIWRlc2NyaXB0b3JIYW5kbGVzKQpJbmRleDogU291cmNlL1dlYkNvcmUvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiA3Nzk3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJDb252b2x2ZXJOb2RlLmgiCiAjaW5jbHVkZSAiRGVsYXlOb2RlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGRlRGcmFtZS5oIgogI2luY2x1ZGUgIkhSVEZEYXRh
YmFzZUxvYWRlci5oIgogI2luY2x1ZGUgIkhSVEZQYW5uZXIuaCIKICNpbmNsdWRlICJIaWdoUGFz
czJGaWx0ZXJOb2RlLmgiCkBAIC03OSw2ICs4MCw4IEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250
ZXh0KERvY3VtZW50KiBkb2MKICAgICAvLyByZWxheCB0aGUgY2hlY2suCiAgICAgcmVsYXhBZG9w
dGlvblJlcXVpcmVtZW50KCk7CiAgICAgCisgICAgRkZURnJhbWU6OmluaXRpYWxpemUoKTsKKyAg
ICAKICAgICBtX2Rlc3RpbmF0aW9uTm9kZSA9IEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUo
dGhpcyk7CiAgICAgbV9saXN0ZW5lciA9IEF1ZGlvTGlzdGVuZXI6OmNyZWF0ZSgpOwogICAgIG1f
dGVtcG9yYXJ5TW9ub0J1cyA9IGFkb3B0UHRyKG5ldyBBdWRpb0J1cygxLCBBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81723</attachid>
            <date>2011-02-08 17:30:57 -0800</date>
            <delta_ts>2011-02-08 17:34:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54045-20110208173056.patch</filename>
            <type>text/plain</type>
            <size>9844</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3OTg2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDggIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXggc2NhbGluZyBhbmQgdGhyZWFkIHNhZmV0eSBvZiBGRlRG
cmFtZUZGVFcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MDQ1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIGFwaSBpcyBub3QgeWV0
IGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9mZnR3L0ZGVEZyYW1lRkZUVy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OmRvRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZG
VEZyYW1lOjppbWFnRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZmZ0d1BsYW5G
b3JTaXplKToKKwogMjAxMS0wMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgJKHJldmlzaW9uIDc3OTc1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYs
NyBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZv
cm0uaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjEsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgRkZURnJhbWUoY29uc3QgRkZURnJhbWUm
IGZyYW1lKTsKICAgICB+RkZURnJhbWUoKTsKIAorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUo
KTsKICAgICBzdGF0aWMgdm9pZCBjbGVhbnVwKCk7CiAgICAgdm9pZCBkb0ZGVChmbG9hdCogZGF0
YSk7CiAgICAgdm9pZCBkb0ludmVyc2VGRlQoZmxvYXQqIGRhdGEpOwpAQCAtMTMwLDkgKzEzMiwx
NCBAQCBwcml2YXRlOgogICAgICAgICBCYWNrd2FyZAogICAgIH07CiAKLSAgICBBdWRpb0Zsb2F0
QXJyYXkgbV9yZWFsRGF0YTsKLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyAgICAv
LyBCb3RoIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBhcmUgc3RvcmVkIGhlcmUuCisgICAg
Ly8gVGhlIHJlYWwgZGF0YSBpcyBzdG9yZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IHRocmVlIGZsb2F0
IHZhbHVlcyBvZiBwYWRkaW5nLgorICAgIC8vIFRoZSBpbWFnaW5hcnkgZGF0YSBpcyBzdG9yZWQg
YWZ0ZXIgdGhlIHBhZGRpbmcgYW5kIGlzIDE2LWJ5dGUgYWxpZ25lZCAoaWYgbV9kYXRhIGl0c2Vs
ZiBpcyBhbGlnbmVkKS4KKyAgICAvLyBUaGUgcmVhc29uIHdlIGRvbid0IHVzZSBzZXBhcmF0ZSBh
cnJheXMgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBpcyBiZWNhdXNlIHRoZSBGRlRXIHBsYW5zIGFy
ZSBzaGFyZWQKKyAgICAvLyBiZXR3ZWVuIEZGVEZyYW1lIGluc3RhbmNlcyBhbmQgcmVxdWlyZSB0
aGF0IHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBwb2ludGVycyBiZSB0aGUgc2FtZSBkaXN0
YW5jZSBhcGFydC4KKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9kYXRhOwogCisgICAgc3RhdGljIE11
dGV4ICpzX3BsYW5Mb2NrOwogICAgIHN0YXRpYyBmZnR3Zl9wbGFuKiBmZnR3Rm9yd2FyZFBsYW5z
OwogICAgIHN0YXRpYyBmZnR3Zl9wbGFuKiBmZnR3QmFja3dhcmRQbGFuczsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZmZ0dy9GRlRGcmFtZUZGVFcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ZmdHcvRkZURnJhbWVGRlRXLmNw
cAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9mZnR3
L0ZGVEZyYW1lRkZUVy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAgY29uc3Qg
aW50IGtNYXhGRlRQb3cyU2l6ZSA9IDI0OwogZmZ0d2ZfcGxhbiogRkZURnJhbWU6OmZmdHdGb3J3
YXJkUGxhbnMgPSAwOwogZmZ0d2ZfcGxhbiogRkZURnJhbWU6OmZmdHdCYWNrd2FyZFBsYW5zID0g
MDsKIAorTXV0ZXgqIEZGVEZyYW1lOjpzX3BsYW5Mb2NrID0gMDsKKwogbmFtZXNwYWNlIHsKIAog
dW5zaWduZWQgdW5wYWNrZWRGRlRXRGF0YVNpemUodW5zaWduZWQgZmZ0U2l6ZSkKQEAgLTU2LDgg
KzU4LDcgQEAgRkZURnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCiAgICAgLCBtX2xv
ZzJGRlRTaXplKHN0YXRpY19jYXN0PHVuc2lnbmVkPihsb2cyKGZmdFNpemUpKSkKICAgICAsIG1f
Zm9yd2FyZFBsYW4oMCkKICAgICAsIG1fYmFja3dhcmRQbGFuKDApCi0gICAgLCBtX3JlYWxEYXRh
KHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUpKQotICAgICwgbV9pbWFnRGF0YSh1bnBhY2tl
ZEZGVFdEYXRhU2l6ZShmZnRTaXplKSkKKyAgICAsIG1fZGF0YSgyICogKDMgKyB1bnBhY2tlZEZG
VFdEYXRhU2l6ZShmZnRTaXplKSkpIC8vIGVub3VnaCBzcGFjZSBmb3IgcmVhbCBhbmQgaW1hZ2lu
YXJ5IGRhdGEgcGx1cyAxNi1ieXRlIGFsaWdubWVudCBwYWRkaW5nCiB7CiAgICAgLy8gV2Ugb25s
eSBhbGxvdyBwb3dlciBvZiB0d28uCiAgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09
IG1fRkZUU2l6ZSk7CkBAIC03NCw4ICs3NSw2IEBAIEZGVEZyYW1lOjpGRlRGcmFtZSh1bnNpZ25l
ZCBmZnRTaXplKQogICAgIC8vIG92ZXJoZWFkLiBGb3IgdGhlIHRpbWUgYmVpbmcsIHdlIGp1c3Qg
YXNzdW1lIHVuYWxpZ25lZCBkYXRhIGFuZAogICAgIC8vIHBhc3MgYSB0ZW1wb3JhcnkgcG9pbnRl
ciBkb3duLgogCi0gICAgLy8gRklYTUU6IHdlIHNob3VsZCBwcm9iYWJseSBhbGxvY2F0ZSBib3Ro
IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uCi0gICAgLy8gYXJyYXlzIGluIHRoaXMgY2xhc3Mg
YW5kIG1lbWNweSB0aGUgZGF0YSBpbiBhbmQgb3V0IG9mIHRoZW0uCiAgICAgZmxvYXQgdGVtcG9y
YXJ5OwogICAgIG1fZm9yd2FyZFBsYW4gPSBmZnR3UGxhbkZvclNpemUoZmZ0U2l6ZSwgRm9yd2Fy
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0ZW1wb3JhcnksIHJlYWxE
YXRhKCksIGltYWdEYXRhKCkpOwpAQCAtOTgsOCArOTcsNyBAQCBGRlRGcmFtZTo6RkZURnJhbWUo
Y29uc3QgRkZURnJhbWUmIGZyYW1lCiAgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9nMkZG
VFNpemUpCiAgICAgLCBtX2ZvcndhcmRQbGFuKDApCiAgICAgLCBtX2JhY2t3YXJkUGxhbigwKQot
ICAgICwgbV9yZWFsRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShmcmFtZS5tX0ZGVFNpemUpKQot
ICAgICwgbV9pbWFnRGF0YSh1bnBhY2tlZEZGVFdEYXRhU2l6ZShmcmFtZS5tX0ZGVFNpemUpKQor
ICAgICwgbV9kYXRhKDIgKiAoMyArIHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUoKSkpKSAv
LyBlbm91Z2ggc3BhY2UgZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRhIHBsdXMgMTYtYnl0ZSBh
bGlnbm1lbnQgcGFkZGluZwogewogICAgIC8vIFNlZSB0aGUgbm9ybWFsIGNvbnN0cnVjdG9yIGZv
ciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgdGVtcG9yYXJ5IHBvaW50ZXIuCiAgICAgZmxvYXQgdGVt
cG9yYXJ5OwpAQCAtMTYyLDI2ICsxNjAsMzEgQEAgdm9pZCBGRlRGcmFtZTo6ZG9GRlQoZmxvYXQq
IGRhdGEpCiAgICAgLy8gb3Igb3RoZXIgaW50cmluc2ljcyB0byBhY2NlbGVyYXRlIGl0LgogICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gMjsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB1bnBhY2tlZEZG
VFdEYXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5ndGggPT0gbV9yZWFsRGF0YS5z
aXplKCkpOworICAgIGZsb2F0KiByZWFsRGF0YSA9IHRoaXMtPnJlYWxEYXRhKCk7CisgICAgZmxv
YXQqIGltYWdEYXRhID0gdGhpcy0+aW1hZ0RhdGEoKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBtX3JlYWxEYXRhW2ldID0gbV9yZWFsRGF0
YVtpXSAqIHNjYWxlRmFjdG9yOwotICAgICAgICBtX2ltYWdEYXRhW2ldID0gbV9pbWFnRGF0YVtp
XSAqIHNjYWxlRmFjdG9yOworICAgICAgICByZWFsRGF0YVtpXSA9IHJlYWxEYXRhW2ldICogc2Nh
bGVGYWN0b3I7CisgICAgICAgIGltYWdEYXRhW2ldID0gaW1hZ0RhdGFbaV0gKiBzY2FsZUZhY3Rv
cjsKICAgICB9CiAKICAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9j
YXRpb24gZXhwZWN0ZWQgYnkgdGhlCiAgICAgLy8gRkZURnJhbWUgQVBJLgotICAgIG1faW1hZ0Rh
dGFbMF0gPSBtX3JlYWxEYXRhW2xlbmd0aCAtIDFdOworICAgIGltYWdEYXRhWzBdID0gcmVhbERh
dGFbbGVuZ3RoIC0gMV07CiB9CiAKIHZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChmbG9hdCog
ZGF0YSkKIHsKLSAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9jYXRp
b24gZXhwZWN0ZWQgYnkgRkZUVy4KICAgICB1bnNpZ25lZCBsZW5ndGggPSB1bnBhY2tlZEZGVFdE
YXRhU2l6ZShmZnRTaXplKCkpOwotICAgIEFTU0VSVChsZW5ndGggPSBtX3JlYWxEYXRhLnNpemUo
KSk7Ci0gICAgbV9yZWFsRGF0YVtsZW5ndGggLSAxXSA9IG1faW1hZ0RhdGFbMF07Ci0gICAgbV9p
bWFnRGF0YVswXSA9IDA7CisgICAgZmxvYXQqIHJlYWxEYXRhID0gdGhpcy0+cmVhbERhdGEoKTsK
KyAgICBmbG9hdCogaW1hZ0RhdGEgPSB0aGlzLT5pbWFnRGF0YSgpOwogCi0gICAgZmZ0d2ZfZXhl
Y3V0ZV9zcGxpdF9kZnRfYzJyKG1fYmFja3dhcmRQbGFuLCByZWFsRGF0YSgpLCBpbWFnRGF0YSgp
LCBkYXRhKTsKKyAgICAvLyBNb3ZlIHRoZSBOeXF1aXN0IGNvbXBvbmVudCB0byB0aGUgbG9jYXRp
b24gZXhwZWN0ZWQgYnkgRkZUVy4KKyAgICByZWFsRGF0YVtsZW5ndGggLSAxXSA9IGltYWdEYXRh
WzBdOworICAgIGltYWdEYXRhW2xlbmd0aCAtIDFdID0gMDsKKyAgICBpbWFnRGF0YVswXSA9IDA7
CisKKyAgICBmZnR3Zl9leGVjdXRlX3NwbGl0X2RmdF9jMnIobV9iYWNrd2FyZFBsYW4sIHJlYWxE
YXRhLCBpbWFnRGF0YSwgZGF0YSk7CiAKICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzY2Fs
aW5nIG9mIHRoZSB0aW1lIGRvbWFpbiBkYXRhLgogICAgIC8vIEZJWE1FOiBpZiB3ZSBjaGFuZ2Ug
dGhlIGRlZmluaXRpb24gb2YgRkZURnJhbWUgdG8gZWxpbWluYXRlIHRoZQpAQCAtMTg5LDEyICsx
OTIsMjggQEAgdm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZsb2F0KiBkYXRhKQogICAgIC8v
IGxvb3AgdHVybnMgb3V0IHRvIGJlIGhvdCB0aGVuIHdlIHNob3VsZCB1c2UgU1NFIG9yIG90aGVy
CiAgICAgLy8gaW50cmluc2ljcyB0byBhY2NlbGVyYXRlIGl0LgogICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gMS4wIC8gKDIuMCAqIGZmdFNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKQorICAgIHVuc2lnbmVkIG4gPSBmZnRTaXplKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICAgZGF0YVtpXSAqPSBzY2FsZUZhY3Rv
cjsKIAogICAgIC8vIE1vdmUgdGhlIE55cXVpc3QgY29tcG9uZW50IGJhY2sgdG8gdGhlIGxvY2F0
aW9uIGV4cGVjdGVkIGJ5IHRoZQogICAgIC8vIEZGVEZyYW1lIEFQSS4KLSAgICBtX2ltYWdEYXRh
WzBdID0gbV9yZWFsRGF0YVtsZW5ndGggLSAxXTsKKyAgICBpbWFnRGF0YVswXSA9IHJlYWxEYXRh
W2xlbmd0aCAtIDFdOworfQorCit2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKK3sKKyAgICBp
ZiAoIWZmdHdGb3J3YXJkUGxhbnMpIHsKKyAgICAgICAgZmZ0d0ZvcndhcmRQbGFucyA9IG5ldyBm
ZnR3Zl9wbGFuW2tNYXhGRlRQb3cyU2l6ZV07CisgICAgICAgIGZmdHdCYWNrd2FyZFBsYW5zID0g
bmV3IGZmdHdmX3BsYW5ba01heEZGVFBvdzJTaXplXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBrTWF4RkZUUG93MlNpemU7ICsraSkgeworICAgICAgICAgICAgZmZ0d0ZvcndhcmRQbGFu
c1tpXSA9IDA7CisgICAgICAgICAgICBmZnR3QmFja3dhcmRQbGFuc1tpXSA9IDA7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoIXNfcGxhbkxvY2spCisgICAgICAgIHNfcGxhbkxvY2sgPSBu
ZXcgTXV0ZXgoKTsKIH0KIAogdm9pZCBGRlRGcmFtZTo6Y2xlYW51cCgpCkBAIC0yMTQsMzAgKzIz
MywzNSBAQCB2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKIAogICAgIGZmdHdGb3J3YXJkUGxhbnMg
PSAwOwogICAgIGZmdHdCYWNrd2FyZFBsYW5zID0gMDsKKyAgICAKKyAgICBkZWxldGUgc19wbGFu
TG9jazsKKyAgICBzX3BsYW5Mb2NrID0gMDsKIH0KIAogZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0
YSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRh
dGEoKSk7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX2RhdGEuZGF0YSgpKTsKIH0K
IAogZmxvYXQqIEZGVEZyYW1lOjppbWFnRGF0YSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8ZmxvYXQqPihtX2ltYWdEYXRhLmRhdGEoKSk7CisgICAgLy8gSW1hZ2luYXJ5IGRhdGEg
aXMgc3RvcmVkIGZvbGxvd2luZyB0aGUgcmVhbCBkYXRhIHdpdGggZW5vdWdoIHBhZGRpbmcgZm9y
IDE2LWJ5dGUgYWxpZ25tZW50LgorICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4ocmVhbERh
dGEoKSArIHVucGFja2VkRkZUV0RhdGFTaXplKGZmdFNpemUoKSkgKyAzKTsKIH0KIAogZmZ0d2Zf
cGxhbiBGRlRGcmFtZTo6ZmZ0d1BsYW5Gb3JTaXplKHVuc2lnbmVkIGZmdFNpemUsIERpcmVjdGlv
biBkaXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQq
IGRhdGExLCBmbG9hdCogZGF0YTIsIGZsb2F0KiBkYXRhMykKIHsKLSAgICBpZiAoIWZmdHdGb3J3
YXJkUGxhbnMpIHsKLSAgICAgICAgZmZ0d0ZvcndhcmRQbGFucyA9IG5ldyBmZnR3Zl9wbGFuW2tN
YXhGRlRQb3cyU2l6ZV07Ci0gICAgICAgIGZmdHdCYWNrd2FyZFBsYW5zID0gbmV3IGZmdHdmX3Bs
YW5ba01heEZGVFBvdzJTaXplXTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTWF4RkZU
UG93MlNpemU7ICsraSkgewotICAgICAgICAgICAgZmZ0d0ZvcndhcmRQbGFuc1tpXSA9IDA7Ci0g
ICAgICAgICAgICBmZnR3QmFja3dhcmRQbGFuc1tpXSA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0K
KyAgICAvLyBpbml0aWFsaXplKCkgbXVzdCBiZSBjYWxsZWQgZmlyc3QuCisgICAgQVNTRVJUKGZm
dHdGb3J3YXJkUGxhbnMpOworICAgIGlmICghZmZ0d0ZvcndhcmRQbGFucykKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIAorICAgIEFTU0VSVChzX3BsYW5Mb2NrKTsKKyAgICBpZiAoIXNfcGxh
bkxvY2spCisgICAgICAgIHJldHVybiAwOworICAgIE11dGV4TG9ja2VyIGxvY2tlcigqc19wbGFu
TG9jayk7ICAgIAorICAgICAgICAKICAgICBBU1NFUlQoZmZ0U2l6ZSk7CiAgICAgaW50IHBvdzJz
aXplID0gc3RhdGljX2Nhc3Q8aW50Pihsb2cyKGZmdFNpemUpKTsKICAgICBBU1NFUlQocG93MnNp
emUgPCBrTWF4RkZUUG93MlNpemUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0ZGVEZyYW1lTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9tYWMvRkZURnJhbWVNYWMuY3BwCShyZXZpc2lvbiA3Nzk3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9GRlRGcmFtZU1hYy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2Miw2ICsxNjIsMTAgQEAgRkZUU2V0dXAgRkZURnJhbWU6OmZmdFNldHVwRm9yU2l6
ZSh1bnNpZwogICAgIHJldHVybiBmZnRTZXR1cHNbcG93MnNpemVdOwogfQogCit2b2lkIEZGVEZy
YW1lOjppbml0aWFsaXplKCkKK3sKK30KKwogdm9pZCBGRlRGcmFtZTo6Y2xlYW51cCgpCiB7CiAg
ICAgaWYgKCFmZnRTZXR1cHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
a2wvRkZURnJhbWVNS0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21rbC9GRlRGcmFtZU1LTC5jcHAJKHJldmlzaW9uIDc3OTc1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWtsL0ZGVEZyYW1lTUtMLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjAwLDYgKzIwMCwxMCBAQCB2b2lkIEZGVEZyYW1lOjpkb0ludmVyc2VGRlQoZmxvYXQqIGRh
dGEpCiAgICAgQVNTRVJUKERmdGlFcnJvckNsYXNzKHN0YXR1cywgREZUSV9OT19FUlJPUikpOwog
fQogCit2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKK3sKK30KKwogdm9pZCBGRlRGcmFtZTo6
Y2xlYW51cCgpCiB7CiAgICAgaWYgKCFkZXNjcmlwdG9ySGFuZGxlcykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ29udm9sdmVyTm9kZS5oIgogI2luY2x1ZGUgIkRlbGF5
Tm9kZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNp
bmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKICNpbmNsdWRlICJIUlRGUGFubmVyLmgiCiAj
aW5jbHVkZSAiSGlnaFBhc3MyRmlsdGVyTm9kZS5oIgpAQCAtNzksNiArODAsOCBAQCBBdWRpb0Nv
bnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jCiAgICAgLy8gcmVsYXggdGhlIGNoZWNr
LgogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAgIAorICAgIEZGVEZyYW1lOjpp
bml0aWFsaXplKCk7CisgICAgCiAgICAgbV9kZXN0aW5hdGlvbk5vZGUgPSBBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6Y3JlYXRlKHRoaXMpOwogICAgIG1fbGlzdGVuZXIgPSBBdWRpb0xpc3RlbmVyOjpj
cmVhdGUoKTsKICAgICBtX3RlbXBvcmFyeU1vbm9CdXMgPSBhZG9wdFB0cihuZXcgQXVkaW9CdXMo
MSwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKSk7Cg==
</data>
<flag name="review"
          id="73329"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>