<?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>27856</bug_id>
          
          <creation_ts>2009-07-30 14:29:24 -0700</creation_ts>
          <short_desc>Animation with a timing function property in a keyframe eats CPU</short_desc>
          <delta_ts>2009-07-30 15:45:19 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136010</commentid>
    <comment_count>0</comment_count>
      <attachid>33839</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-30 14:29:24 -0700</bug_when>
    <thetext>Created attachment 33839
Testcase

The attached demo eats about 22% of the CPU, even though only 10 things are animating.

I attach a sample; most of it is under AnimationControllerPrivate::updateAnimationTimer(bool), which seems to be firing as fast as it can become some keyframe animation is returning 0 from timeToNextService().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136012</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-30 14:29:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/7104476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136014</commentid>
    <comment_count>2</comment_count>
      <attachid>33840</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-30 14:41:11 -0700</bug_when>
    <thetext>Created attachment 33840
Patch, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136021</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-30 14:48:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/46603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136058</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-30 15:45:19 -0700</bug_when>
    <thetext>Commit fixed up in r46606</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33839</attachid>
            <date>2009-07-30 14:29:24 -0700</date>
            <delta_ts>2009-07-30 14:29:24 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>starflickr.html</filename>
            <type>text/html</type>
            <size>12042</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4KCjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgogIDx0aXRsZT5GbGlj
