<?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>16558</bug_id>
          
          <creation_ts>2007-12-21 10:13:29 -0800</creation_ts>
          <short_desc>Cairo WebCore Rendering Fails on arc drawing</short_desc>
          <delta_ts>2007-12-21 17:27:56 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>Cairo</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>64966</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 10:13:29 -0800</bug_when>
    <thetext>The Adobe AIR/Apollo team reports that the Cairo back-end reverses the order of arc drawing, resulting in this test case: &quot;http://developer.mozilla.org/samples/canvas-tutorial/2_2_canvas_moveto.html&quot; drawing an upside-down smiley face.

The attached patch corrects this problem.

Patch needs to be tested on a Cairo-based back-end before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64967</commentid>
    <comment_count>1</comment_count>
      <attachid>18034</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 10:25:45 -0800</bug_when>
    <thetext>Created attachment 18034
Patch to correct Cairo drawing order

Please test on Cairo-based system before landing patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64977</commentid>
    <comment_count>2</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-21 12:13:41 -0800</bug_when>
    <thetext>It turns out this fix provides the correct result, but looks like the direction parameter was mis-named in WebKit.

CanvasRenderingContext2D.idl:

        void arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean clockwise)

HTML5 spec:

        void arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise);

It seems that based on http://philip.html5.org/tests/canvas/suite/tests/results.html, test 2d.path.arc.angle.1, all browsers implement this parameter as &quot;anticlockwise&quot;, so the &quot;clockwise&quot; parameter name in WebKit might be a typo.

If this is right, the patch should be updated to correct the IDL, CanvasRenderingContext2D.cpp, Path.h and also the three Path implementations to fix the variable name.

I&apos;d like to co-review this patch with another implementer of the canvas, either CG or Qt.

Nice work!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65008</commentid>
    <comment_count>3</comment_count>
      <attachid>18045</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 16:19:25 -0800</bug_when>
    <thetext>Created attachment 18045
Updated based on review of code to use proper &apos;anticlockwise&apos; label everywhere.

Note that wx/PathWx.cpp did not need to be changed (implementation did not use labels in the declaration, and is a &apos;not-defined&apos; operation), and qt/PathQt.cpp was already using the label &apos;anticlockwise&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65009</commentid>
    <comment_count>4</comment_count>
      <attachid>18046</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 16:22:44 -0800</bug_when>
    <thetext>Created attachment 18046
Small revision (s/antiClockwise/anticlockwise/)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65013</commentid>
    <comment_count>5</comment_count>
      <attachid>18048</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 16:51:17 -0800</bug_when>
    <thetext>Created attachment 18048
Correction for malformed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65017</commentid>
    <comment_count>6</comment_count>
      <attachid>18048</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-21 16:58:13 -0800</bug_when>
    <thetext>Comment on attachment 18048
Correction for malformed patch.

r=me without the PathCG.cpp modification (since it doesn&apos;t help make the code any clearer). Eric agrees that this is a typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65019</commentid>
    <comment_count>7</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-21 17:02:06 -0800</bug_when>
    <thetext>Landed in r28944. A follow-up bug should probably be filed on the CG implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65025</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2007-12-21 17:27:56 -0800</bug_when>
    <thetext>Note that bug #16565 was added to explore the strange PathCG.cpp issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18034</attachid>
            <date>2007-12-21 10:25:45 -0800</date>
            <delta_ts>2007-12-21 16:19:25 -0800</delta_ts>
            <desc>Patch to correct Cairo drawing order</desc>
            <filename>cairopath.patch</filename>
            <type>text/plain</type>
            <size>1724</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTM1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDctMTIt
MjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBB
RERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTgKKyAgICAgICAgRml4IGZvciBidWcgcmVwb3J0ZWQgKGFuZCBwYXRjaGVk
KSBieSBBcG9sbG8gdGVhbSBpbiB3aGljaAorICAgICAgICBhcmNzIHdlcmUgZHJhd24gaW4gcmV2
ZXJzZSAocmVzdWx0aW5nIGluIGludmVydGVkIGltYWdlcykuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1BhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvUGF0
aDo6Q2Fpcm9QYXRoKToKKwogMjAwNy0xMi0yMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyLgpJbmRleDogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCShyZXZpc2lvbiAyODkzNSkKKysrIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcg
QEAKIAogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQ1LDkgKzE0Niw5
IEBAIHZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGYKIAogICAgIGNhaXJv
X3QqIGNyID0gcGxhdGZvcm1QYXRoKCktPm1fY3I7CiAgICAgaWYgKGNsb2Nrd2lzZSkKLSAgICAg
ICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBlYSk7Ci0gICAgZWxzZQogICAg
ICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKKyAg
ICBlbHNlCisgICAgICAgIGNhaXJvX2FyYyhjciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEpOwog
fQogCiB2b2lkIFBhdGg6OmFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9h
dFBvaW50JiBwMiwgZmxvYXQgcmFkaXVzKQpAQCAtMTY1LDcgKzE2Niw3IEBAIHZvaWQgUGF0aDo6
YWRkRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHIKICAgICBmbG9hdCB4UmFkaXVzID0gLjUgKiBy
ZWN0LndpZHRoKCk7CiAgICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCByZWN0LngoKSArIHhSYWRpdXMs
IHJlY3QueSgpICsgeVJhZGl1cyk7CiAgICAgY2Fpcm9fc2NhbGUoY3IsIHhSYWRpdXMsIHlSYWRp
dXMpOwotICAgIGNhaXJvX2FyYyhjciwgMC4sIDAuLCAxLiwgMC4sIDIgKiBNX1BJKTsKKyAgICBj
YWlyb19hcmMoY3IsIDAuLCAwLiwgMS4sIDAuLCAyICogcGlEb3VibGUpOwogICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18045</attachid>
            <date>2007-12-21 16:19:25 -0800</date>
            <delta_ts>2007-12-21 16:22:44 -0800</delta_ts>
            <desc>Updated based on review of code to use proper &apos;anticlockwise&apos; label everywhere.</desc>
            <filename>arc.patch</filename>
            <type>text/plain</type>
            <size>5853</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTM5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDctMTIt
MjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBB
RERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTgKKyAgICAgICAgRml4IGZvciBidWcgcmVwb3J0ZWQgKGFuZCBwYXRjaGVk
KSBieSBBcG9sbG8gdGVhbSBpbiB3aGljaAorICAgICAgICBhcmNzIHdlcmUgZHJhdyBpbiByZXZl
cnNlIChyZXN1bHRpbmcgaW4gaW52ZXJ0ZWQgaW1hZ2VzKS4KKyAgICAgICAgUmV2aWV3IG9mIHRo
ZSBzb3VyY2UgZm91bmQgdGhhdCB0aGUgJ2Nsb2Nrd2lzZScgdGVybSB3YXMKKyAgICAgICAgYWN0
dWFsbHkgbWVhbnQgdG8gbWVhbiAnY291bnRlci1jbG9ja3dpc2UnIChvciBhbnRpY2xvY2t3aXNl
CisgICAgICAgIGluIHRoZSBzdGFuZGFyZCksIHNvIHRoZSBJREwgYW5kIHN1cHBvcnRpbmcgY2xh
c3NlcyB3ZXJlCisgICAgICAgIGNoYW5nZWQgdG8gbWF0Y2ggdGhpcy4gCisKKyAgICAgICAgKiBo
dG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyk6CisgICAgICAgICogaHRtbC9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRBcmMpOgorICAgICAgICAoV2Vi
Q29yZTo6UGF0aDo6YWRkRWxsaXBzZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorCiAyMDA3LTEyLTIxICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAyODkzOSkKKysrIGh0bWwvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE5LDE0ICs0MTks
MTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsbwogICAgIHN0YXRl
KCkubV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmMoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGlDbG9ja3dp
c2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKICAgICBpZiAoIShyID4gMCkp
IHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBzdGF0ZSgpLm1fcGF0aC5hZGRBcmMoRmxvYXRQb2ludCh4LCB5KSwgciwgc2EsIGVhLCBj
bG9ja3dpc2UpOworICAgIHN0YXRlKCkubV9wYXRoLmFkZEFyYyhGbG9hdFBvaW50KHgsIHkpLCBy
LCBzYSwgZWEsIGFudGlDbG9ja3dpc2UpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBF
eGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IGh0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwJKHJldmlz
aW9uIDI4OTM5KQorKysgaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0
IHksIGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgYXJjKGluIGZsb2F0IHgsIGluIGZsb2F0IHks
IGluIGZsb2F0IHJhZGl1cywgaW4gZmxvYXQgc3RhcnRBbmdsZSwgaW4gZmxvYXQgZW5kQW5nbGUs
IGluIGJvb2xlYW4gY2xvY2t3aXNlKQorICAgICAgICB2b2lkIGFyYyhpbiBmbG9hdCB4LCBpbiBm
bG9hdCB5LCBpbiBmbG9hdCByYWRpdXMsIGluIGZsb2F0IHN0YXJ0QW5nbGUsIGluIGZsb2F0IGVu
ZEFuZ2xlLCBpbiBib29sZWFuIGFudGlDbG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZmlsbCgpOwogICAgICAgICB2b2lkIHN0cm9rZSgp
OwpJbmRleDogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gMjg5MzkpCisrKyBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQgcmFkaXVzKTsKICAgICAgICAgdm9pZCBjbG9zZVN1YnBhdGgoKTsKIAotICAg
ICAgICB2b2lkIGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBz
dGFydEFuZ2xlLCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBjbG9ja3dpc2UpOworICAgICAgICB2b2lk
IGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBzdGFydEFuZ2xl
LCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBjb3VudGVyQ2xvY2t3aXNlKTsKICAgICAgICAgdm9pZCBh
ZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgICAgICB2b2lkIGFkZEVsbGlwc2UoY29uc3Qg
RmxvYXRSZWN0Jik7CkluZGV4OiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAJKHJl
dmlzaW9uIDI4OTM5KQorKysgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNp
bmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0xMzYsNyArMTM3LDcgQEAgdm9pZCBQYXRoOjphZGRCZXppZXJDdXJ2
ZVRvKGNvbnN0IEZsb2F0UAogICAgICAgICAgICAgICAgICAgIGNvbnRyb2xQb2ludDMueCgpLCBj
b250cm9sUG9pbnQzLnkoKSk7CiB9CiAKLXZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9p
bnQmIHAsIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBjbG9ja3dpc2UpCit2b2lk
IFBhdGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxv
YXQgZWEsIGJvb2wgYW50aUNsb2Nrd2lzZSkKIHsKICAgICAvLyBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OQogICAgIC8vIGNhaXJvX2FyYygpIGZ1bmN0aW9ucyBo
YW5nIG9yIGNyYXNoIHdoZW4gcGFzc2VkIGluZiBhcyByYWRpdXMgb3Igc3RhcnQvZW5kIGFuZ2xl
CkBAIC0xNDQsMTAgKzE0NSwxMCBAQCB2b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50
JiBwLCBmCiAgICAgICAgIHJldHVybjsKIAogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1QYXRo
KCktPm1fY3I7Ci0gICAgaWYgKGNsb2Nrd2lzZSkKLSAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngo
KSwgcC55KCksIHIsIHNhLCBlYSk7Ci0gICAgZWxzZQorICAgIGlmIChhbnRpQ2xvY2t3aXNlKQog
ICAgICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhKTsK
KyAgICBlbHNlCisgICAgICAgIGNhaXJvX2FyYyhjciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEp
OwogfQogCiB2b2lkIFBhdGg6OmFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBG
bG9hdFBvaW50JiBwMiwgZmxvYXQgcmFkaXVzKQpAQCAtMTY1LDcgKzE2Niw3IEBAIHZvaWQgUGF0
aDo6YWRkRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHIKICAgICBmbG9hdCB4UmFkaXVzID0gLjUg
KiByZWN0LndpZHRoKCk7CiAgICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCByZWN0LngoKSArIHhSYWRp
dXMsIHJlY3QueSgpICsgeVJhZGl1cyk7CiAgICAgY2Fpcm9fc2NhbGUoY3IsIHhSYWRpdXMsIHlS
YWRpdXMpOwotICAgIGNhaXJvX2FyYyhjciwgMC4sIDAuLCAxLiwgMC4sIDIgKiBNX1BJKTsKKyAg
ICBjYWlyb19hcmMoY3IsIDAuLCAwLiwgMS4sIDAuLCAyICogcGlEb3VibGUpOwogICAgIGNhaXJv
X3Jlc3RvcmUoY3IpOwogfQogCkluZGV4OiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAJKHJldmlzaW9u
IDI4OTM5KQorKysgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUzLDExICsxNTMsMTEgQEAgdm9pZCBQYXRoOjpjbG9zZVN1YnBhdGgoKQogICAgIENH
UGF0aENsb3NlU3VicGF0aChtX3BhdGgpOwogfQogCi12b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBG
bG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNl
KQordm9pZCBQYXRoOjphZGRBcmMoY29uc3QgRmxvYXRQb2ludCYgcCwgZmxvYXQgciwgZmxvYXQg
c2EsIGZsb2F0IGVhLCBib29sIGFudGlDbG9ja3dpc2UpCiB7CiAgICAgLy8gV29ya2Fyb3VuZCBm
b3IgPHJkYXI6Ly9wcm9ibGVtLzUxODkyMzM+IENHUGF0aEFkZEFyYyBoYW5ncyBvciBjcmFzaGVz
IHdoZW4gcGFzc2VkIGluZiBhcyBzdGFydCBvciBlbmQgYW5nbGUKICAgICBpZiAoaXNmaW5pdGUo
c2EpICYmIGlzZmluaXRlKGVhKSkKLSAgICAgICAgQ0dQYXRoQWRkQXJjKG1fcGF0aCwgMCwgcC54
KCksIHAueSgpLCByLCBzYSwgZWEsIGNsb2Nrd2lzZSk7CisgICAgICAgIENHUGF0aEFkZEFyYyht
X3BhdGgsIDAsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhLCBhbnRpQ2xvY2t3aXNlKTsKIH0KIAog
dm9pZCBQYXRoOjphZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18046</attachid>
            <date>2007-12-21 16:22:44 -0800</date>
            <delta_ts>2007-12-21 16:51:17 -0800</delta_ts>
            <desc>Small revision (s/antiClockwise/anticlockwise/)</desc>
            <filename>arc.patch</filename>
            <type>text/plain</type>
            <size>5850</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTM5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDctMTIt
MjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBB
RERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTgKKyAgICAgICAgRml4IGZvciBidWcgcmVwb3J0ZWQgKGFuZCBwYXRjaGVk
KSBieSBBcG9sbG8gdGVhbSBpbiB3aGljaAorICAgICAgICBhcmNzIHdlcmUgZHJhdyBpbiByZXZl
cnNlIChyZXN1bHRpbmcgaW4gaW52ZXJ0ZWQgaW1hZ2VzKS4KKyAgICAgICAgUmV2aWV3IG9mIHRo
ZSBzb3VyY2UgZm91bmQgdGhhdCB0aGUgJ2Nsb2Nrd2lzZScgdGVybSB3YXMKKyAgICAgICAgYWN0
dWFsbHkgbWVhbnQgdG8gbWVhbiAnY291bnRlci1jbG9ja3dpc2UnIChvciBhbnRpY2xvY2t3aXNl
CisgICAgICAgIGluIHRoZSBzdGFuZGFyZCksIHNvIHRoZSBJREwgYW5kIHN1cHBvcnRpbmcgY2xh
c3NlcyB3ZXJlCisgICAgICAgIGNoYW5nZWQgdG8gbWF0Y2ggdGhpcy4gCisKKyAgICAgICAgKiBo
dG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyk6CisgICAgICAgICogaHRtbC9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRBcmMpOgorICAgICAgICAoV2Vi
Q29yZTo6UGF0aDo6YWRkRWxsaXBzZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorCiAyMDA3LTEyLTIxICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAyODkzOSkKKysrIGh0bWwvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE5LDE0ICs0MTks
MTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsbwogICAgIHN0YXRl
KCkubV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmMoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dp
c2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKICAgICBpZiAoIShyID4gMCkp
IHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBzdGF0ZSgpLm1fcGF0aC5hZGRBcmMoRmxvYXRQb2ludCh4LCB5KSwgciwgc2EsIGVhLCBj
bG9ja3dpc2UpOworICAgIHN0YXRlKCkubV9wYXRoLmFkZEFyYyhGbG9hdFBvaW50KHgsIHkpLCBy
LCBzYSwgZWEsIGFudGljbG9ja3dpc2UpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBF
eGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IGh0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwJKHJldmlz
aW9uIDI4OTM5KQorKysgaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0
IHksIGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgYXJjKGluIGZsb2F0IHgsIGluIGZsb2F0IHks
IGluIGZsb2F0IHJhZGl1cywgaW4gZmxvYXQgc3RhcnRBbmdsZSwgaW4gZmxvYXQgZW5kQW5nbGUs
IGluIGJvb2xlYW4gY2xvY2t3aXNlKQorICAgICAgICB2b2lkIGFyYyhpbiBmbG9hdCB4LCBpbiBm
bG9hdCB5LCBpbiBmbG9hdCByYWRpdXMsIGluIGZsb2F0IHN0YXJ0QW5nbGUsIGluIGZsb2F0IGVu
ZEFuZ2xlLCBpbiBib29sZWFuIGFudGljbG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZmlsbCgpOwogICAgICAgICB2b2lkIHN0cm9rZSgp
OwpJbmRleDogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gMjg5MzkpCisrKyBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQgcmFkaXVzKTsKICAgICAgICAgdm9pZCBjbG9zZVN1YnBhdGgoKTsKIAotICAg
ICAgICB2b2lkIGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBz
dGFydEFuZ2xlLCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBjbG9ja3dpc2UpOworICAgICAgICB2b2lk
IGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBzdGFydEFuZ2xl
LCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBhbnRpY2xvY2t3aXNlKTsKICAgICAgICAgdm9pZCBhZGRS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgICAgICB2b2lkIGFkZEVsbGlwc2UoY29uc3QgRmxv
YXRSZWN0Jik7CkluZGV4OiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlz
aW9uIDI4OTM5KQorKysgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNs
dWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xMzYsNyArMTM3LDcgQEAgdm9pZCBQYXRoOjphZGRCZXppZXJDdXJ2ZVRv
KGNvbnN0IEZsb2F0UAogICAgICAgICAgICAgICAgICAgIGNvbnRyb2xQb2ludDMueCgpLCBjb250
cm9sUG9pbnQzLnkoKSk7CiB9CiAKLXZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQm
IHAsIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBjbG9ja3dpc2UpCit2b2lkIFBh
dGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQg
ZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSkKIHsKICAgICAvLyBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ0OQogICAgIC8vIGNhaXJvX2FyYygpIGZ1bmN0aW9ucyBoYW5n
IG9yIGNyYXNoIHdoZW4gcGFzc2VkIGluZiBhcyByYWRpdXMgb3Igc3RhcnQvZW5kIGFuZ2xlCkBA
IC0xNDQsMTAgKzE0NSwxMCBAQCB2b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBw
LCBmCiAgICAgICAgIHJldHVybjsKIAogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1QYXRoKCkt
Pm1fY3I7Ci0gICAgaWYgKGNsb2Nrd2lzZSkKLSAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwg
cC55KCksIHIsIHNhLCBlYSk7Ci0gICAgZWxzZQorICAgIGlmIChhbnRpY2xvY2t3aXNlKQogICAg
ICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKKyAg
ICBlbHNlCisgICAgICAgIGNhaXJvX2FyYyhjciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEpOwog
fQogCiB2b2lkIFBhdGg6OmFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9h
dFBvaW50JiBwMiwgZmxvYXQgcmFkaXVzKQpAQCAtMTY1LDcgKzE2Niw3IEBAIHZvaWQgUGF0aDo6
YWRkRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHIKICAgICBmbG9hdCB4UmFkaXVzID0gLjUgKiBy
ZWN0LndpZHRoKCk7CiAgICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCByZWN0LngoKSArIHhSYWRpdXMs
IHJlY3QueSgpICsgeVJhZGl1cyk7CiAgICAgY2Fpcm9fc2NhbGUoY3IsIHhSYWRpdXMsIHlSYWRp
dXMpOwotICAgIGNhaXJvX2FyYyhjciwgMC4sIDAuLCAxLiwgMC4sIDIgKiBNX1BJKTsKKyAgICBj
YWlyb19hcmMoY3IsIDAuLCAwLiwgMS4sIDAuLCAyICogcGlEb3VibGUpOwogICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOwogfQogCkluZGV4OiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAJKHJldmlzaW9uIDI4
OTM5KQorKysgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTUzLDExICsxNTMsMTEgQEAgdm9pZCBQYXRoOjpjbG9zZVN1YnBhdGgoKQogICAgIENHUGF0
aENsb3NlU3VicGF0aChtX3BhdGgpOwogfQogCi12b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9h
dFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlKQor
dm9pZCBQYXRoOjphZGRBcmMoY29uc3QgRmxvYXRQb2ludCYgcCwgZmxvYXQgciwgZmxvYXQgc2Es
IGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dpc2UpCiB7CiAgICAgLy8gV29ya2Fyb3VuZCBmb3Ig
PHJkYXI6Ly9wcm9ibGVtLzUxODkyMzM+IENHUGF0aEFkZEFyYyBoYW5ncyBvciBjcmFzaGVzIHdo
ZW4gcGFzc2VkIGluZiBhcyBzdGFydCBvciBlbmQgYW5nbGUKICAgICBpZiAoaXNmaW5pdGUoc2Ep
ICYmIGlzZmluaXRlKGVhKSkKLSAgICAgICAgQ0dQYXRoQWRkQXJjKG1fcGF0aCwgMCwgcC54KCks
IHAueSgpLCByLCBzYSwgZWEsIGNsb2Nrd2lzZSk7CisgICAgICAgIENHUGF0aEFkZEFyYyhtX3Bh
dGgsIDAsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhLCBhbnRpY2xvY2t3aXNlKTsKIH0KIAogdm9p
ZCBQYXRoOjphZGRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18048</attachid>
            <date>2007-12-21 16:51:17 -0800</date>
            <delta_ts>2007-12-21 16:58:13 -0800</delta_ts>
            <desc>Correction for malformed patch.</desc>
            <filename>arc.patch</filename>
            <type>text/plain</type>
            <size>5852</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTM5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDctMTIt
MjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBB
RERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTgKKyAgICAgICAgRml4IGZvciBidWcgcmVwb3J0ZWQgKGFuZCBwYXRjaGVk
KSBieSBBcG9sbG8gdGVhbSBpbiB3aGljaAorICAgICAgICBhcmNzIHdlcmUgZHJhdyBpbiByZXZl
cnNlIChyZXN1bHRpbmcgaW4gaW52ZXJ0ZWQgaW1hZ2VzKS4KKyAgICAgICAgUmV2aWV3IG9mIHRo
ZSBzb3VyY2UgZm91bmQgdGhhdCB0aGUgJ2Nsb2Nrd2lzZScgdGVybSB3YXMKKyAgICAgICAgYWN0
dWFsbHkgbWVhbnQgdG8gbWVhbiAnY291bnRlci1jbG9ja3dpc2UnIChvciBhbnRpY2xvY2t3aXNl
CisgICAgICAgIGluIHRoZSBzdGFuZGFyZCksIHNvIHRoZSBJREwgYW5kIHN1cHBvcnRpbmcgY2xh
c3NlcyB3ZXJlCisgICAgICAgIGNoYW5nZWQgdG8gbWF0Y2ggdGhpcy4gCisKKyAgICAgICAgKiBo
dG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyk6CisgICAgICAgICogaHRtbC9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRBcmMpOgorICAgICAgICAoV2Vi
Q29yZTo6UGF0aDo6YWRkRWxsaXBzZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorCiAyMDA3LTEyLTIxICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAyODkzOSkKKysrIGh0bWwvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE5LDE0ICs0MTks
MTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsbwogICAgIHN0YXRl
KCkubV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmMoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dp
c2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKICAgICBpZiAoIShyID4gMCkp
IHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBzdGF0ZSgpLm1fcGF0aC5hZGRBcmMoRmxvYXRQb2ludCh4LCB5KSwgciwgc2EsIGVhLCBj
bG9ja3dpc2UpOworICAgIHN0YXRlKCkubV9wYXRoLmFkZEFyYyhGbG9hdFBvaW50KHgsIHkpLCBy
LCBzYSwgZWEsIGFudGljbG9ja3dpc2UpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBF
eGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IGh0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwJKHJldmlz
aW9uIDI4OTM5KQorKysgaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0
IHksIGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgYXJjKGluIGZsb2F0IHgsIGluIGZsb2F0IHks
IGluIGZsb2F0IHJhZGl1cywgaW4gZmxvYXQgc3RhcnRBbmdsZSwgaW4gZmxvYXQgZW5kQW5nbGUs
IGluIGJvb2xlYW4gY2xvY2t3aXNlKQorICAgICAgICB2b2lkIGFyYyhpbiBmbG9hdCB4LCBpbiBm
bG9hdCB5LCBpbiBmbG9hdCByYWRpdXMsIGluIGZsb2F0IHN0YXJ0QW5nbGUsIGluIGZsb2F0IGVu
ZEFuZ2xlLCBpbiBib29sZWFuIGFudGljbG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZmlsbCgpOwogICAgICAgICB2b2lkIHN0cm9rZSgp
OwpJbmRleDogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gMjg5MzkpCisrKyBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQgcmFkaXVzKTsKICAgICAgICAgdm9pZCBjbG9zZVN1YnBhdGgoKTsKIAotICAg
ICAgICB2b2lkIGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBz
dGFydEFuZ2xlLCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBjbG9ja3dpc2UpOworICAgICAgICB2b2lk
IGFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgcmFkaXVzLCBmbG9hdCBzdGFydEFuZ2xl
LCBmbG9hdCBlbmRBbmdsZSwgYm9vbCBhbnRpY2xvY2t3aXNlKTsKICAgICAgICAgdm9pZCBhZGRS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgICAgICB2b2lkIGFkZEVsbGlwc2UoY29uc3QgRmxv
YXRSZWN0Jik7CiAKSW5kZXg6IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAkocmV2
aXNpb24gMjg5MzkpCisrKyBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlIDxjYWlyby5oPgogI2lu
Y2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTEzNiw3ICsxMzcsNyBAQCB2b2lkIFBhdGg6OmFkZEJlemllckN1cnZl
VG8oY29uc3QgRmxvYXRQCiAgICAgICAgICAgICAgICAgICAgY29udHJvbFBvaW50My54KCksIGNv
bnRyb2xQb2ludDMueSgpKTsKIH0KIAotdm9pZCBQYXRoOjphZGRBcmMoY29uc3QgRmxvYXRQb2lu
dCYgcCwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGNsb2Nrd2lzZSkKK3ZvaWQg
UGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9h
dCBlYSwgYm9vbCBhbnRpY2xvY2t3aXNlKQogewogICAgIC8vIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5CiAgICAgLy8gY2Fpcm9fYXJjKCkgZnVuY3Rpb25zIGhh
bmcgb3IgY3Jhc2ggd2hlbiBwYXNzZWQgaW5mIGFzIHJhZGl1cyBvciBzdGFydC9lbmQgYW5nbGUK
QEAgLTE0NCwxMCArMTQ1LDEwIEBAIHZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQm
IHAsIGYKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgo
KS0+bV9jcjsKLSAgICBpZiAoY2xvY2t3aXNlKQotICAgICAgICBjYWlyb19hcmMoY3IsIHAueCgp
LCBwLnkoKSwgciwgc2EsIGVhKTsKLSAgICBlbHNlCisgICAgaWYgKGFudGljbG9ja3dpc2UpCiAg
ICAgICAgIGNhaXJvX2FyY19uZWdhdGl2ZShjciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEpOwor
ICAgIGVsc2UKKyAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBlYSk7
CiB9CiAKIHZvaWQgUGF0aDo6YWRkQXJjVG8oY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZs
b2F0UG9pbnQmIHAyLCBmbG9hdCByYWRpdXMpCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBQYXRo
OjphZGRFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcgogICAgIGZsb2F0IHhSYWRpdXMgPSAuNSAq
IHJlY3Qud2lkdGgoKTsKICAgICBjYWlyb190cmFuc2xhdGUoY3IsIHJlY3QueCgpICsgeFJhZGl1
cywgcmVjdC55KCkgKyB5UmFkaXVzKTsKICAgICBjYWlyb19zY2FsZShjciwgeFJhZGl1cywgeVJh
ZGl1cyk7Ci0gICAgY2Fpcm9fYXJjKGNyLCAwLiwgMC4sIDEuLCAwLiwgMiAqIE1fUEkpOworICAg
IGNhaXJvX2FyYyhjciwgMC4sIDAuLCAxLiwgMC4sIDIgKiBwaURvdWJsZSk7CiAgICAgY2Fpcm9f
cmVzdG9yZShjcik7CiB9CiAKSW5kZXg6IHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAkocmV2aXNpb24g
Mjg5MzkpCisrKyBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTMsMTEgKzE1MywxMSBAQCB2b2lkIFBhdGg6OmNsb3NlU3VicGF0aCgpCiAgICAgQ0dQ
YXRoQ2xvc2VTdWJwYXRoKG1fcGF0aCk7CiB9CiAKLXZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZs
b2F0UG9pbnQmIHAsIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBjbG9ja3dpc2Up
Cit2b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBz
YSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSkKIHsKICAgICAvLyBXb3JrYXJvdW5kIGZv
ciA8cmRhcjovL3Byb2JsZW0vNTE4OTIzMz4gQ0dQYXRoQWRkQXJjIGhhbmdzIG9yIGNyYXNoZXMg
d2hlbiBwYXNzZWQgaW5mIGFzIHN0YXJ0IG9yIGVuZCBhbmdsZQogICAgIGlmIChpc2Zpbml0ZShz
YSkgJiYgaXNmaW5pdGUoZWEpKQotICAgICAgICBDR1BhdGhBZGRBcmMobV9wYXRoLCAwLCBwLngo
KSwgcC55KCksIHIsIHNhLCBlYSwgY2xvY2t3aXNlKTsKKyAgICAgICAgQ0dQYXRoQWRkQXJjKG1f
cGF0aCwgMCwgcC54KCksIHAueSgpLCByLCBzYSwgZWEsIGFudGljbG9ja3dpc2UpOwogfQogCiB2
b2lkIFBhdGg6OmFkZFJlY3QoY29uc3QgRmxvYXRSZWN0JiByKQo=
</data>
<flag name="review"
          id="7830"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>