<?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>21001</bug_id>
          
          <creation_ts>2008-09-22 11:06:31 -0700</creation_ts>
          <short_desc>Starting transition after animation, when animation is finished, transition is wrong</short_desc>
          <delta_ts>2008-09-29 14:21:50 -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>Mac</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92155</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-22 11:06:31 -0700</bug_when>
    <thetext>The test case has an animation and transition, both of which start on load. The transition is started by setting webKitTransform from JS after the animation starts. This should use the unanimated style (which is 0,0) as the start position. But it instead uses the starting animation position, which (0,100).

Patch on the way...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92156</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-22 11:11:56 -0700</bug_when>
    <thetext>The correct fromStyle (which is now correctly computed because of https://bugs.webkit.org/show_bug.cgi?id=20892) is now passed to the ctor of ImplicitAnimation and used rather than being passed in via reset(). </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92158</commentid>
    <comment_count>2</comment_count>
      <attachid>23658</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-22 11:14:06 -0700</bug_when>
    <thetext>Created attachment 23658
Patch, including LayoutTest file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92684</commentid>
    <comment_count>3</comment_count>
      <attachid>23658</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-09-25 01:18:14 -0700</bug_when>
    <thetext>Comment on attachment 23658
Patch, including LayoutTest file

style:
 86             const RenderStyle *fromStyle = kfAnim ? kfAnim-&gt;unanimatedStyle() : currentStyle;

Also, I personally prefer longer variable names than kfAnim.  Makes me think you&apos;re trying to use hungarian notation and making a float constant named anim. :)


Can&apos;t this just be a deleteAllValues(m_transitions) call?
5     for (CSSPropertyTransitionsMap::const_iterator it = m_transitions.begin(); it != end; ++it)
 276         delete it-&gt;second;

And this too:
deleteAllValues(finishedTransitions);

And again...
finishedAnimations

Seems m_fromStyle should maybe not be const...

Otherwise looks fine.

I think we should resolve the deleteAllValues issue before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92806</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-25 14:49:34 -0700</bug_when>
    <thetext>I will make all the other changes. But I&apos;d like to keep the RenderStyle a const just to show that I don&apos;t intend to change it. Of course that means I have to const_cast to ref/deref. But I think it&apos;s better to do that in isolation and maintain the overall safety of the object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92816</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-25 15:40:07 -0700</bug_when>
    <thetext>You&apos;re right about changing that m_transitions case to use deleteAllValues, but the other two are just Vectors of int, which tell me which elements in the HashMaps to delete. So I think I need iterators there.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92817</commentid>
    <comment_count>6</comment_count>
      <attachid>23825</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-09-25 15:51:14 -0700</bug_when>
    <thetext>Created attachment 23825
New Patch incorporating comments from eseidel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92822</commentid>
    <comment_count>7</comment_count>
      <attachid>23825</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-09-25 16:25:34 -0700</bug_when>
    <thetext>Comment on attachment 23825
New Patch incorporating comments from eseidel

Looks sane enough.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93284</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-09-29 14:21:50 -0700</bug_when>
    <thetext>Committed r37075
	M	WebCore/ChangeLog
	M	WebCore/page/animation/AnimationBase.h
	M	WebCore/page/animation/ImplicitAnimation.h
	M	WebCore/page/animation/CompositeAnimation.cpp
	M	WebCore/page/animation/ImplicitAnimation.cpp
	M	LayoutTests/ChangeLog
	A	LayoutTests/animations/transition-and-animation-2-expected.txt
	A	LayoutTests/animations/transition-and-animation-2.html
r37075 = d63ba9a851d9897f92c12499ccc7bdcdee8e9108 (trunk)
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23658</attachid>
            <date>2008-09-22 11:14:06 -0700</date>
            <delta_ts>2008-09-25 15:51:14 -0700</delta_ts>
            <desc>Patch, including LayoutTest file</desc>
            <filename>21001.patch</filename>
            <type>text/plain</type>
            <size>14085</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNjc2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDgtMDktMjIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDAxCisgICAg
ICAgIFRoZSBjb3JyZWN0IGZyb21TdHlsZSAod2hpY2ggaXMgbm93IGNvcnJlY3RseSBjb21wdXRl
ZAorICAgICAgICBiZWNhdXNlIG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDg5MikKKyAgICAgICAgaXMgbm93IHBhc3NlZCB0byB0aGUgY3RvciBvZiBJbXBsaWNp
dEFuaW1hdGlvbiBhbmQgdXNlZAorICAgICAgICByYXRoZXIgdGhhbiBiZWluZyBwYXNzZWQgaW4g
dmlhIHJlc2V0KCkuIAorCisgICAgICAgIFRlc3Q6IGFuaW1hdGlvbnMvdHJhbnNpdGlvbi1hbmQt
YW5pbWF0aW9uLTIuaHRtbAorCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6YW5pbWF0ZSk6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjpyZXNldFRyYW5zaXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6Y2xlYW51cEZpbmlzaGVkQW5pbWF0aW9ucyk6Cisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OkltcGxpY2l0QW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp+SW1wbGljaXRBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1wbGljaXRBbmltYXRpb246OnJlc2V0KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5oOgorCiAyMDA4LTA5LTIyICBNYWNpZWogU3RhY2hvd2lhayAgPG1q
c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgpJbmRl
eDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgJKHJldmlzaW9uIDM2NzY2KQor
KysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIxMyw3ICsyMTMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShD
b21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSogY3Vy
cmVudFN0eWxlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSog
dGFyZ2V0U3R5bGUsIFJlbmRlclN0eWxlKiYgYW5pbWF0ZWRTdHlsZSkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tID0gMCwg
Y29uc3QgUmVuZGVyU3R5bGUqIHRvID0gMCkgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RmlyZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAJKHJldmlzaW9uIDM2NzY2KQor
KysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4Myw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVU
cmFuc2l0aW8KICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmltYXRl
ZFN0eWxlIGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAgIC8v
IGFnYWluc3QgdGhlIHVuYW5pbWF0ZWQgc3R5bGUgaGVyZSwgYnV0IHdlICJvdmVycmlkZSIgdGhl
IHRyYW5zaXRpb24gbGF0ZXIuCiAgICAgICAgICAgICBjb25zdCBLZXlmcmFtZUFuaW1hdGlvbiog
a2ZBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7CisgICAgICAgICAgICBjb25z
dCBSZW5kZXJTdHlsZSAqZnJvbVN0eWxlID0ga2ZBbmltID8ga2ZBbmltLT51bmFuaW1hdGVkU3R5
bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEg
Y3VycmVudCB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3AKICAgICAgICAgICAgIEltcGxpY2l0QW5p
bWF0aW9uKiBpbXBsQW5pbSA9IG1fdHJhbnNpdGlvbnMuZ2V0KHByb3ApOwpAQCAtOTEsMTkgKzky
LDE4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW8KICAgICAgICAg
ICAgIGlmIChpbXBsQW5pbSkgewogICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIG9uZSwgaGFz
IG91ciB0YXJnZXQgY2hhbmdlZD8KICAgICAgICAgICAgICAgICBpZiAoIWltcGxBbmltLT5pc1Rh
cmdldFByb3BlcnR5RXF1YWwocHJvcCwgdGFyZ2V0U3R5bGUpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGltcGxBbmltLT5yZXNldChyZW5kZXJlcik7CiAgICAgICAgICAgICAgICAgICAgIGRlbGV0
ZSBpbXBsQW5pbTsKICAgICAgICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5yZW1vdmUocHJv
cCk7CiAgICAgICAgICAgICAgICAgICAgIGVxdWFsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgd2UgbmVl
ZCB0byBzdGFydCBhIG5ldyB0cmFuc2l0aW9uCi0gICAgICAgICAgICAgICAgZXF1YWwgPSBBbmlt
YXRpb25CYXNlOjpwcm9wZXJ0aWVzRXF1YWwocHJvcCwga2ZBbmltID8ga2ZBbmltLT51bmFuaW1h
dGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZSwgdGFyZ2V0U3R5bGUpOworICAgICAgICAgICAgICAg
IGVxdWFsID0gQW5pbWF0aW9uQmFzZTo6cHJvcGVydGllc0VxdWFsKHByb3AsIGZyb21TdHlsZSwg
dGFyZ2V0U3R5bGUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIWVxdWFsKSB7
CiAgICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBuZXcgdHJhbnNpdGlvbgotICAgICAgICAgICAg
ICAgIEltcGxpY2l0QW5pbWF0aW9uKiBhbmltYXRpb24gPSBuZXcgSW1wbGljaXRBbmltYXRpb24o
Y29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcHJvcCwgcmVuZGVyZXIsIHRoaXMpOworICAg
ICAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBhbmltYXRpb24gPSBuZXcgSW1wbGljaXRB
bmltYXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcHJvcCwgcmVuZGVyZXIsIHRo
aXMsIGZyb21TdHlsZSk7CiAgICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQocHJvcCwg
YW5pbWF0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMjcyLDExICsyNzIs
OSBAQCBjb25zdCBLZXlmcmFtZUFuaW1hdGlvbiogQ29tcG9zaXRlQW5pbWF0CiB2b2lkIENvbXBv
c2l0ZUFuaW1hdGlvbjo6cmVzZXRUcmFuc2l0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ewogICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1f
dHJhbnNpdGlvbnMuZW5kKCk7Ci0gICAgZm9yIChDU1NQcm9wZXJ0eVRyYW5zaXRpb25zTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7Ci0gICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiB0cmFuc2l0aW9uID0gaXQtPnNlY29uZDsK
LSAgICAgICAgdHJhbnNpdGlvbi0+cmVzZXQocmVuZGVyZXIpOwotICAgICAgICBkZWxldGUgdHJh
bnNpdGlvbjsKLSAgICB9CisgICAgZm9yIChDU1NQcm9wZXJ0eVRyYW5zaXRpb25zTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQor
ICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKKwogICAgIG1fdHJhbnNpdGlvbnMuY2xlYXIoKTsK
IH0KIApAQCAtMzA2LDEwICszMDQsOCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6Y2xlYW51
cEZpbmlzaGVkCiAgICAgLy8gRGVsZXRlIHRoZW0KICAgICBzaXplX3QgZmluaXNoZWRUcmFuc2l0
aW9uQ291bnQgPSBmaW5pc2hlZFRyYW5zaXRpb25zLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGZpbmlzaGVkVHJhbnNpdGlvbkNvdW50OyArK2kpIHsKLSAgICAgICAgaWYgKElt
cGxpY2l0QW5pbWF0aW9uKiBhbmltID0gbV90cmFuc2l0aW9ucy50YWtlKGZpbmlzaGVkVHJhbnNp
dGlvbnNbaV0pKSB7Ci0gICAgICAgICAgICBhbmltLT5yZXNldChyZW5kZXJlcik7CisgICAgICAg
IGlmIChJbXBsaWNpdEFuaW1hdGlvbiogYW5pbSA9IG1fdHJhbnNpdGlvbnMudGFrZShmaW5pc2hl
ZFRyYW5zaXRpb25zW2ldKSkKICAgICAgICAgICAgIGRlbGV0ZSBhbmltOwotICAgICAgICB9CiAg
ICAgfQogCiAgICAgLy8gTWFrZSBhIGxpc3Qgb2YgYW5pbWF0aW9ucyB0byBiZSBkZWxldGVkCkBA
IC0zMjcsMTAgKzMyMyw4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpjbGVhbnVwRmluaXNo
ZWQKICAgICAvLyBEZWxldGUgdGhlbQogICAgIHNpemVfdCBmaW5pc2hlZEFuaW1hdGlvbkNvdW50
ID0gZmluaXNoZWRBbmltYXRpb25zLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGZpbmlzaGVkQW5pbWF0aW9uQ291bnQ7ICsraSkgewotICAgICAgICBpZiAoS2V5ZnJhbWVBbmlt
YXRpb24qIGFuaW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy50YWtlKGZpbmlzaGVkQW5pbWF0aW9u
c1tpXSkpIHsKLSAgICAgICAgICAgIGFuaW0tPnJlc2V0KHJlbmRlcmVyKTsKKyAgICAgICAgaWYg
KEtleWZyYW1lQW5pbWF0aW9uKiBhbmltID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMudGFrZShmaW5p
c2hlZEFuaW1hdGlvbnNbaV0pKQogICAgICAgICAgICAgZGVsZXRlIGFuaW07Ci0gICAgICAgIH0K
ICAgICB9CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmlt
YXRpb24uY3BwCShyZXZpc2lvbiAzNjc2NikKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1w
bGljaXRBbmltYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotSW1wbGljaXRBbmltYXRpb246OkltcGxpY2l0QW5pbWF0aW9u
KGNvbnN0IEFuaW1hdGlvbiogdHJhbnNpdGlvbiwgaW50IGFuaW1hdGluZ1Byb3BlcnR5LCBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBDb21wb3NpdGVBbmltYXRpb24qIGNvbXBBbmltKQorSW1wbGlj
aXRBbmltYXRpb246OkltcGxpY2l0QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogdHJhbnNpdGlv
biwgaW50IGFuaW1hdGluZ1Byb3BlcnR5LCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBDb21wb3Np
dGVBbmltYXRpb24qIGNvbXBBbmltLCBjb25zdCBSZW5kZXJTdHlsZSogZnJvbVN0eWxlKQogICAg
IDogQW5pbWF0aW9uQmFzZSh0cmFuc2l0aW9uLCByZW5kZXJlciwgY29tcEFuaW0pCiAgICAgLCBt
X3RyYW5zaXRpb25Qcm9wZXJ0eSh0cmFuc2l0aW9uLT5wcm9wZXJ0eSgpKQogICAgICwgbV9hbmlt
YXRpbmdQcm9wZXJ0eShhbmltYXRpbmdQcm9wZXJ0eSkKQEAgLTQzLDExICs0MywxOSBAQCBJbXBs
aWNpdEFuaW1hdGlvbjo6SW1wbGljaXRBbmltYXRpb24oY29uCiAgICAgLCBtX3RvU3R5bGUoMCkK
IHsKICAgICBBU1NFUlQoYW5pbWF0aW5nUHJvcGVydHkgIT0gY0FuaW1hdGVBbGwpOworICAgIGlm
IChmcm9tU3R5bGUpIHsKKyAgICAgICAgbV9mcm9tU3R5bGUgPSBmcm9tU3R5bGU7CisgICAgICAg
IGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihtX2Zyb21TdHlsZSktPnJlZigpOworICAgIH0KIH0K
IAogSW1wbGljaXRBbmltYXRpb246On5JbXBsaWNpdEFuaW1hdGlvbigpCiB7Ci0gICAgQVNTRVJU
KCFtX2Zyb21TdHlsZSAmJiAhbV90b1N0eWxlKTsKKyAgICAvLyBHZXQgcmlkIG9mIHN0eWxlIHJl
ZnMKKyAgICBpZiAobV9mcm9tU3R5bGUpCisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUq
PihtX2Zyb21TdHlsZSktPmRlcmVmKHJlbmRlcmVyKCktPnJlbmRlckFyZW5hKCkpOworICAgIGlm
IChtX3RvU3R5bGUpCisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihtX3RvU3R5bGUp
LT5kZXJlZihyZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgpKTsKIAogICAgIC8vIERvIHRoZSBjbGVh
bnVwIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgYmFzZSBjbGFzcyBzbyB0aGUgc3BlY2lhbGl6ZWQg
bWV0aG9kcyBnZXQgY2FsbGVkCiAgICAgaWYgKCFwb3N0QWN0aXZlKCkpCkBAIC03Miw3ICs4MCw3
IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXQKIAogICAgIC8vIFJl
c2V0IHRvIHN0YXJ0IHRoZSB0cmFuc2l0aW9uIGlmIHdlIGFyZSBuZXcKICAgICBpZiAoaXNOZXco
KSkKLSAgICAgICAgcmVzZXQocmVuZGVyZXIsIGN1cnJlbnRTdHlsZSwgdGFyZ2V0U3R5bGUpOwor
ICAgICAgICByZXNldCh0YXJnZXRTdHlsZSk7CiAKICAgICAvLyBSdW4gYSBjeWNsZSBvZiBhbmlt
YXRpb24uCiAgICAgLy8gV2Uga25vdyB3ZSB3aWxsIG5lZWQgYSBuZXcgcmVuZGVyIHN0eWxlLCBz
byBtYWtlIG9uZSBpZiBuZWVkZWQKQEAgLTExMSwyNSArMTE5LDIwIEBAIGJvb2wgSW1wbGljaXRB
bmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXYKICAgICByZXR1cm4gZmFsc2U7IC8vIERpZG4ndCBk
aXNwYXRjaCBhbiBldmVudAogfQogCi12b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpyZXNldChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZSogZnJvbSAvKiA9IDAgKi8sIGNv
bnN0IFJlbmRlclN0eWxlKiB0byAvKiA9IDAgKi8pCit2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpy
ZXNldChjb25zdCBSZW5kZXJTdHlsZSogdG8pCiB7Ci0gICAgQVNTRVJUKCghbV90b1N0eWxlICYm
ICF0bykgfHwgbV90b1N0eWxlICE9IHRvKTsKLSAgICBBU1NFUlQoKCFtX2Zyb21TdHlsZSAmJiAh
ZnJvbSkgfHwgbV9mcm9tU3R5bGUgIT0gZnJvbSk7Ci0gICAgaWYgKG1fZnJvbVN0eWxlKQotICAg
ICAgICBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9mcm9tU3R5bGUpLT5kZXJlZihyZW5kZXJl
ci0+cmVuZGVyQXJlbmEoKSk7CisgICAgQVNTRVJUKHRvKTsKKyAgICBBU1NFUlQobV9mcm9tU3R5
bGUpOworICAgIAogICAgIGlmIChtX3RvU3R5bGUpCi0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVy
U3R5bGUqPihtX3RvU3R5bGUpLT5kZXJlZihyZW5kZXJlci0+cmVuZGVyQXJlbmEoKSk7Ci0KLSAg
ICBtX2Zyb21TdHlsZSA9IGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihmcm9tKTsgICAvLyBpdCBp
cyByZWFkLW9ubHksIG90aGVyIHRoYW4gdGhlIHJlZgotICAgIGlmIChtX2Zyb21TdHlsZSkKLSAg
ICAgICAgY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fZnJvbVN0eWxlKS0+cmVmKCk7CisgICAg
ICAgIGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihtX3RvU3R5bGUpLT5kZXJlZihyZW5kZXJlcigp
LT5yZW5kZXJBcmVuYSgpKTsKIAotICAgIG1fdG9TdHlsZSA9IGNvbnN0X2Nhc3Q8UmVuZGVyU3R5
bGUqPih0byk7ICAgICAgIC8vIGl0IGlzIHJlYWQtb25seSwgb3RoZXIgdGhhbiB0aGUgcmVmCisg
ICAgbV90b1N0eWxlID0gdG87ICAgICAgIC8vIEl0IGlzIHJlYWQtb25seSwgb3RoZXIgdGhhbiB0
aGUgcmVmCiAgICAgaWYgKG1fdG9TdHlsZSkKICAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJTdHls
ZSo+KG1fdG9TdHlsZSktPnJlZigpOwogCiAgICAgLy8gUmVzdGFydCB0aGUgdHJhbnNpdGlvbgot
ICAgIGlmIChmcm9tICYmIHRvKQorICAgIGlmIChtX2Zyb21TdHlsZSAmJiBtX3RvU3R5bGUpCiAg
ICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlucHV0UmVzdGFydEFuaW1h
dGlvbiwgLTEpOwogICAgICAgICAKICAgICAvLyBzZXQgdGhlIHRyYW5zZm9ybSBhbmltYXRpb24g
bGlzdApJbmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAko
cmV2aXNpb24gMzY3NjYpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gZm9yIGEgc2luZ2xlIFJlbmRlck9iamVjdC4KIGNsYXNzIEltcGxpY2l0QW5pbWF0aW9u
IDogcHVibGljIEFuaW1hdGlvbkJhc2UgewogcHVibGljOgotICAgIEltcGxpY2l0QW5pbWF0aW9u
KGNvbnN0IEFuaW1hdGlvbiosIGludCBhbmltYXRpbmdQcm9wZXJ0eSwgUmVuZGVyT2JqZWN0Kiwg
Q29tcG9zaXRlQW5pbWF0aW9uKik7CisgICAgSW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0
aW9uKiwgaW50IGFuaW1hdGluZ1Byb3BlcnR5LCBSZW5kZXJPYmplY3QqLCBDb21wb3NpdGVBbmlt
YXRpb24qLCBjb25zdCBSZW5kZXJTdHlsZSogZnJvbVN0eWxlKTsKICAgICB2aXJ0dWFsIH5JbXBs
aWNpdEFuaW1hdGlvbigpOwogICAgIAogICAgIGludCB0cmFuc2l0aW9uUHJvcGVydHkoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zaXRpb25Qcm9wZXJ0eTsgfQpAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogdGFyZ2V0U3R5bGUsIFJlbmRlclN0eWxlKiYgYW5pbWF0ZWRTdHlsZSk7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tID0gMCwg
Y29uc3QgUmVuZGVyU3R5bGUqIHRvID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0
IFJlbmRlclN0eWxlKiB0byk7CiAKICAgICB2b2lkIHNldE92ZXJyaWRkZW4oYm9vbCk7CiAgICAg
dmlydHVhbCBib29sIG92ZXJyaWRkZW4oKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW47IH0K
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM2NzY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDgtMDktMjIgIENocmlzIE1hcnJpbiAgPGNt
YXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RjYXNlIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEwMDEKKworICAgICAgICAqIGFuaW1hdGlvbnMvdHJhbnNpdGlvbi1hbmQtYW5pbWF0
aW9uLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL3RyYW5zaXRp
b24tYW5kLWFuaW1hdGlvbi0yLmh0bWw6IEFkZGVkLgorCiAyMDA4LTA5LTIxICBHYWJvciBMb2tp
ICA8bG9raUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYW5kIHR3ZWFrZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL3RyYW5zaXRpb24t
YW5kLWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
bmltYXRpb25zL3RyYW5zaXRpb24tYW5kLWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJhbnNpdGlvbi1hbmQtYW5pbWF0aW9u
LTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA1MTogbWF0cml4KDEsIDAsIDAsIDEsIDE1LCAwKQorVGhpcyB0ZXN0IGhhcyBh
IHRyYW5zaXRpb24gYW5kIGFuaW1hdGlvbiBvbiB0aGUgc2FtZSBwcm9wZXJ0eSAoLXdlYmtpdC10
cmFuc2Zvcm0pLiBUaGUgYW5pbWF0aW9uIHN0YXJ0cyBhbmQgdGhlbiB0aGUgdHJhbnNpdGlvbiBp
cyB0cmlnZ2VyZWQuIFRoZSB0cmFuc2l0aW9uIHNob3VsZCBzdGFydCBhdCB0aGUgcG9zaXRpb24g
YmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRlZCAodGhlIHVuYW5pbWF0ZWQgcG9zaXRpb24pLCB3
aGljaCBpcyAoMCwwKS4gSWYgaXQgc3RhcnRzIGZyb20gdGhlIHN0YXJ0IHBvaW50IG9mIHRoZSBh
bmltYXRpb24gKDAsMTAwKSB0aGVuIHRoZXJlIGlzIGFuIGVycm9yCitQQVNTCkluZGV4OiBMYXlv
dXRUZXN0cy9hbmltYXRpb25zL3RyYW5zaXRpb24tYW5kLWFuaW1hdGlvbi0yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFuZC1hbmltYXRpb24t
Mi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmFuc2l0aW9u
LWFuZC1hbmltYXRpb24tMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UcmFuc2l0aW9uL0FuaW1h
dGlvbiBUZXN0ICMyPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2Ny
ZWVuIj4KKyAgICAjYm94IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBs
ZWZ0OiAwOworICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzOworICAgICAgICAtd2Via2l0LWFu
aW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogImFuaW0iOworICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13
ZWJraXQtdHJhbnNmb3JtOworICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDEw
czsKKyAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwor
ICAgIH0KKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgImFuaW0iIHsKKyAgICAgICAgZnJvbSB7IC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwxMDBweCkgfQorICAgICAgICB0byAgIHsgLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg0MDBweCwgMTAwcHgpIH0KKyAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIAorICAgIHJlc3VsdCA9ICJQQVNTIjsKKyAg
ICBjb25zdCBkZWZhdWx0VG9sZXJhbmNlID0gMC4xOworICAgIAorICAgIGZ1bmN0aW9uIGlzRXF1
YWwoYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCisgICAgeworICAgICAgICBpZiAodG9sZXJh
bmNlID09IHVuZGVmaW5lZCB8fCB0b2xlcmFuY2UgPT0gMCkKKyAgICAgICAgICAgIHRvbGVyYW5j
ZSA9IGRlZmF1bHRUb2xlcmFuY2U7CisgICAgICAgIHZhciBkaWZmID0gTWF0aC5hYnMoYWN0dWFs
IC0gZGVzaXJlZCk7CisgICAgICAgIHJldHVybiBkaWZmIDwgdG9sZXJhbmNlOworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBzbmFwc2hvdCgpCisgICAgeworICAgICAgICB2YXIgbSA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKSkud2Via2l0
VHJhbnNmb3JtOworICAgICAgICB2YXIgYSA9IG0uc3BsaXQoIigiKTsKKyAgICAgICAgYSA9IGFb
MV0uc3BsaXQoIiwiKTsKKyAgICAgICAgCisgICAgICAgIGNvbnNvbGUubG9nKG0pOworICAgICAg
ICBpZiAoIWlzRXF1YWwocGFyc2VGbG9hdChhWzVdKSwgMCkpCisgICAgICAgICAgICByZXN1bHQg
PSAiRkFJTCh3YXM6IithWzVdKyIsIGV4cGVjdGVkOjApIjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGFydCgpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iiku
c3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoNDAwcHgpIjsKKyAgICAgICAgCisg
ICAgICAgIHNldFRpbWVvdXQoInNuYXBzaG90KCkiLCA0MDApOworICAgICAgICAKKyAgICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDUwMCk7CisgICAgfQorICAgIAor
ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdEFuaW1hdGlvblN0YXJ0Jywgc3Rh
cnQsIGZhbHNlKTsKKyAgICAKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVz
dCBoYXMgYSB0cmFuc2l0aW9uIGFuZCBhbmltYXRpb24gb24gdGhlIHNhbWUgcHJvcGVydHkgKC13
ZWJraXQtdHJhbnNmb3JtKS4gCitUaGUgYW5pbWF0aW9uIHN0YXJ0cyBhbmQgdGhlbiB0aGUgdHJh
bnNpdGlvbiBpcyB0cmlnZ2VyZWQuIFRoZSB0cmFuc2l0aW9uIHNob3VsZCBzdGFydAorYXQgdGhl
IHBvc2l0aW9uIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0ZWQgKHRoZSB1bmFuaW1hdGVkIHBv
c2l0aW9uKSwgd2hpY2ggaXMgKDAsMCkuIElmIGl0CitzdGFydHMgZnJvbSB0aGUgc3RhcnQgcG9p
bnQgb2YgdGhlIGFuaW1hdGlvbiAoMCwxMDApIHRoZW4gdGhlcmUgaXMgYW4gZXJyb3IKKzxkaXYg
aWQ9ImJveCI+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="review"
          id="10609"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23825</attachid>
            <date>2008-09-25 15:51:14 -0700</date>
            <delta_ts>2008-09-25 16:25:34 -0700</delta_ts>
            <desc>New Patch incorporating comments from eseidel</desc>
            <filename>21001.patch</filename>
            <type>text/plain</type>
            <size>16674</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNjkxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDktMjUgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDExCisKKyAg
ICAgICAgVGVzdDogYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFuZC1hbmltYXRpb24tMi5odG1sCisK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpBbmltYXRpb25CYXNlOjphbmltYXRlKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0
aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmlt
YXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVBbmltYXRpb246OnJlc2V0VHJhbnNpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlQW5pbWF0aW9uOjpjbGVhbnVwRmluaXNoZWRBbmltYXRpb25zKToKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bXBsaWNpdEFuaW1hdGlvbjo6SW1wbGljaXRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SW1wbGljaXRBbmltYXRpb246On5JbXBsaWNpdEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpJbXBsaWNpdEFuaW1hdGlvbjo6YW5pbWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNp
dEFuaW1hdGlvbjo6cmVzZXQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmg6CisKIDIwMDgtMDktMjUgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgog
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyMApJ
bmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgJKHJldmlzaW9uIDM2OTA4
KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMyw3ICsyMTMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSog
Y3VycmVudFN0eWxlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJTdHls
ZSogdGFyZ2V0U3R5bGUsIFJlbmRlclN0eWxlKiYgYW5pbWF0ZWRTdHlsZSkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHJlc2V0KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tID0g
MCwgY29uc3QgUmVuZGVyU3R5bGUqIHRvID0gMCkgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRmlyZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFdlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAJKHJldmlzaW9uIDM2OTA4
KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Miw3ICs4Miw4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRh
dGVUcmFuc2l0aW8KICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcnVubmluZyBhbmltYXRp
b24gZm9yIHRoaXMgcHJvcGVydHksIHRoZSB0cmFuc2l0aW9uIGlzIG92ZXJyaWRkZW4KICAgICAg
ICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmltYXRlZFN0eWxlIGZyb20gdGhl
IGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAgIC8vIGFnYWluc3QgdGhlIHVu
YW5pbWF0ZWQgc3R5bGUgaGVyZSwgYnV0IHdlICJvdmVycmlkZSIgdGhlIHRyYW5zaXRpb24gbGF0
ZXIuCi0gICAgICAgICAgICBjb25zdCBLZXlmcmFtZUFuaW1hdGlvbioga2ZBbmltID0gZ2V0QW5p
bWF0aW9uRm9yUHJvcGVydHkocHJvcCk7CisgICAgICAgICAgICBjb25zdCBLZXlmcmFtZUFuaW1h
dGlvbioga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7CisgICAg
ICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5
ZnJhbWVBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAg
ICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3AK
ICAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBpbXBsQW5pbSA9IG1fdHJhbnNpdGlvbnMu
Z2V0KHByb3ApOwpAQCAtOTEsMTkgKzkyLDE4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1
cGRhdGVUcmFuc2l0aW8KICAgICAgICAgICAgIGlmIChpbXBsQW5pbSkgewogICAgICAgICAgICAg
ICAgIC8vIFRoZXJlIGlzIG9uZSwgaGFzIG91ciB0YXJnZXQgY2hhbmdlZD8KICAgICAgICAgICAg
ICAgICBpZiAoIWltcGxBbmltLT5pc1RhcmdldFByb3BlcnR5RXF1YWwocHJvcCwgdGFyZ2V0U3R5
bGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGltcGxBbmltLT5yZXNldChyZW5kZXJlcik7CiAg
ICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpbXBsQW5pbTsKICAgICAgICAgICAgICAgICAgICAg
bV90cmFuc2l0aW9ucy5yZW1vdmUocHJvcCk7CiAgICAgICAgICAgICAgICAgICAgIGVxdWFsID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAvLyBTZWUgaWYgd2UgbmVlZCB0byBzdGFydCBhIG5ldyB0cmFuc2l0aW9uCi0gICAg
ICAgICAgICAgICAgZXF1YWwgPSBBbmltYXRpb25CYXNlOjpwcm9wZXJ0aWVzRXF1YWwocHJvcCwg
a2ZBbmltID8ga2ZBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZSwgdGFyZ2V0
U3R5bGUpOworICAgICAgICAgICAgICAgIGVxdWFsID0gQW5pbWF0aW9uQmFzZTo6cHJvcGVydGll
c0VxdWFsKHByb3AsIGZyb21TdHlsZSwgdGFyZ2V0U3R5bGUpOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoIWVxdWFsKSB7CiAgICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBuZXcg
dHJhbnNpdGlvbgotICAgICAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBhbmltYXRpb24g
PSBuZXcgSW1wbGljaXRBbmltYXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcHJv
cCwgcmVuZGVyZXIsIHRoaXMpOworICAgICAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBh
bmltYXRpb24gPSBuZXcgSW1wbGljaXRBbmltYXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24qPihh
bmltKSwgcHJvcCwgcmVuZGVyZXIsIHRoaXMsIGZyb21TdHlsZSk7CiAgICAgICAgICAgICAgICAg
bV90cmFuc2l0aW9ucy5zZXQocHJvcCwgYW5pbWF0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIApAQCAtMTM5LDIxICsxMzksMjEgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVw
ZGF0ZUtleWZyYW1lQQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICAvLyBTZWUgaWYgdGhlcmUgaXMgYSBjdXJyZW50IGFuaW1hdGlvbiBmb3IgdGhp
cyBuYW1lCi0gICAgICAgICAgICBLZXlmcmFtZUFuaW1hdGlvbioga2ZBbmltID0gZ2V0S2V5ZnJh
bWVBbmltYXRpb24oYW5pbS0+bmFtZSgpKTsKKyAgICAgICAgICAgIEtleWZyYW1lQW5pbWF0aW9u
KiBrZXlmcmFtZUFuaW0gPSBnZXRLZXlmcmFtZUFuaW1hdGlvbihhbmltLT5uYW1lKCkpOwogICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGtmQW5pbSkgeworICAgICAgICAgICAgaWYg
KGtleWZyYW1lQW5pbSkgewogICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIG9uZSBzbyBpdCBp
cyBzdGlsbCBhY3RpdmUKIAogICAgICAgICAgICAgICAgIC8vIEFuaW1hdGlvbnMgbWF0Y2gsIGJ1
dCBwbGF5IHN0YXRlcyBtYXkgZGlmZmVyLiB1cGRhdGUgaWYgbmVlZGVkCi0gICAgICAgICAgICAg
ICAga2ZBbmltLT51cGRhdGVQbGF5U3RhdGUoYW5pbS0+cGxheVN0YXRlKCkgPT0gQW5pbVBsYXlT
dGF0ZVBsYXlpbmcpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0
YXRlKGFuaW0tPnBsYXlTdGF0ZSgpID09IEFuaW1QbGF5U3RhdGVQbGF5aW5nKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHNhdmVkIGFu
aW1hdGlvbiB0byB0aGlzIG5ldyBvbmUsIGp1c3QgaW4gY2FzZSB0aGUgcGxheSBzdGF0ZSBoYXMg
Y2hhbmdlZAotICAgICAgICAgICAgICAgIGtmQW5pbS0+c2V0QW5pbWF0aW9uKGFuaW0pOwotICAg
ICAgICAgICAgICAgIGtmQW5pbS0+c2V0SW5kZXgoaSk7CisgICAgICAgICAgICAgICAga2V5ZnJh
bWVBbmltLT5zZXRBbmltYXRpb24oYW5pbSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmlt
LT5zZXRJbmRleChpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGFuaW0tPmR1cmF0aW9uKCkg
fHwgYW5pbS0+ZGVsYXkoKSkgJiYgYW5pbS0+aXRlcmF0aW9uQ291bnQoKQogICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgYW5pbS0+a2V5ZnJhbWVMaXN0KCkgJiYgIWFuaW0tPmtleWZyYW1lTGlz
dCgpLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBrZkFuaW0gPSBuZXcgS2V5ZnJhbWVB
bmltYXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcmVuZGVyZXIsIGksIHRoaXMs
IGN1cnJlbnRTdHlsZSA/IGN1cnJlbnRTdHlsZSA6IHRhcmdldFN0eWxlKTsKLSAgICAgICAgICAg
ICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5zZXQoa2ZBbmltLT5uYW1lKCkuaW1wbCgpLCBrZkFu
aW0pOworICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbSA9IG5ldyBLZXlmcmFtZUFuaW1hdGlv
bihjb25zdF9jYXN0PEFuaW1hdGlvbio+KGFuaW0pLCByZW5kZXJlciwgaSwgdGhpcywgY3VycmVu
dFN0eWxlID8gY3VycmVudFN0eWxlIDogdGFyZ2V0U3R5bGUpOworICAgICAgICAgICAgICAgIG1f
a2V5ZnJhbWVBbmltYXRpb25zLnNldChrZXlmcmFtZUFuaW0tPm5hbWUoKS5pbXBsKCksIGtleWZy
YW1lQW5pbSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNjIsMTYgKzE2
MiwxNiBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBCiAgICAgVmVj
dG9yPEF0b21pY1N0cmluZ0ltcGwqPiBhbmltc1RvQmVSZW1vdmVkOwogICAgIGtmZW5kID0gbV9r
ZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChBbmltYXRpb25OYW1lTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGtmZW5k
OyArK2l0KSB7Ci0gICAgICAgIEtleWZyYW1lQW5pbWF0aW9uKiBrZkFuaW0gPSBpdC0+c2Vjb25k
OwotICAgICAgICBpZiAoa2ZBbmltLT5pbmRleCgpIDwgMCkKLSAgICAgICAgICAgIGFuaW1zVG9C
ZVJlbW92ZWQuYXBwZW5kKGtmQW5pbS0+bmFtZSgpLmltcGwoKSk7CisgICAgICAgIEtleWZyYW1l
QW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBpdC0+c2Vjb25kOworICAgICAgICBpZiAoa2V5ZnJh
bWVBbmltLT5pbmRleCgpIDwgMCkKKyAgICAgICAgICAgIGFuaW1zVG9CZVJlbW92ZWQuYXBwZW5k
KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSk7CiAgICAgfQogICAgIAogICAgIC8vIE5vdyBy
ZW1vdmUgdGhlIGFuaW1hdGlvbnMgZnJvbSB0aGUgbGlzdAogICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgYW5pbXNUb0JlUmVtb3ZlZC5zaXplKCk7ICsraikgewotICAgICAgICBLZXlmcmFtZUFu
aW1hdGlvbioga2ZBbmltID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuZ2V0KGFuaW1zVG9CZVJlbW92
ZWRbal0pOworICAgICAgICBLZXlmcmFtZUFuaW1hdGlvbioga2V5ZnJhbWVBbmltID0gbV9rZXlm
cmFtZUFuaW1hdGlvbnMuZ2V0KGFuaW1zVG9CZVJlbW92ZWRbal0pOwogICAgICAgICBtX2tleWZy
YW1lQW5pbWF0aW9ucy5yZW1vdmUoYW5pbXNUb0JlUmVtb3ZlZFtqXSk7Ci0gICAgICAgIGRlbGV0
ZSBrZkFuaW07CisgICAgICAgIGRlbGV0ZSBrZXlmcmFtZUFuaW07CiAgICAgfQogfQogCkBAIC0y
NzIsMTEgKzI3Miw3IEBAIGNvbnN0IEtleWZyYW1lQW5pbWF0aW9uKiBDb21wb3NpdGVBbmltYXQK
IHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpyZXNldFRyYW5zaXRpb25zKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7CiAgICAgQ1NTUHJvcGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0
b3IgZW5kID0gbV90cmFuc2l0aW9ucy5lbmQoKTsKLSAgICBmb3IgKENTU1Byb3BlcnR5VHJhbnNp
dGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90cmFuc2l0aW9ucy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKLSAgICAgICAgSW1wbGljaXRBbmltYXRpb24qIHRyYW5zaXRpb24gPSBp
dC0+c2Vjb25kOwotICAgICAgICB0cmFuc2l0aW9uLT5yZXNldChyZW5kZXJlcik7Ci0gICAgICAg
IGRlbGV0ZSB0cmFuc2l0aW9uOwotICAgIH0KKyAgICBkZWxldGVBbGxWYWx1ZXMobV90cmFuc2l0
aW9ucyk7CiAgICAgbV90cmFuc2l0aW9ucy5jbGVhcigpOwogfQogCkBAIC0zMDYsMTAgKzMwMiw4
IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpjbGVhbnVwRmluaXNoZWQKICAgICAvLyBEZWxl
dGUgdGhlbQogICAgIHNpemVfdCBmaW5pc2hlZFRyYW5zaXRpb25Db3VudCA9IGZpbmlzaGVkVHJh
bnNpdGlvbnMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmluaXNoZWRUcmFu
c2l0aW9uQ291bnQ7ICsraSkgewotICAgICAgICBpZiAoSW1wbGljaXRBbmltYXRpb24qIGFuaW0g
PSBtX3RyYW5zaXRpb25zLnRha2UoZmluaXNoZWRUcmFuc2l0aW9uc1tpXSkpIHsKLSAgICAgICAg
ICAgIGFuaW0tPnJlc2V0KHJlbmRlcmVyKTsKKyAgICAgICAgaWYgKEltcGxpY2l0QW5pbWF0aW9u
KiBhbmltID0gbV90cmFuc2l0aW9ucy50YWtlKGZpbmlzaGVkVHJhbnNpdGlvbnNbaV0pKQogICAg
ICAgICAgICAgZGVsZXRlIGFuaW07Ci0gICAgICAgIH0KICAgICB9CiAKICAgICAvLyBNYWtlIGEg
bGlzdCBvZiBhbmltYXRpb25zIHRvIGJlIGRlbGV0ZWQKQEAgLTMyNywxMCArMzIxLDggQEAgdm9p
ZCBDb21wb3NpdGVBbmltYXRpb246OmNsZWFudXBGaW5pc2hlZAogICAgIC8vIERlbGV0ZSB0aGVt
CiAgICAgc2l6ZV90IGZpbmlzaGVkQW5pbWF0aW9uQ291bnQgPSBmaW5pc2hlZEFuaW1hdGlvbnMu
c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmluaXNoZWRBbmltYXRpb25Db3Vu
dDsgKytpKSB7Ci0gICAgICAgIGlmIChLZXlmcmFtZUFuaW1hdGlvbiogYW5pbSA9IG1fa2V5ZnJh
bWVBbmltYXRpb25zLnRha2UoZmluaXNoZWRBbmltYXRpb25zW2ldKSkgewotICAgICAgICAgICAg
YW5pbS0+cmVzZXQocmVuZGVyZXIpOworICAgICAgICBpZiAoS2V5ZnJhbWVBbmltYXRpb24qIGFu
aW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy50YWtlKGZpbmlzaGVkQW5pbWF0aW9uc1tpXSkpCiAg
ICAgICAgICAgICBkZWxldGUgYW5pbTsKLSAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAJKHJldmlzaW9uIDM2
OTA4KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1J
bXBsaWNpdEFuaW1hdGlvbjo6SW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiB0cmFu
c2l0aW9uLCBpbnQgYW5pbWF0aW5nUHJvcGVydHksIFJlbmRlck9iamVjdCogcmVuZGVyZXIsIENv
bXBvc2l0ZUFuaW1hdGlvbiogY29tcEFuaW0pCitJbXBsaWNpdEFuaW1hdGlvbjo6SW1wbGljaXRB
bmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiB0cmFuc2l0aW9uLCBpbnQgYW5pbWF0aW5nUHJvcGVy
dHksIFJlbmRlck9iamVjdCogcmVuZGVyZXIsIENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcEFuaW0s
IGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tU3R5bGUpCiAgICAgOiBBbmltYXRpb25CYXNlKHRyYW5z
aXRpb24sIHJlbmRlcmVyLCBjb21wQW5pbSkKICAgICAsIG1fdHJhbnNpdGlvblByb3BlcnR5KHRy
YW5zaXRpb24tPnByb3BlcnR5KCkpCiAgICAgLCBtX2FuaW1hdGluZ1Byb3BlcnR5KGFuaW1hdGlu
Z1Byb3BlcnR5KQpAQCAtNDMsMTEgKzQzLDE5IEBAIEltcGxpY2l0QW5pbWF0aW9uOjpJbXBsaWNp
dEFuaW1hdGlvbihjb24KICAgICAsIG1fdG9TdHlsZSgwKQogewogICAgIEFTU0VSVChhbmltYXRp
bmdQcm9wZXJ0eSAhPSBjQW5pbWF0ZUFsbCk7CisgICAgaWYgKGZyb21TdHlsZSkgeworICAgICAg
ICBtX2Zyb21TdHlsZSA9IGZyb21TdHlsZTsKKyAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJTdHls
ZSo+KG1fZnJvbVN0eWxlKS0+cmVmKCk7CisgICAgfQogfQogCiBJbXBsaWNpdEFuaW1hdGlvbjo6
fkltcGxpY2l0QW5pbWF0aW9uKCkKIHsKLSAgICBBU1NFUlQoIW1fZnJvbVN0eWxlICYmICFtX3Rv
U3R5bGUpOworICAgIC8vIEdldCByaWQgb2Ygc3R5bGUgcmVmcworICAgIGlmIChtX2Zyb21TdHls
ZSkKKyAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fZnJvbVN0eWxlKS0+ZGVyZWYo
cmVuZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSk7CisgICAgaWYgKG1fdG9TdHlsZSkKKyAgICAgICAg
Y29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fdG9TdHlsZSktPmRlcmVmKHJlbmRlcmVyKCktPnJl
bmRlckFyZW5hKCkpOwogCiAgICAgLy8gRG8gdGhlIGNsZWFudXAgaGVyZSBpbnN0ZWFkIG9mIGlu
IHRoZSBiYXNlIGNsYXNzIHNvIHRoZSBzcGVjaWFsaXplZCBtZXRob2RzIGdldCBjYWxsZWQKICAg
ICBpZiAoIXBvc3RBY3RpdmUoKSkKQEAgLTcyLDcgKzgwLDcgQEAgdm9pZCBJbXBsaWNpdEFuaW1h
dGlvbjo6YW5pbWF0ZShDb21wb3NpdAogCiAgICAgLy8gUmVzZXQgdG8gc3RhcnQgdGhlIHRyYW5z
aXRpb24gaWYgd2UgYXJlIG5ldwogICAgIGlmIChpc05ldygpKQotICAgICAgICByZXNldChyZW5k
ZXJlciwgY3VycmVudFN0eWxlLCB0YXJnZXRTdHlsZSk7CisgICAgICAgIHJlc2V0KHRhcmdldFN0
eWxlKTsKIAogICAgIC8vIFJ1biBhIGN5Y2xlIG9mIGFuaW1hdGlvbi4KICAgICAvLyBXZSBrbm93
IHdlIHdpbGwgbmVlZCBhIG5ldyByZW5kZXIgc3R5bGUsIHNvIG1ha2Ugb25lIGlmIG5lZWRlZApA
QCAtMTExLDI1ICsxMTksMjAgQEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRp
b25FdgogICAgIHJldHVybiBmYWxzZTsgLy8gRGlkbid0IGRpc3BhdGNoIGFuIGV2ZW50CiB9CiAK
LXZvaWQgSW1wbGljaXRBbmltYXRpb246OnJlc2V0KFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlclN0eWxlKiBmcm9tIC8qID0gMCAqLywgY29uc3QgUmVuZGVyU3R5bGUqIHRvIC8q
ID0gMCAqLykKK3ZvaWQgSW1wbGljaXRBbmltYXRpb246OnJlc2V0KGNvbnN0IFJlbmRlclN0eWxl
KiB0bykKIHsKLSAgICBBU1NFUlQoKCFtX3RvU3R5bGUgJiYgIXRvKSB8fCBtX3RvU3R5bGUgIT0g
dG8pOwotICAgIEFTU0VSVCgoIW1fZnJvbVN0eWxlICYmICFmcm9tKSB8fCBtX2Zyb21TdHlsZSAh
PSBmcm9tKTsKLSAgICBpZiAobV9mcm9tU3R5bGUpCi0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVy
U3R5bGUqPihtX2Zyb21TdHlsZSktPmRlcmVmKHJlbmRlcmVyLT5yZW5kZXJBcmVuYSgpKTsKKyAg
ICBBU1NFUlQodG8pOworICAgIEFTU0VSVChtX2Zyb21TdHlsZSk7CisgICAgCiAgICAgaWYgKG1f
dG9TdHlsZSkKLSAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fdG9TdHlsZSktPmRl
cmVmKHJlbmRlcmVyLT5yZW5kZXJBcmVuYSgpKTsKLQotICAgIG1fZnJvbVN0eWxlID0gY29uc3Rf
Y2FzdDxSZW5kZXJTdHlsZSo+KGZyb20pOyAgIC8vIGl0IGlzIHJlYWQtb25seSwgb3RoZXIgdGhh
biB0aGUgcmVmCi0gICAgaWYgKG1fZnJvbVN0eWxlKQotICAgICAgICBjb25zdF9jYXN0PFJlbmRl
clN0eWxlKj4obV9mcm9tU3R5bGUpLT5yZWYoKTsKKyAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJT
dHlsZSo+KG1fdG9TdHlsZSktPmRlcmVmKHJlbmRlcmVyKCktPnJlbmRlckFyZW5hKCkpOwogCi0g
ICAgbV90b1N0eWxlID0gY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KHRvKTsgICAgICAgLy8gaXQg
aXMgcmVhZC1vbmx5LCBvdGhlciB0aGFuIHRoZSByZWYKKyAgICBtX3RvU3R5bGUgPSB0bzsgICAg
ICAgLy8gSXQgaXMgcmVhZC1vbmx5LCBvdGhlciB0aGFuIHRoZSByZWYKICAgICBpZiAobV90b1N0
eWxlKQogICAgICAgICBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV90b1N0eWxlKS0+cmVmKCk7
CiAKICAgICAvLyBSZXN0YXJ0IHRoZSB0cmFuc2l0aW9uCi0gICAgaWYgKGZyb20gJiYgdG8pCisg
ICAgaWYgKG1fZnJvbVN0eWxlICYmIG1fdG9TdHlsZSkKICAgICAgICAgdXBkYXRlU3RhdGVNYWNo
aW5lKEFuaW1hdGlvblN0YXRlSW5wdXRSZXN0YXJ0QW5pbWF0aW9uLCAtMSk7CiAgICAgICAgIAog
ICAgIC8vIHNldCB0aGUgdHJhbnNmb3JtIGFuaW1hdGlvbiBsaXN0CkluZGV4OiBXZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCShyZXZpc2lvbiAzNjkwOCkKKysrIFdl
YkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBmb3IgYSBzaW5nbGUgUmVu
ZGVyT2JqZWN0LgogY2xhc3MgSW1wbGljaXRBbmltYXRpb24gOiBwdWJsaWMgQW5pbWF0aW9uQmFz
ZSB7CiBwdWJsaWM6Ci0gICAgSW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiwgaW50
IGFuaW1hdGluZ1Byb3BlcnR5LCBSZW5kZXJPYmplY3QqLCBDb21wb3NpdGVBbmltYXRpb24qKTsK
KyAgICBJbXBsaWNpdEFuaW1hdGlvbihjb25zdCBBbmltYXRpb24qLCBpbnQgYW5pbWF0aW5nUHJv
cGVydHksIFJlbmRlck9iamVjdCosIENvbXBvc2l0ZUFuaW1hdGlvbiosIGNvbnN0IFJlbmRlclN0
eWxlKiBmcm9tU3R5bGUpOwogICAgIHZpcnR1YWwgfkltcGxpY2l0QW5pbWF0aW9uKCk7CiAgICAg
CiAgICAgaW50IHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNpdGlv
blByb3BlcnR5OyB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0
eWxlKiBjdXJyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSwgUmVuZGVy
U3R5bGUqJiBhbmltYXRlZFN0eWxlKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUqIGZyb20gPSAwLCBjb25zdCBSZW5kZXJTdHlsZSogdG8g
PSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoY29uc3QgUmVuZGVyU3R5bGUqIHRvKTsKIAog
ICAgIHZvaWQgc2V0T3ZlcnJpZGRlbihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGRl
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbjsgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzY5
MTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MiBAQAorMjAwOC0wOS0yNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGNhc2UgZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxMQorCisgICAgICAg
ICogYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFuZC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvdHJhbnNpdGlvbi1hbmQtYW5pbWF0aW9uLTIuaHRt
bDogQWRkZWQuCisKIDIwMDgtMDktMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFJ1YmJlcnN0YW1wZWQgYnkgTWFyayBSb3dlCkluZGV4OiBMYXlvdXRUZXN0
cy9hbmltYXRpb25zL3RyYW5zaXRpb24tYW5kLWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL3RyYW5zaXRpb24tYW5kLWFuaW1hdGlv
bi0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
dHJhbnNpdGlvbi1hbmQtYW5pbWF0aW9uLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MTogbWF0cml4KDEsIDAsIDAsIDEs
IDE1LCAwKQorVGhpcyB0ZXN0IGhhcyBhIHRyYW5zaXRpb24gYW5kIGFuaW1hdGlvbiBvbiB0aGUg
c2FtZSBwcm9wZXJ0eSAoLXdlYmtpdC10cmFuc2Zvcm0pLiBUaGUgYW5pbWF0aW9uIHN0YXJ0cyBh
bmQgdGhlbiB0aGUgdHJhbnNpdGlvbiBpcyB0cmlnZ2VyZWQuIFRoZSB0cmFuc2l0aW9uIHNob3Vs
ZCBzdGFydCBhdCB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRlZCAodGhl
IHVuYW5pbWF0ZWQgcG9zaXRpb24pLCB3aGljaCBpcyAoMCwwKS4gSWYgaXQgc3RhcnRzIGZyb20g
dGhlIHN0YXJ0IHBvaW50IG9mIHRoZSBhbmltYXRpb24gKDAsMTAwKSB0aGVuIHRoZXJlIGlzIGFu
IGVycm9yCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL3RyYW5zaXRpb24tYW5k
LWFuaW1hdGlvbi0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90
cmFuc2l0aW9uLWFuZC1hbmltYXRpb24tMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy90cmFuc2l0aW9uLWFuZC1hbmltYXRpb24tMi5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0
L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cisg
IDx0aXRsZT5UcmFuc2l0aW9uL0FuaW1hdGlvbiBUZXN0ICMyPC90aXRsZT4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAjYm94IHsKKyAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAw
LjNzOworICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsK
KyAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogImFuaW0iOworICAgICAgICAtd2Via2l0
LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOworICAgICAgICAtd2Via2l0
LXRyYW5zaXRpb24tZHVyYXRpb246IDEwczsKKyAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbjogbGluZWFyOworICAgIH0KKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgImFu
aW0iIHsKKyAgICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwxMDBw
eCkgfQorICAgICAgICB0byAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg0MDBweCwg
MTAwcHgpIH0KKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIAor
ICAgIHJlc3VsdCA9ICJQQVNTIjsKKyAgICBjb25zdCBkZWZhdWx0VG9sZXJhbmNlID0gMC4xOwor
ICAgIAorICAgIGZ1bmN0aW9uIGlzRXF1YWwoYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCisg
ICAgeworICAgICAgICBpZiAodG9sZXJhbmNlID09IHVuZGVmaW5lZCB8fCB0b2xlcmFuY2UgPT0g
MCkKKyAgICAgICAgICAgIHRvbGVyYW5jZSA9IGRlZmF1bHRUb2xlcmFuY2U7CisgICAgICAgIHZh
ciBkaWZmID0gTWF0aC5hYnMoYWN0dWFsIC0gZGVzaXJlZCk7CisgICAgICAgIHJldHVybiBkaWZm
IDwgdG9sZXJhbmNlOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBzbmFwc2hvdCgpCisgICAg
eworICAgICAgICB2YXIgbSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgYSA9IG0uc3Bs
aXQoIigiKTsKKyAgICAgICAgYSA9IGFbMV0uc3BsaXQoIiwiKTsKKyAgICAgICAgCisgICAgICAg
IGNvbnNvbGUubG9nKG0pOworICAgICAgICBpZiAoIWlzRXF1YWwocGFyc2VGbG9hdChhWzVdKSwg
MCkpCisgICAgICAgICAgICByZXN1bHQgPSAiRkFJTCh3YXM6IithWzVdKyIsIGV4cGVjdGVkOjAp
IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgeworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYm94Iikuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0
ZVgoNDAwcHgpIjsKKyAgICAgICAgCisgICAgICAgIHNldFRpbWVvdXQoInNuYXBzaG90KCkiLCA0
MDApOworICAgICAgICAKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0g
cmVzdWx0OworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sIDUwMCk7CisgICAgfQorICAgIAorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dl
YmtpdEFuaW1hdGlvblN0YXJ0Jywgc3RhcnQsIGZhbHNlKTsKKyAgICAKKyAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBoYXMgYSB0cmFuc2l0aW9uIGFuZCBhbmltYXRpb24g
b24gdGhlIHNhbWUgcHJvcGVydHkgKC13ZWJraXQtdHJhbnNmb3JtKS4gCitUaGUgYW5pbWF0aW9u
IHN0YXJ0cyBhbmQgdGhlbiB0aGUgdHJhbnNpdGlvbiBpcyB0cmlnZ2VyZWQuIFRoZSB0cmFuc2l0
aW9uIHNob3VsZCBzdGFydAorYXQgdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0
YXJ0ZWQgKHRoZSB1bmFuaW1hdGVkIHBvc2l0aW9uKSwgd2hpY2ggaXMgKDAsMCkuIElmIGl0Citz
dGFydHMgZnJvbSB0aGUgc3RhcnQgcG9pbnQgb2YgdGhlIGFuaW1hdGlvbiAoMCwxMDApIHRoZW4g
dGhlcmUgaXMgYW4gZXJyb3IKKzxkaXYgaWQ9ImJveCI+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3Vs
dCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="10724"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>