a3IgU3RhcmZpZWxkPC90aXRsZT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgpib2R5CnsKICBi
YWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKICBtYXJnaW46IDA7CiAgb3ZlcmZsb3c6aGlkZGVuOwog
IGZvbnQtZmFtaWx5OiAnTHVjaWRhIEdyYW5kZScsIHZlcmRhbmEsIHNhbnMtc2VyaWY7Cn0KCiNz
dGFnZQp7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAw
JTsKICAtd2Via2l0LXBlcnNwZWN0aXZlOiA1MDA7Cn0KCiN0dXJudGFibGUKewogIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgLXdlYmtpdC10cmFu
c2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10
cmFuc2Zvcm0gMC44czsKfQoKI2NvbnRhaW5lcgp7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdp
ZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJl
c2VydmUtM2Q7Cn0KCmJvZHkucmFpbmZhbGwgI2NvbnRhaW5lcgp7CiAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogcmFpbmZhbGwtY29udGFpbmVyLWZsaXA7CiAgLXdlYmtpdC1hbmltYXRpb24tZHVy
YXRpb246IDEwczsKLyogIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxMHM7Ki8KICAtd2Via2l0
LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwogIC13ZWJraXQtYW5pbWF0aW9u
LXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7Cn0KCkAtd2Via2l0LWtleWZyYW1lcyByYWlu
ZmFsbC1jb250YWluZXItZmxpcCB7CiAgMCUgICB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTp0cmFu
c2xhdGVaKDApIHJvdGF0ZVkoMGRlZyk7CiAgfQogIDQwJSAgewogICAgLXdlYmtpdC10cmFuc2Zv
cm06dHJhbnNsYXRlWigwKSByb3RhdGVZKDBkZWcpOwogICAgLXdlYmtpdC1hbmltYXRpb24tdGlt
aW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogIH0KICA1MCUgIHsKICAgIC13ZWJraXQtdHJhbnNmb3Jt
OnRyYW5zbGF0ZVooLTUwMHB4KSByb3RhdGVZKDE4MGRlZyk7CiAgICAtd2Via2l0LWFuaW1hdGlv
bi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OwogIH0KICA2MCUgIHsgLXdlYmtpdC10cmFuc2Zv
cm06dHJhbnNsYXRlWigwKSByb3RhdGVZKDM2MGRlZyk7IH0KICAxMDAlIHsgLXdlYmtpdC10cmFu
c2Zvcm06dHJhbnNsYXRlWigwKSByb3RhdGVZKDM2MGRlZyk7IH0KfQoKLnBvc3Rlcgp7CiAgcG9z
aXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxMDBweDsKICBoZWlnaHQ6IDEwMHB4OwogIC13ZWJr
aXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKLyogIC13ZWJraXQtdHJhbnNpdGlvbjog
LXdlYmtpdC10cmFuc2Zvcm0gMC4zcywgbGVmdCAwLjVzLCB0b3AgMC41cywgb3BhY2l0eSAwLjVz
OyovCiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsKICAtd2Vi
a2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKfQoKYm9keS5zdGFyZmllbGQg
LnBvc3Rlcgp7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMDBweCk7CiAgLXdl
YmtpdC1hbmltYXRpb24tZHVyYXRpb246IDhzOwogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHN0
YXJmaWVsZDsKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHN0YXJmaWVsZCB7CiAgZnJvbSAgeyAtd2Vi
a2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKC01MDAwcHgpOyB9CiAgdG8gICAgeyAtd2Via2l0LXRy
YW5zZm9ybTp0cmFuc2xhdGVaKDUwMHB4KTsgfQp9Cgpib2R5LnJhaW5mYWxsIC5wb3N0ZXIKewog
IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMHM7CiAgLXdlYmtpdC1hbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiBpbmZpbml0ZTsKICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rp
b246IGxpbmVhcjsKfQoKYm9keS5yYWluZmFsbCAucG9zdGVyLmZyb250CnsKICAgIC13ZWJraXQt
YW5pbWF0aW9uLW5hbWU6IHJhaW5mYWxsLWZhZGUtZnJvbnQ7Cn0KCmJvZHkucmFpbmZhbGwgLnBv
c3Rlci5taWRkbGUKewogICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcmFpbmZhbGwtZmFkZS1t
aWRkbGU7Cn0KCmJvZHkucmFpbmZhbGwgLnBvc3Rlci5iYWNrCnsKICAgIC13ZWJraXQtYW5pbWF0
aW9uLW5hbWU6IHJhaW5mYWxsLWZhZGUtYmFjazsKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHJhaW5m
YWxsLWZhZGUtZnJvbnQgewogICAgMCUgICAgeyBvcGFjaXR5OiAxOyB9CiAgICA0MCUgICB7IG9w
YWNpdHk6IDE7fQogICAgNTAlICAgeyBvcGFjaXR5OiAwLjI7fQogICAgNjAlICAgeyBvcGFjaXR5
OiAxOyB9CiAgICAxMDAlICB7IG9wYWNpdHk6IDE7IH0KfQoKQC13ZWJraXQta2V5ZnJhbWVzIHBv
c3Rlci1jb250ZW50cy1taWRkbGUgewogICAgMCUgICAgeyBvcGFjaXR5OiAwLjU7IH0KICAgIDEw
MCUgIHsgb3BhY2l0eTogMC41OyB9Cn0KCkAtd2Via2l0LWtleWZyYW1lcyBwb3N0ZXItY29udGVu
dHMtYmFjayB7CiAgICAwJSAgICB7IG9wYWNpdHk6IDAuMjt9CiAgICA0MCUgICB7IG9wYWNpdHk6
IDAuMjt9CiAgICA1MCUgICB7IG9wYWNpdHk6IDE7IH0KICAgIDYwJSAgIHsgb3BhY2l0eTogMC4y
OyB9CiAgICAxMDAlICB7IG9wYWNpdHk6IDAuMjsgfQp9CgoucG9zdGVyLWNvbnRlbnRzCnsKICBw
b3NpdGlvbjogcmVsYXRpdmU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGJvcmRl
cjogMXB4IHNvbGlkICMzMzM7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOwogIC13ZWJr
aXQtYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAy
MHB4OwogIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7CiAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwp9Cgpib2R5LnN0YXJmaWVs
ZCAucG9zdGVyLWNvbnRlbnRzCnsKICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwb3N0ZXItY29u
dGVudHMtc3RhcmZpZWxkOwogIG9wYWNpdHk6IDA7Cn0KCkAtd2Via2l0LWtleWZyYW1lcyBwb3N0
ZXItY29udGVudHMtc3RhcmZpZWxkIHsKICAwJSAgICB7IG9wYWNpdHk6IDA7IH0KICA0MCUgICB7
IG9wYWNpdHk6IDE7IH0KICAxMDAlICB7IG9wYWNpdHk6IDE7IH0KfQoKYm9keS5yYWluZmFsbCAu
cG9zdGVyLWNvbnRlbnRzCnsKICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTBzOwovKiAg
LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEwczsqLwogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IHJhaW5mYWxsOwogIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7
CiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsKfQoKQC13
ZWJraXQta2V5ZnJhbWVzIHJhaW5mYWxsIHsKICBmcm9tICB7IC13ZWJraXQtdHJhbnNmb3JtOnRy
YW5zbGF0ZVkoLTI1MHB4KTsgfQogIHRvICAgIHsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRl
WSgxNDAwcHgpOyB9Cn0KCi5sb2FkZWQKewogIG9wYWNpdHk6IDEuMDsKfQoKI2h1ZAp7CiAgcG9z
aXRpb246IGFic29sdXRlOwogIHdpZHRoOiA0MCU7CiAgbGVmdDogMzAlOwogIG1hcmdpbjogMCBh
dXRvOwogIGJvdHRvbTogODBweDsKICBwYWRkaW5nOiAxMHB4OwogIGNvbG9yOiB3aGl0ZTsKICBi
b3JkZXI6IDFweCBzb2xpZCBncmF5OwogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTJweDsKICBi
YWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKICBvcGFjaXR5OiAwLjg7CiAgdGV4dC1hbGlnbjogY2Vu
dGVyOwp9Cgo8L3N0eWxlPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9
InV0Zi04IiBzcmM9Ii4uLy4uLy4uL3NoYXJlZC9qYXZhc2NyaXB0L2ZsaWNrci5qcyI+PC9zY3Jp
cHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIu
Li8uLi8uLi9zaGFyZWQvamF2YXNjcmlwdC9yZW1vdGVfcmVxdWVzdC5qcyI+PC9zY3JpcHQ+Cjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi8u
Li9zaGFyZWQvamF2YXNjcmlwdC9kb21fdXRpbHMuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vLi4vc2hhcmVkL2ph
dmFzY3JpcHQvdXRpbHMuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgoKdmFyIGdOdW1TdGFycyA9IDQwOwoKY29uc3Qga1N0YXJGaWVs
ZFdpZHRoID0gMTAwMDsKY29uc3Qga1N0YXJGaWVsZEhlaWdodCA9IDEwMDA7CmNvbnN0IGtTdGFy
RmllbGREZWFkV2lkdGggPSAxMDA7CmNvbnN0IGtTdGFyRmllbGREZWFkSGVpZ2h0ID0gMTAwOwpj
b25zdCBrU3RhckZpZWxkRGVwdGggPSA1MDAwOwoKY29uc3Qga0dyaWRSb3dzID0gMTU7CmNvbnN0
IGtHcmlkQ29sdW1ucyA9IDIwOyAgICAvLyByb3dzICogY29scyA9PSAzMDAKY29uc3Qga0dyaWRQ
b3N0ZXJTaXplID0gMTAwOwoKCnZhciBnRmxpY2tyU2VhcmNoID0gbnVsbDsKdmFyIGdDcmVhdGVk
U3RhcnMgPSBmYWxzZTsKCmZ1bmN0aW9uIGRvU2VhcmNoKCkKewogIHZhciBzZWFyY2hUZXJtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1maWVsZCcpLnZhbHVlOwogIHNlbmRGbGlj
a3JTZWFyY2goc2VhcmNoVGVybSk7Cn0KCmZ1bmN0aW9uIHNlbmRGbGlja3JTZWFyY2goc2VhcmNo
VGVybSkKewogIGdGbGlja3JTZWFyY2ggPSBuZXcgRmxpY2tyU2VhcmNoKHNlYXJjaFRlcm0pOwog
IGdGbGlja3JTZWFyY2gucGhvdG9zUmVjZWl2ZWQgPSBmbGlja3JSZXN1bHRzUmVjZWl2ZWQ7CiAg
Z0ZsaWNrclNlYXJjaC5zZXRQaG90b3NQZXJQYWdlKGdOdW1TdGFycyk7CiAgZ0ZsaWNrclNlYXJj
aC5zZWFyY2goMSk7Cn0KCmZ1bmN0aW9uIHNldHVwU3RhcnMoaW5OdW1TdGFycykKewogIGlmIChn
Q3JlYXRlZFN0YXJzKQogICAgcmV0dXJuOwoKICBnQ3JlYXRlZFN0YXJzID0gdHJ1ZTsKICBhZGRD
bGFzc05hbWUoZG9jdW1lbnQuYm9keSwgJ3N0YXJmaWVsZCcpOwoKICB2YXIgdW5pdmVyc2UgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CiAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpbk51bVN0YXJzOyBpICsrKQogIHsKICAgIHZhciBjdXJQb3N0ZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKICAgIGN1clBvc3Rlci5jbGFzc05hbWUgPSAncG9zdGVyJzsKCiAg
ICB2YXIgcG9zdGVyQ29udGVudHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
IHBvc3RlckNvbnRlbnRzLmNsYXNzTmFtZSA9ICdwb3N0ZXItY29udGVudHMnOwogICAgY3VyUG9z
dGVyLmFwcGVuZENoaWxkKHBvc3RlckNvbnRlbnRzKTsKCiAgICBzZXR1cFBvc3RlckZvclN0YXJm
aWVsZChjdXJQb3N0ZXIpOwogICAgdW5pdmVyc2UuYXBwZW5kQ2hpbGQoY3VyUG9zdGVyKTsKICB9
Cn0KCmZ1bmN0aW9uIGZpbmRTdHlsZShzZWwpCnsKICB2YXIgc3MgPSBkb2N1bWVudC5zdHlsZVNo
ZWV0czsKICBmb3IgKHZhciBpID0gMDsgaSA8IHNzLmxlbmd0aDsgKytpKSB7CiAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IHNzW2ldLmNzc1J1bGVzLmxlbmd0aDsgKytqKSB7CiAgICAgIGlmIChzc1tp
XS5jc3NSdWxlc1tqXS5zZWxlY3RvclRleHQgPT0gc2VsKSB7CiAgICAgICAgcmV0dXJuIHNzW2ld
LmNzc1J1bGVzW2pdLnN0eWxlOwogICAgICB9CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBzZXR1cFBv
c3RlckZvckdyaWQoaW5Qb3N0ZXJFbGVtZW50LCBpblBvc2l0aW9uKQp7CiAgICB2YXIgcm93ID0g
TWF0aC5mbG9vcihpblBvc2l0aW9uIC8ga0dyaWRDb2x1bW5zKTsKICAgIHZhciBjb2wgPSBpblBv
c2l0aW9uICUga0dyaWRDb2x1bW5zOwogICAgCiAgICBpblBvc3RlckVsZW1lbnQuc3R5bGUubGVm
dCAgPSAoY29sICoga0dyaWRQb3N0ZXJTaXplKSArICdweCc7CiAgICBpblBvc3RlckVsZW1lbnQu
c3R5bGUudG9wICAgPSAocm93ICoga0dyaWRQb3N0ZXJTaXplKSArICdweCc7Cn0KCmZ1bmN0aW9u
IHNldHVwUG9zdGVyRm9yU3RhcmZpZWxkKGluUG9zdGVyRWxlbWVudCkKewogIC8vIHdlIG5lZWQg
dG8gYXZvaWQgcHV0dGluZyBpY29ucyBpbnRvIHRoZSB2ZXJ5IGNlbnRlciBvZiB0aGUgd2luZG93
IG9yCiAgLy8gdGhleSBmbHkgcmlnaHQgYXQgeW91LCB3aGljaCBpcyBkaXNjb25jZXJ0aW5nCiAg
dmFyIGxlZnRwb3MgPSAoa1N0YXJGaWVsZFdpZHRoIC0ga1N0YXJGaWVsZERlYWRXaWR0aC1rR3Jp
ZFBvc3RlclNpemUpICogTWF0aC5yYW5kb20oKTsKICBpZiAobGVmdHBvcyA+IChrU3RhckZpZWxk
V2lkdGggLSBrU3RhckZpZWxkRGVhZFdpZHRoKS8yLWtHcmlkUG9zdGVyU2l6ZSkKICAgIGxlZnRw
b3MgKz0ga1N0YXJGaWVsZERlYWRXaWR0aCArIGtHcmlkUG9zdGVyU2l6ZTsKICAgIAogIHZhciB0
b3Bwb3MgPSAoa1N0YXJGaWVsZEhlaWdodCAtIGtTdGFyRmllbGREZWFkSGVpZ2h0KSAqIE1hdGgu
cmFuZG9tKCk7CiAgaWYgKHRvcHBvcyA+IChrU3RhckZpZWxkSGVpZ2h0IC0ga1N0YXJGaWVsZERl
YWRIZWlnaHQpLzIta0dyaWRQb3N0ZXJTaXplKQogICAgdG9wcG9zICs9IGtTdGFyRmllbGREZWFk
SGVpZ2h0ICsga0dyaWRQb3N0ZXJTaXplOwogICAgCiAgaW5Qb3N0ZXJFbGVtZW50LnN0eWxlLmxl
ZnQgPSBsZWZ0cG9zICsgJ3B4JzsKICBpblBvc3RlckVsZW1lbnQuc3R5bGUudG9wID0gdG9wcG9z
ICsgJ3B4JzsKCiAgLy8gaW5Qb3N0ZXJFbGVtZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICd0
cmFuc2xhdGUzZCgwLCAwLCAtNTAwMHB4KSc7CgogIGNvbnN0IGtQZXJpb2QgPSA4OyAgICAgIC8v
IGluIHNlY29uZHMKICB2YXIgYmVnaW5UaW1lID0ga1BlcmlvZCAqIE1hdGgucmFuZG9tKCk7CiAg
aW5Qb3N0ZXJFbGVtZW50LnN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9uID0ga1BlcmlvZCAr
ICJzIjsKICBpblBvc3RlckVsZW1lbnQuc3R5bGUud2Via2l0QW5pbWF0aW9uRGVsYXkgPSBiZWdp
blRpbWUgKyAicyI7CgogIHZhciBjb250ZW50Tm9kZSA9IGluUG9zdGVyRWxlbWVudC5maXJzdENo
aWxkOwogIGNvbnRlbnROb2RlLnN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9uID0ga1Blcmlv
ZCArICJzIjsKICBjb250ZW50Tm9kZS5zdHlsZS53ZWJraXRBbmltYXRpb25EZWxheSA9IGJlZ2lu
VGltZSArICJzIjsKfQoKZnVuY3Rpb24gc2V0dXBQb3N0ZXJGb3JSYWluZmFsbChpblBvc3RlckVs
ZW1lbnQpCnsKICBjb25zdCBrTWluWCA9IC01MDsKICBjb25zdCBrTWF4WCA9IDEwMjQ7CgogIGNv
bnN0IGtNaW5aID0gLTIwMDsKICBjb25zdCBrTWF4WiA9IDIwMDsKCiAgLy8gYXNzaWduIHJhbmRv
bSB4IGFuZCB6CiAgdmFyIHhQb3MgPSBrTWluWCArIChrTWF4WCAtIGtNaW5YKSAqIE1hdGgucmFu
ZG9tKCk7CiAgdmFyIHpQb3MgPSBrTWluWiArIChrTWF4WiAtIGtNaW5aKSAqIE1hdGgucmFuZG9t
KCk7CgogIGluUG9zdGVyRWxlbWVudC5zdHlsZS5sZWZ0ID0geFBvcyArICdweCc7CiAgaW5Qb3N0
ZXJFbGVtZW50LnN0eWxlLnRvcCA9IDA7CiAgaW5Qb3N0ZXJFbGVtZW50LnN0eWxlLndlYmtpdFRy
YW5zZm9ybSA9ICd0cmFuc2xhdGUzZCgwLCAtMzAwcHgsICcgKyB6UG9zICsgJ3B4KSc7CgogIGlu
UG9zdGVyRWxlbWVudC5zdHlsZS53ZWJraXRBbmltYXRpb25EdXJhdGlvbiA9ICIiOwogIGluUG9z
dGVyRWxlbWVudC5zdHlsZS53ZWJraXRBbmltYXRpb25EZWxheSA9ICIiOwoKICAvLyBoYWNrIGZv
ciBmb2ctbGlrZSBlZmZlY3Q7IHRoaXMga2V5ZnJhbWUgYW5pbWF0aW9uIGhhcyB0byBtYXRjaCB0
aGUgdGltaW5nIG9mIHRoZSBzdGFnZSByb3RhdGlvbgogIHZhciBjb250ZW50Tm9kZSA9IGluUG9z
dGVyRWxlbWVudC5maXJzdENoaWxkOwoKICBjb25zdCBrUGVyaW9kID0gODsgICAgICAvLyBpbiBz
ZWNvbmRzCiAgY29udGVudE5vZGUuc3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gPSBrUGVy
aW9kICsgInMiOwogIGNvbnRlbnROb2RlLnN0eWxlLndlYmtpdEFuaW1hdGlvbkRlbGF5ID0gKGtQ
ZXJpb2QgKiBNYXRoLnJhbmRvbSgpKSArICJzIjsKCiAgdmFyIGZyb250T3BhY2l0eSA9IDEgLSAo
KGtNYXhaIC0gelBvcykgLyBrTWF4WikgLyAyOwogIHZhciBiYWNrT3BhY2l0eSA9IDEgLSBmcm9u
dE9wYWNpdHk7CgogIGNvbnN0IGtOdW1MZXZlbHMgPSAzOwogIHZhciBsZXZlbCA9IE1hdGgucm91
bmQoa051bUxldmVscyAqICh6UG9zIC0ga01pblopIC8gKGtNYXhaIC0ga01pblopKTsKICB2YXIg
bGV2ZWxDbGFzcyA9ICIiOwogIHN3aXRjaCAobGV2ZWwpCiAgewogICAgY2FzZSAwOiBsZXZlbENs
YXNzID0gJ2JhY2snOyBicmVhazsKICAgIGNhc2UgMTogbGV2ZWxDbGFzcyA9ICdtaWRkbGUnOyBi
cmVhazsKICAgIGNhc2UgMjogbGV2ZWxDbGFzcyA9ICdmcm9udCc7IGJyZWFrOwogIH0KICAKICBh
ZGRDbGFzc05hbWUoaW5Qb3N0ZXJFbGVtZW50LCBsZXZlbENsYXNzKTsKICAKICB3aW5kb3cuY29u
c29sZS5sb2coJ3Bvc3RlciBjbGFzczonICArIGluUG9zdGVyRWxlbWVudC5jbGFzc05hbWUpCgog
IC8vIGZpbmRTdHlsZSgiLnBvc3Rlci1jb250ZW50cy1yYWluZmFsbDphbmltYXRpb24ta2V5ZnJh
bWUocG9zdGVyLWNvbnRlbnRzLXJhaW5mYWxsLCAwKSIpLm9wYWNpdHkgICAgPSBmcm9udE9wYWNp
dHk7CiAgLy8gZmluZFN0eWxlKCIucG9zdGVyLWNvbnRlbnRzLXJhaW5mYWxsOmFuaW1hdGlvbi1r
ZXlmcmFtZShwb3N0ZXItY29udGVudHMtcmFpbmZhbGwsIDAuMSkiKS5vcGFjaXR5ICA9IGJhY2tP
cGFjaXR5OwogIC8vIGZpbmRTdHlsZSgiLnBvc3Rlci1jb250ZW50cy1yYWluZmFsbDphbmltYXRp
b24ta2V5ZnJhbWUocG9zdGVyLWNvbnRlbnRzLXJhaW5mYWxsLCAwLjUpIikub3BhY2l0eSAgPSBi
YWNrT3BhY2l0eTsKICAvLyBmaW5kU3R5bGUoIi5wb3N0ZXItY29udGVudHMtcmFpbmZhbGw6YW5p
bWF0aW9uLWtleWZyYW1lKHBvc3Rlci1jb250ZW50cy1yYWluZmFsbCwgMC42KSIpLm9wYWNpdHkg
ID0gZnJvbnRPcGFjaXR5OwogIC8vIGZpbmRTdHlsZSgiLnBvc3Rlci1jb250ZW50cy1yYWluZmFs
bDphbmltYXRpb24ta2V5ZnJhbWUocG9zdGVyLWNvbnRlbnRzLXJhaW5mYWxsLCAxKSIpLm9wYWNp
dHkgICAgPSBmcm9udE9wYWNpdHk7Cn0KCnZhciBnQ3VycmVudE1vZGUgPSAnc3RhcmZpZWxkJzsK
ZnVuY3Rpb24gdG9nZ2xlVmlld01vZGUoKQp7CiAgaWYgKGdDdXJyZW50TW9kZSA9PSAnc3RhcmZp
ZWxkJykKICAgIHN3aXRjaFRvUmFpbmZhbGwoKTsKICBlbHNlCiAgICBzd2l0Y2hUb1N0YXJmaWVs
ZCgpOwp9CgpmdW5jdGlvbiBzd2l0Y2hUb1JhaW5mYWxsKCkKewogIGdDdXJyZW50TW9kZSA9ICdy
YWluZmFsbCc7CgogIHJlbW92ZUNsYXNzTmFtZShkb2N1bWVudC5ib2R5LCAnc3RhcmZpZWxkJyk7
CiAgYWRkQ2xhc3NOYW1lKGRvY3VtZW50LmJvZHksICdyYWluZmFsbCcpOwoKICB2YXIgdW5pdmVy
c2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CiAgZm9yICh2YXIgaSA9
IDA7IGkgPCB1bml2ZXJzZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSArKykKICB7CiAgICB2YXIgY3Vy
Tm9kZSA9IHVuaXZlcnNlLmNoaWxkTm9kZXNbaV07CiAgICBzZXR1cFBvc3RlckZvclJhaW5mYWxs
KGN1ck5vZGUpOwogIH0KfQoKZnVuY3Rpb24gc3dpdGNoVG9TdGFyZmllbGQoKQp7CiAgZ0N1cnJl
bnRNb2RlID0gJ3N0YXJmaWVsZCc7CgogIHJlbW92ZUNsYXNzTmFtZShkb2N1bWVudC5ib2R5LCAn
cmFpbmZhbGwnKTsKICBhZGRDbGFzc05hbWUoZG9jdW1lbnQuYm9keSwgJ3N0YXJmaWVsZCcpOwoK
ICB2YXIgdW5pdmVyc2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CiAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB1bml2ZXJzZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSArKykKICB7
CiAgICB2YXIgY3VyTm9kZSA9IHVuaXZlcnNlLmNoaWxkTm9kZXNbaV07CiAgICBzZXR1cFBvc3Rl
ckZvclN0YXJmaWVsZChjdXJOb2RlKTsKICB9Cn0KCmZ1bmN0aW9uIGZsaWNrclJlc3VsdHNSZWNl
aXZlZChpbkZpcnN0UGhvdG9JbmRleCwgaW5OdW1QaG90b3MpCnsKICBzZXR1cFN0YXJzKGdOdW1T
dGFycyk7CgogIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWlu
ZXInKTsKICBmb3IgKHZhciBpID0gMDsgaSA8IHVuaXZlcnNlLmNoaWxkTm9kZXMubGVuZ3RoOyBp
ICsrKQogIHsKICAgIHZhciBjdXJOb2RlID0gdW5pdmVyc2UuY2hpbGROb2Rlc1tpXTsKICAgIHZh
ciBjdXJQaG90byA9IGdGbGlja3JTZWFyY2gucGhvdG9BdEluZGV4KGluRmlyc3RQaG90b0luZGV4
ICsgaSk7CiAgICBjdXJOb2RlLmZpcnN0Q2hpbGQuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ3Vy
bCgnICsgY3VyUGhvdG8udXJsRm9yU2l6ZSg3NSkgKyAnKSc7CiAgfQp9Cgp2YXIgZ0N1cllSb3Rh
dGlvbiA9IDA7CmNvbnN0IGtSb3RhdGVEZXB0aCA9IDIwMDsKZnVuY3Rpb24gcm90YXRlTGVmdCgp
CnsKICB2YXIgdHVybnRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R1cm50YWJsZScp
OwogIGdDdXJZUm90YXRpb24gKz0gMC4yOwogIHR1cm50YWJsZS5zdHlsZS53ZWJraXRUcmFuc2Zv
cm0gPSAndHJhbnNsYXRlM2QoMCwgMCwgJyArIGtSb3RhdGVEZXB0aCArICdweCkgcm90YXRlM2Qo
MCwgMSwgMCwgJyArIGdDdXJZUm90YXRpb24gKyAncmFkKSB0cmFuc2xhdGUzZCgwLCAwLCAnICsg
KC1rUm90YXRlRGVwdGgpICsgJ3B4KSc7Cn0KCmZ1bmN0aW9uIHJvdGF0ZVJpZ2h0KCkKewogIHZh
ciB0dXJudGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHVybnRhYmxlJyk7CiAgZ0N1
cllSb3RhdGlvbiAtPSAwLjI7CiAgdHVybnRhYmxlLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICd0
cmFuc2xhdGUzZCgwLCAwLCAnICsga1JvdGF0ZURlcHRoICsgJ3B4KSByb3RhdGUzZCgwLCAxLCAw
LCAnICsgZ0N1cllSb3RhdGlvbiArICdyYWQpIHRyYW5zbGF0ZTNkKDAsIDAsICcgKyAoLWtSb3Rh
dGVEZXB0aCkgKyAncHgpJzsKfQoKZnVuY3Rpb24gaGFuZGxlS2V5KGV2ZW50KQp7CiAgc3dpdGNo
KGV2ZW50LmtleUNvZGUpCiAgewogICAgY2FzZSAzOTogLy8gcmlnaHQKICAgICAgcm90YXRlUmln
aHQoKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAzNzogLy8gbGVmdAogICAgICByb3RhdGVMZWZ0
KCk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMzg6IC8vIHVwCiAgICAgIGJyZWFrOwoKICAgIGNh
c2UgNDA6IC8vIGRvd24KICAgICAgYnJlYWs7CgogICAgY2FzZSAzMjogLy8gc3BhY2ViYXIKICAg
ICAgdG9nZ2xlVmlld01vZGUoKTsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgYnJl
YWs7CiAgfQp9CgpmdW5jdGlvbiBvblBhZ2VMb2FkKCkKewogICAgd2luZG93LnJlc2l6ZVRvKDEw
MDAsIDEwMDApOwogICAgCiAgICBjb25zdCBrVGVzdGluZyA9IDE7CiAgICBpZiAoa1Rlc3Rpbmcp
CiAgICAgIHNlbmRGbGlja3JTZWFyY2goJ2NhdHMnKTsKfQoKZG9jdW1lbnQub25rZXl1cCA9IGhh
bmRsZUtleTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvblBhZ2VMb2FkLCBmYWxz
ZSk7Cgo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KCiAgPGRpdiBpZD0ic3RhZ2UiPgogICAgPGRp
diBpZD0idHVybnRhYmxlIj4KICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KICAgIDwv
ZGl2PgogIDwvZGl2PgoKICA8ZGl2IGlkPSJodWQiPgogICAgU2VhcmNoOiA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InNlYXJjaC1maWVsZCIgb25jaGFuZ2U9ImRvU2VhcmNoKCkiPgogIDwvZGl2Pgo8
L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33840</attachid>
            <date>2009-07-30 14:41:11 -0700</date>
            <delta_ts>2009-07-30 14:46:56 -0700</delta_ts>
            <desc>Patch, changelog</desc>
            <filename>27856_patch.txt</filename>
            <type>text/plain</type>
            <size>3316</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzRiMzhiYS4uY2FhYjNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wNy0zMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbmltYXRpb24gd2l0aCBhIHRpbWluZyBmdW5jdGlvbiBwcm9w
