<?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>3821</bug_id>
          
          <creation_ts>2005-07-02 18:47:02 -0700</creation_ts>
          <short_desc>GW: add KWQWMatrix white-room implementation</short_desc>
          <delta_ts>2005-07-05 01:39:31 -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>New Bugs</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>3250</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13713</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-02 18:47:02 -0700</bug_when>
    <thetext>Attached is my white-room implementation of KWQWMatrix.  It&apos;s very simple and uses CGAffineTransform 
for everything.  But it&apos;s enough to get other projects up and running correctly on KWQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13717</commentid>
    <comment_count>1</comment_count>
      <attachid>2761</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-02 20:04:01 -0700</bug_when>
    <thetext>Created attachment 2761
adds a real qwmatrix implementation, and removes stub from KWQPixmap.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13782</commentid>
    <comment_count>2</comment_count>
      <attachid>2761</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-07-03 03:47:44 -0700</bug_when>
    <thetext>Comment on attachment 2761
adds a real qwmatrix implementation, and removes stub from KWQPixmap.h

Seems like both your comments here are right. QWMatrix indeed takes degrees
while CGAffineTransform takes radians. And the behavior of invert() on a
singular matrix would not match between Qt and CG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13822</commentid>
    <comment_count>3</comment_count>
      <attachid>2776</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-03 15:09:12 -0700</bug_when>
    <thetext>Created attachment 2776
Fixes the two issues mjs raised</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13949</commentid>
    <comment_count>4</comment_count>
      <attachid>2801</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-07-05 00:33:49 -0700</bug_when>
    <thetext>Created attachment 2801
project file diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13957</commentid>
    <comment_count>5</comment_count>
      <attachid>2801</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-07-05 01:39:27 -0700</bug_when>
    <thetext>Comment on attachment 2801
project file diff

r=me assuming you tested</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2761</attachid>
            <date>2005-07-02 20:04:01 -0700</date>
            <delta_ts>2005-07-03 15:09:12 -0700</delta_ts>
            <desc>adds a real qwmatrix implementation, and removes stub from KWQPixmap.h</desc>
            <filename>qwmatrix.patch</filename>
            <type>text/plain</type>
            <size>7864</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IC4vRm9yd2FyZGluZ0hlYWRlcnMvcXdtYXRyaXguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBxd21hdHJpeC5oCmRpZmYgLU4gLi9Gb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCi0tLSAu
