<?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>28266</bug_id>
          
          <creation_ts>2009-08-13 10:20:43 -0700</creation_ts>
          <short_desc>CSS Animation does not animate multiple background positions</short_desc>
          <delta_ts>2009-08-15 18:32:42 -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>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Dickens">josh</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139915</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Dickens">josh</who>
    <bug_when>2009-08-13 10:20:43 -0700</bug_when>
    <thetext>When multiple background images are defined on an element, it is currently only possible to animate the first background image via CSS Animation keyframes.  

Steps to reproduce:

1) Create an element with the &apos;animated&apos; class assigned
2) define the class to use multiple background images
3) add an animation keyframes set that animates the second background image&apos;s x-position

Results
Background position does not animate

Expected
Background position should animate

Sample CSS:
.animated {
		background-repeat: repeat-x;
          	background-image: -webkit-gradient(linear, 0 100%, 0 0, from(rgba(255,255,255,0)), to(rgba(255,255,255, 1))), url(&apos;someimage.png&apos;);
  		 -webkit-animation-name: &apos;my-animation&apos;;
          	 -webkit-animation-duration: .3s;
          	  -webkit-animation-iteration-count: infinite;
          	  }

 @-webkit-keyframes my-animation {
          	    from {
          	      -webkit-animation-timing-function: linear;
          	      background-position-x: 0px, 0px;
			// alternatively: background-position: 0px 0px, 0px 0px;
                }
                to {
                  -webkit-animation-timing-function: linear;
                  background-position-x: 0px, 20px;
		// alternatively: background-position: 0px 0px, 20px 0px;
                }
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139947</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-13 11:29:02 -0700</bug_when>
    <thetext>There are several other properties for which we only animate the first one (e.g. shadows). We should fix them all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140245</commentid>
    <comment_count>2</comment_count>
      <attachid>34844</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-14 09:11:56 -0700</bug_when>
    <thetext>Created attachment 34844
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140471</commentid>
    <comment_count>3</comment_count>
      <attachid>34900</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-15 11:18:35 -0700</bug_when>
    <thetext>Created attachment 34900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140475</commentid>
    <comment_count>4</comment_count>
      <attachid>34903</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-15 12:24:59 -0700</bug_when>
    <thetext>Created attachment 34903
Patch for multiple shadow animation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140494</commentid>
    <comment_count>5</comment_count>
      <attachid>34903</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-15 16:36:51 -0700</bug_when>
    <thetext>Comment on attachment 34903
Patch for multiple shadow animation

This patch is reversing the shadows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140496</commentid>
    <comment_count>6</comment_count>
      <attachid>34907</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-15 16:39:38 -0700</bug_when>
    <thetext>Created attachment 34907
Patch for multiple shadow animation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140505</commentid>
    <comment_count>7</comment_count>
      <attachid>34907</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-08-15 17:57:35 -0700</bug_when>
    <thetext>Comment on attachment 34907
Patch for multiple shadow animation

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140506</commentid>
    <comment_count>8</comment_count>
      <attachid>34900</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-08-15 18:02:19 -0700</bug_when>
    <thetext>Comment on attachment 34900
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140507</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-15 18:32:42 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/47331
http://trac.webkit.org/changeset/47332</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34844</attachid>
            <date>2009-08-14 09:11:56 -0700</date>
            <delta_ts>2009-08-15 11:18:35 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>28266_wip.txt</filename>
            <type>text/plain</type>
            <size>7554</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IDc1MDNmMGEuLjVk
YmNhYzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtMzY1
LDYgKzM2NSwxMjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIChSZW5kZXJTdHlsZTo6Km1fc2V0dGVy
KShjb25zdCBDb2xvciYpOwogfTsKIAorLy8gV3JhcHBlciBiYXNlIGNsYXNzIGZvciBhbiBhbmlt
YXRhYmxlIHByb3BlcnR5IGluIGEgRmlsbExheWVyCitjbGFzcyBGaWxsTGF5ZXJQcm9wZXJ0eVdy
YXBwZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJCYXNlKGlu
dCBwcm9wKQorICAgICAgICA6IG1fcHJvcChwcm9wKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5GaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJCYXNlKCkgeyB9CisgICAgCisgICAgaW50IHBy
b3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZXF1
YWxzKGNvbnN0IEZpbGxMYXllciogYSwgY29uc3QgRmlsbExheWVyKiBiKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIEZpbGxMYXll
ciogZHN0LCBjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYiwgZG91YmxlIHBy
b2dyZXNzKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CisgICAgaW50IG1fcHJvcDsKK307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyR2V0dGVy
IDogcHVibGljIEZpbGxMYXllclByb3BlcnR5V3JhcHBlckJhc2UgeworcHVibGljOgorICAgIEZp
bGxMYXllclByb3BlcnR5V3JhcHBlckdldHRlcihpbnQgcHJvcCwgVCAoRmlsbExheWVyOjoqZ2V0
dGVyKSgpIGNvbnN0KQorICAgICAgICA6IEZpbGxMYXllclByb3BlcnR5V3JhcHBlckJhc2UocHJv
cCkKKyAgICAgICAgLCBtX2dldHRlcihnZXR0ZXIpCisgICAgeworICAgIH0KKworICAgIHZpcnR1
YWwgYm9vbCBlcXVhbHMoY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIpIGNv
bnN0CisgICAgeworICAgICAgIC8vIElmIHRoZSBzdHlsZSBwb2ludGVycyBhcmUgdGhlIHNhbWUs
IGRvbid0IGJvdGhlciBkb2luZyB0aGUgdGVzdC4KKyAgICAgICAvLyBJZiBlaXRoZXIgaXMgbnVs
bCwgcmV0dXJuIGZhbHNlLiBJZiBib3RoIGFyZSBudWxsLCByZXR1cm4gdHJ1ZS4KKyAgICAgICBp
ZiAoKCFhICYmICFiKSB8fCBhID09IGIpCisgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
IGlmICghYSB8fCAhYikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IChhLT4qbV9nZXR0ZXIpKCkgPT0gKGItPiptX2dldHRlcikoKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBUIChGaWxsTGF5ZXI6OiptX2dldHRlcikoKSBjb25zdDsKK307CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBUPgorY2xhc3MgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyIDogcHVibGljIEZp
bGxMYXllclByb3BlcnR5V3JhcHBlckdldHRlcjxUPiB7CitwdWJsaWM6CisgICAgRmlsbExheWVy
UHJvcGVydHlXcmFwcGVyKGludCBwcm9wLCBUIChGaWxsTGF5ZXI6OipnZXR0ZXIpKCkgY29uc3Qs
IHZvaWQgKEZpbGxMYXllcjo6KnNldHRlcikoVCkpCisgICAgICAgIDogRmlsbExheWVyUHJvcGVy
dHlXcmFwcGVyR2V0dGVyPFQ+KHByb3AsIGdldHRlcikKKyAgICAgICAgLCBtX3NldHRlcihzZXR0
ZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5p
bWF0aW9uQmFzZSogYW5pbSwgRmlsbExheWVyKiBkc3QsIGNvbnN0IEZpbGxMYXllciogYSwgY29u
c3QgRmlsbExheWVyKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgeworICAgICAgICAo
ZHN0LT4qbV9zZXR0ZXIpKGJsZW5kRnVuYyhhbmltLCAoYS0+KkZpbGxMYXllclByb3BlcnR5V3Jh
cHBlckdldHRlcjxUPjo6bV9nZXR0ZXIpKCksIChiLT4qRmlsbExheWVyUHJvcGVydHlXcmFwcGVy
R2V0dGVyPFQ+OjptX2dldHRlcikoKSwgcHJvZ3Jlc3MpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIChGaWxsTGF5ZXI6OiptX3NldHRlcikoVCk7Cit9OworCisKK2NsYXNzIEJhY2tn
cm91bmRQcm9wZXJ0eVdyYXBwZXIgOiBwdWJsaWMgUHJvcGVydHlXcmFwcGVyQmFzZSB7CitwdWJs
aWM6CisgICAgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBlcihpbnQgcHJvcCkKKyAgICAgICAgOiBQ
cm9wZXJ0eVdyYXBwZXJCYXNlKHByb3ApCisgICAgeworICAgICAgICBzd2l0Y2ggKHByb3ApIHsK
KyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YOgorICAgICAg
ICAgICAgICAgIG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyID0gbmV3IEZpbGxMYXllclByb3Bl
cnR5V3JhcHBlcjxMZW5ndGg+KHByb3AsICZGaWxsTGF5ZXI6OnhQb3NpdGlvbiwgJkZpbGxMYXll
cjo6c2V0WFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25ZOgorICAgICAgICAgICAgICAgIG1fZmls
bExheWVyUHJvcGVydHlXcmFwcGVyID0gbmV3IEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxMZW5n
dGg+KHByb3AsICZGaWxsTGF5ZXI6OnlQb3NpdGlvbiwgJkZpbGxMYXllcjo6c2V0WVBvc2l0aW9u
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCYWNrZ3JvdW5kU2l6ZToKKyAgICAgICAgICAgICAgICBtX2ZpbGxMYXllclByb3BlcnR5
V3JhcHBlciA9IG5ldyBGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4ocHJvcCwg
JkZpbGxMYXllcjo6c2l6ZSwgJkZpbGxMYXllcjo6c2V0U2l6ZSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0
IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICB7CisgICAg
ICAgIGNvbnN0IEZpbGxMYXllciogZnJvbUxheWVyID0gYS0+YmFja2dyb3VuZExheWVycygpOwor
ICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIHRvTGF5ZXIgPSBiLT5iYWNrZ3JvdW5kTGF5ZXJzKCk7
CisKKyAgICAgICAgd2hpbGUgKGZyb21MYXllciAmJiB0b0xheWVyKSB7CisgICAgICAgICAgICBp
ZiAoIW1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyLT5lcXVhbHMoZnJvbUxheWVyLCB0b0xheWVy
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGZyb21MYXllciA9IGZyb21MYXllci0+bmV4dCgpOworICAgICAgICAgICAgdG9MYXllciA9
IHRvTGF5ZXItPm5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBS
ZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUq
IGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB7CisgICAgICAgIGNvbnN0IEZpbGxMYXll
ciogYUxheWVyID0gYS0+YmFja2dyb3VuZExheWVycygpOworICAgICAgICBjb25zdCBGaWxsTGF5
ZXIqIGJMYXllciA9IGItPmJhY2tncm91bmRMYXllcnMoKTsKKyAgICAgICAgRmlsbExheWVyKiBk
c3RMYXllciA9IGRzdC0+YWNjZXNzQmFja2dyb3VuZExheWVycygpOworCisgICAgICAgIHdoaWxl
IChhTGF5ZXIgJiYgYkxheWVyICYmIGRzdExheWVyKSB7CisgICAgICAgICAgICBtX2ZpbGxMYXll
clByb3BlcnR5V3JhcHBlci0+YmxlbmQoYW5pbSwgZHN0TGF5ZXIsIGFMYXllciwgYkxheWVyLCBw
cm9ncmVzcyk7CisgICAgICAgICAgICBhTGF5ZXIgPSBhTGF5ZXItPm5leHQoKTsKKyAgICAgICAg
ICAgIGJMYXllciA9IGJMYXllci0+bmV4dCgpOworICAgICAgICAgICAgZHN0TGF5ZXIgPSBkc3RM
YXllci0+bmV4dCgpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIEZpbGxMYXll
clByb3BlcnR5V3JhcHBlckJhc2UqIG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyOworfTsKKwog
Y2xhc3MgU2hvcnRoYW5kUHJvcGVydHlXcmFwcGVyIDogcHVibGljIFByb3BlcnR5V3JhcHBlckJh
c2UgewogcHVibGljOgogICAgIFNob3J0aGFuZFByb3BlcnR5V3JhcHBlcihpbnQgcHJvcGVydHks
IGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGxvbmdoYW5kKQpAQCAtNDQyLDEzICs1NTYsMTQg
QEAgc3RhdGljIHZvaWQgZW5zdXJlUHJvcGVydHlNYXAoKQogICAgICAgICBnUHJvcGVydHlXcmFw
cGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgQ29sb3ImPihDU1NQcm9wZXJ0
eUNvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbG9yKSk7CiAK
ICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGNv
bnN0IENvbG9yJj4oQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6YmFj
a2dyb3VuZENvbG9yLCAmUmVuZGVyU3R5bGU6OnNldEJhY2tncm91bmRDb2xvcikpOwotICAgICAg
ICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihD
U1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblgsICZSZW5kZXJTdHlsZTo6YmFja2dyb3VuZFhQ
b3NpdGlvbiwgJlJlbmRlclN0eWxlOjpzZXRCYWNrZ3JvdW5kWFBvc2l0aW9uKSk7Ci0gICAgICAg
IGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENT
U1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSwgJlJlbmRlclN0eWxlOjpiYWNrZ3JvdW5kWVBv
c2l0aW9uLCAmUmVuZGVyU3R5bGU6OnNldEJhY2tncm91bmRZUG9zaXRpb24pKTsKLSAgICAgICAg
Z1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+
KENTU1Byb3BlcnR5V2Via2l0QmFja2dyb3VuZFNpemUsICZSZW5kZXJTdHlsZTo6YmFja2dyb3Vu
ZFNpemUsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dyb3VuZFNpemUpKTsKIAotICAgICAgICBnUHJv
cGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblgsICZSZW5kZXJTdHlsZTo6bWFza1hQb3NpdGlvbiwgJlJl
bmRlclN0eWxlOjpzZXRNYXNrWFBvc2l0aW9uKSk7Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJz
LT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3BlcnR5V2Via2l0TWFz
a1Bvc2l0aW9uWSwgJlJlbmRlclN0eWxlOjptYXNrWVBvc2l0aW9uLCAmUmVuZGVyU3R5bGU6OnNl
dE1hc2tZUG9zaXRpb24pKTsKLSAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcg
UHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+KENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsICZS
ZW5kZXJTdHlsZTo6bWFza1NpemUsICZSZW5kZXJTdHlsZTo6c2V0TWFza1NpemUpKTsKKyAgICAg
ICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBl
cihDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblgpKTsKKyAgICAgICAgZ1Byb3BlcnR5V3Jh
cHBlcnMtPmFwcGVuZChuZXcgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eUJh
Y2tncm91bmRQb3NpdGlvblkpKTsKKyAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChu
ZXcgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRT
aXplKSk7CisKKyAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgQmFja2dyb3Vu
ZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblgpKTsKKyAgICAg
ICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBl
cihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblkpKTsKKyAgICAgICAgZ1Byb3BlcnR5V3Jh
cHBlcnMtPmFwcGVuZChuZXcgQmFja2dyb3VuZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eVdl
YmtpdE1hc2tTaXplKSk7CiAKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcg
UHJvcGVydHlXcmFwcGVyPGludD4oQ1NTUHJvcGVydHlGb250U2l6ZSwgJlJlbmRlclN0eWxlOjpm
b250U2l6ZSwgJlJlbmRlclN0eWxlOjpzZXRCbGVuZGVkRm9udFNpemUpKTsKICAgICAgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2lnbmVkIHNob3J0
PihDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxlOjpjb2x1bW5S
dWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVdpZHRoKSk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IGMzOTQ0YWQuLmNkOGNmOTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGlz
U2l6ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVNldDsgfQogICAgIAogICAgIHZvaWQgc2V0
SW1hZ2UoU3R5bGVJbWFnZSogaSkgeyBtX2ltYWdlID0gaTsgbV9pbWFnZVNldCA9IHRydWU7IH0K
LSAgICB2b2lkIHNldFhQb3NpdGlvbihjb25zdCBMZW5ndGgmIGwpIHsgbV94UG9zaXRpb24gPSBs
OyBtX3hQb3NTZXQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRZUG9zaXRpb24oY29uc3QgTGVuZ3Ro
JiBsKSB7IG1feVBvc2l0aW9uID0gbDsgbV95UG9zU2V0ID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0
WFBvc2l0aW9uKExlbmd0aCBsKSB7IG1feFBvc2l0aW9uID0gbDsgbV94UG9zU2V0ID0gdHJ1ZTsg
fQorICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsKSB7IG1feVBvc2l0aW9uID0gbDsgbV95
UG9zU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0QXR0YWNobWVudChFRmlsbEF0dGFjaG1lbnQg
YXR0YWNobWVudCkgeyBtX2F0dGFjaG1lbnQgPSBhdHRhY2htZW50OyBtX2F0dGFjaG1lbnRTZXQg
PSB0cnVlOyB9CiAgICAgdm9pZCBzZXRDbGlwKEVGaWxsQm94IGIpIHsgbV9jbGlwID0gYjsgbV9j
bGlwU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0T3JpZ2luKEVGaWxsQm94IGIpIHsgbV9vcmln
aW4gPSBiOyBtX29yaWdpblNldCA9IHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34900</attachid>
            <date>2009-08-15 11:18:35 -0700</date>
            <delta_ts>2009-08-15 18:02:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>28266_patch.txt</filename>
            <type>text/plain</type>
            <size>20666</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDRjYTIwLi42MzRlMDg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0cmFuc2l0aW9ucyB3b3Jr
IGZvciBwb3NpdGlvbiBhbmQgc2l6ZSBvZiBtdWx0aXBsZSBiYWNrZ3JvdW5kcyBhbmQgbWFza3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2Ngor
CisgICAgICAgICogdHJhbnNpdGlvbnMvbXVsdGlwbGUtYmFja2dyb3VuZC1zaXplLXRyYW5zaXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvbXVsdGlwbGUt
YmFja2dyb3VuZC1zaXplLXRyYW5zaXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5z
aXRpb25zL211bHRpcGxlLWJhY2tncm91bmQtdHJhbnNpdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNrZ3JvdW5kLXRyYW5zaXRpb25z
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL211bHRpcGxlLW1hc2stdHJhbnNp
dGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBs
ZS1tYXNrLXRyYW5zaXRpb25zLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA4LTE0ICBKb24gSG9uZXlj
dXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHR3byB0ZXN0cyBm
cm9tIHRoZSBza2lwcGVkIGxpc3QgdGhhdCBkb24ndCBleGlzdC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL211bHRpcGxlLWJhY2tncm91bmQtc2l6ZS10cmFuc2l0aW9ucy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNrZ3JvdW5k
LXNpemUtdHJhbnNpdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJjZTFkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9tdWx0aXBsZS1iYWNrZ3JvdW5kLXNpemUtdHJhbnNpdGlvbnMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorUEFTUyAtICItd2Via2l0LWJhY2tncm91bmQtc2l6ZSIgcHJvcGVydHkg
Zm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyNSwyNQor
UEFTUyAtICItd2Via2l0LW1hc2stc2l6ZSIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0
IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjUsMjUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtYmFja2dyb3VuZC1zaXplLXRyYW5zaXRpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNrZ3JvdW5kLXNpemUtdHJh
bnNpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGNjOTQz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtYmFj
a2dyb3VuZC1zaXplLXRyYW5zaXRpb25zLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBF
PgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPmJhY2tncm91bmQtc2l6ZSBh
bmQgbWFzay1zaXplIHRyYW5zaXRpb25zIG9uIG11bHRpcGxlIGJhY2tncm91bmRzL21hc2tzPC90
aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94
IHsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJn
aW46IDEwcHg7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgIGJhY2tncm91
bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBl
YXQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtp
dC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtpdC10cmFu
c2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLXNpemUsIC13ZWJraXQtbWFzay1zaXplOworICAg
IH0KKyAgICAKKyAgICAjYm94IHsKKyAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vZmFz
dC9iYWNrZ3JvdW5kcy9yZXBlYXQvcmVzb3VyY2VzL2dyYWRpZW50LmdpZicpLCB1cmwoJy4uL2Zh
c3QvYmFja2dyb3VuZHMvcmVwZWF0L3Jlc291cmNlcy9ncmFkaWVudC5naWYnKTsKKyAgICAgIGJh
Y2tncm91bmQtcG9zaXRpb246IDAgMCwgNTBweCA1MHB4OworICAgICAgLXdlYmtpdC1iYWNrZ3Jv
dW5kLXNpemU6IDAlIDAlLCA1MCUgNTAlOworICAgIH0KKyAgICAKKyAgICAjYm94LmZpbmFsIHsK
KyAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiA1MCUgNTAlLCAwJSAwJTsKKyAgICB9Cisg
ICAgCisgICAgI2JveDEgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgICAgIC13
ZWJraXQtbWFzay1pbWFnZTogdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNvdXJj
ZXMvZ3JhZGllbnQuZ2lmJyksIHVybCgnLi4vZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvcmVzb3Vy
Y2VzL2dyYWRpZW50LmdpZicpOworICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiAwIDAsIDUw
cHggNTBweDsKKyAgICAgIC13ZWJraXQtbWFzay1zaXplOiAwJSAwJSwgNTAlIDUwJTsKKyAgICB9
CisKKyAgICAjYm94MS5maW5hbCB7CisgICAgICAtd2Via2l0LW1hc2stc2l6ZTogNTAlIDUwJSwg
MCUgMCU7CisgICAgfQorCisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJ0cmFuc2l0aW9uLXRl
c3QtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9z
Y3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
CisKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFt0aW1lLCBlbGVtZW50
LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFswLjUsICdi
b3gnLCAnLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemUnLCBbMjUsIDI1XSwgNF0sCisgICAgICBbMC41
LCAnYm94MScsICctd2Via2l0LW1hc2stc2l6ZScsIFsyNSwgMjVdLCA0XSwKKyAgICBdOworICAK
KyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdib3gnKS5jbGFzc05hbWUgPSAnYm94IGZpbmFsJzsKKyAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdib3gxJykuY2xhc3NOYW1lID0gJ2JveCBmaW5hbCc7CisgICAgfQorICAK
KyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgc2V0dXBUZXN0LCB0cnVlKTsK
KyAgICAKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworICA8ZGl2IGlkPSJib3giIGNs
YXNzPSJib3giPjwvZGl2PgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKwor
ICA8ZGl2IGlkPSJyZXN1bHQiPgorICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtYmFja2dyb3VuZC10cmFuc2l0
aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNr
Z3JvdW5kLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MGE0NDIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvbXVsdGlwbGUtYmFja2dyb3VuZC10cmFuc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitQQVNTIC0gImJhY2tncm91bmQtcG9zaXRpb24iIHByb3BlcnR5IGZvciAiYm94
IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAsNDAKK1BBU1MgLSAi
YmFja2dyb3VuZC1wb3NpdGlvbiIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDAuNXMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAsNDAKK1BBU1MgLSAiYmFja2dyb3VuZC1wb3NpdGlv
biIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9z
ZSB0bzogNDAsNDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlw
bGUtYmFja2dyb3VuZC10cmFuc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
bXVsdGlwbGUtYmFja2dyb3VuZC10cmFuc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjJjMGUyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNrZ3JvdW5kLXRyYW5zaXRpb25zLmh0bWwKQEAgLTAsMCAr
MSw4MCBAQAorPCFET0NUWVBFPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxl
PmJhY2tncm91bmQtcG9zaXRpb24gYW5kIHNpemUgdHJhbnNpdGlvbnM8L3RpdGxlPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5v
LXJlcGVhdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7CisgICAgICAt
d2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0
LXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtcG9zaXRpb247CisgICAgfQorICAgIAor
ICAgICNib3ggeworICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9mYXN0L2JhY2tncm91
bmRzL3JlcGVhdC9yZXNvdXJjZXMvZ3JhZGllbnQuZ2lmJyksIHVybCgnLi4vZmFzdC9iYWNrZ3Jv
dW5kcy9yZXBlYXQvcmVzb3VyY2VzL2dyYWRpZW50LmdpZicpOworICAgICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogMCAwLCAwIDgwcHg7CisgICAgfQorICAgIAorICAgICNib3guZmluYWwgeworICAg
ICAgYmFja2dyb3VuZC1wb3NpdGlvbjogODBweCA4MHB4LCA4MHB4IDA7CisgICAgfQorCisgICAg
LyogTWlzbWF0Y2hlZCBsYXllcnMgKi8KKyAgICAjYm94MiB7CisgICAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoJy4uL2Zhc3QvYmFja2dyb3VuZHMvcmVwZWF0L3Jlc291cmNlcy9ncmFkaWVudC5n
aWYnKSwgdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNvdXJjZXMvZ3JhZGllbnQu
Z2lmJyk7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgODBweDsKKyAgICB9Cisg
ICAgCisgICAgI2JveDIuZmluYWwgeworICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9m
YXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNvdXJjZXMvZ3JhZGllbnQuZ2lmJyk7CisgICAgICBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiA4MHB4IDgwcHg7CisgICAgfQorCisgICAgI2JveDMgeworICAg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNv
dXJjZXMvZ3JhZGllbnQuZ2lmJyk7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MHB4IDgw
cHg7CisgICAgfQorICAgIAorICAgICNib3gzLmZpbmFsIHsKKyAgICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgnLi4vZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvcmVzb3VyY2VzL2dyYWRpZW50Lmdp
ZicpLCB1cmwoJy4uL2Zhc3QvYmFja2dyb3VuZHMvcmVwZWF0L3Jlc291cmNlcy9ncmFkaWVudC5n
aWYnKTsKKyAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMCA4MHB4OworICAgIH0KKwor
ICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0idHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4
cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbMC41LCAnYm94JywgJ2JhY2tncm91bmQt
cG9zaXRpb24nLCBbNDAsIDQwXSwgMl0sCisgICAgICBbMC41LCAnYm94MicsICdiYWNrZ3JvdW5k
LXBvc2l0aW9uJywgWzQwLCA0MF0sIDJdLAorICAgICAgWzAuNSwgJ2JveDMnLCAnYmFja2dyb3Vu
ZC1wb3NpdGlvbicsIFs0MCwgNDBdLCAyXSwKKyAgICBdOworICAKKyAgICBmdW5jdGlvbiBzZXR1
cFRlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFz
c05hbWUgPSAnYm94IGZpbmFsJzsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gy
JykuY2xhc3NOYW1lID0gJ2JveCBmaW5hbCc7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYm94MycpLmNsYXNzTmFtZSA9ICdib3ggZmluYWwnOworICAgIH0KKyAgCisgICAgcnVuVHJh
bnNpdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHNldHVwVGVzdCwgdHJ1ZSk7CisgICAgCisgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKyAgPGRpdiBpZD0iYm94IiBjbGFzcz0iYm94Ij48
L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCI+PC9kaXY+CisgIDxkaXYgaWQ9ImJv
eDMiIGNsYXNzPSJib3giPjwvZGl2PgorCisgIDxkaXYgaWQ9InJlc3VsdCI+CisgIDwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9t
dWx0aXBsZS1tYXNrLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL211bHRpcGxlLW1hc2stdHJhbnNpdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MGNmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1tYXNrLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1BBU1MgLSAiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiBwcm9wZXJ0
eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQwLDQw
CitQQVNTIC0gIi13ZWJraXQtbWFzay1wb3NpdGlvbiIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVt
ZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAsNDAKK1BBU1MgLSAiLXdlYmtp
dC1tYXNrLXBvc2l0aW9uIiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC41cyBzYXcg
c29tZXRoaW5nIGNsb3NlIHRvOiA0MCw0MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy9tdWx0aXBsZS1tYXNrLXRyYW5zaXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy9tdWx0aXBsZS1tYXNrLXRyYW5zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYmVlZThkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL211bHRpcGxlLW1hc2stdHJhbnNpdGlvbnMuaHRtbApAQCAtMCwwICsxLDgw
IEBACis8IURPQ1RZUEU+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8dGl0bGU+bWFz
ay1wb3NpdGlvbiBhbmQgc2l6ZSB0cmFuc2l0aW9uczwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBoZWlnaHQ6IDEwMHB4
OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JheTsKKyAgICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDsK
KyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7CisgICAgICAtd2Via2l0LXRy
YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tcHJvcGVydHk6IC13ZWJraXQtbWFzay1wb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgI2Jv
eCB7CisgICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgnLi4vZmFzdC9iYWNrZ3JvdW5kcy9y
ZXBlYXQvcmVzb3VyY2VzL2dyYWRpZW50LmdpZicpLCB1cmwoJy4uL2Zhc3QvYmFja2dyb3VuZHMv
cmVwZWF0L3Jlc291cmNlcy9ncmFkaWVudC5naWYnKTsKKyAgICAgIC13ZWJraXQtbWFzay1wb3Np
dGlvbjogMCAwLCAwIDgwcHg7CisgICAgfQorICAgIAorICAgICNib3guZmluYWwgeworICAgICAg
LXdlYmtpdC1tYXNrLXBvc2l0aW9uOiA4MHB4IDgwcHgsIDgwcHggMDsKKyAgICB9CisKKyAgICAv
KiBNaXNtYXRjaGVkIGxheWVycyAqLworICAgICNib3gyIHsKKyAgICAgIC13ZWJraXQtbWFzay1p
bWFnZTogdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNvdXJjZXMvZ3JhZGllbnQu
Z2lmJyksIHVybCgnLi4vZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvcmVzb3VyY2VzL2dyYWRpZW50
LmdpZicpOworICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiAwIDAsIDAgODBweDsKKyAgICB9
CisgICAgCisgICAgI2JveDIuZmluYWwgeworICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwo
Jy4uL2Zhc3QvYmFja2dyb3VuZHMvcmVwZWF0L3Jlc291cmNlcy9ncmFkaWVudC5naWYnKTsKKyAg
ICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogODBweCA4MHB4OworICAgIH0KKworICAgICNib3gz
IHsKKyAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3Jl
cGVhdC9yZXNvdXJjZXMvZ3JhZGllbnQuZ2lmJyk7CisgICAgICAtd2Via2l0LW1hc2stcG9zaXRp
b246IDgwcHggODBweDsKKyAgICB9CisgICAgCisgICAgI2JveDMuZmluYWwgeworICAgICAgLXdl
YmtpdC1tYXNrLWltYWdlOiB1cmwoJy4uL2Zhc3QvYmFja2dyb3VuZHMvcmVwZWF0L3Jlc291cmNl
cy9ncmFkaWVudC5naWYnKSwgdXJsKCcuLi9mYXN0L2JhY2tncm91bmRzL3JlcGVhdC9yZXNvdXJj
ZXMvZ3JhZGllbnQuZ2lmJyk7CisgICAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IDAgMCwgMCA4
MHB4OworICAgIH0KKworICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0idHJhbnNpdGlvbi10ZXN0
LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgor
CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbdGltZSwgZWxlbWVudC1p
ZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbMC41LCAnYm94
JywgJy13ZWJraXQtbWFzay1wb3NpdGlvbicsIFs0MCwgNDBdLCA1XSwKKyAgICAgIFswLjUsICdi
b3gyJywgJy13ZWJraXQtbWFzay1wb3NpdGlvbicsIFs0MCwgNDBdLCA1XSwKKyAgICAgIFswLjUs
ICdib3gzJywgJy13ZWJraXQtbWFzay1wb3NpdGlvbicsIFs0MCwgNDBdLCA1XSwKKyAgICBdOwor
ICAKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKS5jbGFzc05hbWUgPSAnYm94IGZpbmFsJzsKKyAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gyJykuY2xhc3NOYW1lID0gJ2JveCBmaW5hbCc7CisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MycpLmNsYXNzTmFtZSA9ICdib3ggZmluYWwnOwor
ICAgIH0KKyAgCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHNldHVwVGVz
dCwgdHJ1ZSk7CisgICAgCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKyAgPGRpdiBp
ZD0iYm94IiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCI+
PC9kaXY+CisgIDxkaXYgaWQ9ImJveDMiIGNsYXNzPSJib3giPjwvZGl2PgorCisgIDxkaXYgaWQ9
InJlc3VsdCI+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU5MGMyMzMuLjk4OGM1MWEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDktMDgtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSB0cmFuc2l0aW9ucyB3b3JrIGZvciBwb3NpdGlvbiBhbmQgc2l6ZSBvZiBtdWx0aXBs
ZSBiYWNrZ3JvdW5kcyBhbmQgbWFza3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODI2NgorICAgICAgICAKKyAgICAgICAgTWFrZSBiYWNrZ3JvdW5k
LXBvc2l0aW9uLCBiYWNrZ3JvdW5kLXNpemUsIC13ZWJraXQtbWFzay1wb3NpdGlvbiBhbmQgLXdl
YmtpdC1tYXNrLXNpemUKKyAgICAgICAgcHJvcGVydGllcyBhbmltYXRhYmxlIHdpdGggbXVsdGlw
bGUgYmFja2dyb3VuZHMsIHJhdGhlciB0aGFuIGp1c3QgYW5pbWF0aW5nIHRoZSBmaXJzdCBvbmUu
CisKKyAgICAgICAgVGVzdHM6IHRyYW5zaXRpb25zL211bHRpcGxlLWJhY2tncm91bmQtc2l6ZS10
cmFuc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICB0cmFuc2l0aW9ucy9tdWx0aXBsZS1iYWNr
Z3JvdW5kLXRyYW5zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIHRyYW5zaXRpb25zL211bHRp
cGxlLW1hc2stdHJhbnNpdGlvbnMuaHRtbAorCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBw
ZXJCYXNlOjpGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGxMYXllclByb3BlcnR5V3JhcHBlckJhc2U6On5GaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJC
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllclByb3BlcnR5V3JhcHBlckdldHRlcjo6
RmlsbExheWVyUHJvcGVydHlXcmFwcGVyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxM
YXllclByb3BlcnR5V3JhcHBlckdldHRlcjo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGxMYXllclByb3BlcnR5V3JhcHBlcjo6RmlsbExheWVyUHJvcGVydHlXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllclByb3BlcnR5V3JhcHBlcjo6YmxlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyc1Byb3BlcnR5V3JhcHBlcjo6RmlsbExheWVyc1Byb3BlcnR5V3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVyOjplcXVh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyc1Byb3BlcnR5V3JhcHBlcjo6YmxlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlUHJvcGVydHlNYXApOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0
WFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0WVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0U2l6ZSk6CisKIDIwMDktMDgtMTUgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKaW5kZXggNzUwM2YwYS4uYjJlNTRmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwCkBAIC0zNjUsNiArMzY1LDEyNCBAQCBwcml2YXRlOgogICAgIHZvaWQgKFJl
bmRlclN0eWxlOjoqbV9zZXR0ZXIpKGNvbnN0IENvbG9yJik7CiB9OwogCisvLyBXcmFwcGVyIGJh
c2UgY2xhc3MgZm9yIGFuIGFuaW1hdGFibGUgcHJvcGVydHkgaW4gYSBGaWxsTGF5ZXIKK2NsYXNz
IEZpbGxMYXllclByb3BlcnR5V3JhcHBlckJhc2UgeworcHVibGljOgorICAgIEZpbGxMYXllclBy
b3BlcnR5V3JhcHBlckJhc2UoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5GaWxsTGF5
ZXJQcm9wZXJ0eVdyYXBwZXJCYXNlKCkgeyB9CisgICAgCisgICAgdmlydHVhbCBib29sIGVxdWFs
cyhjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBGaWxsTGF5ZXIq
IGRzdCwgY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIsIGRvdWJsZSBwcm9n
cmVzcykgY29uc3QgPSAwOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBGaWxs
TGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXIgOiBwdWJsaWMgRmlsbExheWVyUHJvcGVydHlXcmFw
cGVyQmFzZSB7CitwdWJsaWM6CisgICAgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyR2V0dGVyKFQg
KEZpbGxMYXllcjo6KmdldHRlcikoKSBjb25zdCkKKyAgICAgICAgOiBtX2dldHRlcihnZXR0ZXIp
CisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgRmlsbExheWVy
KiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIpIGNvbnN0CisgICAgeworICAgICAgIC8vIElmIHRoZSBz
dHlsZSBwb2ludGVycyBhcmUgdGhlIHNhbWUsIGRvbid0IGJvdGhlciBkb2luZyB0aGUgdGVzdC4K
KyAgICAgICAvLyBJZiBlaXRoZXIgaXMgbnVsbCwgcmV0dXJuIGZhbHNlLiBJZiBib3RoIGFyZSBu
dWxsLCByZXR1cm4gdHJ1ZS4KKyAgICAgICBpZiAoKCFhICYmICFiKSB8fCBhID09IGIpCisgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgIGlmICghYSB8fCAhYikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIChhLT4qbV9nZXR0ZXIpKCkgPT0gKGItPiptX2dl
dHRlcikoKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBUIChGaWxsTGF5ZXI6OiptX2dldHRl
cikoKSBjb25zdDsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgRmlsbExheWVy
UHJvcGVydHlXcmFwcGVyIDogcHVibGljIEZpbGxMYXllclByb3BlcnR5V3JhcHBlckdldHRlcjxU
PiB7CitwdWJsaWM6CisgICAgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyKFQgKEZpbGxMYXllcjo6
KmdldHRlcikoKSBjb25zdCwgdm9pZCAoRmlsbExheWVyOjoqc2V0dGVyKShUKSkKKyAgICAgICAg
OiBGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8VD4oZ2V0dGVyKQorICAgICAgICAsIG1f
c2V0dGVyKHNldHRlcikKKyAgICB7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgdm9pZCBibGVu
ZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBGaWxsTGF5ZXIqIGRzdCwgY29uc3QgRmlsbExh
eWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB7
CisgICAgICAgIChkc3QtPiptX3NldHRlcikoYmxlbmRGdW5jKGFuaW0sIChhLT4qRmlsbExheWVy
UHJvcGVydHlXcmFwcGVyR2V0dGVyPFQ+OjptX2dldHRlcikoKSwgKGItPipGaWxsTGF5ZXJQcm9w
ZXJ0eVdyYXBwZXJHZXR0ZXI8VD46Om1fZ2V0dGVyKSgpLCBwcm9ncmVzcykpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIHZvaWQgKEZpbGxMYXllcjo6Km1fc2V0dGVyKShUKTsKK307CisKKwor
Y2xhc3MgRmlsbExheWVyc1Byb3BlcnR5V3JhcHBlciA6IHB1YmxpYyBQcm9wZXJ0eVdyYXBwZXJC
YXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIGNvbnN0IEZpbGxMYXllciogKFJlbmRlclN0eWxl
OjoqTGF5ZXJzR2V0dGVyKSgpIGNvbnN0OworICAgIHR5cGVkZWYgRmlsbExheWVyKiAoUmVuZGVy
U3R5bGU6OipMYXllcnNBY2Nlc3NvcikoKTsKKyAgICAKKyAgICBGaWxsTGF5ZXJzUHJvcGVydHlX
cmFwcGVyKGludCBwcm9wLCBMYXllcnNHZXR0ZXIgZ2V0dGVyLCBMYXllcnNBY2Nlc3NvciBhY2Nl
c3NvcikKKyAgICAgICAgOiBQcm9wZXJ0eVdyYXBwZXJCYXNlKHByb3ApCisgICAgICAgICwgbV9s
YXllcnNHZXR0ZXIoZ2V0dGVyKQorICAgICAgICAsIG1fbGF5ZXJzQWNjZXNzb3IoYWNjZXNzb3Ip
CisgICAgeworICAgICAgICBzd2l0Y2ggKHByb3ApIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YOgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdE1hc2tQb3NpdGlvblg6CisgICAgICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdy
YXBwZXIgPSBuZXcgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyPExlbmd0aD4oJkZpbGxMYXllcjo6
eFBvc2l0aW9uLCAmRmlsbExheWVyOjpzZXRYUG9zaXRpb24pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblk6Cisg
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKKyAgICAgICAg
ICAgICAgICBtX2ZpbGxMYXllclByb3BlcnR5V3JhcHBlciA9IG5ldyBGaWxsTGF5ZXJQcm9wZXJ0
eVdyYXBwZXI8TGVuZ3RoPigmRmlsbExheWVyOjp5UG9zaXRpb24sICZGaWxsTGF5ZXI6OnNldFlQ
b3NpdGlvbik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QmFja2dyb3VuZFNpemU6CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TWFza1NpemU6CisgICAgICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBw
ZXIgPSBuZXcgRmlsbExheWVyUHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+KCZGaWxsTGF5ZXI6
OnNpemUsICZGaWxsTGF5ZXI6OnNldFNpemUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHls
ZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgeworICAgICAgICBjb25zdCBG
aWxsTGF5ZXIqIGZyb21MYXllciA9IChhLT4qbV9sYXllcnNHZXR0ZXIpKCk7CisgICAgICAgIGNv
bnN0IEZpbGxMYXllciogdG9MYXllciA9IChiLT4qbV9sYXllcnNHZXR0ZXIpKCk7CisKKyAgICAg
ICAgd2hpbGUgKGZyb21MYXllciAmJiB0b0xheWVyKSB7CisgICAgICAgICAgICBpZiAoIW1fZmls
bExheWVyUHJvcGVydHlXcmFwcGVyLT5lcXVhbHMoZnJvbUxheWVyLCB0b0xheWVyKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZyb21M
YXllciA9IGZyb21MYXllci0+bmV4dCgpOworICAgICAgICAgICAgdG9MYXllciA9IHRvTGF5ZXIt
Pm5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHls
ZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJs
ZSBwcm9ncmVzcykgY29uc3QKKyAgICB7CisgICAgICAgIGNvbnN0IEZpbGxMYXllciogYUxheWVy
ID0gKGEtPiptX2xheWVyc0dldHRlcikoKTsKKyAgICAgICAgY29uc3QgRmlsbExheWVyKiBiTGF5
ZXIgPSAoYi0+Km1fbGF5ZXJzR2V0dGVyKSgpOworICAgICAgICBGaWxsTGF5ZXIqIGRzdExheWVy
ID0gKGRzdC0+Km1fbGF5ZXJzQWNjZXNzb3IpKCk7CisKKyAgICAgICAgd2hpbGUgKGFMYXllciAm
JiBiTGF5ZXIgJiYgZHN0TGF5ZXIpIHsKKyAgICAgICAgICAgIG1fZmlsbExheWVyUHJvcGVydHlX
cmFwcGVyLT5ibGVuZChhbmltLCBkc3RMYXllciwgYUxheWVyLCBiTGF5ZXIsIHByb2dyZXNzKTsK
KyAgICAgICAgICAgIGFMYXllciA9IGFMYXllci0+bmV4dCgpOworICAgICAgICAgICAgYkxheWVy
ID0gYkxheWVyLT5uZXh0KCk7CisgICAgICAgICAgICBkc3RMYXllciA9IGRzdExheWVyLT5uZXh0
KCk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgRmlsbExheWVyUHJvcGVydHlX
cmFwcGVyQmFzZSogbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXI7CisgICAgCisgICAgTGF5ZXJz
R2V0dGVyIG1fbGF5ZXJzR2V0dGVyOworICAgIExheWVyc0FjY2Vzc29yIG1fbGF5ZXJzQWNjZXNz
b3I7Cit9OworCiBjbGFzcyBTaG9ydGhhbmRQcm9wZXJ0eVdyYXBwZXIgOiBwdWJsaWMgUHJvcGVy
dHlXcmFwcGVyQmFzZSB7CiBwdWJsaWM6CiAgICAgU2hvcnRoYW5kUHJvcGVydHlXcmFwcGVyKGlu
dCBwcm9wZXJ0eSwgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgbG9uZ2hhbmQpCkBAIC00NDIs
MTMgKzU2MCwxNCBAQCBzdGF0aWMgdm9pZCBlbnN1cmVQcm9wZXJ0eU1hcCgpCiAgICAgICAgIGdQ
cm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxjb25zdCBDb2xvciY+
KENTU1Byb3BlcnR5Q29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0
Q29sb3IpKTsKIAogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0
eVdyYXBwZXI8Y29uc3QgQ29sb3ImPihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgJlJlbmRl
clN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dyb3VuZENvbG9y
KSk7Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBl
cjxMZW5ndGg+KENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWCwgJlJlbmRlclN0eWxlOjpi
YWNrZ3JvdW5kWFBvc2l0aW9uLCAmUmVuZGVyU3R5bGU6OnNldEJhY2tncm91bmRYUG9zaXRpb24p
KTsKLSAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVy
PExlbmd0aD4oQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25ZLCAmUmVuZGVyU3R5bGU6OmJh
Y2tncm91bmRZUG9zaXRpb24sICZSZW5kZXJTdHlsZTo6c2V0QmFja2dyb3VuZFlQb3NpdGlvbikp
OwotICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8
TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5kU2l6ZSwgJlJlbmRlclN0eWxl
OjpiYWNrZ3JvdW5kU2l6ZSwgJlJlbmRlclN0eWxlOjpzZXRCYWNrZ3JvdW5kU2l6ZSkpOwogCi0g
ICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5n
dGg+KENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCwgJlJlbmRlclN0eWxlOjptYXNrWFBv
c2l0aW9uLCAmUmVuZGVyU3R5bGU6OnNldE1hc2tYUG9zaXRpb24pKTsKLSAgICAgICAgZ1Byb3Bl
cnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aD4oQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUG9zaXRpb25ZLCAmUmVuZGVyU3R5bGU6Om1hc2tZUG9zaXRpb24sICZSZW5k
ZXJTdHlsZTo6c2V0TWFza1lQb3NpdGlvbikpOwotICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+
YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlXZWJraXRN
YXNrU2l6ZSwgJlJlbmRlclN0eWxlOjptYXNrU2l6ZSwgJlJlbmRlclN0eWxlOjpzZXRNYXNrU2l6
ZSkpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBGaWxsTGF5ZXJzUHJv
cGVydHlXcmFwcGVyKENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWCwgJlJlbmRlclN0eWxl
OjpiYWNrZ3JvdW5kTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0JhY2tncm91bmRMYXllcnMp
KTsKKyAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgRmlsbExheWVyc1Byb3Bl
cnR5V3JhcHBlcihDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblksICZSZW5kZXJTdHlsZTo6
YmFja2dyb3VuZExheWVycywgJlJlbmRlclN0eWxlOjphY2Nlc3NCYWNrZ3JvdW5kTGF5ZXJzKSk7
CisgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IEZpbGxMYXllcnNQcm9wZXJ0
eVdyYXBwZXIoQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5kU2l6ZSwgJlJlbmRlclN0eWxlOjpi
YWNrZ3JvdW5kTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc0JhY2tncm91bmRMYXllcnMpKTsK
KworICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBGaWxsTGF5ZXJzUHJvcGVy
dHlXcmFwcGVyKENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCwgJlJlbmRlclN0eWxlOjpt
YXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMpKTsKKyAgICAgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgRmlsbExheWVyc1Byb3BlcnR5V3JhcHBlcihDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblksICZSZW5kZXJTdHlsZTo6bWFza0xheWVycywgJlJl
bmRlclN0eWxlOjphY2Nlc3NNYXNrTGF5ZXJzKSk7CisgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJz
LT5hcHBlbmQobmV3IEZpbGxMYXllcnNQcm9wZXJ0eVdyYXBwZXIoQ1NTUHJvcGVydHlXZWJraXRN
YXNrU2l6ZSwgJlJlbmRlclN0eWxlOjptYXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01h
c2tMYXllcnMpKTsKIAogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9w
ZXJ0eVdyYXBwZXI8aW50PihDU1NQcm9wZXJ0eUZvbnRTaXplLCAmUmVuZGVyU3R5bGU6OmZvbnRT
aXplLCAmUmVuZGVyU3R5bGU6OnNldEJsZW5kZWRGb250U2l6ZSkpOwogICAgICAgICBnUHJvcGVy
dHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8dW5zaWduZWQgc2hvcnQ+KENT
U1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZVdpZHRoLCAmUmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVX
aWR0aCwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlV2lkdGgpKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmgKaW5kZXggYzM5NDRhZC4uYWFkNzkwMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmgKQEAgLTYzLDE0ICs2MywxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Np
emVTZXQoKSBjb25zdCB7IHJldHVybiBtX3NpemVTZXQ7IH0KICAgICAKICAgICB2b2lkIHNldElt
YWdlKFN0eWxlSW1hZ2UqIGkpIHsgbV9pbWFnZSA9IGk7IG1faW1hZ2VTZXQgPSB0cnVlOyB9Ci0g
ICAgdm9pZCBzZXRYUG9zaXRpb24oY29uc3QgTGVuZ3RoJiBsKSB7IG1feFBvc2l0aW9uID0gbDsg
bV94UG9zU2V0ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0WVBvc2l0aW9uKGNvbnN0IExlbmd0aCYg
bCkgeyBtX3lQb3NpdGlvbiA9IGw7IG1feVBvc1NldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldFhQ
b3NpdGlvbihMZW5ndGggbCkgeyBtX3hQb3NpdGlvbiA9IGw7IG1feFBvc1NldCA9IHRydWU7IH0K
KyAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5ndGggbCkgeyBtX3lQb3NpdGlvbiA9IGw7IG1feVBv
c1NldCA9IHRydWU7IH0KICAgICB2b2lkIHNldEF0dGFjaG1lbnQoRUZpbGxBdHRhY2htZW50IGF0
dGFjaG1lbnQpIHsgbV9hdHRhY2htZW50ID0gYXR0YWNobWVudDsgbV9hdHRhY2htZW50U2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0Q2xpcChFRmlsbEJveCBiKSB7IG1fY2xpcCA9IGI7IG1fY2xp
cFNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldE9yaWdpbihFRmlsbEJveCBiKSB7IG1fb3JpZ2lu
ID0gYjsgbV9vcmlnaW5TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRSZXBlYXQoRUZpbGxSZXBl
YXQgcikgeyBtX3JlcGVhdCA9IHI7IG1fcmVwZWF0U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0
Q29tcG9zaXRlKENvbXBvc2l0ZU9wZXJhdG9yIGMpIHsgbV9jb21wb3NpdGUgPSBjOyBtX2NvbXBv
c2l0ZVNldCA9IHRydWU7IH0KLSAgICB2b2lkIHNldFNpemUoY29uc3QgTGVuZ3RoU2l6ZSYgYikg
eyBtX3NpemUgPSBiOyBtX3NpemVTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTaXplKExlbmd0
aFNpemUgYikgeyBtX3NpemUgPSBiOyBtX3NpemVTZXQgPSB0cnVlOyB9CiAgICAgCiAgICAgdm9p
ZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBv
c2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsgfQo=
</data>
<flag name="review"
          id="19093"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34903</attachid>
            <date>2009-08-15 12:24:59 -0700</date>
            <delta_ts>2009-08-15 16:36:50 -0700</delta_ts>
            <desc>Patch for multiple shadow animation</desc>
            <filename>28266_patch_shadows.txt</filename>
            <type>text/plain</type>
            <size>8910</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MzRlMDg1Li40NDViYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTkgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBbmltYXRlIG11bHRpcGxl
IHNoYWRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MjY2CisKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1z
aGFkb3ctdHJhbnNpdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi10ZXN0LWhlbHBlcnMuanM6CisgICAgICAgIEFkZCBzb21lIHNwZWNpYWwtY2FzZSBj
b2RlIGZvciBzaGFkb3dzIHNvIHdlIGNhbiBhdCBsZWFzdCB0ZWxsIG9mIHRoZSBzaGFkb3cKKyAg
ICAgICAgcG9zaXRpb24gaXMgY2hhbmdpbmcuCisKKzIwMDktMDgtMTUgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKICAgICAgICAgTWFrZSB0cmFuc2l0aW9ucyB3b3JrIGZvciBwb3NpdGlvbiBhbmQg
c2l6ZSBvZiBtdWx0aXBsZSBiYWNrZ3JvdW5kcyBhbmQgbWFza3MuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtc2hhZG93LXRyYW5zaXRpb25z
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjhhNTQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtc2hh
ZG93LXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0JPWAorQk9YCitC
T1gKK1BBU1MgLSAiLXdlYmtpdC1ib3gtc2hhZG93IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVu
dCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAsMCwwLDAKK1BBU1MgLSAiLXdlYmtp
dC1ib3gtc2hhZG93IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAwLDAsMCwtMTAKK1BBU1MgLSAiLXdlYmtpdC1ib3gtc2hhZG93IiBw
cm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiAwLDIwLDAsLTEwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL211bHRp
cGxlLXNoYWRvdy10cmFuc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVs
dGlwbGUtc2hhZG93LXRyYW5zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODFlNmM1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL211bHRpcGxlLXNoYWRvdy10cmFuc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwh
RE9DVFlQRT4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5tdWx0aXBsZSBz
aGFkb3cgdHJhbnNpdGlvbnM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlh
PSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgIG1hcmdpbjogNTBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgcGFkZGluZzogMjBweDsKKyAg
ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv
bjogbGluZWFyOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LWJv
eC1zaGFkb3csIHRleHQtc2hhZG93OworICAgIH0KKyAgICAKKyAgICAjYm94IHsKKyAgICAgIC13
ZWJraXQtYm94LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZCwgMCAyMHB4IDEwcHggYmx1ZTsKKyAg
ICAgIHRleHQtc2hhZG93OiAwIC0yMHB4IDEwcHggcmVkLCAwIDIwcHggMTBweCBibHVlOworICAg
IH0KKyAgICAKKyAgICAjYm94LmZpbmFsIHsKKyAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAy
MHB4IDEwcHggcmVkLCAwIC0yMHB4IDEwcHggYmx1ZTsKKyAgICAgIHRleHQtc2hhZG93OiAwIDIw
cHggMTBweCByZWQsIDAgLTIwcHggMTBweCBibHVlOworICAgIH0KKworICAgIC8qIE1pc21hdGNo
ZWQgbGF5ZXJzICovCisgICAgI2JveDIgeworICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0y
MHB4IDEwcHggcmVkLCAwIDIwcHggMTBweCBibHVlOworICAgICAgdGV4dC1zaGFkb3c6IDAgLTIw
cHggMTBweCByZWQsIDAgMjBweCAxMHB4IGJsdWU7CisgICAgfQorICAgIAorICAgICNib3gyLmZp
bmFsIHsKKyAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZDsKKyAgICAg
IHRleHQtc2hhZG93OiAwIC0yMHB4IDEwcHggcmVkOworICAgIH0KKworICAgICNib3gzIHsKKyAg
ICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAyMHB4IDEwcHggYmx1ZTsKKyAgICAgIHRleHQtc2hh
ZG93OiAwIDIwcHggMTBweCBibHVlOworICAgIH0KKyAgICAKKyAgICAjYm94My5maW5hbCB7Cisg
ICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTIwcHggMTBweCByZWQsIDAgMjBweCAxMHB4IGJs
dWU7CisgICAgICB0ZXh0LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZCwgMCAyMHB4IDEwcHggYmx1
ZTsKKyAgICB9CisKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InRyYW5zaXRpb24tdGVzdC1o
ZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Njcmlw
dD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW3RpbWUsIGVsZW1lbnQtaWQs
IHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWzAuNSwgJ2JveCcs
ICctd2Via2l0LWJveC1zaGFkb3cnLCBbMCwgMCwgMCwgMF0sIDRdLAorICAgICAgWzAuNSwgJ2Jv
eDInLCAnLXdlYmtpdC1ib3gtc2hhZG93JywgWzAsIDAsIDAsIC0xMF0sIDRdLAorICAgICAgWzAu
NSwgJ2JveDMnLCAnLXdlYmtpdC1ib3gtc2hhZG93JywgWzAsIDIwLCAwLCAtMTBdLCA0XSwKKyAg
ICBdOworICAKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc05hbWUgPSAnYm94IGZpbmFsJzsKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gyJykuY2xhc3NOYW1lID0gJ2JveCBmaW5hbCc7Cisg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MycpLmNsYXNzTmFtZSA9ICdib3ggZmlu
YWwnOworICAgIH0KKyAgCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHNl
dHVwVGVzdCwgdHJ1ZSk7CisgICAgCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKyAg
PGRpdiBpZD0iYm94IiBjbGFzcz0iYm94Ij5CT1g8L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xh
c3M9ImJveCI+Qk9YPC9kaXY+CisgIDxkaXYgaWQ9ImJveDMiIGNsYXNzPSJib3giPkJPWDwvZGl2
PgorCisgIDxkaXYgaWQ9InJlc3VsdCI+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRlc3QtaGVscGVy
cy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpz
CmluZGV4IGFhNjc5YmEuLjZjNDBhYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0zMiw2ICszMiwyMiBAQCBmdW5jdGlv
biBpc0Nsb3NlRW5vdWdoKGFjdHVhbCwgZGVzaXJlZCwgdG9sZXJhbmNlKQogICAgIHJldHVybiBk
aWZmIDw9IHRvbGVyYW5jZTsKIH0KIAorZnVuY3Rpb24gaXNTaGFkb3cocHJvcGVydHkpCit7Cisg
IHJldHVybiAocHJvcGVydHkgPT0gJy13ZWJraXQtYm94LXNoYWRvdycgfHwgcHJvcGVydHkgPT0g
J3RleHQtc2hhZG93Jyk7Cit9CisKK2Z1bmN0aW9uIGdldFNoYWRvd1hZKGNzc1ZhbHVlKQorewor
ICAgIHZhciB0ZXh0ID0gY3NzVmFsdWUuY3NzVGV4dDsKKyAgICAvLyBTaGFkb3cgY3NzVGV4dCBs
b29rcyBsaWtlICJyZ2IoMCwgMCwgMjU1KSAwcHggLTNweCAxMHB4IDBweCIKKyAgICB2YXIgc2hh
ZG93UG9zaXRpb25SZWdFeHAgPSAvXClccyooXGQrKXB4XHMqKC0/XGQrKXB4LzsKKyAgICB2YXIg
cmVzdWx0ID0gc2hhZG93UG9zaXRpb25SZWdFeHAuZXhlYyhjc3NWYWx1ZS5jc3NUZXh0KTsKKwor
ICAgIHZhciByZXN1bHQgPSBbcGFyc2VJbnQocmVzdWx0WzFdKSwgcGFyc2VJbnQocmVzdWx0WzJd
KV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVl
KGV4cGVjdGVkLCBpbmRleCkKIHsKICAgICB2YXIgdGltZSA9IGV4cGVjdGVkW2luZGV4XVswXTsK
QEAgLTY2LDEwICs4MiwyMiBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWUoZXhwZWN0ZWQs
IGluZGV4KQogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0
UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmNz
c1ZhbHVlVHlwZSA9PSBDU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCkgewotICAgICAgICAgICAgLy8g
Rm9yIG5vdywgYXNzdW1lIHRoYXQgdmFsdWUgbGlzdHMgYXJlIHNpbXBsZSBsaXN0cyBvZiBudW1i
ZXIgdmFsdWVzIChlLmcuIHRyYW5zZm9ybS1vcmlnaW4pCiAgICAgICAgICAgICB2YXIgdmFsdWVz
ID0gW107CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXB1dGVkU3R5bGUubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjb21wdXRlZFN0eWxlW2ld
LmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikpOworICAgICAgICAg
ICAgICAgIHN3aXRjaCAoY29tcHV0ZWRTdHlsZVtpXS5jc3NWYWx1ZVR5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWUuQ1NTX1BSSU1JVElWRV9WQUxVRToKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWVzLnB1c2goY29tcHV0ZWRTdHlsZVtpXS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlLkNTU19DVVNUT006CisgICAgICAgICAgICAg
ICAgICAgIC8vIGFyYml0cmFyaWx5IHBpY2sgc2hhZG93LXggYW5kIHNoYWRvdy15CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1NoYWRvdykgeworICAgICAgICAgICAgICAgICAgICAgIHZhciBz
aGFkb3dYWSA9IGdldFNoYWRvd1hZKGNvbXB1dGVkU3R5bGVbaV0pOworICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlcy5wdXNoKHNoYWRvd1hZWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZXMucHVzaChzaGFkb3dYWVsxXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGNvbXB1dGVkU3R5bGVbaV0uY3NzVGV4dCk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUgPSB2YWx1ZXMuam9pbignLCcpOwogICAg
ICAgICAgICAgcGFzcyA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk4OGM1MWEuLmZjODUzYmEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjEgQEAKIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBbmltYXRlIG11
bHRpcGxlIHNoYWRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjY2CisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgYW5pbWF0aW9ucyBvZiBt
dWx0aXBsZSB0ZXh0LXNoYWRvd3MgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KKworICAgICAgICBU
ZXN0OiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlvbnMuaHRtbAorCisgICAg
ICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9wZXJ0eVdyYXBwZXJTaGFkb3c6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eVdyYXBwZXJTaGFkb3c6OmJsZW5kKToKKworMjAwOS0wOC0xNSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBNYWtlIHRyYW5zaXRpb25zIHdvcmsgZm9yIHBvc2l0aW9uIGFuZCBz
aXplIG9mIG11bHRpcGxlIGJhY2tncm91bmRzIGFuZCBtYXNrcy4KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY2CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggYjJlNTRmNy4uN2U3YmUwZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC0zMDIsMTEgKzMwMiwy
MSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTaGFkb3dEYXRhKiBzaGFkb3dBID0gKGEtPipt
X2dldHRlcikoKTsKICAgICAgICAgU2hhZG93RGF0YSogc2hhZG93QiA9IChiLT4qbV9nZXR0ZXIp
KCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKCFz
aGFkb3dBICYmICFzaGFkb3dCKSAgIC8vIGVuZCBvZiBib3RoIGxpc3RzCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmICghc2hhZG93QSB8fCAhc2hhZG93Qikg
ICAvLyBlbmQgb2YganVzdCBvbmUgb2YgdGhlIGxpc3RzCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgICAgICBpZiAoKCpzaGFkb3dBICE9ICpzaGFkb3dCKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICAgICAgc2hhZG93QSA9
IHNoYWRvd0EtPm5leHQ7CisgICAgICAgICAgICBzaGFkb3dCID0gc2hhZG93Qi0+bmV4dDsKKyAg
ICAgICAgfQogCi0gICAgICAgIGlmICgoIXNoYWRvd0EgJiYgc2hhZG93QikgfHwgKHNoYWRvd0Eg
JiYgIXNoYWRvd0IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoc2hh
ZG93QSAmJiBzaGFkb3dCICYmICgqc2hhZG93QSAhPSAqc2hhZG93QikpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzE2LDEyICsz
MjYsMTcgQEAgcHVibGljOgogICAgICAgICBTaGFkb3dEYXRhKiBzaGFkb3dCID0gKGItPiptX2dl
dHRlcikoKTsKICAgICAgICAgU2hhZG93RGF0YSBkZWZhdWx0U2hhZG93RGF0YSgwLCAwLCAwLCAw
LCBOb3JtYWwsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKLSAgICAgICAgaWYgKCFzaGFkb3dBKQot
ICAgICAgICAgICAgc2hhZG93QSA9ICZkZWZhdWx0U2hhZG93RGF0YTsKLSAgICAgICAgaWYgKCFz
aGFkb3dCKQotICAgICAgICAgICAgc2hhZG93QiA9ICZkZWZhdWx0U2hhZG93RGF0YTsKKyAgICAg
ICAgYm9vbCBhcHBlbmRpbmdTaGFkb3cgPSBmYWxzZTsKKyAgICAgICAgd2hpbGUgKHNoYWRvd0Eg
fHwgc2hhZG93QikgeworICAgICAgICAgICAgU2hhZG93RGF0YSogc3JjU2hhZG93ID0gc2hhZG93
QSA/IHNoYWRvd0EgOiAmZGVmYXVsdFNoYWRvd0RhdGE7CisgICAgICAgICAgICBTaGFkb3dEYXRh
KiBkc3RTaGFkb3cgPSBzaGFkb3dCID8gc2hhZG93QiA6ICZkZWZhdWx0U2hhZG93RGF0YTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgKGRzdC0+Km1fc2V0dGVyKShibGVuZEZ1bmMoYW5pbSwg
c3JjU2hhZG93LCBkc3RTaGFkb3csIHByb2dyZXNzKSwgYXBwZW5kaW5nU2hhZG93KTsKKyAgICAg
ICAgICAgIGFwcGVuZGluZ1NoYWRvdyA9IHRydWU7CiAKLSAgICAgICAgKGRzdC0+Km1fc2V0dGVy
KShibGVuZEZ1bmMoYW5pbSwgc2hhZG93QSwgc2hhZG93QiwgcHJvZ3Jlc3MpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBzaGFkb3dBID0gc2hhZG93QSA/IHNoYWRvd0EtPm5leHQgOiAwOworICAgICAg
ICAgICAgc2hhZG93QiA9IHNoYWRvd0IgPyBzaGFkb3dCLT5uZXh0IDogMDsKKyAgICAgICAgfQog
ICAgIH0KIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34907</attachid>
            <date>2009-08-15 16:39:38 -0700</date>
            <delta_ts>2009-08-15 17:57:35 -0700</delta_ts>
            <desc>Patch for multiple shadow animation</desc>
            <filename>28266_patch_shadows.txt</filename>
            <type>text/plain</type>
            <size>9067</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MzRlMDg1Li40NDViYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTkgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBbmltYXRlIG11bHRpcGxl
IHNoYWRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MjY2CisKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1z
aGFkb3ctdHJhbnNpdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi10ZXN0LWhlbHBlcnMuanM6CisgICAgICAgIEFkZCBzb21lIHNwZWNpYWwtY2FzZSBj
b2RlIGZvciBzaGFkb3dzIHNvIHdlIGNhbiBhdCBsZWFzdCB0ZWxsIG9mIHRoZSBzaGFkb3cKKyAg
ICAgICAgcG9zaXRpb24gaXMgY2hhbmdpbmcuCisKKzIwMDktMDgtMTUgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKICAgICAgICAgTWFrZSB0cmFuc2l0aW9ucyB3b3JrIGZvciBwb3NpdGlvbiBhbmQg
c2l6ZSBvZiBtdWx0aXBsZSBiYWNrZ3JvdW5kcyBhbmQgbWFza3MuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtc2hhZG93LXRyYW5zaXRpb25z
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTFlZmJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVsdGlwbGUtc2hh
ZG93LXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0JPWAorQk9YCitC
T1gKK1BBU1MgLSAiLXdlYmtpdC1ib3gtc2hhZG93IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVu
dCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAsMCwwLDAKK1BBU1MgLSAiLXdlYmtp
dC1ib3gtc2hhZG93IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAwLC0xMCwwLDAKK1BBU1MgLSAiLXdlYmtpdC1ib3gtc2hhZG93IiBw
cm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiAwLC0xMCwwLDIwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL211bHRp
cGxlLXNoYWRvdy10cmFuc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbXVs
dGlwbGUtc2hhZG93LXRyYW5zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTY1OTllYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL211bHRpcGxlLXNoYWRvdy10cmFuc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwh
RE9DVFlQRT4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5tdWx0aXBsZSBz
aGFkb3cgdHJhbnNpdGlvbnM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlh
PSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgIG1hcmdpbjogNTBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgcGFkZGluZzogMjBweDsKKyAg
ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv
bjogbGluZWFyOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LWJv
eC1zaGFkb3csIHRleHQtc2hhZG93OworICAgIH0KKyAgICAKKyAgICAjYm94IHsKKyAgICAgIC13
ZWJraXQtYm94LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZCwgMCAyMHB4IDEwcHggYmx1ZTsKKyAg
ICAgIHRleHQtc2hhZG93OiAwIC0yMHB4IDEwcHggcmVkLCAwIDIwcHggMTBweCBibHVlOworICAg
IH0KKyAgICAKKyAgICAjYm94LmZpbmFsIHsKKyAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAy
MHB4IDEwcHggcmVkLCAwIC0yMHB4IDEwcHggYmx1ZTsKKyAgICAgIHRleHQtc2hhZG93OiAwIDIw
cHggMTBweCByZWQsIDAgLTIwcHggMTBweCBibHVlOworICAgIH0KKworICAgIC8qIE1pc21hdGNo
ZWQgbGF5ZXJzICovCisgICAgI2JveDIgeworICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0y
MHB4IDEwcHggcmVkLCAwIDIwcHggMTBweCBibHVlOworICAgICAgdGV4dC1zaGFkb3c6IDAgLTIw
cHggMTBweCByZWQsIDAgMjBweCAxMHB4IGJsdWU7CisgICAgfQorICAgIAorICAgICNib3gyLmZp
bmFsIHsKKyAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZDsKKyAgICAg
IHRleHQtc2hhZG93OiAwIC0yMHB4IDEwcHggcmVkOworICAgIH0KKworICAgICNib3gzIHsKKyAg
ICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAyMHB4IDEwcHggYmx1ZTsKKyAgICAgIHRleHQtc2hh
ZG93OiAwIDIwcHggMTBweCBibHVlOworICAgIH0KKyAgICAKKyAgICAjYm94My5maW5hbCB7Cisg
ICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTIwcHggMTBweCByZWQsIDAgMjBweCAxMHB4IGJs
dWU7CisgICAgICB0ZXh0LXNoYWRvdzogMCAtMjBweCAxMHB4IHJlZCwgMCAyMHB4IDEwcHggYmx1
ZTsKKyAgICB9CisKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InRyYW5zaXRpb24tdGVzdC1o
ZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Njcmlw
dD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKwor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW3RpbWUsIGVsZW1lbnQtaWQs
IHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWzAuNSwgJ2JveCcs
ICctd2Via2l0LWJveC1zaGFkb3cnLCBbMCwgMCwgMCwgMF0sIDRdLAorICAgICAgWzAuNSwgJ2Jv
eDInLCAnLXdlYmtpdC1ib3gtc2hhZG93JywgWzAsIC0xMCwgMCwgMF0sIDRdLAorICAgICAgWzAu
NSwgJ2JveDMnLCAnLXdlYmtpdC1ib3gtc2hhZG93JywgWzAsIC0xMCwgMCwgMjBdLCA0XSwKKyAg
ICBdOworICAKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc05hbWUgPSAnYm94IGZpbmFsJzsKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gyJykuY2xhc3NOYW1lID0gJ2JveCBmaW5hbCc7Cisg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MycpLmNsYXNzTmFtZSA9ICdib3ggZmlu
YWwnOworICAgIH0KKyAgCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHNl
dHVwVGVzdCwgdHJ1ZSk7CisgICAgCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKyAg
PGRpdiBpZD0iYm94IiBjbGFzcz0iYm94Ij5CT1g8L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xh
c3M9ImJveCI+Qk9YPC9kaXY+CisgIDxkaXYgaWQ9ImJveDMiIGNsYXNzPSJib3giPkJPWDwvZGl2
PgorCisgIDxkaXYgaWQ9InJlc3VsdCI+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRlc3QtaGVscGVy
cy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpz
CmluZGV4IGFhNjc5YmEuLjZjNDBhYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0zMiw2ICszMiwyMiBAQCBmdW5jdGlv
biBpc0Nsb3NlRW5vdWdoKGFjdHVhbCwgZGVzaXJlZCwgdG9sZXJhbmNlKQogICAgIHJldHVybiBk
aWZmIDw9IHRvbGVyYW5jZTsKIH0KIAorZnVuY3Rpb24gaXNTaGFkb3cocHJvcGVydHkpCit7Cisg
IHJldHVybiAocHJvcGVydHkgPT0gJy13ZWJraXQtYm94LXNoYWRvdycgfHwgcHJvcGVydHkgPT0g
J3RleHQtc2hhZG93Jyk7Cit9CisKK2Z1bmN0aW9uIGdldFNoYWRvd1hZKGNzc1ZhbHVlKQorewor
ICAgIHZhciB0ZXh0ID0gY3NzVmFsdWUuY3NzVGV4dDsKKyAgICAvLyBTaGFkb3cgY3NzVGV4dCBs
b29rcyBsaWtlICJyZ2IoMCwgMCwgMjU1KSAwcHggLTNweCAxMHB4IDBweCIKKyAgICB2YXIgc2hh
ZG93UG9zaXRpb25SZWdFeHAgPSAvXClccyooXGQrKXB4XHMqKC0/XGQrKXB4LzsKKyAgICB2YXIg
cmVzdWx0ID0gc2hhZG93UG9zaXRpb25SZWdFeHAuZXhlYyhjc3NWYWx1ZS5jc3NUZXh0KTsKKwor
ICAgIHZhciByZXN1bHQgPSBbcGFyc2VJbnQocmVzdWx0WzFdKSwgcGFyc2VJbnQocmVzdWx0WzJd
KV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVl
KGV4cGVjdGVkLCBpbmRleCkKIHsKICAgICB2YXIgdGltZSA9IGV4cGVjdGVkW2luZGV4XVswXTsK
QEAgLTY2LDEwICs4MiwyMiBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWUoZXhwZWN0ZWQs
IGluZGV4KQogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0
UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmNz
c1ZhbHVlVHlwZSA9PSBDU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCkgewotICAgICAgICAgICAgLy8g
Rm9yIG5vdywgYXNzdW1lIHRoYXQgdmFsdWUgbGlzdHMgYXJlIHNpbXBsZSBsaXN0cyBvZiBudW1i
ZXIgdmFsdWVzIChlLmcuIHRyYW5zZm9ybS1vcmlnaW4pCiAgICAgICAgICAgICB2YXIgdmFsdWVz
ID0gW107CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXB1dGVkU3R5bGUubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjb21wdXRlZFN0eWxlW2ld
LmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikpOworICAgICAgICAg
ICAgICAgIHN3aXRjaCAoY29tcHV0ZWRTdHlsZVtpXS5jc3NWYWx1ZVR5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWUuQ1NTX1BSSU1JVElWRV9WQUxVRToKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWVzLnB1c2goY29tcHV0ZWRTdHlsZVtpXS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlLkNTU19DVVNUT006CisgICAgICAgICAgICAg
ICAgICAgIC8vIGFyYml0cmFyaWx5IHBpY2sgc2hhZG93LXggYW5kIHNoYWRvdy15CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1NoYWRvdykgeworICAgICAgICAgICAgICAgICAgICAgIHZhciBz
aGFkb3dYWSA9IGdldFNoYWRvd1hZKGNvbXB1dGVkU3R5bGVbaV0pOworICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlcy5wdXNoKHNoYWRvd1hZWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZXMucHVzaChzaGFkb3dYWVsxXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGNvbXB1dGVkU3R5bGVbaV0uY3NzVGV4dCk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUgPSB2YWx1ZXMuam9pbignLCcpOwogICAg
ICAgICAgICAgcGFzcyA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk4OGM1MWEuLmZjODUzYmEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjEgQEAKIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBbmltYXRlIG11
bHRpcGxlIHNoYWRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjY2CisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgYW5pbWF0aW9ucyBvZiBt
dWx0aXBsZSB0ZXh0LXNoYWRvd3MgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KKworICAgICAgICBU
ZXN0OiB0cmFuc2l0aW9ucy9tdWx0aXBsZS1zaGFkb3ctdHJhbnNpdGlvbnMuaHRtbAorCisgICAg
ICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9wZXJ0eVdyYXBwZXJTaGFkb3c6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eVdyYXBwZXJTaGFkb3c6OmJsZW5kKToKKworMjAwOS0wOC0xNSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBNYWtlIHRyYW5zaXRpb25zIHdvcmsgZm9yIHBvc2l0aW9uIGFuZCBz
aXplIG9mIG11bHRpcGxlIGJhY2tncm91bmRzIGFuZCBtYXNrcy4KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY2CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggYjJlNTRmNy4uMmY1MzAyMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC0zMDIsMTEgKzMwMiwy
MSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTaGFkb3dEYXRhKiBzaGFkb3dBID0gKGEtPipt
X2dldHRlcikoKTsKICAgICAgICAgU2hhZG93RGF0YSogc2hhZG93QiA9IChiLT4qbV9nZXR0ZXIp
KCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKCFz
aGFkb3dBICYmICFzaGFkb3dCKSAgIC8vIGVuZCBvZiBib3RoIGxpc3RzCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmICghc2hhZG93QSB8fCAhc2hhZG93Qikg
ICAvLyBlbmQgb2YganVzdCBvbmUgb2YgdGhlIGxpc3RzCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgICAgICBpZiAoKCpzaGFkb3dBICE9ICpzaGFkb3dCKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICAgICAgc2hhZG93QSA9
IHNoYWRvd0EtPm5leHQ7CisgICAgICAgICAgICBzaGFkb3dCID0gc2hhZG93Qi0+bmV4dDsKKyAg
ICAgICAgfQogCi0gICAgICAgIGlmICgoIXNoYWRvd0EgJiYgc2hhZG93QikgfHwgKHNoYWRvd0Eg
JiYgIXNoYWRvd0IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoc2hh
ZG93QSAmJiBzaGFkb3dCICYmICgqc2hhZG93QSAhPSAqc2hhZG93QikpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzE2LDEyICsz
MjYsMjIgQEAgcHVibGljOgogICAgICAgICBTaGFkb3dEYXRhKiBzaGFkb3dCID0gKGItPiptX2dl
dHRlcikoKTsKICAgICAgICAgU2hhZG93RGF0YSBkZWZhdWx0U2hhZG93RGF0YSgwLCAwLCAwLCAw
LCBOb3JtYWwsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKLSAgICAgICAgaWYgKCFzaGFkb3dBKQot
ICAgICAgICAgICAgc2hhZG93QSA9ICZkZWZhdWx0U2hhZG93RGF0YTsKLSAgICAgICAgaWYgKCFz
aGFkb3dCKQotICAgICAgICAgICAgc2hhZG93QiA9ICZkZWZhdWx0U2hhZG93RGF0YTsKKyAgICAg
ICAgU2hhZG93RGF0YSogbmV3U2hhZG93RGF0YSA9IDA7CisgICAgICAgIAorICAgICAgICB3aGls
ZSAoc2hhZG93QSB8fCBzaGFkb3dCKSB7CisgICAgICAgICAgICBTaGFkb3dEYXRhKiBzcmNTaGFk
b3cgPSBzaGFkb3dBID8gc2hhZG93QSA6ICZkZWZhdWx0U2hhZG93RGF0YTsKKyAgICAgICAgICAg
IFNoYWRvd0RhdGEqIGRzdFNoYWRvdyA9IHNoYWRvd0IgPyBzaGFkb3dCIDogJmRlZmF1bHRTaGFk
b3dEYXRhOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIW5ld1NoYWRvd0RhdGEpCisg
ICAgICAgICAgICAgICAgbmV3U2hhZG93RGF0YSA9IGJsZW5kRnVuYyhhbmltLCBzcmNTaGFkb3cs
IGRzdFNoYWRvdywgcHJvZ3Jlc3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG5ld1NoYWRvd0RhdGEtPm5leHQgPSBibGVuZEZ1bmMoYW5pbSwgc3JjU2hhZG93LCBkc3RTaGFk
b3csIHByb2dyZXNzKTsKIAotICAgICAgICAoZHN0LT4qbV9zZXR0ZXIpKGJsZW5kRnVuYyhhbmlt
LCBzaGFkb3dBLCBzaGFkb3dCLCBwcm9ncmVzcyksIGZhbHNlKTsKKyAgICAgICAgICAgIHNoYWRv
d0EgPSBzaGFkb3dBID8gc2hhZG93QS0+bmV4dCA6IDA7CisgICAgICAgICAgICBzaGFkb3dCID0g
c2hhZG93QiA/IHNoYWRvd0ItPm5leHQgOiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAoZHN0LT4qbV9zZXR0ZXIpKG5ld1NoYWRvd0RhdGEsIGZhbHNlKTsKICAgICB9CiAKIHByaXZh
dGU6Cg==
</data>
<flag name="review"
          id="19098"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>