ZXJ0eSBpbiBhIGtleWZyYW1lIGVhdHMgQ1BVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwNDQ3
Nj4gQW5pbWF0aW9uIGRlbW8gdXNlcyBsb3RzIG9mIENQVQorICAgICAgICAKKyAgICAgICAgRG9u
J3QgaW5jbHVkZSBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIGluIHRoZSBsaXN0IG9mIHByb3Bl
cnRpZXMgdG8KKyAgICAgICAgYW5pbWF0ZSBpbiBhIGtleWZyYW1lIGFuaW1hdGlvbiwgYmVjYXVz
ZSB0aGlzIHByb3BlcnR5IGlzIG5vdCBhbmltYXRlZDsKKyAgICAgICAgaW5zdGVhZCwgaXQgZGVz
Y3JpYmVzIHRoZSB0aW1pbmcgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhpcyBrZXlmcmFtZS4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgcHJldmVudHMgdGhlIGFuaW1hdGlvbiBjb2RlIGZyb20gdGhp
bmtpbmcgdGhhdCB0aGVyZSdzIGEgcHJvcGVydHkKKyAgICAgICAgdGhhdCBpdCBoYXMgdG8gc29m
dHdhcmUtYW5pbWF0ZSwgYW5kIHRodXMgZmlyaW5nIHRoZSBhbmltYXRpb24gdGltZXIgZnJlcXVl
bnRseS4KKyAgICAgICAgCisgICAgICAgIE5vdCB0ZXN0YWJsZSBiZWNhdXNlIHRoZXJlIGlzIG5v
IHZpc2libGUgaW1wYWN0LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6a2V5ZnJhbWVTdHlsZXNGb3JBbmlt
YXRpb24pOiBEb24ndCBhZGQKKyAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1p
bmdGdW5jdGlvbiB0byB0aGUgbGlzdCBvZiBwcm9wZXJ0aWVzIHRvIGFuaW1hdGUuCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lQW5pbWF0aW9uOjpnZXRLZXlmcmFtZUFuaW1hdGlvbkludGVydmFsKTogQWRk
IGEgY29tbWVudAorCiAyMDA5LTA3LTMwICBNaWtlIEZlbnRvbiAgPG1pa2UuZmVudG9uQHRvcmNo
bW9iaWxlLmNvbT4KIAogICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggZDU3NzE3Yi4uMDhhNGM2MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKQEAgLTEzMTgsOCArMTMxOCwxMyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Omtl
eWZyYW1lU3R5bGVzRm9yQW5pbWF0aW9uKEVsZW1lbnQqIGUsIGNvbnN0IFJlbmRlclN0eWxlKgog
CiAgICAgICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1hdGluZyBwcm9wZXJ0aWVzIHRvIHRoZSBsaXN0
CiAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBrZi0+c3R5bGUoKS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0ga2YtPnN0eWxlKCktPmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkKLSAgICAgICAgICAgIGxpc3QuYWRkUHJvcGVydHkoKCppdCkuaWQoKSk7CisgICAg
ICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
a2YtPnN0eWxlKCktPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgaW50
IHByb3BlcnR5ID0gKCppdCkuaWQoKTsKKyAgICAgICAgICAgIC8vIFRpbWluZy1mdW5jdGlvbiB3
aXRoaW4ga2V5ZnJhbWVzIGlzIHNwZWNpYWwsIGJlY2F1c2UgaXQgaXMgbm90IGFuaW1hdGVkOyBp
dCBqdXN0CisgICAgICAgICAgICAvLyBkZXNjcmliZXMgdGhlIHRpbWluZyBmdW5jdGlvbiBiZXR3
ZWVuIHRoaXMga2V5ZnJhbWUgYW5kIHRoZSBuZXh0LgorICAgICAgICAgICAgaWYgKHByb3BlcnR5
ICE9IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24pCisgICAgICAgICAg
ICAgICAgbGlzdC5hZGRQcm9wZXJ0eSgoKml0KS5pZCgpKTsKKyAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgLy8gQWRkIHRoaXMga2V5ZnJhbWUgc3R5bGUgdG8gYWxsIHRoZSBpbmRpY2F0ZWQg
a2V5IHRpbWVzCiAgICAgICAgIFZlY3RvcjxmbG9hdD4ga2V5czsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggM2Y4NGRlMS4uY2I4MmQ5YiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTkzLDgg
KzkzLDEwIEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmdldEtleWZyYW1lQW5pbWF0aW9uSW50
ZXJ2YWwoY29uc3QgUmVuZGVyU3R5bGUqJiBmcm9tU3R5CiAgICAgICAgIHJldHVybjsKIAogICAg
IGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IDA7Ci0gICAgaWYgKGZyb21T
dHlsZS0+YW5pbWF0aW9ucygpICYmIGZyb21TdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCkgPiAw
KQorICAgIGlmIChmcm9tU3R5bGUtPmFuaW1hdGlvbnMoKSAmJiBmcm9tU3R5bGUtPmFuaW1hdGlv
bnMoKS0+c2l6ZSgpID4gMCkgeworICAgICAgICAvLyBXZSBnZXQgdGhlIHRpbWluZyBmdW5jdGlv
biBmcm9tIHRoZSBmaXJzdCBhbmltYXRpb24sIGJlY2F1c2Ugd2UndmUgc3ludGhlc2l6ZWQgYSBS
ZW5kZXJTdHlsZSBmb3IgZWFjaCBrZXlmcmFtZS4KICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSAm
KGZyb21TdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oMCktPnRpbWluZ0Z1bmN0aW9uKCkp
OworICAgIH0KIAogICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCB0aW1pbmdGdW5j
dGlvbik7CiB9Cg==
</data>
<flag name="review"
          id="18036"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>