L0ZvcndhcmRpbmdIZWFkZXJzL3F3bWF0cml4LmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
KysgLi9Gb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCTMgSnVsIDIwMDUgMDI6NDM6MzQgLTAw
MDAKQEAgLTAsMCArMSBAQAorI2ltcG9ydCAiS1dRV01hdHJpeC5oIgpJbmRleDogLi9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43NQpkaWZmIC1wIC11IC1yMS43NSAuL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW1h
Z2UuY3BwCi0tLSAuL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW1hZ2UuY3BwCTMwIEp1biAyMDA1
IDAxOjI3OjQxIC0wMDAwCTEuNzUKKysrIC4va2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5j
cHAJMyBKdWwgMjAwNSAwMjo0NDoyNiAtMDAwMApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSA8cWRyYXd1dGlsLmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KKyNpbmNsdWRlIDxxd21hdHJp
eC5oPgogCiAjaW5jbHVkZSA8a2FwcGxpY2F0aW9uLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+Cklu
ZGV4OiAuL2t3cS9LV1FQaXhtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRUGl4bWFwLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAKZGlmZiAtcCAt
dSAtcjEuNDAgLi9rd3EvS1dRUGl4bWFwLmgKLS0tIC4va3dxL0tXUVBpeG1hcC5oCTI1IEZlYiAy
MDA1IDAwOjI1OjEyIC0wMDAwCTEuNDAKKysrIC4va3dxL0tXUVBpeG1hcC5oCTMgSnVsIDIwMDUg
MDI6NDQ6MzUgLTAwMDAKQEAgLTExMSwxMCArMTExLDQgQEAgcHJpdmF0ZToKIAogfTsKIAotY2xh
c3MgUVdNYXRyaXggewotcHVibGljOgotICAgIFFXTWF0cml4KCkgeyB9Ci0gICAgUVdNYXRyaXgg
JnNjYWxlKGRvdWJsZSwgZG91YmxlKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQogI2VuZGlmCklu
ZGV4OiAuL2t3cS9LV1FXTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogS1dRV01hdHJpeC5o
CmRpZmYgLU4gLi9rd3EvS1dRV01hdHJpeC5oCi0tLSAuL2t3cS9LV1FXTWF0cml4LmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMAorKysgLi9rd3EvS1dRV01hdHJpeC5oCTMgSnVsIDIwMDUgMDI6
NDQ6MzUgLTAwMDAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBRV01BVFJJWF9IXworI2RlZmluZSBRV01BVFJJWF9IXworCisjaW5jbHVkZSA8QXBwbGljYXRp
b25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CisKK2NsYXNzIFFXTWF0cml4IHsKK3B1
YmxpYzoKKyAgICBRV01hdHJpeCgpOworICAgIFFXTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwg
ZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSk7CisgICAgUVdNYXRyaXgo
Q0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAKKyAgICB2b2lkIHNldE1hdHJpeChk
b3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUg
dHkpOworICAgIHZvaWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91Ymxl
ICp5MikgY29uc3Q7CisgICAgCisgICAgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Q7CisgICAgCisg
ICAgZG91YmxlIG0xMSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmE7IH0KKyAgICBkb3Vi
bGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0uYjsgfQorICAgIGRvdWJsZSBtMjEo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5jOyB9CisgICAgZG91YmxlIG0yMigpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmQ7IH0KKyAgICBkb3VibGUgZHgoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybS50eDsgfQorICAgIGRvdWJsZSBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtLnR5OyB9CisKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgCisgICAgUVdNYXRyaXggJnNj
YWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKKyAgICBRV01hdHJpeCAmcm90YXRlKGRvdWJsZSBk
KTsKKyAgICBRV01hdHJpeCAmdHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKKyAgICBR
V01hdHJpeCAmc2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpOworICAgIAorICAgIFFXTWF0cml4
IGludmVydCgpIGNvbnN0OworICAgIAorICAgIG9wZXJhdG9yIENHQWZmaW5lVHJhbnNmb3JtKCkg
Y29uc3Q7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09IChjb25zdCBRV01hdHJpeCAmKSBjb25z
dDsKKyAgICBRV01hdHJpeCAmb3BlcmF0b3IqPSAoY29uc3QgUVdNYXRyaXggJik7CisgICAgCitw
cml2YXRlOgorICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOworfTsKKworI2VuZGlm
CkluZGV4OiAuL2t3cS9LV1FXTWF0cml4Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEtXUVdNYXRy
aXgubW0KZGlmZiAtTiAuL2t3cS9LV1FXTWF0cml4Lm1tCi0tLSAuL2t3cS9LV1FXTWF0cml4Lm1t
CTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIC4va3dxL0tXUVdNYXRyaXgubW0JMyBKdWwg
MjAwNSAwMjo0NDozNSAtMDAwMApAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2ltcG9ydCAiS1dRV01hdHJpeC5oIgorCitRV01hdHJpeDo6UVdNYXRyaXgoKQoreworICAg
IG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eTsKK30KKworUVdNYXRyaXg6
OlFXTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUg
dHgsIGRvdWJsZSB0eSkKK3sKKyAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFr
ZShhLGIsYyxkLHR4LHR5KTsKK30KKworUVdNYXRyaXg6OlFXTWF0cml4KENHQWZmaW5lVHJhbnNm
b3JtIHQpIHsKKyAgICBtX3RyYW5zZm9ybSA9IHQ7Cit9CisKK3ZvaWQgUVdNYXRyaXg6OnNldE1h
dHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBk
b3VibGUgdHkpCit7CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoYSxi
LGMsZCx0eCx0eSk7Cit9CisKK3ZvaWQgUVdNYXRyaXg6Om1hcChkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSAqeDIsIGRvdWJsZSAqeTIpIGNvbnN0Cit7CisgICAgQ0dQb2ludCByZXN1bHQgPSBD
R1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dQb2ludE1ha2UoeCx5KSxtX3RyYW5zZm9ybSk7
CisgICAgKngyID0gcmVzdWx0Lng7CisgICAgKnkyID0gcmVzdWx0Lnk7Cit9CisKK2Jvb2wgUVdN
YXRyaXg6OmlzSWRlbnRpdHkoKSBjb25zdAoreworICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9y
bUlzSWRlbnRpdHkobV90cmFuc2Zvcm0pOworfQorCit2b2lkIFFXTWF0cml4OjpyZXNldCgpCit7
CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OworfQorCitRV01h
dHJpeCAmUVdNYXRyaXg6OnNjYWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KQoreworICAgIG1fdHJh
bnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZShtX3RyYW5zZm9ybSwgc3gsIHN5KTsKKyAg
ICByZXR1cm4gKnRoaXM7Cit9CisKK1FXTWF0cml4ICZRV01hdHJpeDo6cm90YXRlKGRvdWJsZSBk
KQoreworICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Sb3RhdGUobV90cmFuc2Zv
cm0sIGQpOyAvLyBDb3JyZWN0PyAgZGVncmVlcyB2cy4gcmFkaWFucworICAgIHJldHVybiAqdGhp
czsKK30KKworUVdNYXRyaXggJlFXTWF0cml4Ojp0cmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUg
dHkpCit7CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVRyYW5zbGF0ZShtX3Ry
YW5zZm9ybSwgdHgsIHR5KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1FXTWF0cml4ICZRV01h
dHJpeDo6c2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpCit7CisgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gc2hlYXIgPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgc3ksIHN4LCAxLCAwLCAwKTsKKyAg
ICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KHNoZWFyLG1fdHJhbnNmb3Jt
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1FXTWF0cml4IFFXTWF0cml4OjppbnZlcnQoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGV4YWN0bHkgY29uZm9ybSB0byBR
dCBkb2NzCisgICAgcmV0dXJuIFFXTWF0cml4KENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KG1fdHJh
bnNmb3JtKSk7Cit9CisKK1FXTWF0cml4OjpvcGVyYXRvciBDR0FmZmluZVRyYW5zZm9ybSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFFXTWF0cml4OjpvcGVy
YXRvcj09IChjb25zdCBRV01hdHJpeCAmbTIpIGNvbnN0Cit7CisgICAgcmV0dXJuIENHQWZmaW5l
VHJhbnNmb3JtRXF1YWxUb1RyYW5zZm9ybShtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0o
bTIpKTsKK30KKworUVdNYXRyaXggJlFXTWF0cml4OjpvcGVyYXRvcio9IChjb25zdCBRV01hdHJp
eCAmbTIpCit7CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChtX3Ry
YW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0obTIpKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9Cg==
</data>
<flag name="review"
          id="147"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2776</attachid>
            <date>2005-07-03 15:09:12 -0700</date>
            <delta_ts>2005-07-04 20:31:14 -0700</delta_ts>
            <desc>Fixes the two issues mjs raised</desc>
            <filename>qwmatrix.patch</filename>
            <type>text/plain</type>
            <size>8147</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IC4vRm9yd2FyZGluZ0hlYWRlcnMvcXdtYXRyaXguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBxd21hdHJpeC5oCmRpZmYgLU4gLi9Gb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCi0tLSAu
