<?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>21495</bug_id>
          
          <creation_ts>2008-10-08 19:09:08 -0700</creation_ts>
          <short_desc>DRT tool needs to capture real &quot;on screen&quot; window content</short_desc>
          <delta_ts>2008-10-27 12:25:12 -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>Tools / Tests</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>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pierre-Olivier Latour">pol</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94671</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 19:09:08 -0700</bug_when>
    <thetext>For some of our pixel testing, we need to have the DRT tool support an &quot;--onscreen&quot; option that makes the window visible on screen while the tests are running and capture its contents by read from the screen, not the window backbuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94673</commentid>
    <comment_count>1</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 19:11:20 -0700</bug_when>
    <thetext>I will provide a tentative patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94674</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-08 19:15:48 -0700</bug_when>
    <thetext>Why do we need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94681</commentid>
    <comment_count>3</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 19:36:32 -0700</bug_when>
    <thetext>This bug is dependent on https://bugs.webkit.org/show_bug.cgi?id=21322</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94682</commentid>
    <comment_count>4</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 19:39:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Why do we need this?

In some case, we really need to know what the window content really looks like on screen, and grabbing the backbuffer is not sufficient. For more details, we can talk directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94808</commentid>
    <comment_count>5</comment_count>
      <attachid>24246</attachid>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-09 17:01:31 -0700</bug_when>
    <thetext>Created attachment 24246
First revision</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94832</commentid>
    <comment_count>6</comment_count>
      <attachid>24251</attachid>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-09 19:37:04 -0700</bug_when>
    <thetext>Created attachment 24251
2nd revision</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94864</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-10 00:27:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; Why do we need this?
&gt; 
&gt; In some case, we really need to know what the window content really looks like
&gt; on screen, and grabbing the backbuffer is not sufficient. For more details, we
&gt; can talk directly.

I&apos;d be very curious as well.  Could you maybe post some explanation in the bug?  Chromium&apos;s test_shell also renders onscreen, but I&apos;d like them to move towards a model similar to DRT where the window is offscreen instead.  You sound like you have reasons not to move to such?  When is the backing store for a window going to be different from the contents captured some other way?  When OpenGL is in play?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94901</commentid>
    <comment_count>8</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-10 12:15:19 -0700</bug_when>
    <thetext>&gt; I&apos;d be very curious as well.  Could you maybe post some explanation in the bug?
&gt;  Chromium&apos;s test_shell also renders onscreen, but I&apos;d like them to move towards
&gt; a model similar to DRT where the window is offscreen instead.  You sound like
&gt; you have reasons not to move to such?  When is the backing store for a window
&gt; going to be different from the contents captured some other way?  When OpenGL
&gt; is in play?

You are correct: if there&apos;s a GL surface on the window, like for the Apple Quartz Composer webkit plug-in, or third party plug-ins that use GL, by definition the rendering of these plug-ins is not in the window backing. So to get a proper snapshot, you need to use the new APIs in CG introduced in 10.5 (or read directly from the framebuffer, but it&apos;s more complicated).

There are probably other cases I can&apos;t think of (maybe if the bits put on screen are &quot;touched&quot; in any way when blit from the window backing like color matching).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94940</commentid>
    <comment_count>9</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-10 16:25:29 -0700</bug_when>
    <thetext>More investigation showed that CGWindowListCreateImage() works correctly even if the window is not visible (i.e. outside of the screen bounds), as long as it&apos;s ordered in. This includes capturing the surface on top of the window.

One point of interest is that in case of multiple video cards configurations, windows out of the screens area are assumed to be on the primary video card (this matters for OpenGL virtual screen).

Note that CGWindowListCreateImage() is only available on Mac OS X 10.5 and later, and there&apos;s no satisfying replacement on earlier OS. You could read from the framebuffer directly, but this involves OpenGL and require the window to be both visible and un-occluded on screen.

Finally, the image you get through CGWindowListCreateImage() very slightly differs from the one you get by reading the window backing buffer as the window server compositing path gets involved. Practically, this means there are very small dithering artifacts (at least on my iMac).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94941</commentid>
    <comment_count>10</comment_count>
      <attachid>24279</attachid>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-10 16:29:36 -0700</bug_when>
    <thetext>Created attachment 24279
3rd revision

After discussing with Darin, he pointed out this behavior, if better, shouldn&apos;t be opt-in, but the default. So here&apos;s a new patch with the old behavior gone and cleaned up code as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95727</commentid>
    <comment_count>11</comment_count>
      <attachid>24279</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-17 04:27:43 -0700</bug_when>
    <thetext>Comment on attachment 24279
3rd revision

This should just use the BUILDING_ON_TIGER macro defined in DumpRenderTreeMac.h.

#ifndef BUILDING_ON_TIGER
// new code
#else
// old code
#endif

Otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96280</commentid>
    <comment_count>12</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-22 19:12:18 -0700</bug_when>
    <thetext>Because of interdependencies, this patch will be merged with the master one at
https://bugs.webkit.org/show_bug.cgi?id=21322</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24246</attachid>
            <date>2008-10-09 17:01:31 -0700</date>
            <delta_ts>2008-10-09 19:37:04 -0700</delta_ts>
            <desc>First revision</desc>
            <filename>PATCH_FILE.txt</filename>
            <type>text/plain</type>
            <size>8669</size>
            <attacher name="Pierre-Olivier Latour">pol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjVmOGUyLi4zM2NiYTAzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMTAt
MDkgIFBpZXJyZS1PbGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuICItLW9uc2NyZWVuIiBv
cHRpb24gdGhhdCBtYWtlcyB0aGUgd2luZG93IHZpc2libGUgb24gc2NyZWVuIGFuZCBjYXB0dXJl
IGl0cyBjb250ZW50cworICAgICAgICBieSByZWFkaW5nIGZyb20gdGhlIHNjcmVlbiwgbm90IHRo
ZSB3aW5kb3cgYmFja2J1ZmZlciAoTWFjIE9TIFggTGVvcGFyZCBhbmQgbGF0ZXIgb25seSkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk1Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAo
Y3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6CisgICAgICAgIChpbml0aWFsaXplR2xv
YmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KToKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6CisKIDIwMDgt
MTAtMDggIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIFdp
bmRvd3MgYnVpbGQgYWZ0ZXIgcjM3NDM0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDJhZmRmZDkuLjc4MzZmMGEgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEx
Miw2ICsxMTIsOSBAQCBQb2xpY3lEZWxlZ2F0ZSAqcG9saWN5RGVsZWdhdGU7CiAKIHN0YXRpYyBp
bnQgZHVtcFBpeGVsczsKIHN0YXRpYyBpbnQgZHVtcEFsbFBpeGVsczsKKyNpZiBkZWZpbmVkKE1B
Q19PU19YX1ZFUlNJT05fMTBfNSkgJiYgKE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0g
TUFDX09TX1hfVkVSU0lPTl8xMF81KQorc3RhdGljIGludCBvbnNjcmVlbjsKKyNlbmRpZgogc3Rh
dGljIGludCB0aHJlYWRlZDsKIHN0YXRpYyBpbnQgdGVzdFJlcGFpbnREZWZhdWx0Owogc3RhdGlj
IGludCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHlEZWZhdWx0OwpAQCAtMjQ5LDE5ICsyNTIsMzAg
QEAgV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCiAgICAgCiAgICAg
W3dlYlZpZXcgc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOllFU107CiAgICAgCi0g
ICAgLy8gVG8gbWFrZSB0aGluZ3MgbGlrZSBjZXJ0YWluIE5TVmlld3MsIGRyYWdnaW5nLCBhbmQg
cGx1Zy1pbnMgd29yaywgcHV0IHRoZSBXZWJWaWV3IGEgd2luZG93LCBidXQgcHV0IGl0IG9mZi1z
Y3JlZW4gc28geW91IGRvbid0IHNlZSBpdC4KLSAgICAvLyBQdXQgaXQgYXQgLTEwMDAwLCAtMTAw
MDAgaW4gImZsaXBwZWQgY29vcmRpbmF0ZXMiLCBzaW5jZSBXZWJDb3JlIGFuZCB0aGUgRE9NIHVz
ZSBmbGlwcGVkIGNvb3JkaW5hdGVzLgotICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRS
ZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBm
cmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOworICAgIC8vIFRv
IG1ha2UgdGhpbmdzIGxpa2UgY2VydGFpbiBOU1ZpZXdzLCBkcmFnZ2luZywgYW5kIHBsdWctaW5z
IHdvcmssIHB1dCB0aGUgV2ViVmlldyBhIHdpbmRvdywgYnV0IHB1dCBpdCBvZmYtc2NyZWVuIChh
dCAtMTAwMDAsLTEwMDAwKSBzbyB5b3UgZG9uJ3Qgc2VlIGl0LgorICAgIE5TUmVjdCB3aW5kb3dS
ZWN0OworI2lmIGRlZmluZWQoTUFDX09TX1hfVkVSU0lPTl8xMF81KSAmJiAoTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzUpCisgICAgaWYgKG9uc2Ny
ZWVuKSB7CisgICAgICAgIHdpbmRvd1JlY3QgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RB
dEluZGV4OjBdIGZyYW1lXTsKKyAgICAgICAgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0
LCB3aW5kb3dSZWN0Lm9yaWdpbi54ICsgKHdpbmRvd1JlY3Quc2l6ZS53aWR0aCAtIHJlY3Quc2l6
ZS53aWR0aCkgLyAyLCB3aW5kb3dSZWN0Lm9yaWdpbi55ICsgKHdpbmRvd1JlY3Quc2l6ZS5oZWln
aHQgLSByZWN0LnNpemUuaGVpZ2h0KSAvIDIpOworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKyAg
ICAgICAgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFtbW05TU2NyZWVu
IHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXpl
LmhlaWdodCArIDEwMDAwKTsKICAgICBEdW1wUmVuZGVyVHJlZVdpbmRvdyAqd2luZG93ID0gW1tE
dW1wUmVuZGVyVHJlZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0
IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpZRVNdOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3
OndlYlZpZXddOwotICAgIFt3aW5kb3cgb3JkZXJCYWNrOm5pbF07CiAgICAgW3dpbmRvdyBzZXRB
dXRvZGlzcGxheTpOT107CisjaWYgZGVmaW5lZChNQUNfT1NfWF9WRVJTSU9OXzEwXzUpICYmIChN
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNSkKKyAg
ICBpZiAob25zY3JlZW4pCisgICAgICAgIFt3aW5kb3cgc2V0TGV2ZWw6TlNTY3JlZW5TYXZlcldp
bmRvd0xldmVsXTsKKyNlbmRpZgorICAgIFt3aW5kb3cgb3JkZXJCYWNrOm5pbF07CiAgICAgCiAg
ICAgLy8gRm9yIHJlYXNvbnMgdGhhdCBhcmUgbm90IGVudGlyZWx5IGNsZWFyLCB0aGUgZm9sbG93
aW5nIHBhaXIgb2YgY2FsbHMgbWFrZXMgV2ViVmlldyBoYW5kbGUgaXRzCiAgICAgLy8gZHluYW1p
YyBzY3JvbGxiYXJzIHByb3Blcmx5LiBXaXRob3V0IGl0LCBldmVyeSBmcmFtZSB3aWxsIGFsd2F5
cyBoYXZlIHNjcm9sbGJhcnMuCiAgICAgTlNCaXRtYXBJbWFnZVJlcCAqaW1hZ2VSZXAgPSBbd2Vi
VmlldyBiaXRtYXBJbWFnZVJlcEZvckNhY2hpbmdEaXNwbGF5SW5SZWN0Olt3ZWJWaWV3IGJvdW5k
c11dOwogICAgIFt3ZWJWaWV3IGNhY2hlRGlzcGxheUluUmVjdDpbd2ViVmlldyBib3VuZHNdIHRv
Qml0bWFwSW1hZ2VSZXA6aW1hZ2VSZXBdOwotICAgICAgICAKKyAgICAKICAgICByZXR1cm4gd2Vi
VmlldzsKIH0KIApAQCAtNDAzLDYgKzQxNyw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHbG9i
YWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdCiAg
ICAgICAgIHsiaG9yaXpvbnRhbC1zd2VlcCIsIG5vX2FyZ3VtZW50LCAmcmVwYWludFN3ZWVwSG9y
aXpvbnRhbGx5RGVmYXVsdCwgWUVTfSwKICAgICAgICAgeyJub3RyZWUiLCBub19hcmd1bWVudCwg
JmR1bXBUcmVlLCBOT30sCiAgICAgICAgIHsicGl4ZWwtdGVzdHMiLCBub19hcmd1bWVudCwgJmR1
bXBQaXhlbHMsIFlFU30sCisjaWYgZGVmaW5lZChNQUNfT1NfWF9WRVJTSU9OXzEwXzUpICYmIChN
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNSkKKyAg
ICAgICAgeyJvbnNjcmVlbiIsIG5vX2FyZ3VtZW50LCAmb25zY3JlZW4sIFlFU30sCisjZW5kaWYK
ICAgICAgICAgeyJyZXBhaW50Iiwgbm9fYXJndW1lbnQsICZ0ZXN0UmVwYWludERlZmF1bHQsIFlF
U30sCiAgICAgICAgIHsidHJlZSIsIG5vX2FyZ3VtZW50LCAmZHVtcFRyZWUsIFlFU30sCiAgICAg
ICAgIHsidGhyZWFkZWQiLCBub19hcmd1bWVudCwgJnRocmVhZGVkLCBZRVN9LApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0g
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQpp
bmRleCA4MzZjMDkzLi41YTVkM2ZjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQpAQCAtMTU1LDE2ICsxNTUsMjcgQEAg
UGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXco
Ym9vbCBpbmNyZW1lbnRhbFJlcGFpbnQKICAgICAgICAgICAgICAgICBbdmlldyBkaXNwbGF5UmVj
dElnbm9yaW5nT3BhY2l0eTpsaW5lIGluQ29udGV4dDpuc0NvbnRleHRdOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgcGF0aCBpcyBzdWJvcHRpbWFsOiBk
YXRhIGlzIHJlYWQgZnJvbSB3aW5kb3cgYmFja2luZyBzdG9yZSwgY29udmVydGVkIHRvIFJHQjgg
dGhlbiBkcmF3biBhZ2FpbiBpbnRvIGFuIFJHQkE4IGJpdG1hcAotICAgICAgICBbdmlldyBkaXNw
bGF5SWZOZWVkZWRdOwotICAgICAgICBbdmlldyBsb2NrRm9jdXNdOwotICAgICAgICBOU0JpdG1h
cEltYWdlUmVwICppbWFnZVJlcCA9IFtbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRo
Rm9jdXNlZFZpZXdSZWN0Olt2aWV3IGZyYW1lXV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbdmll
dyB1bmxvY2tGb2N1c107CiAKLSAgICAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBz
YXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwotICAgICAg
ICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6bnNDb250ZXh0XTsKLSAgICAg
ICAgW2ltYWdlUmVwIGRyYXddOwotICAgICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKKyNpZiBkZWZpbmVkKE1BQ19PU19YX1ZFUlNJ
T05fMTBfNSkgJiYgKE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVS
U0lPTl8xMF81KQorICAgICAgICBpZiAoW1t2aWV3IHdpbmRvd10gc2NyZWVuXSkgeyAvLyBJZiAt
c2NyZWVuIGlzIG5vdCBuaWwsIHRoZW4gd2Uga25vdyB0aGUgd2luZG93IGlzICpyZWFsbHkqIG9u
IHNjcmVlbiBhbmQgd2UgYXJlIGluICItLW9uc2NyZWVuIiBtb2RlCisgICAgICAgICAgICBDR0lt
YWdlUmVmIGltYWdlID0gQ0dXaW5kb3dMaXN0Q3JlYXRlSW1hZ2UoQ0dSZWN0TnVsbCwga0NHV2lu
ZG93TGlzdE9wdGlvbkluY2x1ZGluZ1dpbmRvdywgW1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVy
XSwga0NHV2luZG93SW1hZ2VCb3VuZHNJZ25vcmVGcmFtaW5nIHwga0NHV2luZG93SW1hZ2VTaG91
bGRCZU9wYXF1ZSk7CisgICAgICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dCwgQ0dS
ZWN0TWFrZSgwLCAwLCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UpLCBDR0ltYWdlR2V0SGVpZ2h0KGlt
YWdlKSksIGltYWdlKTsKKyAgICAgICAgICAgIENHSW1hZ2VSZWxlYXNlKGltYWdlKTsKKyAgICAg
ICAgfQorICAgICAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgcGF0aCBpcyBzdWJvcHRpbWFsOiBkYXRhIGlzIHJlYWQgZnJvbSB3aW5kb3cgYmFj
a2luZyBzdG9yZSwgY29udmVydGVkIHRvIFJHQjggdGhlbiBkcmF3biBhZ2FpbiBpbnRvIGFuIFJH
QkE4IGJpdG1hcAorICAgICAgICAgICAgW3ZpZXcgZGlzcGxheUlmTmVlZGVkXTsKKyAgICAgICAg
ICAgIFt2aWV3IGxvY2tGb2N1c107CisgICAgICAgICAgICBOU0JpdG1hcEltYWdlUmVwICppbWFn
ZVJlcCA9IFtbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRoRm9jdXNlZFZpZXdSZWN0
Olt2aWV3IGZyYW1lXV0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgW3ZpZXcgdW5sb2NrRm9j
dXNdOworICAgICAgICAKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4dD4g
c2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICAg
ICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpuc0NvbnRleHRdOwor
ICAgICAgICAgICAgW2ltYWdlUmVwIGRyYXddOworICAgICAgICAgICAgW05TR3JhcGhpY3NDb250
ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBpZiAoZHJhd1NlbGVjdGlvblJlY3QpIHsKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdl
YmtpdC10ZXN0cwppbmRleCBiZTM4YzYwLi44MGFlNWZkIDEwMDc1NQotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4t
d2Via2l0LXRlc3RzCkBAIC0xMjQsNiArMTI0LDcgQEAgbXkgJHRlc3RNZWRpYSA9IDE7CiBteSAk
dGVzdFJlc3VsdHNEaXJlY3RvcnkgPSAiL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzIjsKIG15ICR0
aHJlYWRlZCA9IDA7CiBteSAkdGhyZXNob2xkID0gMDsKK215ICRvbnNjcmVlbiA9IDA7CiBteSAk
dHJlYXRTa2lwcGVkID0gImRlZmF1bHQiOwogbXkgJHZlcmJvc2UgPSAwOwogbXkgJHVzZVZhbGdy
aW5kID0gMDsKQEAgLTIwNyw2ICsyMDgsNyBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25z
XSBbdGVzdGRpcnx0ZXN0cGF0aCAuLi5dCiAgIC0tW25vLV1zdHJpcC1lZGl0aW5nLWNhbGxiYWNr
cyAgUmVtb3ZlIGVkaXRpbmcgY2FsbGJhY2tzIGZyb20gZXhwZWN0ZWQgcmVzdWx0cwogICAtdHwt
LXRocmVhZGVkICAgICAgICAgICAgICAgICAgIFJ1biBhIGNvbmN1cnJlbnQgSmF2YVNjcmlwdCB0
aGVhZCB3aXRoIGVhY2ggdGVzdAogICAtLXRocmVzaG9sZCB0ICAgICAgICAgICAgICAgICAgIEln
bm9yZSBwaXhlbCB2YWx1ZSBkZXZpYXRpb25zIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0CisgIC0t
b25zY3JlZW4gICAgICAgICAgICAgICAgICAgICAgUnVuIHBpeGVsIHRlc3RzIG9uIHNjcmVlbiAo
aW1wbGllcyAtLXBpeGVsLXRlc3RzKSAoTWFjIE9TIFggb25seSkKICAgLS12YWxncmluZCAgICAg
ICAgICAgICAgICAgICAgICBSdW4gRHVtcFJlbmRlclRyZWUgaW5zaWRlIHZhbGdyaW5kIChRdC9M
aW51eCBvbmx5KQogICAtdnwtLXZlcmJvc2UgICAgICAgICAgICAgICAgICAgIE1vcmUgdmVyYm9z
ZSBvdXRwdXQgKG92ZXJyaWRlcyAtLXF1aWV0KQogICAtbXwtLW1lcmdlLWxlYWstZGVwdGggYXJn
ICAgICAgIE1lcmdlcyBsZWFrIGNhbGxTdGFja3MgYW5kIHByaW50cyB0aGUgbnVtYmVyIG9mIHVu
aXF1ZSBsZWFrcyBiZW5lYXRoIGEgY2FsbHN0YWNrIGRlcHRoIG9mIGFyZy4gIERlZmF1bHRzIHRv
IDUuCkBAIC0yNDAsNiArMjQyLDcgQEAgbXkgJGdldE9wdGlvbnNSZXN1bHQgPSBHZXRPcHRpb25z
KAogICAgICdzbG93ZXN0JyA9PiBcJHJlcG9ydDEwU2xvd2VzdCwKICAgICAndGhyZWFkZWR8dCcg
PT4gXCR0aHJlYWRlZCwKICAgICAndGhyZXNob2xkPWknID0+IFwkdGhyZXNob2xkLAorICAgICdv
bnNjcmVlbicgPT4gXCRvbnNjcmVlbiwKICAgICAndmVyYm9zZXx2JyA9PiBcJHZlcmJvc2UsCiAg
ICAgJ3ZhbGdyaW5kJyA9PiBcJHVzZVZhbGdyaW5kLAogICAgICdzYW1wbGUtb24tdGltZW91dCEn
ID0+IFwkcnVuU2FtcGxlLApAQCAtMjcxLDYgKzI3NCw3IEBAICRyZXBhaW50VGVzdHMgPSAxIGlm
ICRyZXBhaW50U3dlZXBIb3Jpem9udGFsbHk7CiAKICRwaXhlbFRlc3RzID0gMSBpZiAkcmVwYWlu
dFRlc3RzOwogJHBpeGVsVGVzdHMgPSAxIGlmICR0aHJlc2hvbGQgPiAwOworJHBpeGVsVGVzdHMg
PSAxIGlmICRvbnNjcmVlbjsKIAogJHZlcmJvc2UgPSAxIGlmICR0ZXN0c1BlckR1bXBUb29sID09
IDE7CiAKQEAgLTQ1Nyw2ICs0NjEsNyBAQCBteSAkZHVtcEFsbFBpeGVscyA9ICRwaXhlbFRlc3Rz
ICYmICRyZXNldFJlc3VsdHM7CiBteSBAdG9vbEFyZ3MgPSAoKTsKIHB1c2ggQHRvb2xBcmdzLCAi
LS1kdW1wLWFsbC1waXhlbHMiIGlmICRkdW1wQWxsUGl4ZWxzOwogcHVzaCBAdG9vbEFyZ3MsICIt
LXBpeGVsLXRlc3RzIiBpZiAkcGl4ZWxUZXN0czsKK3B1c2ggQHRvb2xBcmdzLCAiLS1vbnNjcmVl
biIgaWYgJG9uc2NyZWVuOwogcHVzaCBAdG9vbEFyZ3MsICItLXJlcGFpbnQiIGlmICRyZXBhaW50
VGVzdHM7CiBwdXNoIEB0b29sQXJncywgIi0taG9yaXpvbnRhbC1zd2VlcCIgaWYgJHJlcGFpbnRT
d2VlcEhvcml6b250YWxseTsKIHB1c2ggQHRvb2xBcmdzLCAiLS10aHJlYWRlZCIgaWYgJHRocmVh
ZGVkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24251</attachid>
            <date>2008-10-09 19:37:04 -0700</date>
            <delta_ts>2008-10-10 16:29:36 -0700</delta_ts>
            <desc>2nd revision</desc>
            <filename>PATCH_FILE.txt</filename>
            <type>text/plain</type>
            <size>8277</size>
            <attacher name="Pierre-Olivier Latour">pol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjVmOGUyLi4yNDgzZTgxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDgtMTAt
MDkgIFBpZXJyZS1PbGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuICItLW9uc2NyZWVuIiBv
cHRpb24gdGhhdCBtYWtlcyB0aGUgd2luZG93IHZpc2libGUgb24gc2NyZWVuIGFuZCBjYXB0dXJl
IGl0cyBjb250ZW50cworICAgICAgICBieSByZWFkaW5nIGZyb20gdGhlIHNjcmVlbiwgbm90IHRo
ZSB3aW5kb3cgYmFja2J1ZmZlciAoTWFjIE9TIFggTGVvcGFyZCBhbmQgbGF0ZXIgb25seSkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk1CisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAg
IChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKGluaXRpYWxpemVH
bG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0
RnJvbVdlYlZpZXcpOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC10ZXN0czoKKwogMjAw
OC0xMC0wOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUg
V2luZG93cyBidWlsZCBhZnRlciByMzc0MzQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMmFmZGZkOS4uM2IyZGJlYiAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAt
MTEyLDYgKzExMiw5IEBAIFBvbGljeURlbGVnYXRlICpwb2xpY3lEZWxlZ2F0ZTsKIAogc3RhdGlj
IGludCBkdW1wUGl4ZWxzOwogc3RhdGljIGludCBkdW1wQWxsUGl4ZWxzOworI2lmIGRlZmluZWQo
TUFDX09TX1hfVkVSU0lPTl8xMF81KSAmJiAoTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzUpCitzdGF0aWMgaW50IG9uc2NyZWVuOworI2VuZGlmCiBz
dGF0aWMgaW50IHRocmVhZGVkOwogc3RhdGljIGludCB0ZXN0UmVwYWludERlZmF1bHQ7CiBzdGF0
aWMgaW50IHJlcGFpbnRTd2VlcEhvcml6b250YWxseURlZmF1bHQ7CkBAIC0yNDksMTMgKzI1Miwy
MCBAQCBXZWJWaWV3ICpjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCkKICAgICAKICAg
ICBbd2ViVmlldyBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6WUVTXTsKICAgICAK
LSAgICAvLyBUbyBtYWtlIHRoaW5ncyBsaWtlIGNlcnRhaW4gTlNWaWV3cywgZHJhZ2dpbmcsIGFu
ZCBwbHVnLWlucyB3b3JrLCBwdXQgdGhlIFdlYlZpZXcgYSB3aW5kb3csIGJ1dCBwdXQgaXQgb2Zm
LXNjcmVlbiBzbyB5b3UgZG9uJ3Qgc2VlIGl0LgotICAgIC8vIFB1dCBpdCBhdCAtMTAwMDAsIC0x
MDAwMCBpbiAiZmxpcHBlZCBjb29yZGluYXRlcyIsIHNpbmNlIFdlYkNvcmUgYW5kIHRoZSBET00g
dXNlIGZsaXBwZWQgY29vcmRpbmF0ZXMuCi0gICAgTlNSZWN0IHdpbmRvd1JlY3QgPSBOU09mZnNl
dFJlY3QocmVjdCwgLTEwMDAwLCBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBd
IGZyYW1lXS5zaXplLmhlaWdodCAtIHJlY3Quc2l6ZS5oZWlnaHQgKyAxMDAwMCk7CisgICAgLy8g
VG8gbWFrZSB0aGluZ3MgbGlrZSBjZXJ0YWluIE5TVmlld3MsIGRyYWdnaW5nLCBhbmQgcGx1Zy1p
bnMgd29yaywgcHV0IHRoZSBXZWJWaWV3IGEgd2luZG93LCBidXQgcHV0IGl0IG9mZi1zY3JlZW4g
KGF0IC0xMDAwMCwtMTAwMDApIHNvIHlvdSBkb24ndCBzZWUgaXQuCisgICAgTlNSZWN0IHdpbmRv
d1JlY3Q7CisjaWYgZGVmaW5lZChNQUNfT1NfWF9WRVJTSU9OXzEwXzUpICYmIChNQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNSkKKyAgICBpZiAob25z
Y3JlZW4pIHsKKyAgICAgICAgd2luZG93UmVjdCA9IFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVj
dEF0SW5kZXg6MF0gZnJhbWVdOworICAgICAgICB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJl
Y3QsIHdpbmRvd1JlY3Qub3JpZ2luLnggKyAod2luZG93UmVjdC5zaXplLndpZHRoIC0gcmVjdC5z
aXplLndpZHRoKSAvIDIsIHdpbmRvd1JlY3Qub3JpZ2luLnkgKyAod2luZG93UmVjdC5zaXplLmhl
aWdodCAtIHJlY3Quc2l6ZS5oZWlnaHQpIC8gMik7CisgICAgfQorICAgIGVsc2UKKyNlbmRpZgor
ICAgICAgICB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNp
emUuaGVpZ2h0ICsgMTAwMDApOwogICAgIER1bXBSZW5kZXJUcmVlV2luZG93ICp3aW5kb3cgPSBb
W0R1bXBSZW5kZXJUcmVlV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1Jl
Y3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6d2ViVmlld107CisJW3dpbmRvdyBzZXRBdXRvZGlzcGxheTpOT107CiAgICAgW3dpbmRvdyBv
cmRlckJhY2s6bmlsXTsKLSAgICBbd2luZG93IHNldEF1dG9kaXNwbGF5Ok5PXTsKICAgICAKICAg
ICAvLyBGb3IgcmVhc29ucyB0aGF0IGFyZSBub3QgZW50aXJlbHkgY2xlYXIsIHRoZSBmb2xsb3dp
bmcgcGFpciBvZiBjYWxscyBtYWtlcyBXZWJWaWV3IGhhbmRsZSBpdHMKICAgICAvLyBkeW5hbWlj
IHNjcm9sbGJhcnMgcHJvcGVybHkuIFdpdGhvdXQgaXQsIGV2ZXJ5IGZyYW1lIHdpbGwgYWx3YXlz
IGhhdmUgc2Nyb2xsYmFycy4KQEAgLTQwMyw2ICs0MTMsOSBAQCBzdGF0aWMgdm9pZCBpbml0aWFs
aXplR2xvYmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFy
Z3ZbXQogICAgICAgICB7Imhvcml6b250YWwtc3dlZXAiLCBub19hcmd1bWVudCwgJnJlcGFpbnRT
d2VlcEhvcml6b250YWxseURlZmF1bHQsIFlFU30sCiAgICAgICAgIHsibm90cmVlIiwgbm9fYXJn
dW1lbnQsICZkdW1wVHJlZSwgTk99LAogICAgICAgICB7InBpeGVsLXRlc3RzIiwgbm9fYXJndW1l
bnQsICZkdW1wUGl4ZWxzLCBZRVN9LAorI2lmIGRlZmluZWQoTUFDX09TX1hfVkVSU0lPTl8xMF81
KSAmJiAoTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEw
XzUpCisgICAgICAgIHsib25zY3JlZW4iLCBub19hcmd1bWVudCwgJm9uc2NyZWVuLCBZRVN9LAor
I2VuZGlmCiAgICAgICAgIHsicmVwYWludCIsIG5vX2FyZ3VtZW50LCAmdGVzdFJlcGFpbnREZWZh
dWx0LCBZRVN9LAogICAgICAgICB7InRyZWUiLCBub19hcmd1bWVudCwgJmR1bXBUcmVlLCBZRVN9
LAogICAgICAgICB7InRocmVhZGVkIiwgbm9fYXJndW1lbnQsICZ0aHJlYWRlZCwgWUVTfSwKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0
TWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRN
YWMubW0KaW5kZXggODM2YzA5My4uMzFjZTYwZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KQEAgLTE1NSwxNiArMTU1
LDI2IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21X
ZWJWaWV3KGJvb2wgaW5jcmVtZW50YWxSZXBhaW50CiAgICAgICAgICAgICAgICAgW3ZpZXcgZGlz
cGxheVJlY3RJZ25vcmluZ09wYWNpdHk6bGluZSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIHBhdGggaXMgc3Vib3B0
aW1hbDogZGF0YSBpcyByZWFkIGZyb20gd2luZG93IGJhY2tpbmcgc3RvcmUsIGNvbnZlcnRlZCB0
byBSR0I4IHRoZW4gZHJhd24gYWdhaW4gaW50byBhbiBSR0JBOCBiaXRtYXAKLSAgICAgICAgW3Zp
ZXcgZGlzcGxheUlmTmVlZGVkXTsKLSAgICAgICAgW3ZpZXcgbG9ja0ZvY3VzXTsKLSAgICAgICAg
TlNCaXRtYXBJbWFnZVJlcCAqaW1hZ2VSZXAgPSBbW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBp
bml0V2l0aEZvY3VzZWRWaWV3UmVjdDpbdmlldyBmcmFtZV1dIGF1dG9yZWxlYXNlXTsKLSAgICAg
ICAgW3ZpZXcgdW5sb2NrRm9jdXNdOwotCi0gICAgICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29u
dGV4dD4gc2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsK
LSAgICAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0Om5zQ29udGV4dF07
Ci0gICAgICAgIFtpbWFnZVJlcCBkcmF3XTsKLSAgICAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNl
dEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CisjaWYgZGVmaW5lZChNQUNfT1Nf
WF9WRVJTSU9OXzEwXzUpICYmIChNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19P
U19YX1ZFUlNJT05fMTBfNSkKKyAgICAgICAgaWYgKFtbdmlldyB3aW5kb3ddIHNjcmVlbl0pIHsg
Ly8gSWYgLXNjcmVlbiBpcyBub3QgbmlsLCB0aGVuIHdlIGtub3cgdGhlIHdpbmRvdyBpcyAqcmVh
bGx5KiBvbiBzY3JlZW4gYW5kIHdlIGFyZSBpbiAiLS1vbnNjcmVlbiIgbW9kZQorICAgICAgICAg
ICAgQ0dJbWFnZVJlZiBpbWFnZSA9IENHV2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGws
IGtDR1dpbmRvd0xpc3RPcHRpb25JbmNsdWRpbmdXaW5kb3csIFtbdmlldyB3aW5kb3ddIHdpbmRv
d051bWJlcl0sIGtDR1dpbmRvd0ltYWdlQm91bmRzSWdub3JlRnJhbWluZyB8IGtDR1dpbmRvd0lt
YWdlU2hvdWxkQmVPcGFxdWUpOworICAgICAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRl
eHQsIENHUmVjdE1ha2UoMCwgMCwgQ0dJbWFnZUdldFdpZHRoKGltYWdlKSwgQ0dJbWFnZUdldEhl
aWdodChpbWFnZSkpLCBpbWFnZSk7CisgICAgICAgICAgICBDR0ltYWdlUmVsZWFzZShpbWFnZSk7
CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHBhdGggaXMgc3Vib3B0aW1hbDogZGF0YSBpcyByZWFkIGZyb20gd2lu
ZG93IGJhY2tpbmcgc3RvcmUsIGNvbnZlcnRlZCB0byBSR0I4IHRoZW4gZHJhd24gYWdhaW4gaW50
byBhbiBSR0JBOCBiaXRtYXAKKyAgICAgICAgICAgIFt2aWV3IGRpc3BsYXlJZk5lZWRlZF07Cisg
ICAgICAgICAgICBbdmlldyBsb2NrRm9jdXNdOworICAgICAgICAgICAgTlNCaXRtYXBJbWFnZVJl
cCAqaW1hZ2VSZXAgPSBbW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBpbml0V2l0aEZvY3VzZWRW
aWV3UmVjdDpbdmlldyBmcmFtZV1dIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgICAgIFt2aWV3IHVu
bG9ja0ZvY3VzXTsKKyAgICAgICAgCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNHcmFwaGljc0Nv
bnRleHQ+IHNhdmVkQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07
CisgICAgICAgICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6bnNDb250
ZXh0XTsKKyAgICAgICAgICAgIFtpbWFnZVJlcCBkcmF3XTsKKyAgICAgICAgICAgIFtOU0dyYXBo
aWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpzYXZlZENvbnRleHQuZ2V0KCldOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKGRyYXdTZWxlY3Rpb25SZWN0KSB7CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3J1bi13ZWJraXQtdGVzdHMKaW5kZXggYmUzOGM2MC4uODBhZTVmZCAxMDA3NTUKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTI0LDYgKzEyNCw3IEBAIG15ICR0ZXN0TWVkaWEgPSAx
OwogbXkgJHRlc3RSZXN1bHRzRGlyZWN0b3J5ID0gIi90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cyI7
CiBteSAkdGhyZWFkZWQgPSAwOwogbXkgJHRocmVzaG9sZCA9IDA7CitteSAkb25zY3JlZW4gPSAw
OwogbXkgJHRyZWF0U2tpcHBlZCA9ICJkZWZhdWx0IjsKIG15ICR2ZXJib3NlID0gMDsKIG15ICR1
c2VWYWxncmluZCA9IDA7CkBAIC0yMDcsNiArMjA4LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBb
b3B0aW9uc10gW3Rlc3RkaXJ8dGVzdHBhdGggLi4uXQogICAtLVtuby1dc3RyaXAtZWRpdGluZy1j
YWxsYmFja3MgIFJlbW92ZSBlZGl0aW5nIGNhbGxiYWNrcyBmcm9tIGV4cGVjdGVkIHJlc3VsdHMK
ICAgLXR8LS10aHJlYWRlZCAgICAgICAgICAgICAgICAgICBSdW4gYSBjb25jdXJyZW50IEphdmFT
Y3JpcHQgdGhlYWQgd2l0aCBlYWNoIHRlc3QKICAgLS10aHJlc2hvbGQgdCAgICAgICAgICAgICAg
ICAgICBJZ25vcmUgcGl4ZWwgdmFsdWUgZGV2aWF0aW9ucyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
dAorICAtLW9uc2NyZWVuICAgICAgICAgICAgICAgICAgICAgIFJ1biBwaXhlbCB0ZXN0cyBvbiBz
Y3JlZW4gKGltcGxpZXMgLS1waXhlbC10ZXN0cykgKE1hYyBPUyBYIG9ubHkpCiAgIC0tdmFsZ3Jp
bmQgICAgICAgICAgICAgICAgICAgICAgUnVuIER1bXBSZW5kZXJUcmVlIGluc2lkZSB2YWxncmlu
ZCAoUXQvTGludXggb25seSkKICAgLXZ8LS12ZXJib3NlICAgICAgICAgICAgICAgICAgICBNb3Jl
IHZlcmJvc2Ugb3V0cHV0IChvdmVycmlkZXMgLS1xdWlldCkKICAgLW18LS1tZXJnZS1sZWFrLWRl
cHRoIGFyZyAgICAgICBNZXJnZXMgbGVhayBjYWxsU3RhY2tzIGFuZCBwcmludHMgdGhlIG51bWJl
ciBvZiB1bmlxdWUgbGVha3MgYmVuZWF0aCBhIGNhbGxzdGFjayBkZXB0aCBvZiBhcmcuICBEZWZh
dWx0cyB0byA1LgpAQCAtMjQwLDYgKzI0Miw3IEBAIG15ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0
T3B0aW9ucygKICAgICAnc2xvd2VzdCcgPT4gXCRyZXBvcnQxMFNsb3dlc3QsCiAgICAgJ3RocmVh
ZGVkfHQnID0+IFwkdGhyZWFkZWQsCiAgICAgJ3RocmVzaG9sZD1pJyA9PiBcJHRocmVzaG9sZCwK
KyAgICAnb25zY3JlZW4nID0+IFwkb25zY3JlZW4sCiAgICAgJ3ZlcmJvc2V8dicgPT4gXCR2ZXJi
b3NlLAogICAgICd2YWxncmluZCcgPT4gXCR1c2VWYWxncmluZCwKICAgICAnc2FtcGxlLW9uLXRp
bWVvdXQhJyA9PiBcJHJ1blNhbXBsZSwKQEAgLTI3MSw2ICsyNzQsNyBAQCAkcmVwYWludFRlc3Rz
ID0gMSBpZiAkcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5OwogCiAkcGl4ZWxUZXN0cyA9IDEgaWYg
JHJlcGFpbnRUZXN0czsKICRwaXhlbFRlc3RzID0gMSBpZiAkdGhyZXNob2xkID4gMDsKKyRwaXhl
bFRlc3RzID0gMSBpZiAkb25zY3JlZW47CiAKICR2ZXJib3NlID0gMSBpZiAkdGVzdHNQZXJEdW1w
VG9vbCA9PSAxOwogCkBAIC00NTcsNiArNDYxLDcgQEAgbXkgJGR1bXBBbGxQaXhlbHMgPSAkcGl4
ZWxUZXN0cyAmJiAkcmVzZXRSZXN1bHRzOwogbXkgQHRvb2xBcmdzID0gKCk7CiBwdXNoIEB0b29s
QXJncywgIi0tZHVtcC1hbGwtcGl4ZWxzIiBpZiAkZHVtcEFsbFBpeGVsczsKIHB1c2ggQHRvb2xB
cmdzLCAiLS1waXhlbC10ZXN0cyIgaWYgJHBpeGVsVGVzdHM7CitwdXNoIEB0b29sQXJncywgIi0t
b25zY3JlZW4iIGlmICRvbnNjcmVlbjsKIHB1c2ggQHRvb2xBcmdzLCAiLS1yZXBhaW50IiBpZiAk
cmVwYWludFRlc3RzOwogcHVzaCBAdG9vbEFyZ3MsICItLWhvcml6b250YWwtc3dlZXAiIGlmICRy
ZXBhaW50U3dlZXBIb3Jpem9udGFsbHk7CiBwdXNoIEB0b29sQXJncywgIi0tdGhyZWFkZWQiIGlm
ICR0aHJlYWRlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24279</attachid>
            <date>2008-10-10 16:29:36 -0700</date>
            <delta_ts>2008-10-22 19:12:41 -0700</delta_ts>
            <desc>3rd revision</desc>
            <filename>PATCH_FILE.txt</filename>
            <type>text/plain</type>
            <size>2299</size>
            <attacher name="Pierre-Olivier Latour">pol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjVmOGUyLi42OWNiYWM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTAt
MTAgIFBpZXJyZS1PbGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjIE9TIFggTGVvcGFyZCBh
bmQgbGF0ZXIgb25seSwgY2FwdHVyZSB0aGUgd2luZG93IGNvbnRlbnRzCisgICAgICAgIGJ5IHJl
YWRpbmcgZnJvbSB0aGUgc2NyZWVuLCBub3QgdGhlIHdpbmRvdyBiYWNrYnVmZmVyICh0aGlzIGFs
bG93cworICAgICAgICB0byBwcmVzZXJ2ZSBjb21wb3NpdGluZyBvZiBzdXJmYWNlcyBhbW9uZyBv
dGhlciB0aGluZ3MpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTQ5NQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1
cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgor
CiAyMDA4LTEwLTA4ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRoZSBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIzNzQzNC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KaW5kZXggODM2YzA5My4u
YzE3MTMyMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVs
RHVtcFN1cHBvcnRNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Bp
eGVsRHVtcFN1cHBvcnRNYWMubW0KQEAgLTE1NSw2ICsxNTUsMTIgQEAgUGFzc1JlZlB0cjxCaXRt
YXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBpbmNyZW1lbnRh
bFJlcGFpbnQKICAgICAgICAgICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0
eTpsaW5lIGluQ29udGV4dDpuc0NvbnRleHRdOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyNp
ZiBkZWZpbmVkKE1BQ19PU19YX1ZFUlNJT05fMTBfNSkgJiYgKE1BQ19PU19YX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF81KQorICAgICAgICAvLyBBc2sgdGhlIHdp
bmRvdyBzZXJ2ZXIgdG8gZ3JhYiB0aGUgd2luZG93IGNvbnRlbnQgd2hpY2ggcHJlc2VydmVzIHN1
cmZhY2VzIChpLmUuIE9wZW5HTCBjb250ZW50KSBjb250cmFyeSB0byByZWFkaW5nIGRpcmVjdGx5
IHRoZSB3aW5kb3cgYmFja2luZyBidWZmZXIKKyAgICAgICAgQ0dJbWFnZVJlZiBpbWFnZSA9IENH
V2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGwsIGtDR1dpbmRvd0xpc3RPcHRpb25JbmNs
dWRpbmdXaW5kb3csIFtbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0sIGtDR1dpbmRvd0ltYWdl
Qm91bmRzSWdub3JlRnJhbWluZyB8IGtDR1dpbmRvd0ltYWdlU2hvdWxkQmVPcGFxdWUpOworICAg
ICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dCwgQ0dSZWN0TWFrZSgwLCAwLCBDR0ltYWdl
R2V0V2lkdGgoaW1hZ2UpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKSksIGltYWdlKTsKKyAgICAg
ICAgQ0dJbWFnZVJlbGVhc2UoaW1hZ2UpOworI2Vsc2UKICAgICAgICAgLy8gRklYTUU6IFRoaXMg
cGF0aCBpcyBzdWJvcHRpbWFsOiBkYXRhIGlzIHJlYWQgZnJvbSB3aW5kb3cgYmFja2luZyBzdG9y
ZSwgY29udmVydGVkIHRvIFJHQjggdGhlbiBkcmF3biBhZ2FpbiBpbnRvIGFuIFJHQkE4IGJpdG1h
cAogICAgICAgICBbdmlldyBkaXNwbGF5SWZOZWVkZWRdOwogICAgICAgICBbdmlldyBsb2NrRm9j
dXNdOwpAQCAtMTY1LDYgKzE3MSw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRl
Qml0bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wgaW5jcmVtZW50YWxSZXBhaW50CiAgICAgICAg
IFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpuc0NvbnRleHRdOwogICAgICAg
ICBbaW1hZ2VSZXAgZHJhd107CiAgICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50
Q29udGV4dDpzYXZlZENvbnRleHQuZ2V0KCldOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKGRy
YXdTZWxlY3Rpb25SZWN0KSB7Cg==
</data>
<flag name="review"
          id="11057"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>