<?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>22650</bug_id>
          
          <creation_ts>2008-12-04 09:37:22 -0800</creation_ts>
          <short_desc>Make most of SVGMatrix bindings generated again</short_desc>
          <delta_ts>2009-01-26 15:00:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://bugs.webkit.org/show_bug.cgi?id=14155</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>eric</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>101341</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-04 09:37:22 -0800</bug_when>
    <thetext>This is essentially a kinder, gentler revision of bug 14155, where we just add one line to code generator, rather than switching to custom bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101342</commentid>
    <comment_count>1</comment_count>
      <attachid>25741</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-04 09:41:51 -0800</bug_when>
    <thetext>Created attachment 25741
Un-custom-bind SVGMatrix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101370</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-12-04 12:35:32 -0800</bug_when>
    <thetext>I don&apos;t like this being a one-line &quot;hack&quot; without explanation.  It seems from looking at the bugs, that SVGMatrix is effectively read-only/copy-on-write, yet our AffineTransform is not.

Lots of ways we could have solved this, besides making custom bindings methods (which I think was the wrong solution).  One of them would have been to have made an SVGMatrix stack object wrapper class around AffineTransform (different from how we used to have SVGMatrix heap objects) and to have used that as the PODType.  multiply() etc. on that intermediate binding layer would have contained this &quot;copy instead of mutate&quot; logic which Niko put in the bindings with the old patch.

I&apos;m not sure I understand how your solution works?

Why does just not &quot;writing back&quot; to wherever the matrix came from solve things like:

element.matrix = z;
var a = element.matrix;
var b = a.multiply(10);
assert(element.matrix == z);
assert(a == element.matrix);
assert(a != b);

Seems your solution would solve the first assert, but not the second two?  I must be missing something.   I should look at the generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101371</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-12-04 12:37:14 -0800</bug_when>
    <thetext>The original SVGMatrix docs, btw:
http://www.w3.org/TR/SVG/coords.html#InterfaceSVGMatrix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102002</commentid>
    <comment_count>4</comment_count>
      <attachid>25741</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-12-09 12:31:27 -0800</bug_when>
    <thetext>Comment on attachment 25741
Un-custom-bind SVGMatrix v1

Dimitri has a better patch in the works.  Thanks for your review Tim.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102004</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-09 12:37:59 -0800</bug_when>
    <thetext>I apologize for confusion, I should&apos;ve mentioned that I discussed this with Eric and have more work to do on the patch :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102702</commentid>
    <comment_count>6</comment_count>
      <attachid>26067</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-16 13:50:55 -0800</bug_when>
    <thetext>Created attachment 26067
SVGMatrix v2 (immutable attribute)

Per our discussion, I attempted implementing SVGMatrix, a wrapper around AffineTransform, but it kind got complicated with ObjC bindings and various places where there&apos;s a need for implicit AffineTransform&lt;-&gt;SVGMatrix conversion, so instead I went with plan B.

This is a modification of the previous patch, with the exception that instead of hard-coding SVGMatrix-specific behavior into code generator, I added &quot;Immutable&quot; attribute (which is already used on IDL properties) to methods, with the following behavior:

If a method is marked as &quot;Immutable&quot;, it will return a new instance as a result rather than the reference to the existing instance (self.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104660</commentid>
    <comment_count>7</comment_count>
      <attachid>26067</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-06 15:43:25 -0800</bug_when>
    <thetext>Comment on attachment 26067
SVGMatrix v2 (immutable attribute)

I think this makes the code more complicated :(  I&apos;m not sure what to tell you.  Immutable doesn&apos;t convey the intended meaning to me when reading the .idl file.  You and I talked about adding an SVGMatrix class shim, but I remember you encountered some troubles with that.  The shim still seems like the cleanest solution to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107059</commentid>
    <comment_count>8</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-26 12:11:48 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 26067 [review])
&gt; I think this makes the code more complicated :(  I&apos;m not sure what to tell you.
&gt;  Immutable doesn&apos;t convey the intended meaning to me when reading the .idl
&gt; file.  You and I talked about adding an SVGMatrix class shim, but I remember
&gt; you encountered some troubles with that.  The shim still seems like the
&gt; cleanest solution to me.
&gt; 

I&apos;ve checked the patch, and I think it&apos;s a good idea. Please have a look at http://bugs.webkit.org/show_bug.cgi?id=17736. It explains the idea behind &apos;Immutable&apos; for properties, and this is a logical extension for methods.

I&apos;d vote for accepting the patch, if it doesn&apos;t break any regressions tests (most noticeable: SVG pixel tests :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107061</commentid>
    <comment_count>9</comment_count>
      <attachid>26067</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-26 12:25:49 -0800</bug_when>
    <thetext>Comment on attachment 26067
SVGMatrix v2 (immutable attribute)

Sigh.  I&apos;m still in love with the shim idea. :)  But this is better than nothing for sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107093</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-01-26 15:00:40 -0800</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/40265, http://trac.webkit.org/changeset/40268</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25741</attachid>
            <date>2008-12-04 09:41:51 -0800</date>
            <delta_ts>2008-12-16 13:50:55 -0800</delta_ts>
            <desc>Un-custom-bind SVGMatrix v1</desc>
            <filename>svgmatrix.patch</filename>
            <type>text/plain</type>
            <size>6232</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzQ5NGFjMi4uZmNhYWVlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0xMi0wNCAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTW9kaWZ5IGJpbmRpbmdzIGNvZGUgZ2VuZXJh
dG9yIHRvIG5vdCBjb21taXQgY2hhbmdlcyBiYWNrIHRvIFNWR01hdHJpeAorICAgICAgICBQT0Qg
d3JhcHBlciwgdGh1cyBmaXhpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MTU1CisgICAgICAgIHdpdGhvdXQgaGF2aW5nIHRvIHJlc29ydCB0byBjdXN0b20gYmlu
ZGluZ3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHA6IFJl
bW92ZWQgY3VzdG9tIGJpbmRpbmdzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOiBBZGRlZCBjaGVjayBmb3IgU1ZHTWF0cml4CisgICAgICAgIGludGVyZmFj
ZSB0eXBlLgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaWRsOiBSZW1vdmVkIGN1c3RvbSBhdHRy
aWJ1dGUuCisKIDIwMDgtMTItMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU1ZHTWF0cml4Q3VzdG9tLmNwcAppbmRleCBkMjBhNTVlLi5iNGNmNDc0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHTWF0cml4Q3VzdG9tLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU1ZHTWF0cml4Q3VzdG9tLmNwcApAQCAtMjksMTQgKzI5LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlKiBKU1NW
R01hdHJpeDo6bXVsdGlwbHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQot
ewotICAgIEFmZmluZVRyYW5zZm9ybSBpbXAoKmltcGwoKSk7Ci0KLSAgICBBZmZpbmVUcmFuc2Zv
cm0gc2Vjb25kTWF0cml4ID0gdG9TVkdNYXRyaXgoYXJncy5hdChleGVjLCAwKSk7ICAgIAotICAg
IHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNm
b3JtPjo6Y3JlYXRlKGltcC5tdWx0aXBseShzZWNvbmRNYXRyaXgpKS5nZXQoKSwgbV9jb250ZXh0
LmdldCgpKTsKLX0KLQogSlNWYWx1ZSogSlNTVkdNYXRyaXg6OmludmVyc2UoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBBcmdMaXN0JikKIHsKICAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkp
OwpAQCAtNDgsNDIgKzQwLDYgQEAgSlNWYWx1ZSogSlNTVkdNYXRyaXg6OmludmVyc2UoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU1Zh
bHVlKiBKU1NWR01hdHJpeDo6dHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKLXsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotCi0gICAgZmxv
YXQgeCA9IGFyZ3MuYXQoZXhlYywgMCktPnRvRmxvYXQoZXhlYyk7Ci0gICAgZmxvYXQgeSA9IGFy
Z3MuYXQoZXhlYywgMSktPnRvRmxvYXQoZXhlYyk7Ci0KLSAgICByZXR1cm4gdG9KUyhleGVjLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEFmZmluZVRyYW5zZm9ybT46OmNyZWF0ZShpbXAudHJh
bnNsYXRlKHgsIHkpKS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKLX0KLQotSlNWYWx1ZSogSlNT
VkdNYXRyaXg6OnNjYWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKLXsK
LSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotCi0gICAgZmxvYXQgc2NhbGVGYWN0
b3IgPSBhcmdzLmF0KGV4ZWMsIDApLT50b0Zsb2F0KGV4ZWMpOwotICAgIHJldHVybiB0b0pTKGV4
ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNmb3JtPjo6Y3JlYXRlKGlt
cC5zY2FsZShzY2FsZUZhY3RvcikpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotfQotCi1KU1Zh
bHVlKiBKU1NWR01hdHJpeDo6c2NhbGVOb25Vbmlmb3JtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
QXJnTGlzdCYgYXJncykKLXsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotCi0g
ICAgZmxvYXQgc2NhbGVGYWN0b3JYID0gYXJncy5hdChleGVjLCAwKS0+dG9GbG9hdChleGVjKTsK
LSAgICBmbG9hdCBzY2FsZUZhY3RvclkgPSBhcmdzLmF0KGV4ZWMsIDEpLT50b0Zsb2F0KGV4ZWMp
OwotCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxBZmZp
bmVUcmFuc2Zvcm0+OjpjcmVhdGUoaW1wLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNj
YWxlRmFjdG9yWSkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotfQotCi1KU1ZhbHVlKiBKU1NW
R01hdHJpeDo6cm90YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKLXsK
LSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotCi0gICAgZmxvYXQgYW5nbGUgPSBh
cmdzLmF0KGV4ZWMsIDApLT50b0Zsb2F0KGV4ZWMpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIEpT
U1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNmb3JtPjo6Y3JlYXRlKGltcC5yb3Rh
dGUoYW5nbGUpKS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKLX0KLQogSlNWYWx1ZSogSlNTVkdN
YXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBh
cmdzKQogewogICAgIEFmZmluZVRyYW5zZm9ybSBpbXAoKmltcGwoKSk7CkBAIC05OSwzNCArNTUs
NiBAQCBKU1ZhbHVlKiBKU1NWR01hdHJpeDo6cm90YXRlRnJvbVZlY3RvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1
ZSogSlNTVkdNYXRyaXg6OmZsaXBYKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCi17
Ci0gICAgQWZmaW5lVHJhbnNmb3JtIGltcCgqaW1wbCgpKTsKLSAgICByZXR1cm4gdG9KUyhleGVj
LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEFmZmluZVRyYW5zZm9ybT46OmNyZWF0ZShpbXAu
ZmxpcFgoKSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci19Ci0KLUpTVmFsdWUqIEpTU1ZHTWF0
cml4OjpmbGlwWShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQotewotICAgIEFmZmlu
ZVRyYW5zZm9ybSBpbXAoKmltcGwoKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdTdGF0
aWNQT0RUeXBlV3JhcHBlcjxBZmZpbmVUcmFuc2Zvcm0+OjpjcmVhdGUoaW1wLmZsaXBZKCkpLmdl
dCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotfQotCi1KU1ZhbHVlKiBKU1NWR01hdHJpeDo6c2tld1go
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQotewotICAgIEFmZmluZVRyYW5z
Zm9ybSBpbXAoKmltcGwoKSk7Ci0KLSAgICBmbG9hdCBhbmdsZSA9IGFyZ3MuYXQoZXhlYywgMCkt
PnRvRmxvYXQoZXhlYyk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBl
V3JhcHBlcjxBZmZpbmVUcmFuc2Zvcm0+OjpjcmVhdGUoaW1wLnNrZXdYKGFuZ2xlKSkuZ2V0KCks
IG1fY29udGV4dC5nZXQoKSk7Ci19Ci0KLUpTVmFsdWUqIEpTU1ZHTWF0cml4Ojpza2V3WShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCi17Ci0gICAgQWZmaW5lVHJhbnNmb3Jt
IGltcCgqaW1wbCgpKTsKLQotICAgIGZsb2F0IGFuZ2xlID0gYXJncy5hdChleGVjLCAwKS0+dG9G
bG9hdChleGVjKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFw
cGVyPEFmZmluZVRyYW5zZm9ybT46OmNyZWF0ZShpbXAuc2tld1koYW5nbGUpKS5nZXQoKSwgbV9j
b250ZXh0LmdldCgpKTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDRjMTk5YTkuLjFjZmFi
MzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
MTM5MSw3ICsxMzkxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7Ci0gICAg
ICAgICAgICAgICAgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24s
ICRmdW5jdGlvblN0cmluZywgJHBhcmFtSW5kZXgsICIgICAgIiwgJHBvZFR5cGUsICRpbXBsQ2xh
c3NOYW1lKTsKKyAgICAgICAgICAgICAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25D
YWxsKCRmdW5jdGlvbiwgJGZ1bmN0aW9uU3RyaW5nLCAkcGFyYW1JbmRleCwgIiAgICAiLCAoJGlu
dGVyZmFjZU5hbWUgZXEgIlNWR01hdHJpeCIgPyAiIiA6ICRwb2RUeXBlKSwgJGltcGxDbGFzc05h
bWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaWRsIGIv
V2ViQ29yZS9zdmcvU1ZHTWF0cml4LmlkbAppbmRleCBlZmM1NDU5Li5lZjE1N2Y2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaWRsCisrKyBiL1dlYkNvcmUvc3ZnL1NWR01hdHJp
eC5pZGwKQEAgLTM0LDE5ICszNCwxOSBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgYXR0cmlidXRl
IGRvdWJsZSBlOwogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGY7CiAKLSAgICAgICAgW0N1c3Rv
bV0gU1ZHTWF0cml4IG11bHRpcGx5KGluIFNWR01hdHJpeCBzZWNvbmRNYXRyaXgpOworICAgICAg
ICBTVkdNYXRyaXggbXVsdGlwbHkoaW4gU1ZHTWF0cml4IHNlY29uZE1hdHJpeCk7CiAgICAgICAg
IFtDdXN0b21dIFNWR01hdHJpeCBpbnZlcnNlKCkKICAgICAgICAgICAgIHJhaXNlcyhTVkdFeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSBTVkdNYXRyaXggdHJhbnNsYXRlKGluIGZsb2F0IHgs
IGluIGZsb2F0IHkpOwotICAgICAgICBbQ3VzdG9tXSBTVkdNYXRyaXggc2NhbGUoaW4gZmxvYXQg
c2NhbGVGYWN0b3IpOwotICAgICAgICBbQ3VzdG9tXSBTVkdNYXRyaXggc2NhbGVOb25Vbmlmb3Jt
KGluIGZsb2F0IHNjYWxlRmFjdG9yWCwgaW4gZmxvYXQgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAg
W0N1c3RvbV0gU1ZHTWF0cml4IHJvdGF0ZShpbiBmbG9hdCBhbmdsZSk7CisgICAgICAgIFNWR01h
dHJpeCB0cmFuc2xhdGUoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7CisgICAgICAgIFNWR01hdHJp
eCBzY2FsZShpbiBmbG9hdCBzY2FsZUZhY3Rvcik7CisgICAgICAgIFNWR01hdHJpeCBzY2FsZU5v
blVuaWZvcm0oaW4gZmxvYXQgc2NhbGVGYWN0b3JYLCBpbiBmbG9hdCBzY2FsZUZhY3RvclkpOwor
ICAgICAgICBTVkdNYXRyaXggcm90YXRlKGluIGZsb2F0IGFuZ2xlKTsKICAgICAgICAgW0N1c3Rv
bV0gU1ZHTWF0cml4IHJvdGF0ZUZyb21WZWN0b3IoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkKICAg
ICAgICAgICAgIHJhaXNlcyhTVkdFeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSBTVkdNYXRy
aXggZmxpcFgoKTsKLSAgICAgICAgW0N1c3RvbV0gU1ZHTWF0cml4IGZsaXBZKCk7Ci0gICAgICAg
IFtDdXN0b21dIFNWR01hdHJpeCBza2V3WChpbiBmbG9hdCBhbmdsZSk7Ci0gICAgICAgIFtDdXN0
b21dIFNWR01hdHJpeCBza2V3WShpbiBmbG9hdCBhbmdsZSk7CisgICAgICAgIFNWR01hdHJpeCBm
bGlwWCgpOworICAgICAgICBTVkdNYXRyaXggZmxpcFkoKTsKKyAgICAgICAgU1ZHTWF0cml4IHNr
ZXdYKGluIGZsb2F0IGFuZ2xlKTsKKyAgICAgICAgU1ZHTWF0cml4IHNrZXdZKGluIGZsb2F0IGFu
Z2xlKTsKICAgICB9OwogCiB9Cg==
</data>
<flag name="review"
          id="12036"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26067</attachid>
            <date>2008-12-16 13:50:55 -0800</date>
            <delta_ts>2009-01-26 12:25:49 -0800</delta_ts>
            <desc>SVGMatrix v2 (immutable attribute)</desc>
            <filename>svgmatrix.patch</filename>
            <type>text/plain</type>
            <size>6731</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2Q3ODc1NC4uMzYzNGQ4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0xMi0xNiAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjY1MAorICAgICAgICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIkltbXV0YWJsZSIgYXR0
cmlidXRlIHRvIENvZGVHZW5lcmF0b3JKUy5wbSwgdGh1cworICAgICAgICBhbGxvd2luZyB0byBl
eHBsaWNpdGx5IG1hcmsgbWV0aG9kcyBhcyBpbW11dGFibGUgKGkuZS4gcmV0dXJuaW5nIGEgbmV3
CisgICAgICAgIGluc3RhbmNlIHJhdGhlciB0aGFuIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5n
IGluc3RhbmNlKS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHTWF0cml4Q3VzdG9tLmNw
cDogUmVtb3ZlZCBjdXN0b20gbWV0aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbTogQWRkZWQgY2hlY2sgZm9yIEltbXV0YWJsZQorICAgICAgICAgICAg
YXR0cmlidXRlIHdoZW4gZ2VuZXJhdGluZyBmdW5jdGlvbiBjYWxsLgorICAgICAgICAqIHN2Zy9T
VkdNYXRyaXguaWRsOiBSZXBsYWNlZCBDdXN0b20gYXR0cmlidXRlIHdpdGggSW1tdXRhYmxlIG9u
CisgICAgICAgICAgICBtZXRob2RzLgorCiAyMDA4LTEyLTE2IFlhZWwgQWhhcm9uIDx5YWVsLmFo
YXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0b20uY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKaW5kZXggZDIwYTU1ZS4u
YjRjZjQ3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3Rv
bS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKQEAg
LTI5LDE0ICsyOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNWYWx1ZSogSlNTVkdNYXRyaXg6Om11bHRpcGx5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYgYXJncykKLXsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwot
Ci0gICAgQWZmaW5lVHJhbnNmb3JtIHNlY29uZE1hdHJpeCA9IHRvU1ZHTWF0cml4KGFyZ3MuYXQo
ZXhlYywgMCkpOyAgICAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVX
cmFwcGVyPEFmZmluZVRyYW5zZm9ybT46OmNyZWF0ZShpbXAubXVsdGlwbHkoc2Vjb25kTWF0cml4
KSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci19Ci0KIEpTVmFsdWUqIEpTU1ZHTWF0cml4Ojpp
bnZlcnNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCiB7CiAgICAgQWZmaW5lVHJh
bnNmb3JtIGltcCgqaW1wbCgpKTsKQEAgLTQ4LDQyICs0MCw2IEBAIEpTVmFsdWUqIEpTU1ZHTWF0
cml4OjppbnZlcnNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNWYWx1ZSogSlNTVkdNYXRyaXg6OnRyYW5zbGF0ZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIGltcCgq
aW1wbCgpKTsKLQotICAgIGZsb2F0IHggPSBhcmdzLmF0KGV4ZWMsIDApLT50b0Zsb2F0KGV4ZWMp
OwotICAgIGZsb2F0IHkgPSBhcmdzLmF0KGV4ZWMsIDEpLT50b0Zsb2F0KGV4ZWMpOwotCi0gICAg
cmV0dXJuIHRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxBZmZpbmVUcmFuc2Zv
cm0+OjpjcmVhdGUoaW1wLnRyYW5zbGF0ZSh4LCB5KSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7
Ci19Ci0KLUpTVmFsdWUqIEpTU1ZHTWF0cml4OjpzY2FsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEFyZ0xpc3QmIGFyZ3MpCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIGltcCgqaW1wbCgpKTsKLQot
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gYXJncy5hdChleGVjLCAwKS0+dG9GbG9hdChleGVjKTsK
LSAgICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEFmZmluZVRy
YW5zZm9ybT46OmNyZWF0ZShpbXAuc2NhbGUoc2NhbGVGYWN0b3IpKS5nZXQoKSwgbV9jb250ZXh0
LmdldCgpKTsKLX0KLQotSlNWYWx1ZSogSlNTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCi17Ci0gICAgQWZmaW5lVHJhbnNmb3Jt
IGltcCgqaW1wbCgpKTsKLQotICAgIGZsb2F0IHNjYWxlRmFjdG9yWCA9IGFyZ3MuYXQoZXhlYywg
MCktPnRvRmxvYXQoZXhlYyk7Ci0gICAgZmxvYXQgc2NhbGVGYWN0b3JZID0gYXJncy5hdChleGVj
LCAxKS0+dG9GbG9hdChleGVjKTsKLQotICAgIHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZHU3RhdGlj
UE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNmb3JtPjo6Y3JlYXRlKGltcC5zY2FsZU5vblVuaWZv
cm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpKS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsK
LX0KLQotSlNWYWx1ZSogSlNTVkdNYXRyaXg6OnJvdGF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEFyZ0xpc3QmIGFyZ3MpCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIGltcCgqaW1wbCgpKTsKLQot
ICAgIGZsb2F0IGFuZ2xlID0gYXJncy5hdChleGVjLCAwKS0+dG9GbG9hdChleGVjKTsKLSAgICBy
ZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEFmZmluZVRyYW5zZm9y
bT46OmNyZWF0ZShpbXAucm90YXRlKGFuZ2xlKSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci19
Ci0KIEpTVmFsdWUqIEpTU1ZHTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKICAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBs
KCkpOwpAQCAtOTksMzQgKzU1LDYgQEAgSlNWYWx1ZSogSlNTVkdNYXRyaXg6OnJvdGF0ZUZyb21W
ZWN0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUpTVmFsdWUqIEpTU1ZHTWF0cml4OjpmbGlwWChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmKQotewotICAgIEFmZmluZVRyYW5zZm9ybSBpbXAoKmltcGwoKSk7Ci0g
ICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxBZmZpbmVUcmFu
c2Zvcm0+OjpjcmVhdGUoaW1wLmZsaXBYKCkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotfQot
Ci1KU1ZhbHVlKiBKU1NWR01hdHJpeDo6ZmxpcFkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JikKLXsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotICAgIHJldHVybiB0
b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNmb3JtPjo6Y3Jl
YXRlKGltcC5mbGlwWSgpKS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKLX0KLQotSlNWYWx1ZSog
SlNTVkdNYXRyaXg6OnNrZXdYKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykK
LXsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gaW1wKCppbXBsKCkpOwotCi0gICAgZmxvYXQgYW5nbGUg
PSBhcmdzLmF0KGV4ZWMsIDApLT50b0Zsb2F0KGV4ZWMpOwotICAgIHJldHVybiB0b0pTKGV4ZWMs
IEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8QWZmaW5lVHJhbnNmb3JtPjo6Y3JlYXRlKGltcC5z
a2V3WChhbmdsZSkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotfQotCi1KU1ZhbHVlKiBKU1NW
R01hdHJpeDo6c2tld1koRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQotewot
ICAgIEFmZmluZVRyYW5zZm9ybSBpbXAoKmltcGwoKSk7Ci0KLSAgICBmbG9hdCBhbmdsZSA9IGFy
Z3MuYXQoZXhlYywgMCktPnRvRmxvYXQoZXhlYyk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNT
VkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxBZmZpbmVUcmFuc2Zvcm0+OjpjcmVhdGUoaW1wLnNrZXdZ
KGFuZ2xlKSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpp
bmRleCA4YWUyMjI4Li5kMzJmODEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTE1MTgsNyArMTUxOCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uRnVuY3Rpb25DYWxsKCkKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAk
aW5kZW50IC4gIkpTQzo6SlNWYWx1ZSogcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZSwgMSwgJGltcGxDbGFzc05hbWUsICIiLCAkZnVuY3Rpb25TdHJpbmcs
ICJjYXN0ZWRUaGlzT2JqIikgLiAiO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAk
aW5kZW50IC4gInNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiBAeyRmdW5jdGlvbi0+
cmFpc2VzRXhjZXB0aW9uc307CiAKLSAgICAgICAgaWYgKCRwb2RUeXBlKSB7CisgICAgICAgIGlm
ICgkcG9kVHlwZSBhbmQgbm90ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSW1tdXRhYmxlIn0pIHsKKyAgICAgICAgICAgICMgSW1tdXRhYmxlIG1ldGhvZHMgZG8g
bm90IGNvbW1pdCBjaGFuZ2VzIGJhY2sgdG8gdGhlIGluc3RhbmNlLCB0aHVzIHByb2R1Y2luZwor
ICAgICAgICAgICAgIyBhIG5ldyBpbnN0YW5jZSByYXRoZXIgdGhhbiBtdXRhdGluZyBleGlzdGlu
ZyBvbmUuCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJ3cmFwcGVy
LT5jb21taXRDaGFuZ2UoaW1wLCBjYXN0ZWRUaGlzT2JqLT5jb250ZXh0KCkpO1xuIik7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmlkbCBiL1dlYkNvcmUv
c3ZnL1NWR01hdHJpeC5pZGwKaW5kZXggZWZjNTQ1OS4uZDU0NDQ0ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdmcvU1ZHTWF0cml4LmlkbAorKysgYi9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaWRsCkBA
IC0zNCwxOSArMzQsMTkgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUg
ZTsKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBmOwogCi0gICAgICAgIFtDdXN0b21dIFNWR01h
dHJpeCBtdWx0aXBseShpbiBTVkdNYXRyaXggc2Vjb25kTWF0cml4KTsKKyAgICAgICAgW0ltbXV0
YWJsZV0gU1ZHTWF0cml4IG11bHRpcGx5KGluIFNWR01hdHJpeCBzZWNvbmRNYXRyaXgpOwogICAg
ICAgICBbQ3VzdG9tXSBTVkdNYXRyaXggaW52ZXJzZSgpCiAgICAgICAgICAgICByYWlzZXMoU1ZH
RXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gU1ZHTWF0cml4IHRyYW5zbGF0ZShpbiBmbG9h
dCB4LCBpbiBmbG9hdCB5KTsKLSAgICAgICAgW0N1c3RvbV0gU1ZHTWF0cml4IHNjYWxlKGluIGZs
b2F0IHNjYWxlRmFjdG9yKTsKLSAgICAgICAgW0N1c3RvbV0gU1ZHTWF0cml4IHNjYWxlTm9uVW5p
Zm9ybShpbiBmbG9hdCBzY2FsZUZhY3RvclgsIGluIGZsb2F0IHNjYWxlRmFjdG9yWSk7Ci0gICAg
ICAgIFtDdXN0b21dIFNWR01hdHJpeCByb3RhdGUoaW4gZmxvYXQgYW5nbGUpOworICAgICAgICBb
SW1tdXRhYmxlXSBTVkdNYXRyaXggdHJhbnNsYXRlKGluIGZsb2F0IHgsIGluIGZsb2F0IHkpOwor
ICAgICAgICBbSW1tdXRhYmxlXSBTVkdNYXRyaXggc2NhbGUoaW4gZmxvYXQgc2NhbGVGYWN0b3Ip
OworICAgICAgICBbSW1tdXRhYmxlXSBTVkdNYXRyaXggc2NhbGVOb25Vbmlmb3JtKGluIGZsb2F0
IHNjYWxlRmFjdG9yWCwgaW4gZmxvYXQgc2NhbGVGYWN0b3JZKTsKKyAgICAgICAgW0ltbXV0YWJs
ZV0gU1ZHTWF0cml4IHJvdGF0ZShpbiBmbG9hdCBhbmdsZSk7CiAgICAgICAgIFtDdXN0b21dIFNW
R01hdHJpeCByb3RhdGVGcm9tVmVjdG9yKGluIGZsb2F0IHgsIGluIGZsb2F0IHkpCiAgICAgICAg
ICAgICByYWlzZXMoU1ZHRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gU1ZHTWF0cml4IGZs
aXBYKCk7Ci0gICAgICAgIFtDdXN0b21dIFNWR01hdHJpeCBmbGlwWSgpOwotICAgICAgICBbQ3Vz
dG9tXSBTVkdNYXRyaXggc2tld1goaW4gZmxvYXQgYW5nbGUpOwotICAgICAgICBbQ3VzdG9tXSBT
VkdNYXRyaXggc2tld1koaW4gZmxvYXQgYW5nbGUpOworICAgICAgICBbSW1tdXRhYmxlXSBTVkdN
YXRyaXggZmxpcFgoKTsKKyAgICAgICAgW0ltbXV0YWJsZV0gU1ZHTWF0cml4IGZsaXBZKCk7Cisg
ICAgICAgIFtJbW11dGFibGVdIFNWR01hdHJpeCBza2V3WChpbiBmbG9hdCBhbmdsZSk7CisgICAg
ICAgIFtJbW11dGFibGVdIFNWR01hdHJpeCBza2V3WShpbiBmbG9hdCBhbmdsZSk7CiAgICAgfTsK
IAogfQo=
</data>
<flag name="review"
          id="12285"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>