L0ZvcndhcmRpbmdIZWFkZXJzL3F3bWF0cml4LmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
KysgLi9Gb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCTMgSnVsIDIwMDUgMjE6Mzg6NTkgLTAw
MDAKQEAgLTAsMCArMSBAQAorI2ltcG9ydCAiS1dRV01hdHJpeC5oIgpJbmRleDogLi9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43NQpkaWZmIC1wIC11IC1yMS43NSAuL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW1h
Z2UuY3BwCi0tLSAuL2todG1sL3JlbmRlcmluZy9yZW5kZXJfaW1hZ2UuY3BwCTMwIEp1biAyMDA1
IDAxOjI3OjQxIC0wMDAwCTEuNzUKKysrIC4va2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5j
cHAJMyBKdWwgMjAwNSAyMTozOTo0NCAtMDAwMApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSA8cWRyYXd1dGlsLmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KKyNpbmNsdWRlIDxxd21hdHJp
eC5oPgogCiAjaW5jbHVkZSA8a2FwcGxpY2F0aW9uLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+Cklu
ZGV4OiAuL2t3cS9LV1FQaXhtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRUGl4bWFwLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAKZGlmZiAtcCAt
dSAtcjEuNDAgLi9rd3EvS1dRUGl4bWFwLmgKLS0tIC4va3dxL0tXUVBpeG1hcC5oCTI1IEZlYiAy
MDA1IDAwOjI1OjEyIC0wMDAwCTEuNDAKKysrIC4va3dxL0tXUVBpeG1hcC5oCTMgSnVsIDIwMDUg
MjE6Mzk6NTIgLTAwMDAKQEAgLTExMSwxMCArMTExLDQgQEAgcHJpdmF0ZToKIAogfTsKIAotY2xh
c3MgUVdNYXRyaXggewotcHVibGljOgotICAgIFFXTWF0cml4KCkgeyB9Ci0gICAgUVdNYXRyaXgg
JnNjYWxlKGRvdWJsZSwgZG91YmxlKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQogI2VuZGlmCklu
ZGV4OiAuL2t3cS9LV1FXTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogS1dRV01hdHJpeC5o
CmRpZmYgLU4gLi9rd3EvS1dRV01hdHJpeC5oCi0tLSAuL2t3cS9LV1FXTWF0cml4LmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMAorKysgLi9rd3EvS1dRV01hdHJpeC5oCTMgSnVsIDIwMDUgMjE6
Mzk6NTIgLTAwMDAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBRV01BVFJJWF9IXworI2RlZmluZSBRV01BVFJJWF9IXworCisjaW5jbHVkZSA8QXBwbGljYXRp
b25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CisKK2NsYXNzIFFXTWF0cml4IHsKK3B1
YmxpYzoKKyAgICBRV01hdHJpeCgpOworICAgIFFXTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwg
ZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSk7CisgICAgUVdNYXRyaXgo
Q0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAKKyAgICB2b2lkIHNldE1hdHJpeChk
b3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUg
dHkpOworICAgIHZvaWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91Ymxl
ICp5MikgY29uc3Q7CisgICAgCisgICAgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Q7CisgICAgCisg
ICAgZG91YmxlIG0xMSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmE7IH0KKyAgICBkb3Vi
bGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0uYjsgfQorICAgIGRvdWJsZSBtMjEo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5jOyB9CisgICAgZG91YmxlIG0yMigpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmQ7IH0KKyAgICBkb3VibGUgZHgoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybS50eDsgfQorICAgIGRvdWJsZSBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtLnR5OyB9CisKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgCisgICAgUVdNYXRyaXggJnNj
YWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKKyAgICBRV01hdHJpeCAmcm90YXRlKGRvdWJsZSBk
KTsKKyAgICBRV01hdHJpeCAmdHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKKyAgICBR
V01hdHJpeCAmc2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpOworICAgIAorICAgIGRvdWJsZSBk
ZXQoKSBjb25zdDsKKyAgICBib29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0OworICAgIFFXTWF0cml4
IGludmVydCgpIGNvbnN0OworICAgIAorICAgIG9wZXJhdG9yIENHQWZmaW5lVHJhbnNmb3JtKCkg
Y29uc3Q7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09IChjb25zdCBRV01hdHJpeCAmKSBjb25z
dDsKKyAgICBRV01hdHJpeCAmb3BlcmF0b3IqPSAoY29uc3QgUVdNYXRyaXggJik7CisgICAgCitw
cml2YXRlOgorICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOworfTsKKworI2VuZGlm
CkluZGV4OiAuL2t3cS9LV1FXTWF0cml4Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEtXUVdNYXRy
aXgubW0KZGlmZiAtTiAuL2t3cS9LV1FXTWF0cml4Lm1tCi0tLSAuL2t3cS9LV1FXTWF0cml4Lm1t
CTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIC4va3dxL0tXUVdNYXRyaXgubW0JMyBKdWwg
MjAwNSAyMTozOTo1MiAtMDAwMApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2ltcG9ydCAiS1dRV01hdHJpeC5oIgorCitzdGF0aWMgY29uc3QgZG91YmxlIGRlZzJyYWQg
PSAwLjAxNzQ1MzI5MjUxOTk0MzI5NTc2OTsgLy8gcGkvMTgwCisKK1FXTWF0cml4OjpRV01hdHJp
eCgpCit7CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OworfQor
CitRV01hdHJpeDo6UVdNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91Ymxl
IGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KQoreworICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVU
cmFuc2Zvcm1NYWtlKGEsYixjLGQsdHgsdHkpOworfQorCitRV01hdHJpeDo6UVdNYXRyaXgoQ0dB
ZmZpbmVUcmFuc2Zvcm0gdCkgeworICAgIG1fdHJhbnNmb3JtID0gdDsKK30KKwordm9pZCBRV01h
dHJpeDo6c2V0TWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBk
b3VibGUgdHgsIGRvdWJsZSB0eSkKK3sKKyAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNm
b3JtTWFrZShhLGIsYyxkLHR4LHR5KTsKK30KKwordm9pZCBRV01hdHJpeDo6bWFwKGRvdWJsZSB4
LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91YmxlICp5MikgY29uc3QKK3sKKyAgICBDR1BvaW50
IHJlc3VsdCA9IENHUG9pbnRBcHBseUFmZmluZVRyYW5zZm9ybShDR1BvaW50TWFrZSh4LHkpLG1f
dHJhbnNmb3JtKTsKKyAgICAqeDIgPSByZXN1bHQueDsKKyAgICAqeTIgPSByZXN1bHQueTsKK30K
KworYm9vbCBRV01hdHJpeDo6aXNJZGVudGl0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIENHQWZm
aW5lVHJhbnNmb3JtSXNJZGVudGl0eShtX3RyYW5zZm9ybSk7Cit9CisKK3ZvaWQgUVdNYXRyaXg6
OnJlc2V0KCkKK3sKKyAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7
Cit9CisKK1FXTWF0cml4ICZRV01hdHJpeDo6c2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCit7
CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKG1fdHJhbnNmb3JtLCBz
eCwgc3kpOworICAgIHJldHVybiAqdGhpczsKK30KKworUVdNYXRyaXggJlFXTWF0cml4Ojpyb3Rh
dGUoZG91YmxlIGQpCit7CisgICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVJvdGF0
ZShtX3RyYW5zZm9ybSwgZCAqIGRlZzJyYWQpOworICAgIHJldHVybiAqdGhpczsKK30KKworUVdN
YXRyaXggJlFXTWF0cml4Ojp0cmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpCit7CisgICAg
bV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVRyYW5zbGF0ZShtX3RyYW5zZm9ybSwgdHgs
IHR5KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1FXTWF0cml4ICZRV01hdHJpeDo6c2hlYXIo
ZG91YmxlIHN4LCBkb3VibGUgc3kpCit7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gc2hlYXIgPSBD
R0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgc3ksIHN4LCAxLCAwLCAwKTsKKyAgICBtX3RyYW5zZm9y
bSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KHNoZWFyLG1fdHJhbnNmb3JtKTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK2RvdWJsZSBRV01hdHJpeDo6ZGV0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV90cmFuc2Zvcm0uYSAqIG1fdHJhbnNmb3JtLmQgLSBtX3RyYW5zZm9ybS5iICogbV90cmFu
c2Zvcm0uYzsKK30KKworYm9vbCBRV01hdHJpeDo6aXNJbnZlcnRpYmxlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZGV0KCkgPT0gMC4wOworfQorCitRV01hdHJpeCBRV01hdHJpeDo6aW52ZXJ0KCkg
Y29uc3QKK3sKKyAgICBpZiAoaXNJbnZlcnRpYmxlKCkpCisgICAgICAgIHJldHVybiBRV01hdHJp
eChDR0FmZmluZVRyYW5zZm9ybUludmVydChtX3RyYW5zZm9ybSkpOworICAgIHJldHVybiBRV01h
dHJpeCgpOworfQorCitRV01hdHJpeDo6b3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25z
dAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30KKworYm9vbCBRV01hdHJpeDo6b3BlcmF0
b3I9PSAoY29uc3QgUVdNYXRyaXggJm0yKSBjb25zdAoreworICAgIHJldHVybiBDR0FmZmluZVRy
YW5zZm9ybUVxdWFsVG9UcmFuc2Zvcm0obV90cmFuc2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0y
KSk7Cit9CisKK1FXTWF0cml4ICZRV01hdHJpeDo6b3BlcmF0b3IqPSAoY29uc3QgUVdNYXRyaXgg
Jm0yKQoreworICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQobV90cmFu
c2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7CisgICAgcmV0dXJuICp0aGlzOworfQo=
</data>
<flag name="review"
          id="159"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2801</attachid>
            <date>2005-07-05 00:33:49 -0700</date>
            <delta_ts>2005-07-05 01:39:27 -0700</delta_ts>
            <desc>project file diff</desc>
            <filename>projectfile.patch</filename>
            <type>text/plain</type>
            <size>1824</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUucGJwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9XZWJDb3JlLnBicHJvai9wcm9qZWN0LnBieHByb2osdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNTU5CmRpZmYgLXUgLXIxLjU1OSBwcm9qZWN0LnBieHByb2oKLS0t
