<?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>49284</bug_id>
          
          <creation_ts>2010-11-09 14:49:59 -0800</creation_ts>
          <short_desc>SVGAnimation calcMode &apos;spline&apos; should be useable for from-to and from-by animations</short_desc>
          <delta_ts>2010-11-11 10:43:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>abarth</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307002</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-09 14:49:59 -0800</bug_when>
    <thetext>SVG animations should use from-to-by animations as some kind of fallback, if a values list is not specified. The specification goes a bit more into detail about spline but it&apos;s still necessary to investigate what other viewers are doing. See last two paragraphs in http://www.w3.org/TR/SMIL3/smil-animation.html#animationNS-InterpolationKeysplines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307004</commentid>
    <comment_count>1</comment_count>
      <attachid>73424</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-09 14:51:13 -0800</bug_when>
    <thetext>Created attachment 73424
calcMode=&quot;spline&quot; from-to-animation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307889</commentid>
    <comment_count>2</comment_count>
      <attachid>73607</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-11 06:47:49 -0800</bug_when>
    <thetext>Created attachment 73607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307894</commentid>
    <comment_count>3</comment_count>
      <attachid>73607</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-11 06:54:06 -0800</bug_when>
    <thetext>Comment on attachment 73607
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=73607&amp;action=review

Tests look great, please change bug title and clarify changelog, r=me.

&gt; WebCore/ChangeLog:5
&gt; +        SVGAnimation calcMode=&quot;spline&quot; should use &apos;to&apos; &apos;by&apos; animation if no values were specified

The bug title is unclear, wheter you mean &apos;to-by&apos; animation or &apos;to or by animation&apos;.

&gt; WebCore/ChangeLog:8
&gt; +        Add support for from-to-by animations in combination with calcMode &apos;spline&apos; for SVGAnimations.

from-to-by?
you mean from-to / from-by ?

&gt; WebCore/svg/SVGAnimationElement.cpp:515
&gt;          unsigned num = m_keySplines.size() + 1;

s/num/splinesCount/  ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307962</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-11 09:27:19 -0800</bug_when>
    <thetext>Committed r71828: &lt;http://trac.webkit.org/changeset/71828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307969</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-11 09:42:14 -0800</bug_when>
    <thetext>Committed r71830: &lt;http://trac.webkit.org/changeset/71830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307988</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-11 10:42:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/71828 might have broken Leopard Intel Release (Tests)
The following tests are not passing:
media/video-played-collapse.html
media/video-played-ranges-1.html
media/video-played-reset.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307990</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-11 10:43:06 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/71830 might have broken Leopard Intel Release (Tests)
The following tests are not passing:
media/video-played-collapse.html
media/video-played-ranges-1.html
media/video-played-reset.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>73424</attachid>
            <date>2010-11-09 14:51:13 -0800</date>
            <delta_ts>2010-11-09 14:51:13 -0800</delta_ts>
            <desc>calcMode=&quot;spline&quot; from-to-animation</desc>
            <filename>animateTransform.svg</filename>
            <type>image/svg+xml</type>
            <size>468</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPCEtLSByZWQgcmVmZXJlbmNlIHJlY3QuIFNob3Vs
ZCBiZSBvdmVybGF5ZWQgYnkgYSBncmVlbiByZWN0IGFmdGVyIDIgc2Vjb25kcy0tPgo8cmVjdCB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0icmVkIi8+Cgo8cmVjdCBpZD0icmVjdDAiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB4PSIxMDAiIGZpbGw9ImdyZWVuIi8+CjxhbmltYXRlIGF0
dHJpYnV0ZU5hbWU9IngiIGFkZGl0aXZlPSJyZXBsYWNlIiBrZXlUaW1lcz0iMDsxIiBmaWxsPSJm
cmVlemUiIGZyb209IjEwMCIgdG89IjAiIGJlZ2luPSIxLjVzIiBrZXlTcGxpbmVzPSIwLjI1IC41
IC4yNSAwLjg1IiBkdXI9IjAuNXMiIGNhbGNNb2RlPSJzcGxpbmUiIHhsaW5rOmhyZWY9IiNyZWN0
MCIvPgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73607</attachid>
            <date>2010-11-11 06:47:49 -0800</date>
            <delta_ts>2010-11-11 06:54:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49284-20101111154746.patch</filename>
            <type>text/plain</type>
            <size>32735</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTgxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTEtMTEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkdB
bmltYXRpb24gY2FsY01vZGU9InNwbGluZSIgc2hvdWxkIHVzZSAndG8nICdieScgYW5pbWF0aW9u
IGlmIG5vIHZhbHVlcyB3ZXJlIHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyODQKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZnJv
bS10by1ieSBhbmltYXRpb25zIGluIGNvbWJpbmF0aW9uIHdpdGggY2FsY01vZGUgJ3NwbGluZScg
Zm9yIFNWR0FuaW1hdGlvbnMuCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25zL2FuaW1h
dGUtY2FsY01vZGUtc3BsaW5lLWJ5Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tYnkuaHRtbAorICAgICAgICAgICAgICAgc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJvbS10by5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS10by5odG1sCisg
ICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS12YWx1
ZXMuaHRtbAorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2FsY3VsYXRlS2V5VGltZXNJbmRleCk6
IEFkZGVkIHRvIHNoYXJlIG1vcmUgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlv
bkVsZW1lbnQ6OmNhbGN1bGF0ZVBlcmNlbnRGcm9tS2V5UG9pbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmN1cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c3RhcnRlZEFjdGl2ZUlu
dGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFu
aW1hdGlvbik6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaDoKKwogMjAxMC0x
MS0xMSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA3MTY2NykKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zODIsNyArMzgyLDE4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxl
bWVudDo6Y2FsY3VsYXRlS2V5VGkKIH0KIAogc3RhdGljIGlubGluZSBkb3VibGUgc29sdmVFcHNp
bG9uKGRvdWJsZSBkdXJhdGlvbikgeyByZXR1cm4gMS4gLyAoMjAwLiAqIGR1cmF0aW9uKTsgfQot
ICAgIAorCit1bnNpZ25lZCBTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjdWxhdGVLZXlUaW1lc0lu
ZGV4KGZsb2F0IHBlcmNlbnQpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgaW5kZXg7CisgICAgdW5z
aWduZWQga2V5VGltZXNDb3VudCA9IG1fa2V5VGltZXMuc2l6ZSgpOworICAgIGZvciAoaW5kZXgg
PSAxOyBpbmRleCA8IGtleVRpbWVzQ291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKG1fa2V5
VGltZXNbaW5kZXhdID49IHBlcmNlbnQpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIC0taW5kZXg7Cit9CisKIGZsb2F0IFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGN1bGF0
ZVBlcmNlbnRGb3JTcGxpbmUoZmxvYXQgcGVyY2VudCwgdW5zaWduZWQgc3BsaW5lSW5kZXgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGNhbGNNb2RlKCkgPT0gQ2FsY01vZGVTcGxpbmUpOwpAQCAtNDAy
LDEzICs0MTMsNyBAQCBmbG9hdCBTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjdWxhdGVQZXJjCiAg
ICAgQVNTRVJUKGtleVRpbWVzQ291bnQgPiAxKTsKICAgICBBU1NFUlQobV9rZXlQb2ludHMuc2l6
ZSgpID09IGtleVRpbWVzQ291bnQpOwogCi0gICAgdW5zaWduZWQgaW5kZXg7Ci0gICAgZm9yIChp
bmRleCA9IDE7IGluZGV4IDwga2V5VGltZXNDb3VudDsgKytpbmRleCkgewotICAgICAgICBpZiAo
bV9rZXlUaW1lc1tpbmRleF0gPj0gcGVyY2VudCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0K
LSAgICAtLWluZGV4OwotCisgICAgdW5zaWduZWQgaW5kZXggPSBjYWxjdWxhdGVLZXlUaW1lc0lu
ZGV4KHBlcmNlbnQpOwogICAgIGZsb2F0IGZyb21QZXJjZW50ID0gbV9rZXlUaW1lc1tpbmRleF07
CiAgICAgZmxvYXQgdG9QZXJjZW50ID0gbV9rZXlUaW1lc1tpbmRleCArIDFdOwogICAgIGZsb2F0
IGZyb21LZXlQb2ludCA9IG1fa2V5UG9pbnRzW2luZGV4XTsKQEAgLTQ1MSwxMyArNDU2LDcgQEAg
dm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpjdXJyZW50VmFsdWVzRgogICAgIEFTU0VSVCgha2V5
VGltZXNDb3VudCB8fCB2YWx1ZXNDb3VudCA9PSBrZXlUaW1lc0NvdW50KTsKICAgICBBU1NFUlQo
IWtleVRpbWVzQ291bnQgfHwgKGtleVRpbWVzQ291bnQgPiAxICYmIG1fa2V5VGltZXNbMF0gPT0g
MCkpOwogCi0gICAgdW5zaWduZWQgaW5kZXg7Ci0gICAgZm9yIChpbmRleCA9IDE7IGluZGV4IDwg
a2V5VGltZXNDb3VudDsgKytpbmRleCkgewotICAgICAgICBpZiAobV9rZXlUaW1lc1tpbmRleF0g
Pj0gcGVyY2VudCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAtLWluZGV4OwotICAg
IAorICAgIHVuc2lnbmVkIGluZGV4ID0gY2FsY3VsYXRlS2V5VGltZXNJbmRleChwZXJjZW50KTsK
ICAgICBpZiAoY2FsY01vZGUgPT0gQ2FsY01vZGVEaXNjcmV0ZSkgewogICAgICAgICBpZiAoIWtl
eVRpbWVzQ291bnQpIAogICAgICAgICAgICAgaW5kZXggPSBwZXJjZW50ID09IDEuMGYgPyB2YWx1
ZXNDb3VudCAtIDEgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocGVyY2VudCAqIHZhbHVlc0NvdW50
KTsKQEAgLTUxMCwxMCArNTA5LDEyIEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c3RhcnRl
ZEFjdGl2ZUkKICAgICBpZiAoaGFzQXR0cmlidXRlKFNWR05hbWVzOjprZXlQb2ludHNBdHRyKSAm
JiBtX2tleVBvaW50cy5zaXplKCkgIT0gbV9rZXlUaW1lcy5zaXplKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSA9IHRoaXMtPmFuaW1hdGlvbk1v
ZGUoKTsKICAgICBDYWxjTW9kZSBjYWxjTW9kZSA9IHRoaXMtPmNhbGNNb2RlKCk7CiAgICAgaWYg
KGNhbGNNb2RlID09IENhbGNNb2RlU3BsaW5lKSB7CiAgICAgICAgIHVuc2lnbmVkIG51bSA9IG1f
a2V5U3BsaW5lcy5zaXplKCkgKyAxOwotICAgICAgICBpZiAoKGhhc0F0dHJpYnV0ZShTVkdOYW1l
czo6a2V5UG9pbnRzQXR0cikgJiYgbV9rZXlQb2ludHMuc2l6ZSgpICE9IG51bSkgfHwgbV92YWx1
ZXMuc2l6ZSgpICE9IG51bSkKKyAgICAgICAgaWYgKChoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6Omtl
eVBvaW50c0F0dHIpICYmIG1fa2V5UG9pbnRzLnNpemUoKSAhPSBudW0pCisgICAgICAgICAgICB8
fCBhbmltYXRpb25Nb2RlID09IFZhbHVlc0FuaW1hdGlvbiAmJiBtX3ZhbHVlcy5zaXplKCkgIT0g
bnVtKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTIxLDcgKzUyMiw2IEBAIHZv
aWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c3RhcnRlZEFjdGl2ZUkKICAgICBTdHJpbmcgdG8gPSB0
b1ZhbHVlKCk7CiAgICAgU3RyaW5nIGJ5ID0gYnlWYWx1ZSgpOwogICAgIFNWR0VsZW1lbnQqIHRh
cmdldCA9IHRhcmdldEVsZW1lbnQoKTsKLSAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUg
PSB0aGlzLT5hbmltYXRpb25Nb2RlKCk7CiAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gTm9Bbmlt
YXRpb24pCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBGcm9tVG9B
bmltYXRpb24pIHsKQEAgLTU1OCw2ICs1NTgsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OnVwZGF0ZUFuaW1hdGlvCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmbG9hdCBlZmZlY3Rp
dmVQZXJjZW50OworICAgIENhbGNNb2RlIG1vZGUgPSBjYWxjTW9kZSgpOwogICAgIGlmIChhbmlt
YXRpb25Nb2RlKCkgPT0gVmFsdWVzQW5pbWF0aW9uKSB7CiAgICAgICAgIFN0cmluZyBmcm9tOwog
ICAgICAgICBTdHJpbmcgdG87CkBAIC01NjksOSArNTcwLDExIEBAIHZvaWQgU1ZHQW5pbWF0aW9u
RWxlbWVudDo6dXBkYXRlQW5pbWF0aW8KICAgICAgICAgICAgIG1fbGFzdFZhbHVlc0FuaW1hdGlv
bkZyb20gPSBmcm9tOwogICAgICAgICAgICAgbV9sYXN0VmFsdWVzQW5pbWF0aW9uVG8gPSB0bzsK
ICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoIW1fa2V5UG9pbnRzLmlzRW1wdHkoKSAmJiBjYWxj
TW9kZSgpICE9IENhbGNNb2RlUGFjZWQpCisgICAgfSBlbHNlIGlmICghbV9rZXlQb2ludHMuaXNF
bXB0eSgpICYmIG1vZGUgIT0gQ2FsY01vZGVQYWNlZCkKICAgICAgICAgZWZmZWN0aXZlUGVyY2Vu
dCA9IGNhbGN1bGF0ZVBlcmNlbnRGcm9tS2V5UG9pbnRzKHBlcmNlbnQpOwotICAgIGVsc2UgCisg
ICAgZWxzZSBpZiAobV9rZXlQb2ludHMuaXNFbXB0eSgpICYmIG1vZGUgPT0gQ2FsY01vZGVTcGxp
bmUgJiYgbV9rZXlUaW1lcy5zaXplKCkgPiAxKQorICAgICAgICBlZmZlY3RpdmVQZXJjZW50ID0g
Y2FsY3VsYXRlUGVyY2VudEZvclNwbGluZShwZXJjZW50LCBjYWxjdWxhdGVLZXlUaW1lc0luZGV4
KHBlcmNlbnQpKTsKKyAgICBlbHNlCiAgICAgICAgIGVmZmVjdGl2ZVBlcmNlbnQgPSBwZXJjZW50
OwogCiAgICAgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShlZmZlY3RpdmVQZXJjZW50LCByZXBlYXQs
IHJlc3VsdEVsZW1lbnQpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNp
b24gNzE2NjcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZs
b2F0IGNhbGN1bGF0ZVBlcmNlbnRGcm9tS2V5UG9pbnRzKGZsb2F0IHBlcmNlbnQpIGNvbnN0Owog
ICAgICAgICB2b2lkIGN1cnJlbnRWYWx1ZXNGcm9tS2V5UG9pbnRzKGZsb2F0IHBlcmNlbnQsIGZs
b2F0JiBlZmZlY3RpdmVQZXJjZW50LCBTdHJpbmcmIGZyb20sIFN0cmluZyYgdG8pIGNvbnN0Owog
ICAgICAgICBmbG9hdCBjYWxjdWxhdGVQZXJjZW50Rm9yU3BsaW5lKGZsb2F0IHBlcmNlbnQsIHVu
c2lnbmVkIHNwbGluZUluZGV4KSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgY2FsY3VsYXRlS2V5
VGltZXNJbmRleChmbG9hdCBwZXJjZW50KSBjb25zdDsKICAgICAgICAgCiAgICAgICAgIC8vIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9TVEFU
SUNfUFJPUEVSVFlfTkVXKFNWR0FuaW1hdGlvbkVsZW1lbnQsIFNWR05hbWVzOjpleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxODE2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDggQEAKKzIwMTAt
MTEtMTEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gY2FsY01vZGU9InNw
bGluZSIgc2hvdWxkIHVzZSAndG8nICdieScgYW5pbWF0aW9uIGlmIG5vIHZhbHVlcyB3ZXJlIHNw
ZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDkyODQKKworICAgICAgICBBZGRlZCBuZXcgU1ZHIGFuaW1hdGlvbiB0ZXN0cyB0byB0ZXN0IGNh
bGNNb2RlICdzcGxpbmUnLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxj
TW9kZS1zcGxpbmUtYnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1ieS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1mcm9tLWJ5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxp
bmUtZnJvbS1ieS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRl
LWNhbGNNb2RlLXNwbGluZS1mcm9tLXRvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJvbS10by5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS10by1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2Fs
Y01vZGUtc3BsaW5lLXRvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtY2FsY01vZGUtc3BsaW5lLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXZhbHVlcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jYWxj
TW9kZS1zcGxpbmUtYnkuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChz
YW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGlu
ZS1mcm9tLWJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxl
Mik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJv
bS10by5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgor
ICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXRvLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChz
YW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdmFsdWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUz
KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKwogMjAxMC0xMS0xMSAgTmlrb2xhcyBaaW1tZXJt
YW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBE
aXJrIFNjaHVsemUuCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNh
bGNNb2RlLXNwbGluZS1ieS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtYnktZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9k
ZS1zcGxpbmUtYnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgY2FsY01vZGUgc3BsaW5lIHdp
dGggYnkgYW5pbWF0aW9uLiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIDEwMHgxMDAgcmVjdCBhbmQg
b25seSBQQVNTIG1lc3NhZ2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LnguYmFzZVZhbC52YWx1ZSBp
cyAxMDAKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgYWxtb3N0IDE4LjgsIGFmdGVyIGZp
cnN0IGhhbGYKK1BBU1MgcmVjdC54LmJhc2VWYWwudmFsdWUgaXMgYWxtb3N0IDE4LjgsIGFmdGVy
IGZpcnN0IGhhbGYKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgYWxtb3N0IDAsIGp1c3Qg
YmVmb3JlLWVuZAorUEFTUyByZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBhbG1vc3QgMCwganVzdCBi
ZWZvcmUtZW5kCitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lngu
YmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LWNhbGNNb2RlLXNwbGluZS1ieS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWJ5Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1ieS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25U
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FuaW1hdGUtY2Fs
Y01vZGUtc3BsaW5lLWJ5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tYnkt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tYnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJv
bS1ieS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBjYWxjTW9kZSBzcGxpbmUgd2l0aCBmcm9t
LWJ5IGFuaW1hdGlvbi4gWW91IHNob3VsZCBzZWUgYSBncmVlbiAxMDB4MTAwIHJlY3QgYW5kIG9u
bHkgUEFTUyBtZXNzYWdlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBy
ZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC54LmJhc2VWYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9zdCAxOC44LCBhZnRlciBmaXJz
dCBoYWxmCitQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFsbW9zdCAxOC44LCBhZnRlciBm
aXJzdCBoYWxmCitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9zdCAwLCBqdXN0IGJl
Zm9yZS1lbmQKK1BBU1MgcmVjdC54LmJhc2VWYWwudmFsdWUgaXMgYWxtb3N0IDAsIGp1c3QgYmVm
b3JlLWVuZAorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC54LmJh
c2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1j
YWxjTW9kZS1zcGxpbmUtZnJvbS1ieS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tYnkuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3Bs
aW5lLWZyb20tYnkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1mcm9tLWJ5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01v
ZGUtc3BsaW5lLWZyb20tdG8tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tdG8tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1j
YWxjTW9kZS1zcGxpbmUtZnJvbS10by1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBjYWxjTW9k
ZSBzcGxpbmUgd2l0aCBmcm9tLXRvIGFuaW1hdGlvbi4gWW91IHNob3VsZCBzZWUgYSBncmVlbiAx
MDB4MTAwIHJlY3QgYW5kIG9ubHkgUEFTUyBtZXNzYWdlcworCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC54
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9z
dCAxOC44LCBhZnRlciBmaXJzdCBoYWxmCitQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFs
bW9zdCAxOC44LCBhZnRlciBmaXJzdCBoYWxmCitQQVNTIHJlY3QueC5hbmltVmFsLnZhbHVlIGlz
IGFsbW9zdCAwLCBqdXN0IGJlZm9yZS1lbmQKK1BBU1MgcmVjdC54LmJhc2VWYWwudmFsdWUgaXMg
YWxtb3N0IDAsIGp1c3QgYmVmb3JlLWVuZAorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC54LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJvbS10by5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLWZy
b20tdG8uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtY2FsY01vZGUtc3BsaW5lLWZyb20tdG8uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1mcm9tLXRvLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXRvLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS10by1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9h
bmltYXRlLWNhbGNNb2RlLXNwbGluZS10by1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBjYWxj
TW9kZSBzcGxpbmUgd2l0aCB0byBhbmltYXRpb24uIFlvdSBzaG91bGQgc2VlIGEgZ3JlZW4gMTAw
eDEwMCByZWN0IGFuZCBvbmx5IFBBU1MgbWVzc2FnZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3QueC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3Qg
MTguOCwgYWZ0ZXIgZmlyc3QgaGFsZgorUEFTUyByZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBhbG1v
c3QgMTguOCwgYWZ0ZXIgZmlyc3QgaGFsZgorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBh
bG1vc3QgMCwganVzdCBiZWZvcmUtZW5kCitQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFs
bW9zdCAwLCBqdXN0IGJlZm9yZS1lbmQKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMTAw
CitQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXRvLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdG8uaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01v
ZGUtc3BsaW5lLXRvLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgx
PlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdG8uanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9kZS1z
cGxpbmUtdmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS12YWx1ZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxjTW9k
ZS1zcGxpbmUtdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBA
QAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IGNhbGNNb2RlIHNwbGlu
ZSB3aXRoIHZhbHVlcyBhbmltYXRpb24uIFlvdSBzaG91bGQgc2VlIGEgZ3JlZW4gMTAweDEwMCBy
ZWN0IGFuZCBvbmx5IFBBU1MgbWVzc2FnZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3QueC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3QgMTguOCwg
YWZ0ZXIgZmlyc3QgaGFsZgorUEFTUyByZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBhbG1vc3QgMTgu
OCwgYWZ0ZXIgZmlyc3QgaGFsZgorUEFTUyByZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3Qg
MCwganVzdCBiZWZvcmUtZW5kCitQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFsbW9zdCAw
LCBqdXN0IGJlZm9yZS1lbmQKK1BBU1MgcmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXZhbHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXZhbHVlcy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jYWxj
TW9kZS1zcGxpbmUtdmFsdWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdmFsdWVzLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1ieS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUt
YnkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtYnkuanMJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IGNhbGNNb2RlIHNwbGluZSB3aXRoIGJ5IGFuaW1h
dGlvbi4gWW91IHNob3VsZCBzZWUgYSBncmVlbiAxMDB4MTAwIHJlY3QgYW5kIG9ubHkgUEFTUyBt
ZXNzYWdlcyIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVu
dAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMTAwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVh
dGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5p
bWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ4Iik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYnkiLCAiLTEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgia2V5VGltZXMiLCAiMDsxIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgia2V5U3BsaW5lcyIsICIwLjI1IC41IC4yNSAwLjg1Iik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiY2FsY01vZGUiLCAic3BsaW5lIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOwor
cm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0
ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRp
dGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3QueC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBz
YW1wbGUyKCkgeworICAgIHZhciBvayA9IGlzQ2xvc2VFbm91Z2gocmVjdC54LmFuaW1WYWwudmFs
dWUsIDE4LjgsIDAuMDEpOworICAgIGlmIChvaykKKyAgICAgICAgdGVzdFBhc3NlZCgicmVjdC54
LmFuaW1WYWwudmFsdWUgaXMgYWxtb3N0IDE4LjgsIGFmdGVyIGZpcnN0IGhhbGYiKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlY3QueC5hbmltVmFsLnZhbHVlIGlzIE5PVCBhbG1v
c3QgNTEsIGFzIGV4cGVjdGVkIik7CisKKyAgICBvayA9IGlzQ2xvc2VFbm91Z2gocmVjdC54LmJh
c2VWYWwudmFsdWUsIDE4LjgsIDAuMDEpOworICAgIGlmIChvaykKKyAgICAgICAgdGVzdFBhc3Nl
ZCgicmVjdC54LmJhc2VWYWwudmFsdWUgaXMgYWxtb3N0IDE4LjgsIGFmdGVyIGZpcnN0IGhhbGYi
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlz
IE5PVCBhbG1vc3QgMTguOCwgYXMgZXhwZWN0ZWQiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygp
IHsKKyAgICAvLyBGSVhNRTogQWRkIGFuaW1WYWwgc3VwcG9ydC4gQW5pbWF0ZXMgYmFzZVZhbCBh
dCB0aGUgbW9tZW50LgorICAgIC8vIHNob3VsZEJlKCJyZWN0LnguYW5pbVZhbC52YWx1ZSIsICIw
Iik7CisgICAgLy8gc2hvdWxkQmUoInJlY3QueC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIpOworCisg
ICAgLy8gQ2hlY2sganVzdCBiZWZvcmUtZW5kIGNvbmRpdGlvbnMKKyAgICB2YXIgb2sgPSBpc0Ns
b3NlRW5vdWdoKHJlY3QueC5hbmltVmFsLnZhbHVlLCAwLCAwLjAxKTsKKyAgICBpZiAob2spCisg
ICAgICAgIHRlc3RQYXNzZWQoInJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9zdCAwLCBqdXN0
IGJlZm9yZS1lbmQiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlY3QueC5hbmlt
VmFsLnZhbHVlIGlzIE5PVCBhbG1vc3QgMCwgYXMgZXhwZWN0ZWQiKTsKKworICAgIG9rID0gaXND
bG9zZUVub3VnaChyZWN0LnguYmFzZVZhbC52YWx1ZSwgMCwgMC4wMSk7CisgICAgaWYgKG9rKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBhbG1vc3QgMCwganVz
dCBiZWZvcmUtZW5kIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWN0LnguYmFz
ZVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDAsIGFzIGV4cGVjdGVkIik7Cit9CisKK2Z1bmN0aW9u
IGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAv
LyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAz
Ljk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAi
cmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSgxNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1j
YWxjTW9kZS1zcGxpbmUtZnJvbS1ieS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtZnJvbS1ieS5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1mcm9tLWJ5LmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDgwIEBACitkZXNjcmlwdGlvbigiVGVzdCBjYWxjTW9kZSBzcGxpbmUgd2l0aCBmcm9tLWJ5
IGFuaW1hdGlvbi4gWW91IHNob3VsZCBzZWUgYSBncmVlbiAxMDB4MTAwIHJlY3QgYW5kIG9ubHkg
UEFTUyBtZXNzYWdlcyIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBk
b2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0
dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUg
PSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQi
LCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ4
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJieSIsICItMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xp
Y2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJrZXlUaW1lcyIsICIwOzEiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJrZXlTcGxp
bmVzIiwgIjAuMjUgLjUgLjI1IDAuODUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJjYWxjTW9k
ZSIsICJzcGxpbmUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVu
dC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNo
b3VsZEJlKCJyZWN0LnguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVj
dC54LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7Cisg
ICAgdmFyIG9rID0gaXNDbG9zZUVub3VnaChyZWN0LnguYW5pbVZhbC52YWx1ZSwgMTguOCwgMC4w
MSk7CisgICAgaWYgKG9rKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LnguYW5pbVZhbC52YWx1
ZSBpcyBhbG1vc3QgMTguOCwgYWZ0ZXIgZmlyc3QgaGFsZiIpOworICAgIGVsc2UKKyAgICAgICAg
dGVzdEZhaWxlZCgicmVjdC54LmFuaW1WYWwudmFsdWUgaXMgTk9UIGFsbW9zdCA1MSwgYXMgZXhw
ZWN0ZWQiKTsKKworICAgIG9rID0gaXNDbG9zZUVub3VnaChyZWN0LnguYmFzZVZhbC52YWx1ZSwg
MTguOCwgMC4wMSk7CisgICAgaWYgKG9rKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LnguYmFz
ZVZhbC52YWx1ZSBpcyBhbG1vc3QgMTguOCwgYWZ0ZXIgZmlyc3QgaGFsZiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgicmVjdC54LmJhc2VWYWwudmFsdWUgaXMgTk9UIGFsbW9zdCAx
OC44LCBhcyBleHBlY3RlZCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIC8vIEZJ
WE1FOiBBZGQgYW5pbVZhbCBzdXBwb3J0LiBBbmltYXRlcyBiYXNlVmFsIGF0IHRoZSBtb21lbnQu
CisgICAgLy8gc2hvdWxkQmUoInJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICAvLyBz
aG91bGRCZSgicmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMjAwIik7CisKKyAgICAvLyBDaGVjayBq
dXN0IGJlZm9yZS1lbmQgY29uZGl0aW9ucworICAgIHZhciBvayA9IGlzQ2xvc2VFbm91Z2gocmVj
dC54LmFuaW1WYWwudmFsdWUsIDAsIDAuMDEpOworICAgIGlmIChvaykKKyAgICAgICAgdGVzdFBh
c3NlZCgicmVjdC54LmFuaW1WYWwudmFsdWUgaXMgYWxtb3N0IDAsIGp1c3QgYmVmb3JlLWVuZCIp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicmVjdC54LmFuaW1WYWwudmFsdWUgaXMg
Tk9UIGFsbW9zdCAwLCBhcyBleHBlY3RlZCIpOworCisgICAgb2sgPSBpc0Nsb3NlRW5vdWdoKHJl
Y3QueC5iYXNlVmFsLnZhbHVlLCAwLCAwLjAxKTsKKyAgICBpZiAob2spCisgICAgICAgIHRlc3RQ
YXNzZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFsbW9zdCAwLCBqdXN0IGJlZm9yZS1lbmQi
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlz
IE5PVCBhbG1vc3QgMCwgYXMgZXhwZWN0ZWQiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3Qo
KSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25J
ZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24i
LCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAg
ICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3Qi
LCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDE1
MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGlu
ZS1mcm9tLXRvLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS1mcm9tLXRvLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtY2Fs
Y01vZGUtc3BsaW5lLWZyb20tdG8uanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0IGNhbGNNb2RlIHNwbGluZSB3aXRoIGZyb20tdG8gYW5pbWF0aW9uLiBZ
b3Ugc2hvdWxkIHNlZSBhIGdyZWVuIDEwMHgxMDAgcmVjdCBhbmQgb25seSBQQVNTIG1lc3NhZ2Vz
Iik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIg
cmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIs
ICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7
CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
Im9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24i
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIngiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwg
IjAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImtleVRpbWVz
IiwgIjA7MSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImtleVNwbGluZXMiLCAiMC4yNSAuNSAu
MjUgMC44NSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImNhbGNNb2RlIiwgInNwbGluZSIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3QueC5h
bmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LnguYmFzZVZhbC52YWx1
ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICB2YXIgb2sgPSBpc0Ns
b3NlRW5vdWdoKHJlY3QueC5hbmltVmFsLnZhbHVlLCAxOC44LCAwLjAxKTsKKyAgICBpZiAob2sp
CisgICAgICAgIHRlc3RQYXNzZWQoInJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9zdCAxOC44
LCBhZnRlciBmaXJzdCBoYWxmIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWN0
LnguYW5pbVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDUxLCBhcyBleHBlY3RlZCIpOworCisgICAg
b2sgPSBpc0Nsb3NlRW5vdWdoKHJlY3QueC5iYXNlVmFsLnZhbHVlLCAxOC44LCAwLjAxKTsKKyAg
ICBpZiAob2spCisgICAgICAgIHRlc3RQYXNzZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFs
bW9zdCAxOC44LCBhZnRlciBmaXJzdCBoYWxmIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFp
bGVkKCJyZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDE4LjgsIGFzIGV4cGVjdGVk
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgLy8gRklYTUU6IEFkZCBhbmltVmFs
IHN1cHBvcnQuIEFuaW1hdGVzIGJhc2VWYWwgYXQgdGhlIG1vbWVudC4KKyAgICAvLyBzaG91bGRC
ZSgicmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIC8vIHNob3VsZEJlKCJyZWN0Lngu
YmFzZVZhbC52YWx1ZSIsICIyMDAiKTsKKworICAgIC8vIENoZWNrIGp1c3QgYmVmb3JlLWVuZCBj
b25kaXRpb25zCisgICAgdmFyIG9rID0gaXNDbG9zZUVub3VnaChyZWN0LnguYW5pbVZhbC52YWx1
ZSwgMCwgMC4wMSk7CisgICAgaWYgKG9rKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LnguYW5p
bVZhbC52YWx1ZSBpcyBhbG1vc3QgMCwganVzdCBiZWZvcmUtZW5kIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0RmFpbGVkKCJyZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDAsIGFz
IGV4cGVjdGVkIik7CisKKyAgICBvayA9IGlzQ2xvc2VFbm91Z2gocmVjdC54LmJhc2VWYWwudmFs
dWUsIDAsIDAuMDEpOworICAgIGlmIChvaykKKyAgICAgICAgdGVzdFBhc3NlZCgicmVjdC54LmJh
c2VWYWwudmFsdWUgaXMgYWxtb3N0IDAsIGp1c3QgYmVmb3JlLWVuZCIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZCgicmVjdC54LmJhc2VWYWwudmFsdWUgaXMgTk9UIGFsbW9zdCAwLCBh
cyBleHBlY3RlZCIpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50
SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3Qi
LCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxl
Ml0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoMTUwLCAzMCkiLCAwKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtY2FsY01vZGUtc3BsaW5lLXRvLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNh
bGNNb2RlLXNwbGluZS10by5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS10by5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3OSBAQAorZGVzY3JpcHRpb24oIlRlc3QgY2FsY01vZGUgc3BsaW5l
IHdpdGggdG8gYW5pbWF0aW9uLiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIDEwMHgxMDAgcmVjdCBh
bmQgb25seSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1
cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIx
MDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIg
YW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVO
YW1lIiwgIngiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIwIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIi
LCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJrZXlUaW1lcyIsICIwOzEiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJrZXlTcGxpbmVzIiwgIjAuMjUgLjUgLjI1IDAuODUiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJjYWxjTW9kZSIsICJzcGxpbmUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LnguYW5pbVZhbC52YWx1ZSIsICIx
MDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgdmFyIG9rID0gaXNDbG9zZUVub3VnaChyZWN0Lngu
YW5pbVZhbC52YWx1ZSwgMTguOCwgMC4wMSk7CisgICAgaWYgKG9rKQorICAgICAgICB0ZXN0UGFz
c2VkKCJyZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3QgMTguOCwgYWZ0ZXIgZmlyc3QgaGFs
ZiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicmVjdC54LmFuaW1WYWwudmFsdWUg
aXMgTk9UIGFsbW9zdCA1MSwgYXMgZXhwZWN0ZWQiKTsKKworICAgIG9rID0gaXNDbG9zZUVub3Vn
aChyZWN0LnguYmFzZVZhbC52YWx1ZSwgMTguOCwgMC4wMSk7CisgICAgaWYgKG9rKQorICAgICAg
ICB0ZXN0UGFzc2VkKCJyZWN0LnguYmFzZVZhbC52YWx1ZSBpcyBhbG1vc3QgMTguOCwgYWZ0ZXIg
Zmlyc3QgaGFsZiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicmVjdC54LmJhc2VW
YWwudmFsdWUgaXMgTk9UIGFsbW9zdCAxOC44LCBhcyBleHBlY3RlZCIpOworfQorCitmdW5jdGlv
biBzYW1wbGUzKCkgeworICAgIC8vIEZJWE1FOiBBZGQgYW5pbVZhbCBzdXBwb3J0LiBBbmltYXRl
cyBiYXNlVmFsIGF0IHRoZSBtb21lbnQuCisgICAgLy8gc2hvdWxkQmUoInJlY3QueC5hbmltVmFs
LnZhbHVlIiwgIjAiKTsKKyAgICAvLyBzaG91bGRCZSgicmVjdC54LmJhc2VWYWwudmFsdWUiLCAi
MjAwIik7CisKKyAgICAvLyBDaGVjayBqdXN0IGJlZm9yZS1lbmQgY29uZGl0aW9ucworICAgIHZh
ciBvayA9IGlzQ2xvc2VFbm91Z2gocmVjdC54LmFuaW1WYWwudmFsdWUsIDAsIDAuMDEpOworICAg
IGlmIChvaykKKyAgICAgICAgdGVzdFBhc3NlZCgicmVjdC54LmFuaW1WYWwudmFsdWUgaXMgYWxt
b3N0IDAsIGp1c3QgYmVmb3JlLWVuZCIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
cmVjdC54LmFuaW1WYWwudmFsdWUgaXMgTk9UIGFsbW9zdCAwLCBhcyBleHBlY3RlZCIpOworCisg
ICAgb2sgPSBpc0Nsb3NlRW5vdWdoKHJlY3QueC5iYXNlVmFsLnZhbHVlLCAwLCAwLjAxKTsKKyAg
ICBpZiAob2spCisgICAgICAgIHRlc3RQYXNzZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFs
bW9zdCAwLCBqdXN0IGJlZm9yZS1lbmQiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQo
InJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIE5PVCBhbG1vc3QgMCwgYXMgZXhwZWN0ZWQiKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMiwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
NC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3Qo
ZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGlt
ZW91dCgidHJpZ2dlclVwZGF0ZSgxNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
YW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdmFsdWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNhbGNNb2RlLXNwbGluZS12
YWx1ZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvYW5pbWF0ZS1jYWxjTW9kZS1zcGxpbmUtdmFsdWVzLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDc5IEBACitkZXNjcmlwdGlvbigiVGVzdCBjYWxjTW9kZSBzcGxpbmUgd2l0aCB2
YWx1ZXMgYW5pbWF0aW9uLiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIDEwMHgxMDAgcmVjdCBhbmQg
b25seSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0
ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIxMDAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5p
bWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1l
IiwgIngiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCAiMTAwOzAiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImtleVRpbWVzIiwgIjA7MSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImtleVNwbGluZXMiLCAiMC4yNSAuNSAuMjUgMC44NSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImNhbGNNb2RlIiwgInNwbGluZSIpOworcmVjdC5hcHBlbmRD
aGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBT
ZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBp
bml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3QueC5hbmltVmFsLnZhbHVl
IiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LnguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsK
K30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICB2YXIgb2sgPSBpc0Nsb3NlRW5vdWdoKHJl
Y3QueC5hbmltVmFsLnZhbHVlLCAxOC44LCAwLjAxKTsKKyAgICBpZiAob2spCisgICAgICAgIHRl
c3RQYXNzZWQoInJlY3QueC5hbmltVmFsLnZhbHVlIGlzIGFsbW9zdCAxOC44LCBhZnRlciBmaXJz
dCBoYWxmIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWN0LnguYW5pbVZhbC52
YWx1ZSBpcyBOT1QgYWxtb3N0IDUxLCBhcyBleHBlY3RlZCIpOworCisgICAgb2sgPSBpc0Nsb3Nl
RW5vdWdoKHJlY3QueC5iYXNlVmFsLnZhbHVlLCAxOC44LCAwLjAxKTsKKyAgICBpZiAob2spCisg
ICAgICAgIHRlc3RQYXNzZWQoInJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIGFsbW9zdCAxOC44LCBh
ZnRlciBmaXJzdCBoYWxmIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWN0Lngu
YmFzZVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDE4LjgsIGFzIGV4cGVjdGVkIik7Cit9CisKK2Z1
bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgLy8gRklYTUU6IEFkZCBhbmltVmFsIHN1cHBvcnQuIEFu
aW1hdGVzIGJhc2VWYWwgYXQgdGhlIG1vbWVudC4KKyAgICAvLyBzaG91bGRCZSgicmVjdC54LmFu
aW1WYWwudmFsdWUiLCAiMCIpOworICAgIC8vIHNob3VsZEJlKCJyZWN0LnguYmFzZVZhbC52YWx1
ZSIsICIyMDAiKTsKKworICAgIC8vIENoZWNrIGp1c3QgYmVmb3JlLWVuZCBjb25kaXRpb25zCisg
ICAgdmFyIG9rID0gaXNDbG9zZUVub3VnaChyZWN0LnguYW5pbVZhbC52YWx1ZSwgMCwgMC4wMSk7
CisgICAgaWYgKG9rKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LnguYW5pbVZhbC52YWx1ZSBp
cyBhbG1vc3QgMCwganVzdCBiZWZvcmUtZW5kIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFp
bGVkKCJyZWN0LnguYW5pbVZhbC52YWx1ZSBpcyBOT1QgYWxtb3N0IDAsIGFzIGV4cGVjdGVkIik7
CisKKyAgICBvayA9IGlzQ2xvc2VFbm91Z2gocmVjdC54LmJhc2VWYWwudmFsdWUsIDAsIDAuMDEp
OworICAgIGlmIChvaykKKyAgICAgICAgdGVzdFBhc3NlZCgicmVjdC54LmJhc2VWYWwudmFsdWUg
aXMgYWxtb3N0IDAsIGp1c3QgYmVmb3JlLWVuZCIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgicmVjdC54LmJhc2VWYWwudmFsdWUgaXMgTk9UIGFsbW9zdCAwLCBhcyBleHBlY3RlZCIp
OworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVl
cyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNh
bGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoMTUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="64076"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>