<?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>25228</bug_id>
          
          <creation_ts>2009-04-15 19:42:18 -0700</creation_ts>
          <short_desc>SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect)</short_desc>
          <delta_ts>2009-04-16 11:11:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>24527</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117708</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-15 19:42:18 -0700</bug_when>
    <thetext>SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect)

Related to &lt;rdar://problem/6590646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117710</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-15 20:07:45 -0700</bug_when>
    <thetext>I have a patch for this, working on a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117717</commentid>
    <comment_count>2</comment_count>
      <attachid>29526</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-15 21:39:38 -0700</bug_when>
    <thetext>Created attachment 29526
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117718</commentid>
    <comment_count>3</comment_count>
      <attachid>29527</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-15 21:44:41 -0700</bug_when>
    <thetext>Created attachment 29527
patch

updated changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117721</commentid>
    <comment_count>4</comment_count>
      <attachid>29527</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-04-15 22:16:00 -0700</bug_when>
    <thetext>Comment on attachment 29527
patch

&gt; Index: WebCore/editing/SelectionController.cpp
&gt; ===================================================================

&gt; -    IntRect oldAbsRepaintRect = m_absCaretBounds;
&gt; -    m_absCaretBounds = caretRepaintRect();
&gt; +    IntRect oldAbsCaretBounds = m_absCaretBounds;
&gt; +    m_absCaretBounds = m_caretRect;
&gt; +    // m_caretRect is the local rect, we need the bounds of (possibly transformed) caret in absolute coordinates.
&gt; +    RenderObject* caretPainter = caretRenderer();
&gt; +    if (caretPainter)
&gt; +        m_absCaretBounds = caretPainter-&gt;localToAbsoluteQuad(FloatRect(m_caretRect)).enclosingBoundingBox();
&gt;      m_absCaretBoundsDirty = false;
&gt;      
&gt; -    if (oldAbsRepaintRect == m_absCaretBounds)
&gt; +    if (oldAbsCaretBounds == m_absCaretBounds)
&gt;          return false;
&gt;      
&gt;      if (RenderView* view = static_cast&lt;RenderView*&gt;(m_frame-&gt;document()-&gt;renderer())) {
&gt;          // FIXME: make caret repainting container-aware.
&gt; -        view-&gt;repaintRectangleInViewAndCompositedLayers(oldAbsRepaintRect, false);
&gt; -        view-&gt;repaintRectangleInViewAndCompositedLayers(m_absCaretBounds, false);
&gt; +        view-&gt;repaintRectangleInViewAndCompositedLayers(repaintRectForCaret(oldAbsCaretBounds), false);
&gt; +        view-&gt;repaintRectangleInViewAndCompositedLayers(repaintRectForCaret(m_absCaretBounds), false);

I don&apos;t think this is right. This does the inflateX(1) after the transforms, whereas it needs to be before.

I think the correct solution is to make absoluteCaretBounds() look like caretRepaintRect(), without
doing the inflateX(1) via repaintRectForCaret.

Also, maybe we can get rid of the inflation entirely after bug 24527 is fixed? Bug 19086 needs re-testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117727</commentid>
    <comment_count>5</comment_count>
      <attachid>29531</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-16 01:17:52 -0700</bug_when>
    <thetext>Created attachment 29531
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117742</commentid>
    <comment_count>6</comment_count>
      <attachid>29531</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-04-16 08:36:04 -0700</bug_when>
    <thetext>Comment on attachment 29531
patch

&gt; Index: WebCore/editing/SelectionController.cpp
&gt; ===================================================================

&gt; +    IntRect oldAbsCaretBounds = m_absCaretBounds;
&gt; +    // FIXME: Rename m_caretRect to m_localCaretRect.
&gt; +    m_absCaretBounds = absoluteBoundsForLocalRect(m_caretRect);
&gt;      
&gt; -    if (oldAbsRepaintRect == m_absCaretBounds)
&gt; +    if (oldAbsCaretBounds == m_absCaretBounds)
&gt;          return false;
&gt; +        
&gt; +    IntRect oldAbsoluteCaretRepaintBounds = m_absoluteCaretRepaintBounds;
&gt; +    // We believe that we need to inflate the local rect before transforming it to obtain the repaint bounds.
&gt; +    m_absoluteCaretRepaintBounds = absoluteBoundsForLocalRect(repaintRectForCaret(m_caretRect));

You could just call caretRepaintRect() here.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117757</commentid>
    <comment_count>7</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-16 11:11:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/42583</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29526</attachid>
            <date>2009-04-15 21:39:38 -0700</date>
            <delta_ts>2009-04-15 21:45:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>25228.txt</filename>
            <type>text/plain</type>
            <size>7000</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5MTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDQtMTUgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMjgKKworICAg
ICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3Rpb25Db250cm9sbGVyOjpsb2NhbENhcmV0UmVjdCk6IAorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6cmVjb21wdXRlQ2FyZXRSZWN0KTogRG9uJ3QgbmVlZCB0
byBzZXQgbV9uZWVkc0xheW91dCB0byB0cnVlLCB3ZSBjYW4gb25seSBnZXQgaGVyZSAKKyAgICAg
ICAgaWYgaXQncyB0cnVlLiAgRG9uJ3QgdXNlIGNhcmV0UmVwYWludFJlY3QsIGl0J3MgaW5mbGF0
ZWQgKGl0J3Mgb25seSB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgcmVnaW9uIGFyb3VuZCB0aGUg
Y2FyZXQKKyAgICAgICAgdGhhdCBuZWVkcyByZXBhaW50aW5nIHdoZW4gaXQgY2hhbmdlcyBpcyBp
bmZsYXRlZCBieSBvbmUgcGl4ZWwpLgorCiAyMDA5LTAzLTE1ICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgcjQwMzc0LgpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRp
dGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gOTE0MjIpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwOSw3
ICs4MDksNyBAQAogSW50UmVjdCBTZWxlY3Rpb25Db250cm9sbGVyOjpsb2NhbENhcmV0UmVjdCgp
IGNvbnN0CiB7CiAgICAgaWYgKG1fbmVlZHNMYXlvdXQpCi0gICAgICAgIGNvbnN0X2Nhc3Q8U2Vs
ZWN0aW9uQ29udHJvbGxlciAqPih0aGlzKS0+bGF5b3V0KCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8
U2VsZWN0aW9uQ29udHJvbGxlcio+KHRoaXMpLT5sYXlvdXQoKTsKICAgICAKICAgICByZXR1cm4g
bV9jYXJldFJlY3Q7CiB9CkBAIC04NTQsMjIgKzg1NCwyNSBAQAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBJbnRSZWN0IG9sZFJlY3QgPSBtX2NhcmV0UmVjdDsKLSAgICBtX25lZWRzTGF5
b3V0ID0gdHJ1ZTsKICAgICBJbnRSZWN0IG5ld1JlY3QgPSBsb2NhbENhcmV0UmVjdCgpOwogICAg
IGlmIChvbGRSZWN0ID09IG5ld1JlY3QgJiYgIW1fYWJzQ2FyZXRCb3VuZHNEaXJ0eSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSW50UmVjdCBvbGRBYnNSZXBhaW50UmVjdCA9IG1fYWJz
Q2FyZXRCb3VuZHM7Ci0gICAgbV9hYnNDYXJldEJvdW5kcyA9IGNhcmV0UmVwYWludFJlY3QoKTsK
KyAgICBJbnRSZWN0IG9sZEFic0NhcmV0Qm91bmRzID0gbV9hYnNDYXJldEJvdW5kczsKKyAgICBt
X2Fic0NhcmV0Qm91bmRzID0gbV9jYXJldFJlY3Q7CisgICAgLy8gbV9jYXJldFJlY3QgaXMgdGhl
IGxvY2FsIHJlY3QsIHdlIG5lZWQgdGhlIGJvdW5kcyBvZiAocG9zc2libHkgdHJhbnNmb3JtZWQp
IGNhcmV0IGluIGFic29sdXRlIGNvb3JkaW5hdGVzLgorICAgIFJlbmRlck9iamVjdCogY2FyZXRQ
YWludGVyID0gY2FyZXRSZW5kZXJlcigpOworICAgIGlmIChjYXJldFBhaW50ZXIpCisgICAgICAg
IG1fYWJzQ2FyZXRCb3VuZHMgPSBjYXJldFBhaW50ZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxv
YXRSZWN0KG1fY2FyZXRSZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICBtX2Fic0Nh
cmV0Qm91bmRzRGlydHkgPSBmYWxzZTsKICAgICAKLSAgICBpZiAob2xkQWJzUmVwYWludFJlY3Qg
PT0gbV9hYnNDYXJldEJvdW5kcykKKyAgICBpZiAob2xkQWJzQ2FyZXRCb3VuZHMgPT0gbV9hYnND
YXJldEJvdW5kcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGlmIChSZW5kZXJW
aWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KG1fZnJhbWUtPmRvY3VtZW50KCkt
PnJlbmRlcmVyKCkpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtYWtlIGNhcmV0IHJlcGFpbnRpbmcg
Y29udGFpbmVyLWF3YXJlLgotICAgICAgICB2aWV3LT5yZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5k
Q29tcG9zaXRlZExheWVycyhvbGRBYnNSZXBhaW50UmVjdCwgZmFsc2UpOwotICAgICAgICB2aWV3
LT5yZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhtX2Fic0NhcmV0Qm91
bmRzLCBmYWxzZSk7CisgICAgICAgIHZpZXctPnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21w
b3NpdGVkTGF5ZXJzKHJlcGFpbnRSZWN0Rm9yQ2FyZXQob2xkQWJzQ2FyZXRCb3VuZHMpLCBmYWxz
ZSk7CisgICAgICAgIHZpZXctPnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3NpdGVkTGF5
ZXJzKHJlcGFpbnRSZWN0Rm9yQ2FyZXQobV9hYnNDYXJldEJvdW5kcyksIGZhbHNlKTsKICAgICB9
CiAKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
LzI1MjI4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
MjUyMjguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
LzI1MjI4Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzxoZWFkPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgd2luZG93LnNldFRpbWVvdXQoYWZ0ZXJEZWxheSwgMjApOworfQor
CitmdW5jdGlvbiBhZnRlckRlbGF5KCkgeworICAgIGVkaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZWRpdCIpOworICAgIGVkaXQuZm9jdXMoKTsKKyAgICB3aW5kb3cuc2Nyb2xsQnkoMTAw
LCAxMDApOworICAgIHRleHRJbnB1dENvbnRyb2xsZXIuZG9Db21tYW5kKCJtb3ZlQmFja3dhcmQ6
Iik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGRpdiBpZD0iZWRpdCIgY29u
dGVudEVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgcmVkOyBoZWlnaHQ6
Ij5UaGlzIHRlc3RzIGZvciBhIGJ1ZyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI1MjI4KSB3aGVyZSBTZWxlY3Rpb25Db250cm9sbGVyOjphYnNvbHV0ZUNhcmV0Qm91
bmRzIHdhcyByZXR1cm5pbmcgYW4gaW5mbGF0ZWQgY2FyZXQuICBJdCB3b3VsZCBtYW5pZmVzdCBp
dHNlbGYgZHVyaW5nIHJldmVhbFNlbGVjdGlvbiBjYWxscy4gIEJlZm9yZSB0aGUgY2hhbmdlIHdl
IHdvdWxkIHJldmVhbCBvbmUgcGl4ZWwgdG9vIG11Y2ggYmVjYXVzZSBvZiB0aGUgaW5mbGF0aW9u
LiAgVG8gcnVuIG1hbnVhbGx5LCBwbGFjZSB0aGUgY2FyZXQganVzdCBhZnRlciB0aGUgZmlyc3Qg
Y2hhcmFjdGVyLCBzY3JvbGwgMTAweDEwMCBwaXhlbHMgb3Igc28gYW5kIGhpdCB0aGUgYmFjayBh
cnJvdy4gIFRoZSBjYXJldCBzaG91bGQgYmUgcmlnaHQgdXAgYWdhaW5zdCB0aGUgZWRnZSBvZiB0
aGUgd2luZG93LiAgSWYgd2UgY2hhbmdlIHRoZSB3YXkgc2VsZWN0aW9ucyBhcmUgcmV2ZWFsZWQg
dGhlIHJlc3VsdHMgZm9yIHRoaXMgdGVzdCBtaWdodCBjaGFuZ2UgYW5kIGl0IG1heSBubyBsb25n
ZXIgdGVzdCBmb3IgdGhlIGJ1Zy48L2Rpdj4KKzxkaXYgc3R5bGU9ImhlaWdodDozMDAwcHg7IHdp
ZHRoOjIwMDBweDsiPgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC1leHBlY3RlZC5j
aGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L3NlbGVjdGlvbi8yNTIyOC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSBAQAorYjViY2NhZjM2MDlkYWQ3NGE5MGY1ZDUxNGQ1MTlmYmYKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rp
b24vMjUyMjgtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL3NlbGVjdGlvbi8yNTIyOC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMDA4eDMxMDgKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDc4NXg1ODUKK2xheWVyIGF0ICgwLDApIHNpemUgMjAwOHgzMTA4CisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXgzMTA4CisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3Njl4MzA5MgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA3Njl4OTIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxLDEpIHNpemUgNzU4eDkwCisgICAgICAgICAgdGV4dCBydW4g
YXQgKDEsMSkgd2lkdGggNzUxOiAiVGhpcyB0ZXN0cyBmb3IgYSBidWcgKGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTIyOCkgd2hlcmUgU2VsZWN0aW9uQ29udHJvbGxl
cjo6YWJzb2x1dGVDYXJldEJvdW5kcyIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzUyLDEpIHdp
ZHRoIDQ6ICIgIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDE5KSB3aWR0aCAxOTg6ICJ3YXMg
cmV0dXJuaW5nIGFuIGluZmxhdGVkIGNhcmV0LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE5
OSwxOSkgd2lkdGggMzI5OiAiSXQgd291bGQgbWFuaWZlc3QgaXRzZWxmIGR1cmluZyByZXZlYWxT
ZWxlY3Rpb24gY2FsbHMuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTI4LDE5KSB3aWR0aCAy
MjQ6ICJCZWZvcmUgdGhlIGNoYW5nZSB3ZSB3b3VsZCByZXZlYWwiCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDc1MiwxOSkgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMzcp
IHdpZHRoIDI3OTogIm9uZSBwaXhlbCB0b28gbXVjaCBiZWNhdXNlIG9mIHRoZSBpbmZsYXRpb24u
ICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgwLDM3KSB3aWR0aCA0NzU6ICJUbyBydW4gbWFu
dWFsbHksIHBsYWNlIHRoZSBjYXJldCBqdXN0IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIsIHNj
cm9sbCAxMDB4MTAwIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg3NTUsMzcpIHdpZHRoIDQ6ICIg
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDU1KSB3aWR0aCAyMjU6ICJwaXhlbHMgb3Igc28g
YW5kIGhpdCB0aGUgYmFjayBhcnJvdy4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjYsNTUp
IHdpZHRoIDM4NjogIlRoZSBjYXJldCBzaG91bGQgYmUgcmlnaHQgdXAgYWdhaW5zdCB0aGUgZWRn
ZSBvZiB0aGUgd2luZG93LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDYxMiw1NSkgd2lkdGgg
MTM2OiAiSWYgd2UgY2hhbmdlIHRoZSB3YXkiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDc0OCw1
NSkgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsNzMpIHdpZHRoIDYwNjog
InNlbGVjdGlvbnMgYXJlIHJldmVhbGVkIHRoZSByZXN1bHRzIGZvciB0aGlzIHRlc3QgbWlnaHQg
Y2hhbmdlIGFuZCBpdCBtYXkgbm8gbG9uZ2VyIHRlc3QgZm9yIHRoZSBidWcuIgorICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsOTIpIHNpemUgMjAwMHgzMDAwCitjYXJldDogcG9zaXRpb24g
MCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBv
ZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2Nyb2xsZWQgdG8gOCw5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29527</attachid>
            <date>2009-04-15 21:44:41 -0700</date>
            <delta_ts>2009-04-16 01:17:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>25228.txt</filename>
            <type>text/plain</type>
            <size>7082</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5MTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMTUgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMjgKKyAgICAg
ICAgU2VsZWN0aW9uQ29udHJvbGxlcjo6YWJzb2x1dGVDYXJldEJvdW5kcyByZXR1cm5zIGFuIGlu
ZmxhdGVkIGNhcmV0ICh0aGUgY2FyZXQgcmVwYWludCByZWN0KQorCisgICAgICAgICogZWRpdGlu
Zy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNv
bnRyb2xsZXI6OmxvY2FsQ2FyZXRSZWN0KTogCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25D
b250cm9sbGVyOjpyZWNvbXB1dGVDYXJldFJlY3QpOiBEb24ndCBuZWVkIHRvIHNldCBtX25lZWRz
TGF5b3V0IHRvIHRydWUsIHdlIGNhbiBvbmx5IGdldCBoZXJlIAorICAgICAgICBpZiBpdCdzIHRy
dWUuICBEb24ndCB1c2UgY2FyZXRSZXBhaW50UmVjdCwgaXQncyBpbmZsYXRlZCAoaXQncyBvbmx5
IHRvIGJlIHVzZWQgZm9yIGRldGVybWluaW5nIHRoZSByZWdpb24gYXJvdW5kIHRoZSBjYXJldAor
ICAgICAgICB0aGF0IG5lZWRzIHJlcGFpbnRpbmcgd2hlbiBpdCBjaGFuZ2VzKS4KKwogMjAwOS0w
My0xNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdl
IHI0MDM3NC4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHJl
dmlzaW9uIDkxNDIyKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MDksNyArODA5LDcgQEAKIEludFJlY3QgU2VsZWN0aW9uQ29u
dHJvbGxlcjo6bG9jYWxDYXJldFJlY3QoKSBjb25zdAogewogICAgIGlmIChtX25lZWRzTGF5b3V0
KQotICAgICAgICBjb25zdF9jYXN0PFNlbGVjdGlvbkNvbnRyb2xsZXIgKj4odGhpcyktPmxheW91
dCgpOworICAgICAgICBjb25zdF9jYXN0PFNlbGVjdGlvbkNvbnRyb2xsZXIqPih0aGlzKS0+bGF5
b3V0KCk7CiAgICAgCiAgICAgcmV0dXJuIG1fY2FyZXRSZWN0OwogfQpAQCAtODU0LDIyICs4NTQs
MjUgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCBvbGRSZWN0ID0gbV9j
YXJldFJlY3Q7Ci0gICAgbV9uZWVkc0xheW91dCA9IHRydWU7CiAgICAgSW50UmVjdCBuZXdSZWN0
ID0gbG9jYWxDYXJldFJlY3QoKTsKICAgICBpZiAob2xkUmVjdCA9PSBuZXdSZWN0ICYmICFtX2Fi
c0NhcmV0Qm91bmRzRGlydHkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEludFJlY3Qg
b2xkQWJzUmVwYWludFJlY3QgPSBtX2Fic0NhcmV0Qm91bmRzOwotICAgIG1fYWJzQ2FyZXRCb3Vu
ZHMgPSBjYXJldFJlcGFpbnRSZWN0KCk7CisgICAgSW50UmVjdCBvbGRBYnNDYXJldEJvdW5kcyA9
IG1fYWJzQ2FyZXRCb3VuZHM7CisgICAgbV9hYnNDYXJldEJvdW5kcyA9IG1fY2FyZXRSZWN0Owor
ICAgIC8vIG1fY2FyZXRSZWN0IGlzIHRoZSBsb2NhbCByZWN0LCB3ZSBuZWVkIHRoZSBib3VuZHMg
b2YgKHBvc3NpYmx5IHRyYW5zZm9ybWVkKSBjYXJldCBpbiBhYnNvbHV0ZSBjb29yZGluYXRlcy4K
KyAgICBSZW5kZXJPYmplY3QqIGNhcmV0UGFpbnRlciA9IGNhcmV0UmVuZGVyZXIoKTsKKyAgICBp
ZiAoY2FyZXRQYWludGVyKQorICAgICAgICBtX2Fic0NhcmV0Qm91bmRzID0gY2FyZXRQYWludGVy
LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtX2NhcmV0UmVjdCkpLmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCk7CiAgICAgbV9hYnNDYXJldEJvdW5kc0RpcnR5ID0gZmFsc2U7CiAgICAgCi0g
ICAgaWYgKG9sZEFic1JlcGFpbnRSZWN0ID09IG1fYWJzQ2FyZXRCb3VuZHMpCisgICAgaWYgKG9s
ZEFic0NhcmV0Qm91bmRzID09IG1fYWJzQ2FyZXRCb3VuZHMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFJlbmRlclZp
ZXcqPihtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZW5kZXJlcigpKSkgewogICAgICAgICAvLyBGSVhN
RTogbWFrZSBjYXJldCByZXBhaW50aW5nIGNvbnRhaW5lci1hd2FyZS4KLSAgICAgICAgdmlldy0+
cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMob2xkQWJzUmVwYWludFJl
Y3QsIGZhbHNlKTsKLSAgICAgICAgdmlldy0+cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBv
c2l0ZWRMYXllcnMobV9hYnNDYXJldEJvdW5kcywgZmFsc2UpOworICAgICAgICB2aWV3LT5yZXBh
aW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhyZXBhaW50UmVjdEZvckNhcmV0
KG9sZEFic0NhcmV0Qm91bmRzKSwgZmFsc2UpOworICAgICAgICB2aWV3LT5yZXBhaW50UmVjdGFu
Z2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhyZXBhaW50UmVjdEZvckNhcmV0KG1fYWJzQ2Fy
ZXRCb3VuZHMpLCBmYWxzZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzI1MjI4Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDIzIEBACis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlm
ICghbGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGFmdGVyRGVsYXksIDIwKTsKK30KKworZnVuY3Rpb24gYWZ0ZXJEZWxheSgpIHsKKyAgICBl
ZGl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQiKTsKKyAgICBlZGl0LmZvY3VzKCk7
CisgICAgd2luZG93LnNjcm9sbEJ5KDEwMCwgMTAwKTsKKyAgICB0ZXh0SW5wdXRDb250cm9sbGVy
LmRvQ29tbWFuZCgibW92ZUJhY2t3YXJkOiIpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCk7Ij4KKzxkaXYgaWQ9ImVkaXQiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIgc3R5bGU9ImJvcmRl
cjogMXB4IHNvbGlkIHJlZDsgaGVpZ2h0OiI+VGhpcyB0ZXN0cyBmb3IgYSBidWcgKGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTIyOCkgd2hlcmUgU2VsZWN0aW9uQ29u
dHJvbGxlcjo6YWJzb2x1dGVDYXJldEJvdW5kcyB3YXMgcmV0dXJuaW5nIGFuIGluZmxhdGVkIGNh
cmV0LiAgSXQgd291bGQgbWFuaWZlc3QgaXRzZWxmIGR1cmluZyByZXZlYWxTZWxlY3Rpb24gY2Fs
bHMuICBCZWZvcmUgdGhlIGNoYW5nZSB3ZSB3b3VsZCByZXZlYWwgb25lIHBpeGVsIHRvbyBtdWNo
IGJlY2F1c2Ugb2YgdGhlIGluZmxhdGlvbi4gIFRvIHJ1biBtYW51YWxseSwgcGxhY2UgdGhlIGNh
cmV0IGp1c3QgYWZ0ZXIgdGhlIGZpcnN0IGNoYXJhY3Rlciwgc2Nyb2xsIDEwMHgxMDAgcGl4ZWxz
IG9yIHNvIGFuZCBoaXQgdGhlIGJhY2sgYXJyb3cuICBUaGUgY2FyZXQgc2hvdWxkIGJlIHJpZ2h0
IHVwIGFnYWluc3QgdGhlIGVkZ2Ugb2YgdGhlIHdpbmRvdy4gIElmIHdlIGNoYW5nZSB0aGUgd2F5
IHNlbGVjdGlvbnMgYXJlIHJldmVhbGVkIHRoZSByZXN1bHRzIGZvciB0aGlzIHRlc3QgbWlnaHQg
Y2hhbmdlIGFuZCBpdCBtYXkgbm8gbG9uZ2VyIHRlc3QgZm9yIHRoZSBidWcuPC9kaXY+Cis8ZGl2
IHN0eWxlPSJoZWlnaHQ6MzAwMHB4OyB3aWR0aDoyMDAwcHg7Ij4KKzwvYm9keT4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC1leHBlY3RlZC5j
aGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9z
ZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQuY2hlY2tz
dW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2I1YmNjYWYzNjA5ZGFkNzRhOTBmNWQ1MTRk
NTE5ZmJmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLnBuZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10
eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQucG5n
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8y
NTIyOC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgMjAw
OHgzMTA4CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CitsYXllciBhdCAoMCww
KSBzaXplIDIwMDh4MzEwOAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4
MzEwOAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDMwOTIKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzY5eDkyIFtib3JkZXI6ICgxcHggc29s
aWQgI0ZGMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwxKSBzaXplIDc1
OHg5MAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDc1MTogIlRoaXMgdGVzdHMg
Zm9yIGEgYnVnIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMjgp
IHdoZXJlIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmFic29sdXRlQ2FyZXRCb3VuZHMiCisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDc1MiwxKSB3aWR0aCA0OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMSwxOSkgd2lkdGggMTk4OiAid2FzIHJldHVybmluZyBhbiBpbmZsYXRlZCBjYXJldC4gIgor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTksMTkpIHdpZHRoIDMyOTogIkl0IHdvdWxkIG1hbmlm
ZXN0IGl0c2VsZiBkdXJpbmcgcmV2ZWFsU2VsZWN0aW9uIGNhbGxzLiAiCisgICAgICAgICAgdGV4
dCBydW4gYXQgKDUyOCwxOSkgd2lkdGggMjI0OiAiQmVmb3JlIHRoZSBjaGFuZ2Ugd2Ugd291bGQg
cmV2ZWFsIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg3NTIsMTkpIHdpZHRoIDQ6ICIgIgorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxLDM3KSB3aWR0aCAyNzk6ICJvbmUgcGl4ZWwgdG9vIG11Y2gg
YmVjYXVzZSBvZiB0aGUgaW5mbGF0aW9uLiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDI4MCwz
Nykgd2lkdGggNDc1OiAiVG8gcnVuIG1hbnVhbGx5LCBwbGFjZSB0aGUgY2FyZXQganVzdCBhZnRl
ciB0aGUgZmlyc3QgY2hhcmFjdGVyLCBzY3JvbGwgMTAweDEwMCIKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNzU1LDM3KSB3aWR0aCA0OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSw1NSkg
d2lkdGggMjI1OiAicGl4ZWxzIG9yIHNvIGFuZCBoaXQgdGhlIGJhY2sgYXJyb3cuICIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjI2LDU1KSB3aWR0aCAzODY6ICJUaGUgY2FyZXQgc2hvdWxkIGJl
IHJpZ2h0IHVwIGFnYWluc3QgdGhlIGVkZ2Ugb2YgdGhlIHdpbmRvdy4gIgorICAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MTIsNTUpIHdpZHRoIDEzNjogIklmIHdlIGNoYW5nZSB0aGUgd2F5IgorICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3NDgsNTUpIHdpZHRoIDQ6ICIgIgorICAgICAgICAgIHRleHQg
cnVuIGF0ICgxLDczKSB3aWR0aCA2MDY6ICJzZWxlY3Rpb25zIGFyZSByZXZlYWxlZCB0aGUgcmVz
dWx0cyBmb3IgdGhpcyB0ZXN0IG1pZ2h0IGNoYW5nZSBhbmQgaXQgbWF5IG5vIGxvbmdlciB0ZXN0
IGZvciB0aGUgYnVnLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXplIDIw
MDB4MzAwMAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEg
e0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3Nj
cm9sbGVkIHRvIDgsOQo=
</data>
<flag name="review"
          id="14727"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29531</attachid>
            <date>2009-04-16 01:17:52 -0700</date>
            <delta_ts>2009-04-16 08:36:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>25228.txt</filename>
            <type>text/plain</type>
            <size>8874</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5MTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMTUgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMjgKKyAgICAg
ICAgU2VsZWN0aW9uQ29udHJvbGxlcjo6YWJzb2x1dGVDYXJldEJvdW5kcyByZXR1cm5zIGFuIGlu
ZmxhdGVkIGNhcmV0ICh0aGUgY2FyZXQgcmVwYWludCByZWN0KQorCisgICAgICAgICogZWRpdGlu
Zy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNv
bnRyb2xsZXI6OmxvY2FsQ2FyZXRSZWN0KTogCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25D
b250cm9sbGVyOjpyZWNvbXB1dGVDYXJldFJlY3QpOiBEb24ndCBuZWVkIHRvIHNldCBtX25lZWRz
TGF5b3V0IHRvIHRydWUsIHdlIGNhbiBvbmx5IGdldCBoZXJlIAorICAgICAgICBpZiBpdCdzIHRy
dWUuICBEb24ndCB1c2UgY2FyZXRSZXBhaW50UmVjdCwgaXQncyBpbmZsYXRlZCAoaXQncyBvbmx5
IHRvIGJlIHVzZWQgZm9yIGRldGVybWluaW5nIHRoZSByZWdpb24gYXJvdW5kIHRoZSBjYXJldAor
ICAgICAgICB0aGF0IG5lZWRzIHJlcGFpbnRpbmcgd2hlbiBpdCBjaGFuZ2VzKS4KKwogMjAwOS0w
My0xNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdl
IHI0MDM3NC4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuaAkocmV2aXNp
b24gOTE0MjIpCisrKyBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzcsNiArMTc3LDggQEAKIAogICAgIHZvaWQgZm9jdXNlZE9yQWN0aXZl
U3RhdGVDaGFuZ2VkKCk7CiAgICAgYm9vbCBjYXJldFJlbmRlcnNJbnNpZGVOb2RlKE5vZGUqKSBj
b25zdDsKKyAgICAKKyAgICBJbnRSZWN0IGFic29sdXRlQm91bmRzRm9yTG9jYWxSZWN0KGNvbnN0
IEludFJlY3QmKSBjb25zdDsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIGludCBtX3hQb3NG
b3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbjsKQEAgLTE4NSw2ICsxODcsNyBAQAogCiAgICAgSW50
UmVjdCBtX2NhcmV0UmVjdDsgICAgICAgIC8vIGNhcmV0IHJlY3QgaW4gY29vcmRzIGxvY2FsIHRv
IHRoZSByZW5kZXJlciByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcgdGhlIGNhcmV0CiAgICAgSW50
UmVjdCBtX2Fic0NhcmV0Qm91bmRzOyAgIC8vIGFic29sdXRlIGJvdW5kaW5nIHJlY3QgZm9yIHRo
ZSBjYXJldAorICAgIEludFJlY3QgbV9hYnNvbHV0ZUNhcmV0UmVwYWludEJvdW5kczsKICAgICAK
ICAgICBib29sIG1fbmVlZHNMYXlvdXQgOiAxOyAgICAgICAvLyB0cnVlIGlmIHRoZSBjYXJldCBh
bmQgZXhwZWN0ZWRWaXNpYmxlIHJlY3RhbmdsZXMgbmVlZCB0byBiZSBjYWxjdWxhdGVkCiAgICAg
Ym9vbCBtX2Fic0NhcmV0Qm91bmRzRGlydHk6IDE7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2Vs
ZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVj
dGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5MTQyMikKKysrIFdlYkNvcmUvZWRpdGluZy9T
ZWxlY3Rpb25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5LDExICs4MDksMjAg
QEAKIEludFJlY3QgU2VsZWN0aW9uQ29udHJvbGxlcjo6bG9jYWxDYXJldFJlY3QoKSBjb25zdAog
ewogICAgIGlmIChtX25lZWRzTGF5b3V0KQotICAgICAgICBjb25zdF9jYXN0PFNlbGVjdGlvbkNv
bnRyb2xsZXIgKj4odGhpcyktPmxheW91dCgpOworICAgICAgICBjb25zdF9jYXN0PFNlbGVjdGlv
bkNvbnRyb2xsZXIqPih0aGlzKS0+bGF5b3V0KCk7CiAgICAgCiAgICAgcmV0dXJuIG1fY2FyZXRS
ZWN0OwogfQogCitJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmFic29sdXRlQm91bmRzRm9y
TG9jYWxSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgUmVuZGVyT2JqZWN0
KiBjYXJldFBhaW50ZXIgPSBjYXJldFJlbmRlcmVyKCk7CisgICAgaWYgKCFjYXJldFBhaW50ZXIp
CisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgICAgIAorICAgIHJldHVybiBjYXJldFBh
aW50ZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlY3QpKS5lbmNsb3NpbmdCb3Vu
ZGluZ0JveCgpOworfQorCiBJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmFic29sdXRlQ2Fy
ZXRCb3VuZHMoKQogewogICAgIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwpAQCAtODMyLDEzICs4NDEs
NyBAQAogCiBJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmNhcmV0UmVwYWludFJlY3QoKSBj
b25zdAogewotICAgIEludFJlY3QgbG9jYWxSZWN0ID0gcmVwYWludFJlY3RGb3JDYXJldChsb2Nh
bENhcmV0UmVjdCgpKTsKLSAgICAKLSAgICBSZW5kZXJPYmplY3QqIGNhcmV0UGFpbnRlciA9IGNh
cmV0UmVuZGVyZXIoKTsKLSAgICBpZiAoY2FyZXRQYWludGVyKQotICAgICAgICByZXR1cm4gY2Fy
ZXRQYWludGVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOwotCi0gICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICByZXR1cm4g
YWJzb2x1dGVCb3VuZHNGb3JMb2NhbFJlY3QocmVwYWludFJlY3RGb3JDYXJldChsb2NhbENhcmV0
UmVjdCgpKSk7CiB9CiAKIGJvb2wgU2VsZWN0aW9uQ29udHJvbGxlcjo6cmVjb21wdXRlQ2FyZXRS
ZWN0KCkKQEAgLTg1NCwyMiArODU3LDI1IEBACiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEludFJlY3Qgb2xkUmVjdCA9IG1fY2FyZXRSZWN0OwotICAgIG1fbmVlZHNMYXlvdXQgPSB0cnVl
OwogICAgIEludFJlY3QgbmV3UmVjdCA9IGxvY2FsQ2FyZXRSZWN0KCk7CiAgICAgaWYgKG9sZFJl
Y3QgPT0gbmV3UmVjdCAmJiAhbV9hYnNDYXJldEJvdW5kc0RpcnR5KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBJbnRSZWN0IG9sZEFic1JlcGFpbnRSZWN0ID0gbV9hYnNDYXJldEJvdW5k
czsKLSAgICBtX2Fic0NhcmV0Qm91bmRzID0gY2FyZXRSZXBhaW50UmVjdCgpOwotICAgIG1fYWJz
Q2FyZXRCb3VuZHNEaXJ0eSA9IGZhbHNlOworICAgIEludFJlY3Qgb2xkQWJzQ2FyZXRCb3VuZHMg
PSBtX2Fic0NhcmV0Qm91bmRzOworICAgIC8vIEZJWE1FOiBSZW5hbWUgbV9jYXJldFJlY3QgdG8g
bV9sb2NhbENhcmV0UmVjdC4KKyAgICBtX2Fic0NhcmV0Qm91bmRzID0gYWJzb2x1dGVCb3VuZHNG
b3JMb2NhbFJlY3QobV9jYXJldFJlY3QpOwogICAgIAotICAgIGlmIChvbGRBYnNSZXBhaW50UmVj
dCA9PSBtX2Fic0NhcmV0Qm91bmRzKQorICAgIGlmIChvbGRBYnNDYXJldEJvdW5kcyA9PSBtX2Fi
c0NhcmV0Qm91bmRzKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgIEludFJl
Y3Qgb2xkQWJzb2x1dGVDYXJldFJlcGFpbnRCb3VuZHMgPSBtX2Fic29sdXRlQ2FyZXRSZXBhaW50
Qm91bmRzOworICAgIC8vIFdlIGJlbGlldmUgdGhhdCB3ZSBuZWVkIHRvIGluZmxhdGUgdGhlIGxv
Y2FsIHJlY3QgYmVmb3JlIHRyYW5zZm9ybWluZyBpdCB0byBvYnRhaW4gdGhlIHJlcGFpbnQgYm91
bmRzLgorICAgIG1fYWJzb2x1dGVDYXJldFJlcGFpbnRCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kc0Zv
ckxvY2FsUmVjdChyZXBhaW50UmVjdEZvckNhcmV0KG1fY2FyZXRSZWN0KSk7CiAgICAgCiAgICAg
aWYgKFJlbmRlclZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4obV9mcmFtZS0+
ZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSkpIHsKICAgICAgICAgLy8gRklYTUU6IG1ha2UgY2FyZXQg
cmVwYWludGluZyBjb250YWluZXItYXdhcmUuCi0gICAgICAgIHZpZXctPnJlcGFpbnRSZWN0YW5n
bGVJblZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKG9sZEFic1JlcGFpbnRSZWN0LCBmYWxzZSk7Ci0g
ICAgICAgIHZpZXctPnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKG1f
YWJzQ2FyZXRCb3VuZHMsIGZhbHNlKTsKKyAgICAgICAgdmlldy0+cmVwYWludFJlY3RhbmdsZUlu
Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMob2xkQWJzb2x1dGVDYXJldFJlcGFpbnRCb3VuZHMsIGZh
bHNlKTsKKyAgICAgICAgdmlldy0+cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRM
YXllcnMobV9hYnNvbHV0ZUNhcmV0UmVwYWludEJvdW5kcywgZmFsc2UpOwogICAgIH0KIAogICAg
IHJldHVybiB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPGhlYWQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICByZXR1cm47CisgICAgICAgIAorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB3aW5kb3cuc2V0VGltZW91dChhZnRlckRlbGF5LCAyMCk7Cit9CisKK2Z1bmN0
aW9uIGFmdGVyRGVsYXkoKSB7CisgICAgZWRpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
ZGl0Iik7CisgICAgZWRpdC5mb2N1cygpOworICAgIHdpbmRvdy5zY3JvbGxCeSgxMDAsIDEwMCk7
CisgICAgdGV4dElucHV0Q29udHJvbGxlci5kb0NvbW1hbmQoIm1vdmVCYWNrd2FyZDoiKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlkPSJlZGl0IiBjb250ZW50RWRp
dGFibGU9InRydWUiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCByZWQ7IGhlaWdodDoiPlRoaXMg
dGVzdHMgZm9yIGEgYnVnIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjUyMjgpIHdoZXJlIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmFic29sdXRlQ2FyZXRCb3VuZHMgd2Fz
IHJldHVybmluZyBhbiBpbmZsYXRlZCBjYXJldC4gIEl0IHdvdWxkIG1hbmlmZXN0IGl0c2VsZiBk
dXJpbmcgcmV2ZWFsU2VsZWN0aW9uIGNhbGxzLiAgQmVmb3JlIHRoZSBjaGFuZ2Ugd2Ugd291bGQg
cmV2ZWFsIG9uZSBwaXhlbCB0b28gbXVjaCBiZWNhdXNlIG9mIHRoZSBpbmZsYXRpb24uICBUbyBy
dW4gbWFudWFsbHksIHBsYWNlIHRoZSBjYXJldCBqdXN0IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0
ZXIsIHNjcm9sbCAxMDB4MTAwIHBpeGVscyBvciBzbyBhbmQgaGl0IHRoZSBiYWNrIGFycm93LiAg
VGhlIGNhcmV0IHNob3VsZCBiZSByaWdodCB1cCBhZ2FpbnN0IHRoZSBlZGdlIG9mIHRoZSB3aW5k
b3cuICBJZiB3ZSBjaGFuZ2UgdGhlIHdheSBzZWxlY3Rpb25zIGFyZSByZXZlYWxlZCB0aGUgcmVz
dWx0cyBmb3IgdGhpcyB0ZXN0IG1pZ2h0IGNoYW5nZSBhbmQgaXQgbWF5IG5vIGxvbmdlciB0ZXN0
IGZvciB0aGUgYnVnLjwvZGl2PgorPGRpdiBzdHlsZT0iaGVpZ2h0OjMwMDBweDsgd2lkdGg6MjAw
MHB4OyI+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9z
ZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uLzI1MjI4LWV4cGVjdGVkLmNoZWNrc3Vt
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0
aW9uLzI1MjI4LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiti
NWJjY2FmMzYwOWRhZDc0YTkwZjVkNTE0ZDUxOWZiZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIy
OC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2Vs
ZWN0aW9uLzI1MjI4LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUK
ICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi8yNTIyOC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9z
ZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDIwMDh4MzEwOAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNzg1eDU4NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMDA4eDMxMDgKKyAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDMxMDgKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc2OXgzMDkyCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDc2OXg5MiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSA3NTh4OTAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwx
KSB3aWR0aCA3NTE6ICJUaGlzIHRlc3RzIGZvciBhIGJ1ZyAoaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1MjI4KSB3aGVyZSBTZWxlY3Rpb25Db250cm9sbGVyOjphYnNv
bHV0ZUNhcmV0Qm91bmRzIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg3NTIsMSkgd2lkdGggNDog
IiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMTkpIHdpZHRoIDE5ODogIndhcyByZXR1cm5p
bmcgYW4gaW5mbGF0ZWQgY2FyZXQuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTk5LDE5KSB3
aWR0aCAzMjk6ICJJdCB3b3VsZCBtYW5pZmVzdCBpdHNlbGYgZHVyaW5nIHJldmVhbFNlbGVjdGlv
biBjYWxscy4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg1MjgsMTkpIHdpZHRoIDIyNDogIkJl
Zm9yZSB0aGUgY2hhbmdlIHdlIHdvdWxkIHJldmVhbCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NzUyLDE5KSB3aWR0aCA0OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwzNykgd2lkdGgg
Mjc5OiAib25lIHBpeGVsIHRvbyBtdWNoIGJlY2F1c2Ugb2YgdGhlIGluZmxhdGlvbi4gIgorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyODAsMzcpIHdpZHRoIDQ3NTogIlRvIHJ1biBtYW51YWxseSwg
cGxhY2UgdGhlIGNhcmV0IGp1c3QgYWZ0ZXIgdGhlIGZpcnN0IGNoYXJhY3Rlciwgc2Nyb2xsIDEw
MHgxMDAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDc1NSwzNykgd2lkdGggNDogIiAiCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDEsNTUpIHdpZHRoIDIyNTogInBpeGVscyBvciBzbyBhbmQgaGl0
IHRoZSBiYWNrIGFycm93LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyNiw1NSkgd2lkdGgg
Mzg2OiAiVGhlIGNhcmV0IHNob3VsZCBiZSByaWdodCB1cCBhZ2FpbnN0IHRoZSBlZGdlIG9mIHRo
ZSB3aW5kb3cuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjEyLDU1KSB3aWR0aCAxMzY6ICJJ
ZiB3ZSBjaGFuZ2UgdGhlIHdheSIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQ4LDU1KSB3aWR0
aCA0OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSw3Mykgd2lkdGggNjA2OiAic2VsZWN0
aW9ucyBhcmUgcmV2ZWFsZWQgdGhlIHJlc3VsdHMgZm9yIHRoaXMgdGVzdCBtaWdodCBjaGFuZ2Ug
YW5kIGl0IG1heSBubyBsb25nZXIgdGVzdCBmb3IgdGhlIGJ1Zy4iCisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw5Mikgc2l6ZSAyMDAweDMwMDAKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNo
aWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxk
IDAge0hUTUx9IG9mIGRvY3VtZW50CitzY3JvbGxlZCB0byA4LDkK
</data>
<flag name="review"
          id="14729"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>