IFdlYkNvcmUucGJwcm9qL3Byb2plY3QucGJ4cHJvagkyOCBKdW4gMjAwNSAyMToxODoxNiAtMDAw
MAkxLjU1OQorKysgV2ViQ29yZS5wYnByb2ovcHJvamVjdC5wYnhwcm9qCTUgSnVsIDIwMDUgMDc6
MTg6NTggLTAwMDAKQEAgLTI3NjgsNiArMjc2OCw3IEBACiAJCQkJNTUwQTBCQ0UwODVGNjA0RDAw
NzM1M0Q2LAogCQkJCTY1RjM3ODI5MDg3MEQ5NTgwMDBCMkY5NCwKIAkJCQk2NUYzNzgyQjA4NzBE
OTU4MDAwQjJGOTQsCisJCQkJQTg1RDdDMTkwODdBNkVEOTAwNkE5MTcyLAogCQkJKTsKIAkJCWlz
YSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CkBAIC01MTQyLDYgKzUxNDMsNyBAQAogCQkJCTU1MEEwQkM5MDg1RjYwMzkw
MDczNTNENiwKIAkJCQk1NTBBMEJDRDA4NUY2MDREMDA3MzUzRDYsCiAJCQkJNjVGMzc4MkEwODcw
RDk1ODAwMEIyRjk0LAorCQkJCUE4NUQ3QzE4MDg3QTZFRDkwMDZBOTE3MiwKIAkJCSk7CiAJCQlp
c2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwpAQCAtNjY1MCw2ICs2NjUyLDQ0IEBACiAvLzkzMgogLy85MzMKIC8vOTM0
CisvL0E4MAorLy9BODEKKy8vQTgyCisvL0E4MworLy9BODQKKwkJQTg1RDdDMTYwODdBNkVEODAw
NkE5MTcyID0geworCQkJZmlsZUVuY29kaW5nID0gNDsKKwkJCWlzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7CisJCQlsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsKKwkJCXBh
dGggPSBLV1FXTWF0cml4Lm1tOworCQkJcmVmVHlwZSA9IDQ7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OworCQlBODVEN0MxNzA4N0E2RUQ4MDA2QTkxNzIgPSB7CisJCQlmaWxlRW5j
b2RpbmcgPSA0OworCQkJaXNhID0gUEJYRmlsZVJlZmVyZW5jZTsKKwkJCWxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7CisJCQlwYXRoID0gS1dRV01hdHJpeC5oOworCQkJcmVmVHlw
ZSA9IDQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlBODVEN0MxODA4N0E2
RUQ5MDA2QTkxNzIgPSB7CisJCQlmaWxlUmVmID0gQTg1RDdDMTYwODdBNkVEODAwNkE5MTcyOwor
CQkJaXNhID0gUEJYQnVpbGRGaWxlOworCQkJc2V0dGluZ3MgPSB7CisJCQl9OworCQl9OworCQlB
ODVEN0MxOTA4N0E2RUQ5MDA2QTkxNzIgPSB7CisJCQlmaWxlUmVmID0gQTg1RDdDMTcwODdBNkVE
ODAwNkE5MTcyOworCQkJaXNhID0gUEJYQnVpbGRGaWxlOworCQkJc2V0dGluZ3MgPSB7CisJCQl9
OworCQl9OworLy9BODAKKy8vQTgxCisvL0E4MgorLy9BODMKKy8vQTg0CiAvL0JDMAogLy9CQzEK
IC8vQkMyCkBAIC0xMTU5Miw2ICsxMTYzMiw4IEBACiAJCQkJRjU4Nzg1M0YwMkRFMzc1OTAxRUE0
MTIyLAogCQkJCUY1ODc4NkM1MDJERTNCODYwMUVBNDEyMiwKIAkJCQlGNTg3ODU0MjAyREUzNzU5
MDFFQTQxMjIsCisJCQkJQTg1RDdDMTcwODdBNkVEODAwNkE5MTcyLAorCQkJCUE4NUQ3QzE2MDg3
QTZFRDgwMDZBOTE3MiwKIAkJCSk7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCW5hbWUgPSBxdDsK
</data>
<flag name="review"
          id="171"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>