<?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>85071</bug_id>
          
          <creation_ts>2012-04-27 08:50:44 -0700</creation_ts>
          <short_desc>Fix repetitions &amp; by animation support for path animations</short_desc>
          <delta_ts>2012-04-28 02:19:24 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
    
    <blocked>36729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>koivisto</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611543</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-04-27 08:50:44 -0700</bug_when>
    <thetext>Currently accumulation isn&apos;t handled at all in SVGAnimatedPathAnimator, and by animations fallback to to-animations, which is against SMIL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611559</commentid>
    <comment_count>1</comment_count>
      <attachid>139214</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-04-27 09:09:18 -0700</bug_when>
    <thetext>Created attachment 139214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612194</commentid>
    <comment_count>2</comment_count>
      <attachid>139214</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-28 00:45:33 -0700</bug_when>
    <thetext>Comment on attachment 139214
Patch

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

r=me

&gt; Source/WebCore/svg/SVGAnimatedPath.cpp:134
&gt; +        SVGPathParserFactory::self()-&gt;addToSVGPathByteStream(animatedPath, toPath, repeatCount);

SVGPathParserFactory singleton doesn&apos;t add anything (except some overhead for passing the this pointer), addToSVGPathByteStream and pals could be free functions and the whole SVGPathParserFactory type removed.

&gt; Source/WebCore/svg/SVGPathBlender.cpp:392
&gt; -        if (m_fromSource-&gt;hasMoreData() != m_toSource-&gt;hasMoreData())
&gt; -            return false;
&gt; -        if (!m_fromSource-&gt;hasMoreData() || !m_toSource-&gt;hasMoreData())
&gt; +        if (fromSourceHadData) {
&gt; +            if (m_fromSource-&gt;hasMoreData() != m_toSource-&gt;hasMoreData())
&gt; +                return false;
&gt; +            if (!m_fromSource-&gt;hasMoreData() || !m_toSource-&gt;hasMoreData())
&gt; +                break;
&gt; +        } else if (!m_toSource-&gt;hasMoreData())
&gt;              break;
&gt;      }
&gt;      return true;

You should replace all instances of &apos;break&apos; in this function with &apos;return true&apos;. It will be shorter and read better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612196</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-28 00:48:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; You should replace all instances of &apos;break&apos; in this function with &apos;return true&apos;. It will be shorter and read better.

        case PathSegCurveToQuadraticAbs:
            return blendCurveToQuadraticSegment();

etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612198</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-04-28 00:51:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 139214 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139214&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedPath.cpp:134
&gt; &gt; +        SVGPathParserFactory::self()-&gt;addToSVGPathByteStream(animatedPath, toPath, repeatCount);
&gt; 
&gt; SVGPathParserFactory singleton doesn&apos;t add anything (except some overhead for passing the this pointer), addToSVGPathByteStream and pals could be free functions and the whole SVGPathParserFactory type removed.
As discussed on IRC, I&apos;ll turn SVGPathParserFactory into free functions, it also  needs a rename, it might be a factory internally, but doesn&apos;t act as such to the outside.


&gt; &gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:392
&gt; &gt;              break;
&gt; &gt;      }
&gt; &gt;      return true;
&gt; 
&gt; You should replace all instances of &apos;break&apos; in this function with &apos;return true&apos;. It will be shorter and read better.
Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612199</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-28 00:53:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; You should replace all instances of &apos;break&apos; in this function with &apos;return true&apos;. It will be shorter and read better.
&gt; 
&gt;         case PathSegCurveToQuadraticAbs:
&gt;             return blendCurveToQuadraticSegment();
&gt; 
&gt; etc.

Ah forget it. I misread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612203</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-04-28 01:26:44 -0700</bug_when>
    <thetext>Committed r115555: &lt;http://trac.webkit.org/changeset/115555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612209</commentid>
    <comment_count>7</comment_count>
      <attachid>139214</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-28 02:08:38 -0700</bug_when>
    <thetext>Comment on attachment 139214
Patch

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

&gt; Source/WebCore/svg/SVGPathBlender.cpp:149
&gt; -    float fromY;
&gt; +    float fromY = 0;
&gt;      float toY;

It would be less confusing to initialize these both. Optimization is unlikely to be meaningful. Or at least add a comment explaining it is not a mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612211</commentid>
    <comment_count>8</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-04-28 02:19:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Committed r115555: &lt;http://trac.webkit.org/changeset/115555&gt;

Landed SVGPathBlender cleanups separated in r115558.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139214</attachid>
            <date>2012-04-27 09:09:18 -0700</date>
            <delta_ts>2012-04-28 02:08:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85071-20120427180918.patch</filename>
            <type>text/plain</type>
            <size>51611</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE2M2ViMGUzNGQ0MWI2
ZmVkOTRmZjQ1NjRkNjExMGU2MmRhZDM3OC4uMTY0NzVlNDY1MDA2MjYzNzY3MjMzNjM5MWVkYmJi
NmZhNmI0MmQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA0LTI3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIEZpeCByZXBl
dGl0aW9ucyAmIGJ5IGFuaW1hdGlvbiBzdXBwb3J0IGZvciBwYXRoIGFuaW1hdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGFkZGl0
aXZlPSJzdW0iIC8gYnktYW5pbWF0aW9uIHN1cHBvcnQgZm9yIHBhdGggYW5pbWF0aW9ucywgZWcu
CisgICAgICAgIDxwYXRoIGQ9Ik0gMTAgMTAgTCAxMCAxMDAgWiI+CisgICAgICAgICAgICA8YW5p
bWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0iMHMiIGR1cj0iNHMiIGJ5PSJNIDAgMCBMIDkw
IDAgWiIvPgorICAgICAgICA8cGF0aD4KKworICAgICAgICBhbmltYXRlcyB0aGUgZCBhdHRyaWJ1
dGUgdG8gIk0gMTAgMTAgTCAxMDAgMTAwIDAgWiIuCisKKyAgICAgICAgTm93IG9ubHkgPGFuaW1h
dGVDb2xvcj4gYW5kIDxhbmltYXRlTW90aW9uPiBhcmUgbGVmdCB0byBiZSBmaXhlZCwgYWxsIG90
aGVyIHR5cGVzIGFyZSB3b3JraW5nIGFzIGV4cGVjdGVkIG5vdyBpbiBhbGwgYWRkaXRpdmUvYWNj
dW11bGF0ZS9mcm9tLWJ5L2J5L2Zyb20tdG8gYW5pbWF0aW9ucy4KKworICAgICAgICBUZXN0czog
c3ZnL2FuaW1hdGlvbnMvcGF0aC1hbmltYXRpb24tZXhwZWN0ZWQuc3ZnCisgICAgICAgICAgICAg
ICBzdmcvYW5pbWF0aW9ucy9yZXBlYXRpbmctcGF0aC1hbmltYXRpb24tZXhwZWN0ZWQuc3ZnCisg
ICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9yZXBlYXRpbmctcGF0aC1hbmltYXRpb24uc3Zn
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKTogSW1wbGVtZW50ZWQs
IHRvIHN1cHBvcnQgYnktYW5pbWF0aW9ucywgaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdG8t
YW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKTogSGFuZGxlIHJlcGV0aXRpb25zLCBhY2N1bXVsYXRpb24g
JiBhZGRpdGlvbi4KKyAgICAgICAgKiBzdmcvU1ZHUGF0aEJsZW5kZXIuY3BwOiBBbGxvdyBlbXB0
eSBmcm9tIHNvdXJjZSBldmVyeXdoZXJlLCB1c2UgZGVmYXVsdCB2YWx1ZXMgaWYgbm8gZnJvbSB2
YWx1ZSBpcyBzcGVjaWZpZWQsIG5lZWRlZCBmb3IgYnktYW5pbWF0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpTVkdQYXRoQmxlbmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZERpbWVuc29uYWxGbG9hdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZEZsb2F0UG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kTW92ZVRvU2VnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9TZWdtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZExpbmVUb0hvcml6b250YWxTZWdtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZExpbmVUb1ZlcnRpY2Fs
U2VnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRDdXJ2ZVRv
Q3ViaWNTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEN1
cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5k
ZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNlZ21lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQXJjVG9TZWdtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWRQYXRoKToKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aEJsZW5kZXIuaDogQWRkIG5ldyBhZGRBbmltYXRlZFBhdGggZnVuY3Rpb24uCisgICAg
ICAgIChTVkdQYXRoQmxlbmRlcik6CisgICAgICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6
CisgICAgICAgIChTVkdQYXRoQnl0ZVN0cmVhbSk6IE1ha2UgU1ZHUGF0aEJ5dGVTdHJlYW1zIGNv
cHlhYmxlLCBuZWVkZWQgZm9yIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OnNpemUpOiBSZXR1cm5zIHNpemUgb2YgdGhlIFNWR1Bh
dGhCeXRlU3RyZWFtLgorICAgICAgICAqIHN2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRBbmltYXRlZFNWR1Bh
dGhCeXRlU3RyZWFtKTogQWxsb3cgZW1wdHkgZnJvbSBzdHJlYW1zLCBuZWVkZWQgZm9yIGJ5IGFu
aW1hdGlvbnMuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0pOiBBZGQgJ2J5U3RyZWFtJyAncmVwZWF0Q291bnQnIHRpbWVzIHRv
ICd0b1N0cmVhbScuIEJvdGggc3RyZWFtcyBtdXN0IG1hdGNoIGluIHNpemUuCisgICAgICAgICog
c3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5Lmg6IEFkZCBuZXcgYWRkVG9TVkdQYXRoQnl0ZVN0cmVh
bSBmdW5jdGlvbi4KKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0LmNwcDogUmVtb3ZlIGRlYWQg
Y29kZS4KKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6IERpdHRvLgorICAgICAgICAoU1ZH
UG9pbnRMaXN0KToKKwogMjAxMi0wNC0yNyAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQXZvaWQgbXV0YXRpbmcgRWxlbWVudCBhdHRyaWJ1dGUgc3RvcmFnZSBp
biBTdGVwUmFuZ2UgY29uc3RydWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCmluZGV4IGRlOWRiYzg3ZTlhMzczZjJmNzY3M2QxOTVhZjI2ZjQ2OTcwMDcwY2IuLjI0YzFj
YmVmYmE1NDliNTIwZjZkNjIzY2Y5N2NlZjI5MDQ5NDg5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBhdGguY3BwCkBAIC04OSw1MCArODksNDkgQEAgdm9pZCBTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6YW5pbVZhbERpZENoYW5nZShjb25zdCBWZWN0b3I8U1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSoKIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8pCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChmcm9tLCBmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICBBU1NFUlRf
VU5VU0VEKHRvLCBmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CisgICAgQVNTRVJUKGZyb20t
PnR5cGUoKSA9PSBBbmltYXRlZFBhdGgpOworICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICAvLyBGSVhNRTogQWRkIGFkZGl0aXZlIHN1cHBvcnQuCisgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOworICAgIFNWR1BhdGhCeXRl
U3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOworICAgIHVuc2lnbmVkIGl0ZW1zQ291bnQgPSBm
cm9tUGF0aC0+c2l6ZSgpOworICAgIGlmICghaXRlbXNDb3VudCB8fCBpdGVtc0NvdW50ICE9IHRv
UGF0aC0+c2l6ZSgpKQorICAgICAgICByZXR1cm47CisgICAgU1ZHUGF0aFBhcnNlckZhY3Rvcnk6
OnNlbGYoKS0+YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAot
dm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93
blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1h
dGVkKQordm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4mIGFuaW1hdGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR0FuaW1hdGVFbGVtZW50
KiBhbmltYXRpb25FbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihtX2Fu
aW1hdGlvbkVsZW1lbnQpOwotICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSA9IGFuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKTsKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSogZnJv
bVBhdGggPSBmcm9tLT5wYXRoKCk7CisgICAgQVNTRVJUKGZyb21QYXRoKTsKIAogICAgIFNWR1Bh
dGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwogICAgIEFTU0VSVCh0b1BhdGgpOwog
Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIEFT
U0VSVChmcm9tUGF0aCk7Ci0KICAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0g
YW5pbWF0ZWQtPnBhdGgoKTsKICAgICBBU1NFUlQoYW5pbWF0ZWRQYXRoKTsKIAotICAgIGlmIChh
bmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uKQotICAgICAgICBmcm9tUGF0aC0+aW5pdGlhbGl6
ZUZyb20oYW5pbWF0ZWRQYXRoKTsKLQotICAgIGlmICghcGVyY2VudGFnZSkgewotICAgICAgICBh
bmltYXRlZFBhdGgtPmluaXRpYWxpemVGcm9tKGZyb21QYXRoKTsKKyAgICAvLyBQYXNzIGZhbHNl
IHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5pbWF0
aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0aEJ5
dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCisgICAgaWYgKCFtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KDAsICpmcm9t
UGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgbV9jb250ZXh0RWxlbWVu
dCwgZmFsc2UpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCi0gICAgaWYgKHBlcmNlbnRhZ2Ug
PT0gMSkgewotICAgICAgICBhbmltYXRlZFBhdGgtPmluaXRpYWxpemVGcm9tKHRvUGF0aCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgLy8gQ2FjaGUgdGhlIGN1cnJlbnQgYW5pbWF0ZWQg
dmFsdWUgYmVmb3JlIHRoZSBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oKSBjbGVhcnMg
YW5pbWF0ZWRQYXRoLgorICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gbGFzdEFuaW1hdGVk
UGF0aDsKKyAgICBpZiAoIWZyb21QYXRoLT5zaXplKCkgfHwgKG1fYW5pbWF0aW9uRWxlbWVudC0+
aXNBZGRpdGl2ZSgpICYmIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpICE9IFRv
QW5pbWF0aW9uKSkKKyAgICAgICAgbGFzdEFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29w
eSgpOwogCi0gICAgYm9vbCBzdWNjZXNzID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYoKS0+
YnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVk
UGF0aCwgcGVyY2VudGFnZSk7Ci0gICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgIHJldHVybjsKKyAg
ICBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6c2VsZigpLT5idWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVT
dHJlYW0oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQYXRoLCBwZXJjZW50YWdlKTsKKworICAg
IC8vIEhhbmRsZSBhZGRpdGl2ZT0nc3VtJy4KKyAgICBpZiAobGFzdEFuaW1hdGVkUGF0aCkKKyAg
ICAgICAgU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYoKS0+YWRkVG9TVkdQYXRoQnl0ZVN0cmVh
bShhbmltYXRlZFBhdGgsIGxhc3RBbmltYXRlZFBhdGguZ2V0KCkpOwogCi0gICAgaWYgKChhbmlt
YXRpb25Nb2RlID09IEZyb21Ub0FuaW1hdGlvbiAmJiBwZXJjZW50YWdlID4gMC41KSB8fCBhbmlt
YXRpb25Nb2RlID09IFRvQW5pbWF0aW9uKQotICAgICAgICBhbmltYXRlZFBhdGgtPmluaXRpYWxp
emVGcm9tKHRvUGF0aCk7Ci0gICAgZWxzZQotICAgICAgICBhbmltYXRlZFBhdGgtPmluaXRpYWxp
emVGcm9tKGZyb21QYXRoKTsKKyAgICAvLyBIYW5kbGUgYWNjdW11bGF0ZT0nc3VtJy4KKyAgICBp
ZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQpCisg
ICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5OjpzZWxmKCktPmFkZFRvU1ZHUGF0aEJ5dGVTdHJl
YW0oYW5pbWF0ZWRQYXRoLCB0b1BhdGgsIHJlcGVhdENvdW50KTsKIH0KICAgIAogZmxvYXQgU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5k
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcAppbmRleCBjOTkx
ZDZiMmZiZGUxZmEwNzNiODAwZWU3NjBkODYzYjA3MDEzNjMwLi45ZjcxNzQ0YzkyNjEyNGZlZTUz
MTA0OGE3ZjA5MmYxYTc4MjMyODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEJsZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5j
cHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvblV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIKKyNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIsNiArMzMsOCBAQCBTVkdQYXRoQmxlbmRl
cjo6U1ZHUGF0aEJsZW5kZXIoKQogICAgICwgbV90b1NvdXJjZSgwKQogICAgICwgbV9jb25zdW1l
cigwKQogICAgICwgbV9wcm9ncmVzcygwKQorICAgICwgbV9hZGRUeXBlc0NvdW50KDApCisgICAg
LCBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbihmYWxzZSkKIHsKIH0KIApAQCAtNDMsNiArNDYs
MTEgQEAgc3RhdGljIGlubGluZSBGbG9hdFBvaW50IGJsZW5kRmxvYXRQb2ludChjb25zdCBGbG9h
dFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JgogCiBmbG9hdCBTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRBbmltYXRlZERpbWVuc29uYWxGbG9hdChmbG9hdCBmcm9tLCBmbG9hdCB0bywgRmxvYXRCbGVu
ZE1vZGUgYmxlbmRNb2RlKQogeworICAgIGlmIChtX2FkZFR5cGVzQ291bnQpIHsKKyAgICAgICAg
QVNTRVJUKG1fZnJvbU1vZGUgPT0gbV90b01vZGUpOworICAgICAgICByZXR1cm4gZnJvbSArIHRv
ICogbV9hZGRUeXBlc0NvdW50OworICAgIH0KKwogICAgIGlmIChtX2Zyb21Nb2RlID09IG1fdG9N
b2RlKQogICAgICAgICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIG1fcHJvZ3Jlc3MpOwogICAgIApA
QCAtNjIsNiArNzAsMTMgQEAgZmxvYXQgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWREaW1l
bnNvbmFsRmxvYXQoZmxvYXQgZnJvbSwgZmxvYXQgdG8sIEZsb2F0QmwKIAogRmxvYXRQb2ludCBT
VkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoY29uc3QgRmxvYXRQb2ludCYg
ZnJvbVBvaW50LCBjb25zdCBGbG9hdFBvaW50JiB0b1BvaW50KQogeworICAgIGlmIChtX2FkZFR5
cGVzQ291bnQpIHsKKyAgICAgICAgQVNTRVJUKG1fZnJvbU1vZGUgPT0gbV90b01vZGUpOworICAg
ICAgICBGbG9hdFBvaW50IHJlcGVhdGVkVG9Qb2ludCA9IHRvUG9pbnQ7CisgICAgICAgIHJlcGVh
dGVkVG9Qb2ludC5zY2FsZShtX2FkZFR5cGVzQ291bnQsIG1fYWRkVHlwZXNDb3VudCk7CisgICAg
ICAgIHJldHVybiBmcm9tUG9pbnQgKyByZXBlYXRlZFRvUG9pbnQ7CisgICAgfQorCiAgICAgaWYg
KG1fZnJvbU1vZGUgPT0gbV90b01vZGUpCiAgICAgICAgIHJldHVybiBibGVuZEZsb2F0UG9pbnQo
ZnJvbVBvaW50LCB0b1BvaW50LCBtX3Byb2dyZXNzKTsKIApAQCAtOTAsNyArMTA1LDcgQEAgYm9v
bCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRNb3ZlVG9TZWdtZW50KCkKIHsKICAgICBGbG9hdFBvaW50
IGZyb21UYXJnZXRQb2ludDsKICAgICBGbG9hdFBvaW50IHRvVGFyZ2V0UG9pbnQ7Ci0gICAgaWYg
KCFtX2Zyb21Tb3VyY2UtPnBhcnNlTW92ZVRvU2VnbWVudChmcm9tVGFyZ2V0UG9pbnQpCisgICAg
aWYgKChtX2Zyb21Tb3VyY2UtPmhhc01vcmVEYXRhKCkgJiYgIW1fZnJvbVNvdXJjZS0+cGFyc2VN
b3ZlVG9TZWdtZW50KGZyb21UYXJnZXRQb2ludCkpCiAgICAgICAgIHx8ICFtX3RvU291cmNlLT5w
YXJzZU1vdmVUb1NlZ21lbnQodG9UYXJnZXRQb2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtMTA0LDcgKzExOSw3IEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kTGluZVRvU2Vn
bWVudCgpCiB7CiAgICAgRmxvYXRQb2ludCBmcm9tVGFyZ2V0UG9pbnQ7CiAgICAgRmxvYXRQb2lu
dCB0b1RhcmdldFBvaW50OwotICAgIGlmICghbV9mcm9tU291cmNlLT5wYXJzZUxpbmVUb1NlZ21l
bnQoZnJvbVRhcmdldFBvaW50KQorICAgIGlmICgobV9mcm9tU291cmNlLT5oYXNNb3JlRGF0YSgp
ICYmICFtX2Zyb21Tb3VyY2UtPnBhcnNlTGluZVRvU2VnbWVudChmcm9tVGFyZ2V0UG9pbnQpKQog
ICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VMaW5lVG9TZWdtZW50KHRvVGFyZ2V0UG9pbnQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTExNiw5ICsxMzEsOSBAQCBib29sIFNWR1Bh
dGhCbGVuZGVyOjpibGVuZExpbmVUb1NlZ21lbnQoKQogCiBib29sIFNWR1BhdGhCbGVuZGVyOjpi
bGVuZExpbmVUb0hvcml6b250YWxTZWdtZW50KCkKIHsKLSAgICBmbG9hdCBmcm9tWDsKKyAgICBm
bG9hdCBmcm9tWCA9IDA7CiAgICAgZmxvYXQgdG9YOwotICAgIGlmICghbV9mcm9tU291cmNlLT5w
YXJzZUxpbmVUb0hvcml6b250YWxTZWdtZW50KGZyb21YKQorICAgIGlmICgobV9mcm9tU291cmNl
LT5oYXNNb3JlRGF0YSgpICYmICFtX2Zyb21Tb3VyY2UtPnBhcnNlTGluZVRvSG9yaXpvbnRhbFNl
Z21lbnQoZnJvbVgpKQogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VMaW5lVG9Ib3Jpem9u
dGFsU2VnbWVudCh0b1gpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEzMCw5ICsxNDUs
OSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZExpbmVUb0hvcml6b250YWxTZWdtZW50KCkK
IAogYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9WZXJ0aWNhbFNlZ21lbnQoKQogewot
ICAgIGZsb2F0IGZyb21ZOworICAgIGZsb2F0IGZyb21ZID0gMDsKICAgICBmbG9hdCB0b1k7Ci0g
ICAgaWYgKCFtX2Zyb21Tb3VyY2UtPnBhcnNlTGluZVRvVmVydGljYWxTZWdtZW50KGZyb21ZKQor
ICAgIGlmICgobV9mcm9tU291cmNlLT5oYXNNb3JlRGF0YSgpICYmICFtX2Zyb21Tb3VyY2UtPnBh
cnNlTGluZVRvVmVydGljYWxTZWdtZW50KGZyb21ZKSkKICAgICAgICAgfHwgIW1fdG9Tb3VyY2Ut
PnBhcnNlTGluZVRvVmVydGljYWxTZWdtZW50KHRvWSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtMTUwLDcgKzE2NSw3IEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb0N1
YmljU2VnbWVudCgpCiAgICAgRmxvYXRQb2ludCB0b1RhcmdldFBvaW50OwogICAgIEZsb2F0UG9p
bnQgdG9Qb2ludDE7CiAgICAgRmxvYXRQb2ludCB0b1BvaW50MjsKLSAgICBpZiAoIW1fZnJvbVNv
dXJjZS0+cGFyc2VDdXJ2ZVRvQ3ViaWNTZWdtZW50KGZyb21Qb2ludDEsIGZyb21Qb2ludDIsIGZy
b21UYXJnZXRQb2ludCkKKyAgICBpZiAoKG1fZnJvbVNvdXJjZS0+aGFzTW9yZURhdGEoKSAmJiAh
bV9mcm9tU291cmNlLT5wYXJzZUN1cnZlVG9DdWJpY1NlZ21lbnQoZnJvbVBvaW50MSwgZnJvbVBv
aW50MiwgZnJvbVRhcmdldFBvaW50KSkKICAgICAgICAgfHwgIW1fdG9Tb3VyY2UtPnBhcnNlQ3Vy
dmVUb0N1YmljU2VnbWVudCh0b1BvaW50MSwgdG9Qb2ludDIsIHRvVGFyZ2V0UG9pbnQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE2OSw3ICsxODQsNyBAQCBib29sIFNWR1BhdGhCbGVu
ZGVyOjpibGVuZEN1cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQoKQogICAgIEZsb2F0UG9pbnQgZnJv
bVBvaW50MjsKICAgICBGbG9hdFBvaW50IHRvVGFyZ2V0UG9pbnQ7CiAgICAgRmxvYXRQb2ludCB0
b1BvaW50MjsKLSAgICBpZiAoIW1fZnJvbVNvdXJjZS0+cGFyc2VDdXJ2ZVRvQ3ViaWNTbW9vdGhT
ZWdtZW50KGZyb21Qb2ludDIsIGZyb21UYXJnZXRQb2ludCkKKyAgICBpZiAoKG1fZnJvbVNvdXJj
ZS0+aGFzTW9yZURhdGEoKSAmJiAhbV9mcm9tU291cmNlLT5wYXJzZUN1cnZlVG9DdWJpY1Ntb290
aFNlZ21lbnQoZnJvbVBvaW50MiwgZnJvbVRhcmdldFBvaW50KSkKICAgICAgICAgfHwgIW1fdG9T
b3VyY2UtPnBhcnNlQ3VydmVUb0N1YmljU21vb3RoU2VnbWVudCh0b1BvaW50MiwgdG9UYXJnZXRQ
b2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTg3LDcgKzIwMiw3IEBAIGJvb2wg
U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQoKQogICAgIEZsb2F0
UG9pbnQgZnJvbVBvaW50MTsKICAgICBGbG9hdFBvaW50IHRvVGFyZ2V0UG9pbnQ7CiAgICAgRmxv
YXRQb2ludCB0b1BvaW50MTsKLSAgICBpZiAoIW1fZnJvbVNvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVh
ZHJhdGljU2VnbWVudChmcm9tUG9pbnQxLCBmcm9tVGFyZ2V0UG9pbnQpCisgICAgaWYgKChtX2Zy
b21Tb3VyY2UtPmhhc01vcmVEYXRhKCkgJiYgIW1fZnJvbVNvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVh
ZHJhdGljU2VnbWVudChmcm9tUG9pbnQxLCBmcm9tVGFyZ2V0UG9pbnQpKQogICAgICAgICB8fCAh
bV90b1NvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU2VnbWVudCh0b1BvaW50MSwgdG9UYXJn
ZXRQb2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjAzLDcgKzIxOCw3IEBAIGJv
b2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNlZ21lbnQoKQog
ewogICAgIEZsb2F0UG9pbnQgZnJvbVRhcmdldFBvaW50OwogICAgIEZsb2F0UG9pbnQgdG9UYXJn
ZXRQb2ludDsKLSAgICBpZiAoIW1fZnJvbVNvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU21v
b3RoU2VnbWVudChmcm9tVGFyZ2V0UG9pbnQpCisgICAgaWYgKChtX2Zyb21Tb3VyY2UtPmhhc01v
cmVEYXRhKCkgJiYgIW1fZnJvbVNvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU21vb3RoU2Vn
bWVudChmcm9tVGFyZ2V0UG9pbnQpKQogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VDdXJ2
ZVRvUXVhZHJhdGljU21vb3RoU2VnbWVudCh0b1RhcmdldFBvaW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCkBAIC0yMTUsMTEgKzIzMCwxMSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVu
ZEN1cnZlVG9RdWFkcmF0aWNTbW9vdGhTZWdtZW50KCkKIAogYm9vbCBTVkdQYXRoQmxlbmRlcjo6
YmxlbmRBcmNUb1NlZ21lbnQoKQogewotICAgIGZsb2F0IGZyb21SeDsKLSAgICBmbG9hdCBmcm9t
Unk7Ci0gICAgZmxvYXQgZnJvbUFuZ2xlOwotICAgIGJvb2wgZnJvbUxhcmdlQXJjOwotICAgIGJv
b2wgZnJvbVN3ZWVwOworICAgIGZsb2F0IGZyb21SeCA9IDA7CisgICAgZmxvYXQgZnJvbVJ5ID0g
MDsKKyAgICBmbG9hdCBmcm9tQW5nbGUgPSAwOworICAgIGJvb2wgZnJvbUxhcmdlQXJjID0gZmFs
c2U7CisgICAgYm9vbCBmcm9tU3dlZXAgPSBmYWxzZTsKICAgICBGbG9hdFBvaW50IGZyb21UYXJn
ZXRQb2ludDsKICAgICBmbG9hdCB0b1J4OwogICAgIGZsb2F0IHRvUnk7CkBAIC0yMjcsMTcgKzI0
MiwzMCBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEFyY1RvU2VnbWVudCgpCiAgICAgYm9v
bCB0b0xhcmdlQXJjOwogICAgIGJvb2wgdG9Td2VlcDsKICAgICBGbG9hdFBvaW50IHRvVGFyZ2V0
UG9pbnQ7Ci0gICAgaWYgKCFtX2Zyb21Tb3VyY2UtPnBhcnNlQXJjVG9TZWdtZW50KGZyb21SeCwg
ZnJvbVJ5LCBmcm9tQW5nbGUsIGZyb21MYXJnZUFyYywgZnJvbVN3ZWVwLCBmcm9tVGFyZ2V0UG9p
bnQpCisgICAgaWYgKChtX2Zyb21Tb3VyY2UtPmhhc01vcmVEYXRhKCkgJiYgIW1fZnJvbVNvdXJj
ZS0+cGFyc2VBcmNUb1NlZ21lbnQoZnJvbVJ4LCBmcm9tUnksIGZyb21BbmdsZSwgZnJvbUxhcmdl
QXJjLCBmcm9tU3dlZXAsIGZyb21UYXJnZXRQb2ludCkpCiAgICAgICAgIHx8ICFtX3RvU291cmNl
LT5wYXJzZUFyY1RvU2VnbWVudCh0b1J4LCB0b1J5LCB0b0FuZ2xlLCB0b0xhcmdlQXJjLCB0b1N3
ZWVwLCB0b1RhcmdldFBvaW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9jb25z
dW1lci0+YXJjVG8oYmxlbmQoZnJvbVJ4LCB0b1J4LCBtX3Byb2dyZXNzKSwKLSAgICAgICAgICAg
ICAgICAgICAgICBibGVuZChmcm9tUnksIHRvUnksIG1fcHJvZ3Jlc3MpLAotICAgICAgICAgICAg
ICAgICAgICAgIGJsZW5kKGZyb21BbmdsZSwgdG9BbmdsZSwgbV9wcm9ncmVzcyksCi0gICAgICAg
ICAgICAgICAgICAgICAgbV9pc0luRmlyc3RIYWxmT2ZBbmltYXRpb24gPyBmcm9tTGFyZ2VBcmMg
OiB0b0xhcmdlQXJjLAotICAgICAgICAgICAgICAgICAgICAgIG1faXNJbkZpcnN0SGFsZk9mQW5p
bWF0aW9uID8gZnJvbVN3ZWVwIDogdG9Td2VlcCwKLSAgICAgICAgICAgICAgICAgICAgICBibGVu
ZEFuaW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRvVGFyZ2V0UG9pbnQpLAotICAg
ICAgICAgICAgICAgICAgICAgIG1faXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9mcm9tTW9k
ZSA6IG1fdG9Nb2RlKTsKKyAgICBpZiAobV9hZGRUeXBlc0NvdW50KSB7CisgICAgICAgIEFTU0VS
VChtX2Zyb21Nb2RlID09IG1fdG9Nb2RlKTsKKyAgICAgICAgRmxvYXRQb2ludCBzY2FsZWRUb1Rh
cmdldFBvaW50ID0gdG9UYXJnZXRQb2ludDsKKyAgICAgICAgc2NhbGVkVG9UYXJnZXRQb2ludC5z
Y2FsZShtX2FkZFR5cGVzQ291bnQsIG1fYWRkVHlwZXNDb3VudCk7CisgICAgICAgIG1fY29uc3Vt
ZXItPmFyY1RvKGZyb21SeCArIHRvUnggKiBtX2FkZFR5cGVzQ291bnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZyb21SeSArIHRvUnkgKiBtX2FkZFR5cGVzQ291bnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZyb21BbmdsZSArIHRvQW5nbGUgKiBtX2FkZFR5cGVzQ291bnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21MYXJnZUFyYyB8fCB0b0xhcmdlQXJjLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcm9tU3dlZXAgfHwgdG9Td2VlcCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnJvbVRhcmdldFBvaW50ICsgc2NhbGVkVG9UYXJnZXRQb2ludCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9mcm9tTW9kZSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgbV9jb25zdW1lci0+YXJjVG8oYmxlbmQoZnJvbVJ4LCB0b1J4LCBtX3Byb2dyZXNzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbVJ5LCB0b1J5LCBtX3Byb2dyZXNzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbUFuZ2xlLCB0b0FuZ2xlLCBtX3By
b2dyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pc0luRmlyc3RIYWxmT2ZBbmlt
YXRpb24gPyBmcm9tTGFyZ2VBcmMgOiB0b0xhcmdlQXJjLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IGZyb21Td2VlcCA6IHRvU3dlZXAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJn
ZXRQb2ludCwgdG9UYXJnZXRQb2ludCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1faXNJ
bkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICB9CiAg
ICAgbV9mcm9tQ3VycmVudFBvaW50ID0gbV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
ID8gZnJvbVRhcmdldFBvaW50IDogbV9mcm9tQ3VycmVudFBvaW50ICsgZnJvbVRhcmdldFBvaW50
OwogICAgIG1fdG9DdXJyZW50UG9pbnQgPSBtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
ID8gdG9UYXJnZXRQb2ludCA6IG1fdG9DdXJyZW50UG9pbnQgKyB0b1RhcmdldFBvaW50OwogICAg
IHJldHVybiB0cnVlOwpAQCAtMjY5LDYgKzI5NywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNT
ZWdtZW50RXF1YWwoY29uc3QgU1ZHUGF0aFNlZ1R5cGUmIGZyb21UeXBlLCBjb25zdCBTVkdQYXRo
UwogICAgIHJldHVybiB0byA9PSBmcm9tIC0gMTsKIH0KIAorYm9vbCBTVkdQYXRoQmxlbmRlcjo6
YWRkQW5pbWF0ZWRQYXRoKFNWR1BhdGhTb3VyY2UqIGZyb21Tb3VyY2UsIFNWR1BhdGhTb3VyY2Uq
IHRvU291cmNlLCBTVkdQYXRoQ29uc3VtZXIqIGNvbnN1bWVyLCB1bnNpZ25lZCByZXBlYXRDb3Vu
dCkKK3sKKyAgICBUZW1wb3JhcnlDaGFuZ2U8dW5zaWduZWQ+IGNoYW5nZShtX2FkZFR5cGVzQ291
bnQsIHJlcGVhdENvdW50KTsKKyAgICByZXR1cm4gYmxlbmRBbmltYXRlZFBhdGgoMCwgZnJvbVNv
dXJjZSwgdG9Tb3VyY2UsIGNvbnN1bWVyKTsKK30KKwogYm9vbCBTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRBbmltYXRlZFBhdGgoZmxvYXQgcHJvZ3Jlc3MsIFNWR1BhdGhTb3VyY2UqIGZyb21Tb3VyY2Us
IFNWR1BhdGhTb3VyY2UqIHRvU291cmNlLCBTVkdQYXRoQ29uc3VtZXIqIGNvbnN1bWVyKQogewog
ICAgIEFTU0VSVChmcm9tU291cmNlKTsKQEAgLTI3OCwyMCArMzEyLDI0IEBAIGJvb2wgU1ZHUGF0
aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWRQYXRoKGZsb2F0IHByb2dyZXNzLCBTVkdQYXRoU291cmNl
KiBmcm9tU291cmNlCiAgICAgbV90b1NvdXJjZSA9IHRvU291cmNlOwogICAgIG1fY29uc3VtZXIg
PSBjb25zdW1lcjsKICAgICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA9IHByb2dyZXNzIDwg
MC41ZjsKLQogICAgIG1fcHJvZ3Jlc3MgPSBwcm9ncmVzczsKKworICAgIGJvb2wgZnJvbVNvdXJj
ZUhhZERhdGEgPSBtX2Zyb21Tb3VyY2UtPmhhc01vcmVEYXRhKCk7CiAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgU1ZHUGF0aFNlZ1R5cGUgZnJvbUNvbW1hbmQ7CiAgICAgICAgIFNWR1BhdGhT
ZWdUeXBlIHRvQ29tbWFuZDsKLSAgICAgICAgaWYgKCFtX2Zyb21Tb3VyY2UtPnBhcnNlU1ZHU2Vn
bWVudFR5cGUoZnJvbUNvbW1hbmQpIHx8ICFtX3RvU291cmNlLT5wYXJzZVNWR1NlZ21lbnRUeXBl
KHRvQ29tbWFuZCkpCisgICAgICAgIGlmICgoZnJvbVNvdXJjZUhhZERhdGEgJiYgIW1fZnJvbVNv
dXJjZS0+cGFyc2VTVkdTZWdtZW50VHlwZShmcm9tQ29tbWFuZCkpIHx8ICFtX3RvU291cmNlLT5w
YXJzZVNWR1NlZ21lbnRUeXBlKHRvQ29tbWFuZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICAgICAgbV9mcm9tTW9kZSA9IGNvb3JkaW5hdGVNb2RlT2ZDb21tYW5kKGZyb21Db21t
YW5kKTsKICAgICAgICAgbV90b01vZGUgPSBjb29yZGluYXRlTW9kZU9mQ29tbWFuZCh0b0NvbW1h
bmQpOwotICAgICAgICBpZiAoIWlzU2VnbWVudEVxdWFsKGZyb21Db21tYW5kLCB0b0NvbW1hbmQs
IG1fZnJvbU1vZGUsIG1fdG9Nb2RlKSkKKyAgICAgICAgbV9mcm9tTW9kZSA9IGZyb21Tb3VyY2VI
YWREYXRhID8gY29vcmRpbmF0ZU1vZGVPZkNvbW1hbmQoZnJvbUNvbW1hbmQpIDogbV90b01vZGU7
CisgICAgICAgIGlmIChtX2Zyb21Nb2RlICE9IG1fdG9Nb2RlICYmIG1fYWRkVHlwZXNDb3VudCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBzd2l0Y2ggKGZyb21Db21tYW5k
KSB7CisgICAgICAgIGlmIChmcm9tU291cmNlSGFkRGF0YSAmJiAhaXNTZWdtZW50RXF1YWwoZnJv
bUNvbW1hbmQsIHRvQ29tbWFuZCwgbV9mcm9tTW9kZSwgbV90b01vZGUpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIHN3aXRjaCAodG9Db21tYW5kKSB7CiAgICAgICAgIGNh
c2UgUGF0aFNlZ01vdmVUb1JlbDoKICAgICAgICAgY2FzZSBQYXRoU2VnTW92ZVRvQWJzOgogICAg
ICAgICAgICAgaWYgKCFibGVuZE1vdmVUb1NlZ21lbnQoKSkKQEAgLTM0Myw5ICszODEsMTIgQEAg
Ym9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZFBhdGgoZmxvYXQgcHJvZ3Jlc3MsIFNW
R1BhdGhTb3VyY2UqIGZyb21Tb3VyY2UKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBpZiAobV9mcm9tU291cmNlLT5oYXNNb3Jl
RGF0YSgpICE9IG1fdG9Tb3VyY2UtPmhhc01vcmVEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGlmICghbV9mcm9tU291cmNlLT5oYXNNb3JlRGF0YSgpIHx8ICFtX3Rv
U291cmNlLT5oYXNNb3JlRGF0YSgpKQorICAgICAgICBpZiAoZnJvbVNvdXJjZUhhZERhdGEpIHsK
KyAgICAgICAgICAgIGlmIChtX2Zyb21Tb3VyY2UtPmhhc01vcmVEYXRhKCkgIT0gbV90b1NvdXJj
ZS0+aGFzTW9yZURhdGEoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBpZiAoIW1fZnJvbVNvdXJjZS0+aGFzTW9yZURhdGEoKSB8fCAhbV90b1NvdXJjZS0+aGFz
TW9yZURhdGEoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlIGlmICgh
bV90b1NvdXJjZS0+aGFzTW9yZURhdGEoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxl
bmRlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmgKaW5kZXggMjI5MGZi
YmYwZTExYmFmNmY3ODk0ZmQyZTFkOWNmNDI1ZWNkMzcwZi4uNTllOGNjNTVmMTMwMzlkYzQxYTBl
ZjMwMDY5YjcwNDBiNmVhNmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhCbGVuZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmgKQEAg
LTM2LDYgKzM2LDcgQEAgY2xhc3MgU1ZHUGF0aEJsZW5kZXIgewogcHVibGljOgogICAgIFNWR1Bh
dGhCbGVuZGVyKCk7CiAKKyAgICBib29sIGFkZEFuaW1hdGVkUGF0aChTVkdQYXRoU291cmNlKiwg
U1ZHUGF0aFNvdXJjZSosIFNWR1BhdGhDb25zdW1lciosIHVuc2lnbmVkIHJlcGVhdENvdW50KTsK
ICAgICBib29sIGJsZW5kQW5pbWF0ZWRQYXRoKGZsb2F0LCBTVkdQYXRoU291cmNlKiwgU1ZHUGF0
aFNvdXJjZSosIFNWR1BhdGhDb25zdW1lciopOwogICAgIHZvaWQgY2xlYW51cCgpOwogCkBAIC02
Myw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgUGF0aENvb3JkaW5hdGVNb2RlIG1fZnJvbU1vZGU7
CiAgICAgUGF0aENvb3JkaW5hdGVNb2RlIG1fdG9Nb2RlOwogICAgIGZsb2F0IG1fcHJvZ3Jlc3M7
CisgICAgdW5zaWduZWQgbV9hZGRUeXBlc0NvdW50OwogICAgIGJvb2wgbV9pc0luRmlyc3RIYWxm
T2ZBbmltYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEJ5dGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCmlu
ZGV4IGFjZjNlZThjNTZkMDVkMTEyNzA0NGIzMDdiYzdhODRkOTg1NDVkYWQuLjE1YWQ5NjEyMWZh
ZmQwOGQ2N2YzNDk4MTE3OTdkMDdmNWQ0ZjI3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
Qnl0ZVN0cmVhbS5oCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYgdW5pb24gewogfSBVbnNpZ25l
ZFNob3J0Qnl0ZTsKIAogY2xhc3MgU1ZHUGF0aEJ5dGVTdHJlYW0gewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNWR1BhdGhCeXRlU3RyZWFtKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNyZWF0ZSgpCiAgICAgewpAQCAtNTYsMTIgKzU2LDYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR1BhdGhCeXRlU3RyZWFtKG1f
ZGF0YSkpOwogICAgIH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZUZyb20oU1ZHUGF0aEJ5dGVTdHJl
YW0qIG90aGVyKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG90aGVyKTsKLSAgICAgICAgbV9kYXRh
ID0gb3RoZXItPm1fZGF0YTsKLSAgICB9Ci0KICAgICB0eXBlZGVmIFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiBEYXRhOwogICAgIHR5cGVkZWYgRGF0YTo6Y29uc3RfaXRlcmF0b3IgRGF0YUl0ZXJhdG9y
OwogCkBAIC03MCw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmQodW5zaWduZWQg
Y2hhciBieXRlKSB7IG1fZGF0YS5hcHBlbmQoYnl0ZSk7IH0KICAgICB2b2lkIGNsZWFyKCkgeyBt
X2RhdGEuY2xlYXIoKTsgfQogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2Rh
dGEuc2l6ZSgpOyB9CisgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5z
aXplKCk7IH0KKworICAgIC8vIE9ubHkgZGVmaW5lZCB0byBsZXQgU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3IgdXNlIHRoZSBzdGFuZGFyZCBsaXN0IGNvZGUgcGF0aHMgLSB0aGlzIG1ldGhvZCBpcyBu
ZXZlciBjYWxsZWQuCisgICAgdm9pZCByZXNpemUodW5zaWduZWQpIHsgfQogCiBwcml2YXRlOgog
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhQ
YXJzZXJGYWN0b3J5LmNwcAppbmRleCA4YTRlMzFiYjZiYmM4MTQyODUwYjE0OThhNDEyZjczMjhh
YjI5NGE4Li44MTU5MWM0ZDVjMThhMTJkZjRmOTQwMTBiNjAzZTg4YzQxMzI1YmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5jcHAKQEAgLTIzOSw4ICsyMzks
MTAgQEAgYm9vbCBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRBbmltYXRlZFNWR1BhdGhCeXRl
U3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtKiBmcm8KICAgICBBU1NFUlQoZnJvbVN0cmVhbSk7CiAg
ICAgQVNTRVJUKHRvU3RyZWFtKTsKICAgICBBU1NFUlQocmVzdWx0KTsKKyAgICBBU1NFUlQodG9T
dHJlYW0gIT0gcmVzdWx0KTsKKwogICAgIHJlc3VsdC0+Y2xlYXIoKTsKLSAgICBpZiAoZnJvbVN0
cmVhbS0+aXNFbXB0eSgpIHx8IHRvU3RyZWFtLT5pc0VtcHR5KCkpCisgICAgaWYgKHRvU3RyZWFt
LT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlciogYnVpbGRlciA9IGdsb2JhbFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlcihyZXN1
bHQpOwpAQCAtMjUzLDYgKzI1NSwyNiBAQCBib29sIFNWR1BhdGhQYXJzZXJGYWN0b3J5OjpidWls
ZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0qIGZybwogICAgIHJl
dHVybiBvazsKIH0KIAorYm9vbCBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6YWRkVG9TVkdQYXRoQnl0
ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSogZnJvbVN0cmVhbSwgU1ZHUGF0aEJ5dGVTdHJlYW0q
IGJ5U3RyZWFtLCB1bnNpZ25lZCByZXBlYXRDb3VudCkKK3sKKyAgICBBU1NFUlQoZnJvbVN0cmVh
bSk7CisgICAgQVNTRVJUKGJ5U3RyZWFtKTsKKyAgICBpZiAoZnJvbVN0cmVhbS0+aXNFbXB0eSgp
IHx8IGJ5U3RyZWFtLT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlciogYnVpbGRlciA9IGdsb2JhbFNWR1BhdGhCeXRlU3RyZWFt
QnVpbGRlcihmcm9tU3RyZWFtKTsKKworICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gZnJv
bVN0cmVhbUNvcHkgPSBmcm9tU3RyZWFtLT5jb3B5KCk7CisgICAgZnJvbVN0cmVhbS0+Y2xlYXIo
KTsKKworICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZT4gZnJvbVNvdXJjZSA9IFNW
R1BhdGhCeXRlU3RyZWFtU291cmNlOjpjcmVhdGUoZnJvbVN0cmVhbUNvcHkuZ2V0KCkpOworICAg
IE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZT4gYnlTb3VyY2UgPSBTVkdQYXRoQnl0ZVN0
cmVhbVNvdXJjZTo6Y3JlYXRlKGJ5U3RyZWFtKTsKKyAgICBTVkdQYXRoQmxlbmRlciogYmxlbmRl
ciA9IGdsb2JhbFNWR1BhdGhCbGVuZGVyKCk7CisgICAgYm9vbCBvayA9IGJsZW5kZXItPmFkZEFu
aW1hdGVkUGF0aChmcm9tU291cmNlLmdldCgpLCBieVNvdXJjZS5nZXQoKSwgYnVpbGRlciwgcmVw
ZWF0Q291bnQpOworICAgIGJsZW5kZXItPmNsZWFudXAoKTsKKyAgICByZXR1cm4gb2s7Cit9CisK
IGJvb2wgU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmdldFNWR1BhdGhTZWdBdExlbmd0aEZyb21TVkdQ
YXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSogc3RyZWFtLCBmbG9hdCBsZW5ndGgsIHVu
c2lnbmVkJiBwYXRoU2VnKQogewogICAgIEFTU0VSVChzdHJlYW0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaAppbmRleCBhMTY0MDM1YzQzY2QwNDNhZWUwMjg5NGVk
YjU0MmMwMGU3ZWFlMWE4Li41OTA2NzZlMjI3MjIzZGU3NmYyNjZiYTU4MGY3YmZkZWMyMzhjYTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaApAQCAtNTMsNiAr
NTMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBidWlsZFNWR1BhdGhTZWdMaXN0RnJvbUJ5dGVTdHJl
YW0oU1ZHUGF0aEJ5dGVTdHJlYW0qLCBTVkdQYXRoRWxlbWVudCosIFNWR1BhdGhTZWdMaXN0Jiwg
UGF0aFBhcnNpbmdNb2RlKTsKIAogICAgIGJvb2wgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3Ry
ZWFtKFNWR1BhdGhCeXRlU3RyZWFtKiwgU1ZHUGF0aEJ5dGVTdHJlYW0qLCBTVkdQYXRoQnl0ZVN0
cmVhbSosIGZsb2F0KTsKKyAgICBib29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5
dGVTdHJlYW0qLCBTVkdQYXRoQnl0ZVN0cmVhbSosIHVuc2lnbmVkIHJlcGVhdENvdW50ID0gMSk7
CisKICAgICBib29sIGdldFNWR1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRoQnl0ZVN0cmVhbShT
VkdQYXRoQnl0ZVN0cmVhbSosIGZsb2F0IGxlbmd0aCwgdW5zaWduZWQmIHBhdGhTZWcpOwogICAg
IGJvb2wgZ2V0VG90YWxMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFt
KiwgZmxvYXQmIHRvdGFsTGVuZ3RoKTsKICAgICBib29sIGdldFBvaW50QXRMZW5ndGhPZlNWR1Bh
dGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtKiwgZmxvYXQgbGVuZ3RoLCBGbG9hdFBvaW50
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCmluZGV4IDM4NDcwMGViMzA1ZmVhYzcw
NmU1OTdlY2ZiM2FmMmRhNTc4YTdhNWEuLmJlNDAwOWE3MDg4MjhmYzEwZjBmOGJmZTk1ZWExNjQw
NDNiZjk0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCkBAIC00NSwyNiArNDUs
NiBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0Ojp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1mbG9hdCBpbmxpbmUgYWRqdXN0QW5pbWF0ZWRW
YWx1ZShmbG9hdCBmcm9tLCBmbG9hdCB0bywgZmxvYXQgcHJvZ3Jlc3MpCi17Ci0gICAgcmV0dXJu
ICh0byAtIGZyb20pICogcHJvZ3Jlc3MgKyBmcm9tOwotfQotCi1ib29sIFNWR1BvaW50TGlzdDo6
Y3JlYXRlQW5pbWF0ZWQoY29uc3QgU1ZHUG9pbnRMaXN0JiBmcm9tTGlzdCwgY29uc3QgU1ZHUG9p
bnRMaXN0JiB0b0xpc3QsIFNWR1BvaW50TGlzdCYgcmVzdWx0TGlzdCwgZmxvYXQgcHJvZ3Jlc3Mp
Ci17Ci0gICAgdW5zaWduZWQgaXRlbUNvdW50ID0gZnJvbUxpc3Quc2l6ZSgpOwotICAgIGlmICgh
aXRlbUNvdW50IHx8IGl0ZW1Db3VudCAhPSB0b0xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGl0ZW1Db3VudDsgKytuKSB7Ci0g
ICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIGZyb20gPSBmcm9tTGlzdC5hdChuKTsKLSAgICAgICAg
Y29uc3QgRmxvYXRQb2ludCYgdG8gPSB0b0xpc3QuYXQobik7Ci0gICAgICAgIEZsb2F0UG9pbnQg
c2VnbWVudCA9IEZsb2F0UG9pbnQoYWRqdXN0QW5pbWF0ZWRWYWx1ZShmcm9tLngoKSwgdG8ueCgp
LCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRq
dXN0QW5pbWF0ZWRWYWx1ZShmcm9tLnkoKSwgdG8ueSgpLCBwcm9ncmVzcykpOwotICAgICAgICBy
ZXN1bHRMaXN0LmFwcGVuZChzZWdtZW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9pbnRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKaW5k
ZXggNDkxODkzNjgxMTBmZjFmOWJhNTUzYjRkZTRmMGY5MjIwMWVjZDVlZC4uYjZhZWZmYTQ0ODI1
MGU2YWE4MWE4NWYwMjBmYzc2NmFkY2UwOTJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3Qu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgU1ZHUG9pbnRMaXN0KCkgeyB9CiAKICAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwotCi0gICAgc3RhdGljIGJvb2wgY3JlYXRl
QW5pbWF0ZWQoY29uc3QgU1ZHUG9pbnRMaXN0JiBmcm9tTGlzdCwgY29uc3QgU1ZHUG9pbnRMaXN0
JiB0b0xpc3QsIFNWR1BvaW50TGlzdCYgcmVzdWx0TGlzdCwgZmxvYXQgcHJvZ3Jlc3MpOwogfTsK
IAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDliNWQxYjRjM2YzMzU3NDkxZWQyNTcyMTI0ZjM2YmE3NDkz
YTgzYjkuLjcyMTVkMmNjZDc4YmE3MjEyOTg4Y2JkZjg0OTE2YzA5NmJkOTVkYjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMi0wNC0yNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1h
bm5AcmltLmNvbT4KKworICAgICAgICBGaXggcmVwZXRpdGlvbnMgJiBieSBhbmltYXRpb24gc3Vw
cG9ydCBmb3IgcGF0aCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTA3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvcGF0aC1hbmltYXRpb24uc3ZnOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9wYXRoLWFuaW1hdGlvbi1leHBlY3RlZC5zdmc6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3JlcGVhdGluZy1wYXRoLWFuaW1hdGlv
bi1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3JlcGVhdGlu
Zy1wYXRoLWFuaW1hdGlvbi5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdwYXRoLWFuaW1hdGlvbi0xLmpzOiBDb3JyZWN0IHRlc3RjYXNlLCBub3cg
dGhhdCBieSBhbmltYXRpb25zIGFyZSBzdXBwb3J0ZWQuCisgICAgICAgIChzYW1wbGUyKToKKyAg
ICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z3BhdGgtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA0LTI2
ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdm9pZCBtdXRh
dGluZyBFbGVtZW50IGF0dHJpYnV0ZSBzdG9yYWdlIGluIFN0ZXBSYW5nZSBjb25zdHJ1Y3Rvci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3BhdGgtYW5pbWF0aW9uLWV4
cGVjdGVkLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3BhdGgtYW5pbWF0aW9uLWV4
cGVjdGVkLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2VhZGUzMTYxMDc0OGEwMTk0NTQ5N2NmNGQ0YTQzYjQ3
NjA1NDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcGF0
aC1hbmltYXRpb24tZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsMzcgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94bGluayI+CisgIDxwYXRoIGlkPSJwYXRoIiBkPSJNMTAsMTAKKyAgICAgICAgICAgICAg
ICAgTDQwLDEwCisgICAgICAgICAgICAgICAgIGwtMzAsNjAKKyAgICAgICAgICAgICAgICAgSDQw
CisgICAgICAgICAgICAgICAgIFYxMAorICAgICAgICAgICAgICAgICBoMzAKKyAgICAgICAgICAg
ICAgICAgdjYwCisKKyAgICAgICAgICAgICAgICAgTTgwLDEwCisgICAgICAgICAgICAgICAgIEMx
MTAsMTAgOTUsNzAgMTEwLDcwCisgICAgICAgICAgICAgICAgIFMxMTAsMTAgMTQwLDEwCisKKyAg
ICAgICAgICAgICAgICAgbTEwLDAKKyAgICAgICAgICAgICAgICAgYzMwLDAgMTUsNjAgMzAsNjAK
KyAgICAgICAgICAgICAgICAgczAsLTYwIDMwLC02MAorCisgICAgICAgICAgICAgICAgIE0yMjAs
NDAKKyAgICAgICAgICAgICAgICAgUTIzNSw5OCAyNTAsNDAKKyAgICAgICAgICAgICAgICAgVDI4
MCw0MAorCisgICAgICAgICAgICAgICAgIE0yOTAsNDAKKyAgICAgICAgICAgICAgICAgcTE1LDU4
IDMwLDAKKyAgICAgICAgICAgICAgICAgdDMwLDAKKworICAgICAgICAgICAgICAgICBNMzcyLDcw
CisgICAgICAgICAgICAgICAgIEEzMCwxNSAtOTAgMSAxIDM4NCw3MAorCisgICAgICAgICAgICAg
ICAgIE00MTAsNzAKKyAgICAgICAgICAgICAgICAgYTMwLDE1IC05MCAxIDEgMTIsMAorICAgICAg
ICAgICAgICAgICI+CisgIDwvcGF0aD4KKworICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoIiB0cmFu
c2Zvcm09InRyYW5zbGF0ZSgwLCA3MCkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjcGF0aCIgdHJh
bnNmb3JtPSJ0cmFuc2xhdGUoMCwgMTQwKSIvPgorICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoIiB0
cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAyMTApIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3BhdGgtYW5pbWF0aW9uLnN2ZyBiL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3BhdGgtYW5pbWF0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI0ZmNhYzYyNzZi
NTE2YWExNWZmNDFiM2E0ODAyZjMwNzgyMDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvcGF0aC1hbmltYXRpb24uc3ZnCkBAIC0wLDAgKzEsMzI1IEBACis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG9ubG9hZD0ibG9hZGVkKCkiPgorICA8IS0tIFRlc3Qg
J3RvJyBhbmltYXRpb24uIC0tPgorCisgIDxwYXRoIGQ9Ik0xMCwxMAorICAgICAgICAgICBMMTks
MTAKKyAgICAgICAgICAgbC05LDE4CisgICAgICAgICAgIEgxOQorICAgICAgICAgICBWMTAKKyAg
ICAgICAgICAgaDkKKyAgICAgICAgICAgdjE4CisKKyAgICAgICAgICAgTTgwLDEwCisgICAgICAg
ICAgIEM4MCw0MCA4MCwxMCA4OSwxMAorICAgICAgICAgICBTOTgsNDAgOTgsMTAKKworICAgICAg
ICAgICBtNDAsMAorICAgICAgICAgICBjMCwzMCAwLDAgOSwwCisgICAgICAgICAgIHM5LDMwIDks
MAorCisgICAgICAgICAgIE0yMjAsMTAKKyAgICAgICAgICAgUTIyMCwyMCAyMjksMTkKKyAgICAg
ICAgICAgVDIzOCwxMAorCisgICAgICAgICAgIE0yOTAsMTAKKyAgICAgICAgICAgcTAsMTAgOSw5
CisgICAgICAgICAgIHQ5LC05CisKKyAgICAgICAgICAgTTM2MCwxOQorICAgICAgICAgICBBOSw5
IDAgMSAxIDM3OCwxOQorCisgICAgICAgICAgIE00MTAsMTkKKyAgICAgICAgICAgYTksOSAwIDEg
MSAxOCwwCisgICAgICAgICAgIj4KKyAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIgorICAg
ICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCisgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9
IjNzIgorICAgICAgICAgICAgIHRvPSJNMTAsMTAKKyAgICAgICAgICAgICAgICAgTDQwLDEwCisg
ICAgICAgICAgICAgICAgIGwtMzAsNjAKKyAgICAgICAgICAgICAgICAgSDQwCisgICAgICAgICAg
ICAgICAgIFYxMAorICAgICAgICAgICAgICAgICBoMzAKKyAgICAgICAgICAgICAgICAgdjYwCisK
KyAgICAgICAgICAgICAgICAgTTgwLDEwCisgICAgICAgICAgICAgICAgIEMxMTAsMTAgOTUsNzAg
MTEwLDcwCisgICAgICAgICAgICAgICAgIFMxMTAsMTAgMTQwLDEwCisKKyAgICAgICAgICAgICAg
ICAgbTEwLDAKKyAgICAgICAgICAgICAgICAgYzMwLDAgMTUsNjAgMzAsNjAKKyAgICAgICAgICAg
ICAgICAgczAsLTYwIDMwLC02MAorCisgICAgICAgICAgICAgICAgIE0yMjAsNDAKKyAgICAgICAg
ICAgICAgICAgUTIzNSw5OCAyNTAsNDAKKyAgICAgICAgICAgICAgICAgVDI4MCw0MAorCisgICAg
ICAgICAgICAgICAgIE0yOTAsNDAKKyAgICAgICAgICAgICAgICAgcTE1LDU4IDMwLDAKKyAgICAg
ICAgICAgICAgICAgdDMwLDAKKworICAgICAgICAgICAgICAgICBNMzcyLDcwCisgICAgICAgICAg
ICAgICAgIEEzMCwxNSAtOTAgMSAxIDM4NCw3MAorCisgICAgICAgICAgICAgICAgIE00MTAsNzAK
KyAgICAgICAgICAgICAgICAgYTMwLDE1IC05MCAxIDEgMTIsMAorICAgICAgICAgICAgICAgICIK
KyAgICAgICAgICAgICBmaWxsPSJmcmVlemUiLz4KKyAgPC9wYXRoPgorCisKKyAgPCEtLSBUZXN0
ICdieScgYW5pbWF0aW9uLiAtLT4KKworICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCA3
MCkiCisgICAgICAgIGQ9Ik0xMCwxMAorICAgICAgICAgICBMMTksMTAKKyAgICAgICAgICAgbC05
LDE4CisgICAgICAgICAgIEgxOQorICAgICAgICAgICBWMTAKKyAgICAgICAgICAgaDkKKyAgICAg
ICAgICAgdjE4CisKKyAgICAgICAgICAgTTgwLDEwCisgICAgICAgICAgIEM4MCw0MCA4MCwxMCA4
OSwxMAorICAgICAgICAgICBTOTgsNDAgOTgsMTAKKworICAgICAgICAgICBtNDAsMAorICAgICAg
ICAgICBjMCwzMCAwLDAgOSwwCisgICAgICAgICAgIHM5LDMwIDksMAorCisgICAgICAgICAgIE0y
MjAsMTAKKyAgICAgICAgICAgUTIyMCwyMCAyMjksMTkKKyAgICAgICAgICAgVDIzOCwxMAorCisg
ICAgICAgICAgIE0yOTAsMTAKKyAgICAgICAgICAgcTAsMTAgOSw5CisgICAgICAgICAgIHQ5LC05
CisKKyAgICAgICAgICAgTTM2MCwxOQorICAgICAgICAgICBBOSw5IDAgMSAxIDM3OCwxOQorCisg
ICAgICAgICAgIE00MTAsMTkKKyAgICAgICAgICAgYTksOSAwIDEgMSAxOCwwCisgICAgICAgICAg
Ij4KKyAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIgorICAgICAgICAgICAgIGNhbGNNb2Rl
PSJsaW5lYXIiCisgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjNzIgorICAgICAgICAgICAg
IGJ5PSJNMCwwCisgICAgICAgICAgICAgICAgIEwyMSwwCisgICAgICAgICAgICAgICAgIGwtMjEs
NDIKKyAgICAgICAgICAgICAgICAgSDIxCisgICAgICAgICAgICAgICAgIFYwCisgICAgICAgICAg
ICAgICAgIGgyMQorICAgICAgICAgICAgICAgICB2NDIKKworICAgICAgICAgICAgICAgICBNMCww
CisgICAgICAgICAgICAgICAgIEMzMCwtMzAgMTUsNjAgMjEsNjAKKyAgICAgICAgICAgICAgICAg
UzEyLC0zMCA0MiwwCisKKyAgICAgICAgICAgICAgICAgbS0zMCwwCisgICAgICAgICAgICAgICAg
IGMzMCwtMzAgMTUsNjAgMjEsNjAKKyAgICAgICAgICAgICAgICAgcy05LC05MCAyMSwtNjAKKwor
ICAgICAgICAgICAgICAgICBNMCwzMAorICAgICAgICAgICAgICAgICBRMTUsNzggMjEsMjEKKyAg
ICAgICAgICAgICAgICAgVDQyLDMwCisKKyAgICAgICAgICAgICAgICAgTTAsMzAKKyAgICAgICAg
ICAgICAgICAgcTE1LDQ4IDIxLC05CisgICAgICAgICAgICAgICAgIHQyMSw5CisKKyAgICAgICAg
ICAgICAgICAgTTEyLDUxCisgICAgICAgICAgICAgICAgIEEyMSw2IC05MCAxIDEgNiw1MQorCisg
ICAgICAgICAgICAgICAgIE0wLDUxCisgICAgICAgICAgICAgICAgIGEyMSw2IC05MCAxIDEgLTYs
MAorICAgICAgICAgICAgICAgICIKKyAgICAgICAgICAgICBmaWxsPSJmcmVlemUiLz4KKyAgPC9w
YXRoPgorCisKKyAgPCEtLSBUZXN0IGNhbGNNb2RlPSJwYWNlZCIuIC0tPgorCisgIDxwYXRoIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDAsIDE0MCkiPgorICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9
ImQiCisgICAgICAgICAgICAgY2FsY01vZGU9InBhY2VkIgorICAgICAgICAgICAgIGJlZ2luPSIw
cyIgZHVyPSIzcyIKKyAgICAgICAgICAgICB2YWx1ZXM9IgorICAgICAgICAgICAgICAgTTEwLDEw
CisgICAgICAgICAgICAgICBMMTksMTAKKyAgICAgICAgICAgICAgIGwtOSwxOAorICAgICAgICAg
ICAgICAgSDE5CisgICAgICAgICAgICAgICBWMTAKKyAgICAgICAgICAgICAgIGg5CisgICAgICAg
ICAgICAgICB2MTgKKworICAgICAgICAgICAgICAgTTgwLDEwCisgICAgICAgICAgICAgICBDODAs
NDAgODAsMTAgODksMTAKKyAgICAgICAgICAgICAgIFM5OCw0MCA5OCwxMAorCisgICAgICAgICAg
ICAgICBtNDAsMAorICAgICAgICAgICAgICAgYzAsMzAgMCwwIDksMAorICAgICAgICAgICAgICAg
czksMzAgOSwwCisKKyAgICAgICAgICAgICAgIE0yMjAsMTAKKyAgICAgICAgICAgICAgIFEyMjAs
MjAgMjI5LDE5CisgICAgICAgICAgICAgICBUMjM4LDEwCisKKyAgICAgICAgICAgICAgIE0yOTAs
MTAKKyAgICAgICAgICAgICAgIHEwLDEwIDksOQorICAgICAgICAgICAgICAgdDksLTkKKworICAg
ICAgICAgICAgICAgTTM2MCwxOQorICAgICAgICAgICAgICAgQTksOSAwIDEgMSAzNzgsMTkKKwor
ICAgICAgICAgICAgICAgTTQxMCwxOQorICAgICAgICAgICAgICAgYTksOSAwIDEgMSAxOCwwCisK
KyAgICAgICAgICAgICAgIDsKKworICAgICAgICAgICAgICAgTTEwLDEwCisgICAgICAgICAgICAg
ICBMMzMsMTAKKyAgICAgICAgICAgICAgIGwtMjMsNDYKKyAgICAgICAgICAgICAgIEgzMworICAg
ICAgICAgICAgICAgVjEwCisgICAgICAgICAgICAgICBoMjMKKyAgICAgICAgICAgICAgIHY0Ngor
CisgICAgICAgICAgICAgICBNODAsMTAKKyAgICAgICAgICAgICAgIEMxMDAsMjAgOTAsNTAgMTAz
LDUwCisgICAgICAgICAgICAgICBTMTA2LDIwIDEyNiwxMAorCisgICAgICAgICAgICAgICBtMjAs
MAorICAgICAgICAgICAgICAgYzIwLDEwIDEwLDQwIDIzLDQwCisgICAgICAgICAgICAgICBzMywt
MzAgMjMsLTQwCisKKyAgICAgICAgICAgICAgIE0yMjAsMzAKKyAgICAgICAgICAgICAgIFEyMzAs
NzIgMjQzLDMzCisgICAgICAgICAgICAgICBUMjY2LDMwCisKKyAgICAgICAgICAgICAgIE0yOTAs
MzAKKyAgICAgICAgICAgICAgIHExMCw0MiAyMywzCisgICAgICAgICAgICAgICB0MjMsLTMKKwor
ICAgICAgICAgICAgICAgTTM2OCw1MworICAgICAgICAgICAgICAgQTIzLDEzIC02MCAxIDEgMzgy
LDUzCisKKyAgICAgICAgICAgICAgIE00MTAsNTMKKyAgICAgICAgICAgICAgIGEyMywxMyAtNjAg
MSAxIDE0LDAKKworICAgICAgICAgICAgICAgOworCisgICAgICAgICAgICAgICBNMTAsMTAKKyAg
ICAgICAgICAgICAgIEw0MCwxMAorICAgICAgICAgICAgICAgbC0zMCw2MAorICAgICAgICAgICAg
ICAgSDQwCisgICAgICAgICAgICAgICBWMTAKKyAgICAgICAgICAgICAgIGgzMAorICAgICAgICAg
ICAgICAgdjYwCisKKyAgICAgICAgICAgICAgIE04MCwxMAorICAgICAgICAgICAgICAgQzExMCwx
MCA5NSw3MCAxMTAsNzAKKyAgICAgICAgICAgICAgIFMxMTAsMTAgMTQwLDEwCisKKyAgICAgICAg
ICAgICAgIG0xMCwwCisgICAgICAgICAgICAgICBjMzAsMCAxNSw2MCAzMCw2MAorICAgICAgICAg
ICAgICAgczAsLTYwIDMwLC02MAorCisgICAgICAgICAgICAgICBNMjIwLDQwCisgICAgICAgICAg
ICAgICBRMjM1LDk4IDI1MCw0MAorICAgICAgICAgICAgICAgVDI4MCw0MAorCisgICAgICAgICAg
ICAgICBNMjkwLDQwCisgICAgICAgICAgICAgICBxMTUsNTggMzAsMAorICAgICAgICAgICAgICAg
dDMwLDAKKworICAgICAgICAgICAgICAgTTM3Miw3MAorICAgICAgICAgICAgICAgQTMwLDE1IC05
MCAxIDEgMzg0LDcwCisKKyAgICAgICAgICAgICAgIE00MTAsNzAKKyAgICAgICAgICAgICAgIGEz
MCwxNSAtOTAgMSAxIDEyLDAKKyAgICAgICAgICAgICAgIgorICAgICAgICAgICAgIGZpbGw9ImZy
ZWV6ZSIvPgorICA8L3BhdGg+CisKKworICA8IS0tIFRlc3QgY2FsY01vZGU9ImRpc2NyZXRlIi4g
LS0+CisKKyAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjEwKSIKKyAgICAgICAgZD0i
TTEwLDEwCisgICAgICAgICAgIEwxOSwxMAorICAgICAgICAgICBsLTksMTgKKyAgICAgICAgICAg
SDE5CisgICAgICAgICAgIFYxMAorICAgICAgICAgICBoOQorICAgICAgICAgICB2MTgKKworICAg
ICAgICAgICBNODAsMTAKKyAgICAgICAgICAgQzgwLDQwIDgwLDEwIDg5LDEwCisgICAgICAgICAg
IFM5OCw0MCA5OCwxMAorCisgICAgICAgICAgIG00MCwwCisgICAgICAgICAgIGMwLDMwIDAsMCA5
LDAKKyAgICAgICAgICAgczksMzAgOSwwCisKKyAgICAgICAgICAgTTIyMCwxMAorICAgICAgICAg
ICBRMjIwLDIwIDIyOSwxOQorICAgICAgICAgICBUMjM4LDEwCisKKyAgICAgICAgICAgTTI5MCwx
MAorICAgICAgICAgICBxMCwxMCA5LDkKKyAgICAgICAgICAgdDksLTkKKworICAgICAgICAgICBN
MzYwLDE5CisgICAgICAgICAgIEE5LDkgMCAxIDEgMzc4LDE5CisKKyAgICAgICAgICAgTTQxMCwx
OQorICAgICAgICAgICBhOSw5IDAgMSAxIDE4LDAKKyAgICAgICAgICAiPgorICAgIDxhbmltYXRl
IGF0dHJpYnV0ZU5hbWU9ImQiCisgICAgICAgICAgICAgY2FsY01vZGU9ImRpc2NyZXRlIgorICAg
ICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIycyIKKyAgICAgICAgICAgICB0bz0iTTEwLDEwCisg
ICAgICAgICAgICAgICAgIEw0MCwxMAorICAgICAgICAgICAgICAgICBsLTMwLDYwCisgICAgICAg
ICAgICAgICAgIEg0MAorICAgICAgICAgICAgICAgICBWMTAKKyAgICAgICAgICAgICAgICAgaDMw
CisgICAgICAgICAgICAgICAgIHY2MAorCisgICAgICAgICAgICAgICAgIE04MCwxMAorICAgICAg
ICAgICAgICAgICBDMTEwLDEwIDk1LDcwIDExMCw3MAorICAgICAgICAgICAgICAgICBTMTEwLDEw
IDE0MCwxMAorCisgICAgICAgICAgICAgICAgIG0xMCwwCisgICAgICAgICAgICAgICAgIGMzMCww
IDE1LDYwIDMwLDYwCisgICAgICAgICAgICAgICAgIHMwLC02MCAzMCwtNjAKKworICAgICAgICAg
ICAgICAgICBNMjIwLDQwCisgICAgICAgICAgICAgICAgIFEyMzUsOTggMjUwLDQwCisgICAgICAg
ICAgICAgICAgIFQyODAsNDAKKworICAgICAgICAgICAgICAgICBNMjkwLDQwCisgICAgICAgICAg
ICAgICAgIHExNSw1OCAzMCwwCisgICAgICAgICAgICAgICAgIHQzMCwwCisKKyAgICAgICAgICAg
ICAgICAgTTM3Miw3MAorICAgICAgICAgICAgICAgICBBMzAsMTUgLTkwIDEgMSAzODQsNzAKKwor
ICAgICAgICAgICAgICAgICBNNDEwLDcwCisgICAgICAgICAgICAgICAgIGEzMCwxNSAtOTAgMSAx
IDEyLDAKKyAgICAgICAgICAgICAgICAiCisgICAgICAgICAgICAgZmlsbD0iZnJlZXplIi8+Cisg
IDwvcGF0aD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBsb2Fk
ZWQoKSB7CisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEN1cnJlbnRUaW1lKDQpOwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXBlYXRpbmctcGF0aC1hbmltYXRpb24tZXhw
ZWN0ZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcmVwZWF0aW5nLXBhdGgtYW5p
bWF0aW9uLWV4cGVjdGVkLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzNlYzhlZTNlYTNjMzgxYTc4YmIyNTNj
NmQyMmJjMTdmMjJmOWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvcmVwZWF0aW5nLXBhdGgtYW5pbWF0aW9uLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDMw
IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyAgICBwYXRoIHsgZmlsbDogbm9uZTsgc3Ryb2tlOiBibHVlOyBzdHJva2Utd2lkdGg6IDFweDsg
fQorPC9zdHlsZT4KKworPGc+CisgICAgPHBhdGggZD0iTTUwLDUwIEwxMDAsNTAgTDEwMCwxMDAg
TDUwLDEwMCBaIi8+CisgICAgPHBhdGggZD0iTTUwLDUwIEwxMDAsNTAgTDEwMCwxMDAgTDUwLDEw
MCBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAsMCkiLz4KKyAgICA8cGF0aCBkPSJNNTAsNTAg
TDEwMCw1MCBMMTAwLDEwMCBMNTAsMTAwIFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwMCwwKSIv
PgorPC9nPgorCis8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDEwMCkiPgorICAgIDxwYXRoIGQ9
Ik01MCw1MCBMMTAwLDUwIEwxMDAsMTAwIEw1MCwxMDAgWiIvPgorICAgIDxwYXRoIGQ9Ik01MCw1
MCBMMTAwLDUwIEwxMDAsMTAwIEw1MCwxMDAgWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLDAp
Ii8+CisgICAgPHBhdGggZD0iTTUwLDUwIEwxMDAsNTAgTDEwMCwxMDAgTDUwLDEwMCBaIiB0cmFu
c2Zvcm09InRyYW5zbGF0ZSgyMDAsMCkiLz4KKzwvZz4KKworPGcgdHJhbnNmb3JtPSJ0cmFuc2xh
dGUoMCwyMDApIj4KKyAgICA8cGF0aCBkPSJNNTAsNTAgTDEwMCw1MCBMMTAwLDEwMCBMNTAsMTAw
IFoiLz4KKyAgICA8cGF0aCBkPSJNNTAsNTAgTDEwMCw1MCBMMTAwLDEwMCBMNTAsMTAwIFoiIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDEwMCwwKSIvPgorICAgIDxwYXRoIGQ9Ik01MCw1MCBMMTAwLDUw
IEwxMDAsMTAwIEw1MCwxMDAgWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjAwLDApIi8+Cis8L2c+
CisKKzxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMzAwKSI+CisgICAgPHBhdGggZD0iTTUwLDUw
IEwxMDAsNTAgTDEwMCwxMDAgTDUwLDEwMCBaIi8+CisgICAgPHBhdGggZD0iTTUwLDUwIEwxMDAs
NTAgTDEwMCwxMDAgTDUwLDEwMCBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAsMCkiLz4KKyAg
ICA8cGF0aCBkPSJNNTAsNTAgTDEwMCw1MCBMMTAwLDEwMCBMNTAsMTAwIFoiIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDIwMCwwKSIvPgorPC9nPgorCis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3JlcGVhdGluZy1wYXRoLWFuaW1hdGlvbi5zdmcgYi9MYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXBlYXRpbmctcGF0aC1hbmltYXRpb24uc3ZnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZmOTQ5Y2E4YjRhMTg3ZDIwMDMzNmU1MDA2ZjQxNzQ4NDlmZDA2MGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXBlYXRpbmctcGF0aC1hbmltYXRp
b24uc3ZnCkBAIC0wLDAgKzEsOTQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb25sb2Fk
PSJsb2FkZWQoKSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIHBhdGggeyBmaWxsOiBu
b25lOyBzdHJva2U6IGJsdWU7IHN0cm9rZS13aWR0aDogMXB4OyB9Cis8L3N0eWxlPgorCis8IS0t
IEJ5LWFuaW1hdGlvbnMgLS0+Cis8Zz4KKyAgICA8IS0tIFNpbXBsZSBieS1hbmltYXRpb24gLS0+
CisgICAgPHBhdGggZD0iTTUwLDUwIEw2MCw1MCBMNjAsNjAgTDUwLDYwIFoiPgorICAgICAgICA8
YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0iMHMiIGR1cj0iNHMiIGJ5PSJNMCwwIEw0
MCwwIEw0MCw0MCBMMCw0MCBaIiBmaWxsPSJmcmVlemUiLz4KKyAgICA8L3BhdGg+CisKKyAgICA8
IS0tIEJ5LWFuaW1hdGlvbiBlbmZvcmNlcyBhZGRpdGl2ZT0ic3VtIiBiZWhhdmlvdXIuIC0tPgor
ICAgIDxwYXRoIGQ9Ik01MCw1MCBMNjAsNTAgTDYwLDYwIEw1MCw2MCBaIiB0cmFuc2Zvcm09InRy
YW5zbGF0ZSgxMDAsMCkiPgorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdp
bj0iMHMiIGR1cj0iNHMiIGJ5PSJNMCwwIEwyMCwwIEwyMCwyMCBMMCwyMCBaIiBmaWxsPSJmcmVl
emUiLz4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIgYmVnaW49IjBzIiBkdXI9
IjRzIiBieT0iTTAsMCBMMjAsMCBMMjAsMjAgTDAsMjAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAg
PC9wYXRoPgorCisgICAgPCEtLSBMb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGNvbnRyaWJ1dGUg
dG8gdGhlIGFkZGl0aXZlIGJlaGF2aW9yIG9mIGZvbGxvd2luZyBhbmltYXRpb25zIC0tPgorICAg
IDxwYXRoIGQ9Ik01MCw1MCBMNjAsNTAgTDYwLDYwIEw1MCw2MCBaIiB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgyMDAsMCkiPgorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0i
MHMiIGR1cj0iMnMiIGJ5PSJNMCwwIEwyMCwwIEwyMCwyMCBMMCwyMCBaIiBmaWxsPSJmcmVlemUi
Lz4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIgYmVnaW49IjJzIiBkdXI9IjJz
IiBieT0iTTAsMCBMMjAsMCBMMjAsMjAgTDAsMjAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAgPC9w
YXRoPgorPC9nPgorCis8IS0tIEJ5LWFuaW1hdGlvbnMgd2l0aCByZXBldGl0aW9ucyAtLT4KKzxn
IHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMTAwKSI+CisgICAgPCEtLSBUZXN0aW5nIHJlcGVhdENv
dW50PSIyIiB3aXRob3V0IGFjY3VtdWxhdGlvbi4gLS0+CisgICAgPHBhdGggZD0iTTUwLDUwIEw2
MCw1MCBMNjAsNjAgTDUwLDYwIFoiPgorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJk
IiBiZWdpbj0iMHMiIGR1cj0iMnMiIHJlcGVhdENvdW50PSIyIiBieT0iTTAsMCBMNDAsMCBMNDAs
NDAgTDAsNDAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAgPC9wYXRoPgorCisgICAgPCEtLSBUZXN0
aW5nIHJlcGVhdENvdW50PSIyIiB3aXRoIGFjY3VtdWxhdGlvbi4gLS0+CisgICAgPHBhdGggZD0i
TTUwLDUwIEw2MCw1MCBMNjAsNjAgTDUwLDYwIFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCww
KSI+CisgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImQiIGJlZ2luPSIwcyIgZHVyPSIy
cyIgYWNjdW11bGF0ZT0ic3VtIiByZXBlYXRDb3VudD0iMiIgYnk9Ik0wLDAgTDIwLDAgTDIwLDIw
IEwwLDIwIFoiIGZpbGw9ImZyZWV6ZSIvPgorICAgIDwvcGF0aD4KKworICAgIDwhLS0gVGVzdGlu
ZyB0d28gYW5pbWF0aW9ucyB3aXRoIHJlcGVhdENvdW50PSIyIiBhbmQgYWNjdW11bGF0aW9uLiAt
LT4KKyAgICA8cGF0aCBkPSJNNTAsNTAgTDYwLDUwIEw2MCw2MCBMNTAsNjAgWiIgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoMjAwLDApIj4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIg
YmVnaW49IjBzIiBkdXI9IjJzIiBhY2N1bXVsYXRlPSJzdW0iIHJlcGVhdENvdW50PSIyIiBieT0i
TTAsMCBMMTAsMCBMMTAsMTAgTDAsMTAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAgICAgIDxhbmlt
YXRlIGF0dHJpYnV0ZU5hbWU9ImQiIGJlZ2luPSIwcyIgZHVyPSIycyIgYWNjdW11bGF0ZT0ic3Vt
IiByZXBlYXRDb3VudD0iMiIgYnk9Ik0wLDAgTDEwLDAgTDEwLDEwIEwwLDEwIFoiIGZpbGw9ImZy
ZWV6ZSIvPgorICAgIDwvcGF0aD4KKzwvZz4KKworPCEtLSBGcm9tLWJ5IGFuaW1hdGlvbnMgLS0+
Cis8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDIwMCkiPgorICAgIDwhLS0gU2ltcGxlIGZyb20t
YnkgYW5pbWF0aW9uIC0tPgorICAgIDxwYXRoIGQ9Ik01MCw1MCBMNjAsNTAgTDYwLDYwIEw1MCw2
MCBaIj4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIgYmVnaW49IjBzIiBkdXI9
IjRzIiBmcm9tPSJNNTAsNTAgTDYwLDUwIEw2MCw2MCBMNTAsNjAgWiIgYnk9Ik0wLDAgTDQwLDAg
TDQwLDQwIEwwLDQwIFoiIGZpbGw9ImZyZWV6ZSIvPgorICAgIDwvcGF0aD4KKworICAgIDwhLS0g
SWYgYWRkaXRpdmU9InN1bSIgaXMgbm90IGdpdmVuIHRoZSBzZWNvbmQgYW5pbWF0aW9uIGFsd2F5
cyBvdmVycmlkZXMgdGhlIGZpcnN0IC0tPgorICAgIDxwYXRoIGQ9Ik01MCw1MCBMNjAsNTAgTDYw
LDYwIEw1MCw2MCBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAsMCkiPgorICAgICAgICA8YW5p
bWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0iMHMiIGR1cj0iNHMiIGZyb209Ik01MCw1MCBM
NjAsNTAgTDYwLDYwIEw1MCw2MCBaIiBieT0iTTAsMCBMNjY2LDAgTDY2Niw2NjYgTDAsNjY2IFoi
IGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdp
bj0iMHMiIGR1cj0iNHMiIGZyb209Ik01MCw1MCBMNjAsNTAgTDYwLDYwIEw1MCw2MCBaIiBieT0i
TTAsMCBMNDAsMCBMNDAsNDAgTDAsNDAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAgPC9wYXRoPgor
CisgICAgPCEtLSBUZXN0aW5nIGFkZGl0aXZlPSJzdW0iIG9uIGZyb20tYnkgYW5pbWF0aW9ucyAt
LT4KKyAgICA8cGF0aCBkPSJNNTAsNTAgTDYwLDUwIEw2MCw2MCBMNTAsNjAgWiIgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoMjAwLDApIj4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIg
YmVnaW49IjBzIiBkdXI9IjRzIiBmcm9tPSJNMjUsMjUgTDMwLDI1IEwzMCwzMCBMMjUsMzAgWiIg
Ynk9Ik0wLDAgTDIwLDAgTDIwLDIwIEwwLDIwIFoiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8
YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0iMHMiIGR1cj0iNHMiIGFkZGl0aXZlPSJz
dW0iIGZyb209Ik0yNSwyNSBMMzAsMjUgTDMwLDMwIEwyNSwzMCBaIiBieT0iTTAsMCBMMjAsMCBM
MjAsMjAgTDAsMjAgWiIgZmlsbD0iZnJlZXplIi8+CisgICAgPC9wYXRoPgorPC9nPgorCis8IS0t
IEZyb20tYnkgYW5pbWF0aW9ucyB3aXRoIHJlcGV0aXRpb25zIC0tPgorPGcgdHJhbnNmb3JtPSJ0
cmFuc2xhdGUoMCwzMDApIj4KKyAgICA8IS0tIFRlc3RpbmcgcmVwZWF0Q291bnQ9IjQiIHdpdGgg
YWNjdW11bGF0aW9uICYgYWRkaXRpb24gLS0+CisgICAgPHBhdGggZD0iTTUwLDUwIEw2MCw1MCBM
NjAsNjAgTDUwLDYwIFoiPgorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdp
bj0iMHMiIGR1cj0iMXMiIGFkZGl0aXZlPSJzdW0iIGFjY3VtdWxhdGU9InN1bSIgcmVwZWF0Q291
bnQ9IjQiIGZyb209Ik0wLDAgTDAsMCBMMCwwIEwwLDAgWiIgYnk9Ik0wLDAgTDEwLDAgTDEwLDEw
IEwwLDEwIFoiIGZpbGw9ImZyZWV6ZSIvPgorICAgIDwvcGF0aD4KKworICAgIDwhLS0gVGVzdGlu
ZyByZXBlYXRDb3VudD0iNCIgd2l0aCBhY2N1bXVsYXRpb24gYW5kIHdpdGhvdXQgYWRkaXRpb24g
LS0+CisgICAgPHBhdGggZD0iTTUwLDUwIEw2MCw1MCBMNjAsNjAgTDUwLDYwIFoiIHRyYW5zZm9y
bT0idHJhbnNsYXRlKDEwMCwwKSI+CisgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImQi
IGJlZ2luPSIwcyIgZHVyPSIxcyIgYWRkaXRpdmU9InJlcGxhY2UiIGFjY3VtdWxhdGU9InN1bSIg
cmVwZWF0Q291bnQ9IjQiIGZyb209Ik0xMi41LDEyLjUgTDE1LDEyLjUgTDE1LDE1IEwxMi41LDE1
IFoiIGJ5PSJNMCwwIEwxMCwwIEwxMCwxMCBMMCwxMCBaIiBmaWxsPSJmcmVlemUiLz4KKyAgICA8
L3BhdGg+CisKKyAgICA8IS0tIFRlc3RpbmcgbXVsdGlwbGUgYWRkaXRpdmUgY29tYmluYXRpb25z
IHdpdGggYWNjdW11bGF0aW9uIC0tPgorICAgIDxwYXRoIGQ9Ik01MCw1MCBMNjAsNTAgTDYwLDYw
IEw1MCw2MCBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDAsMCkiPgorICAgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJkIiBiZWdpbj0iMHMiIGR1cj0iMXMiIGFkZGl0aXZlPSJyZXBsYWNl
IiBhY2N1bXVsYXRlPSJzdW0iIHJlcGVhdENvdW50PSIyIiBmcm9tPSJNMCwwIEwwLDAgTDAsMCBM
MCwwIFoiIGJ5PSJNMCwwIEwxMCwwIEwxMCwxMCBMMCwxMCBaIiBmaWxsPSJmcmVlemUiLz4KKyAg
ICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZCIgYmVnaW49IjJzIiBkdXI9IjFzIiBhZGRp
dGl2ZT0ic3VtIiBhY2N1bXVsYXRlPSJzdW0iIHJlcGVhdENvdW50PSIyIiBmcm9tPSJNMjUsMjUg
TDMwLDI1IEwzMCwzMCBMMjUsMzAgWiIgYnk9Ik0wLDAgTDEwLDAgTDEwLDEwIEwwLDEwIFoiIGZp
bGw9ImZyZWV6ZSIvPgorICAgIDwvcGF0aD4KKzwvZz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LnNldEN1cnJlbnRUaW1lKDUpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZncGF0aC1hbmltYXRpb24tMS5qcyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdwYXRoLWFuaW1hdGlvbi0xLmpzCmluZGV4IGU0ODg5NDdjYzY5
NGI0ODg4ODNiZmZkN2NlNDVlODk3Mjk0NDJlYTAuLmM3NThmM2MyMGQ1ZTI1ZDk1NGQ0Mjg2OTU2
YmM4ZDA3YzY0MjIzOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdwYXRoLWFuaW1hdGlvbi0xLmpzCisrKyBiL0xheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdwYXRoLWFuaW1hdGlvbi0xLmpzCkBAIC0xLDQgKzEs
NCBAQAotZGVzY3JpcHRpb24oIlRlc3QgZmFsbGJhY2sgdG8gJ3RvJyBhbmltYXRpb24gaWYgdXNl
ciBzcGVjaWZpZXMgJ2J5JyBhbmltYXRpb24gb24gcGF0aC4gWW91IHNob3VsZCBzZWUgYSBncmVl
biAxMDB4MTAwIHBhdGggYW5kIG9ubHkgUEFTUyBtZXNzYWdlcyIpOworZGVzY3JpcHRpb24oIlRl
c3QgJ2J5JyBhbmltYXRpb24gb24gcGF0aC4gWW91IHNob3VsZCBzZWUgYSBncmVlbiAxMDB4MTAw
IHBhdGggYW5kIG9ubHkgUEFTUyBtZXNzYWdlcyIpOwogY3JlYXRlU1ZHVGVzdENhc2UoKTsKIAog
Ly8gU2V0dXAgdGVzdCBkb2N1bWVudApAQCAtMTQsNiArMTQsNyBAQCBhbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJkIik7CiBhbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIs
ICJNIDQwIDQwIEwgNjAgNDAgTCA2MCA2MCBMIDQwIDYwIHoiKTsKIGFuaW1hdGUuc2V0QXR0cmli
dXRlKCJieSIsICJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBMIDAgMTAwIHoiKTsKIGFuaW1hdGUu
c2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZp
bGwiLCAiZnJlZXplIik7CiBhbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CiBwYXRo
LmFwcGVuZENoaWxkKGFuaW1hdGUpOwogcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocGF0aCk7
CkBAIC0zNyw3ICszOCw2IEBAIGZ1bmN0aW9uIGNoZWNrQmFzZVZhbCgpIHsKIH0KIAogZnVuY3Rp
b24gc2FtcGxlMSgpIHsKLSAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCiAgICAg
c2hvdWxkQmUoInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5udW1iZXJPZkl0ZW1zIiwgIjUiKTsK
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiTSIpOwogICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiNDAiKTsKQEAgLTU4
LDE3ICs1OCwxNyBAQCBmdW5jdGlvbiBzYW1wbGUxKCkgewogZnVuY3Rpb24gc2FtcGxlMigpIHsK
ICAgICBzaG91bGRCZSgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0Lm51bWJlck9mSXRlbXMiLCAi
NSIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICJNIik7Ci0gICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICIyMCIpOwot
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVt
KDApLnkiLCAiMjAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIjQwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICI0MCIpOwogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0
aFNlZ1R5cGVBc0xldHRlciIsICJMIik7Ci0gICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5h
bmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICI4MCIpOwotICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMjAiKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS54IiwgIjExMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQ
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiNDAiKTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIiLCAiTCIpOwotICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLngiLCAiODAiKTsKLSAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjgwIik7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIsICIxMTAi
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS55IiwgIjExMCIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGF0aC5hbmlt
YXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciIsICJMIik7Ci0g
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0o
MykueCIsICIyMCIpOwotICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQYXRo
U2VnTGlzdC5nZXRJdGVtKDMpLnkiLCAiODAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IiwgIjQwIik7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMykueSIsICIx
MTAiKTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlz
dC5nZXRJdGVtKDQpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiWiIpOwogICAgIGNoZWNrQmFzZVZh
bCgpOwogfQpAQCAtNzYsMjggKzc2LDI4IEBAIGZ1bmN0aW9uIHNhbXBsZTIoKSB7CiBmdW5jdGlv
biBzYW1wbGUzKCkgewogICAgIHNob3VsZEJlKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QubnVt
YmVyT2ZJdGVtcyIsICI1Iik7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwYXRoLmFuaW1h
dGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIk0iKTsKLSAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS54IiwgIjAiKTsKLSAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS55IiwgIjAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIjQwIik7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICI0MCIp
OwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICJMIik7Ci0gICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIxMDAiKTsKLSAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IiwgIjAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54IiwgIjE2MCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiNDAiKTsKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIiLCAiTCIpOwotICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5p
bWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiMTAwIik7Ci0gICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIxMDAiKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRl
bSgyKS54IiwgIjE2MCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQ
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMTYwIik7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIiwgIkwiKTsKLSAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNl
Z0xpc3QuZ2V0SXRlbSgzKS54IiwgIjAiKTsKLSAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS55IiwgIjEwMCIpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDMpLngiLCAiNDAi
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0
SXRlbSgzKS55IiwgIjE2MCIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGF0aC5hbmlt
YXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oNCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICJaIik7CiAg
ICAgY2hlY2tCYXNlVmFsKCk7CiB9Ci0KIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWwogICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIHNh
bXBsZUNhbGxiYWNrXQogICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICBzYW1wbGUxXSwKLSAg
ICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgMS45OTksIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMDAxLCBzYW1wbGUy
XSwKICAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OSwgc2FtcGxlM10sCi0gICAgICAgIFsiYW5p
bWF0aW9uIiwgNC4wMDEsIHNhbXBsZTFdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wMDEsIHNh
bXBsZTNdCiAgICAgXTsKIAogICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncGF0aC1hbmltYXRpb24t
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwYXRoLWFuaW1h
dGlvbi0xLWV4cGVjdGVkLnR4dAppbmRleCAzMDU5MDI1YzcyYzM1NzdiZTYyYTYxYmE4ODQxNzRj
MmIzODYxODE4Li41MGUzNDU1ZDllOGJkMDE4MWE2NThlNTkxMjcxMzZjYjZiZDgxZTI0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwYXRoLWFuaW1hdGlvbi0xLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwYXRoLWFuaW1h
dGlvbi0xLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFNWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKIAotVGVzdCBmYWxsYmFjayB0byAndG8nIGFuaW1hdGlvbiBpZiB1c2VyIHNw
ZWNpZmllcyAnYnknIGFuaW1hdGlvbiBvbiBwYXRoLiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIDEw
MHgxMDAgcGF0aCBhbmQgb25seSBQQVNTIG1lc3NhZ2VzCitUZXN0ICdieScgYW5pbWF0aW9uIG9u
IHBhdGguIFlvdSBzaG91bGQgc2VlIGEgZ3JlZW4gMTAweDEwMCBwYXRoIGFuZCBvbmx5IFBBU1Mg
bWVzc2FnZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC0zNSwxNyArMzUsMTcg
QEAgUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueSBpcyA2MAogUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oNCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiWiIKIFBBU1MgcGF0
aC5hbmltYXRlZFBhdGhTZWdMaXN0Lm51bWJlck9mSXRlbXMgaXMgNQogUEFTUyBwYXRoLmFuaW1h
dGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJNIgotUEFT
UyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIDIwCi1QQVNTIHBhdGgu
YW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgMjAKK1BBU1MgcGF0aC5hbmltYXRl
ZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyA0MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS55IGlzIDQwCiBQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQ
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgODAKLVBBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueSBpcyAyMAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54IGlzIDExMAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IGlzIDQwCiBQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIgaXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnggaXMgODAKLVBBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMiku
eSBpcyA4MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIDEx
MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDExMAogUEFT
UyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVy
IGlzICJMIgotUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDIw
Ci1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnkgaXMgODAKK1BBU1Mg
cGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyA0MAorUEFTUyBwYXRoLmFu
aW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS55IGlzIDExMAogUEFTUyBwYXRoLmFuaW1hdGVk
UGF0aFNlZ0xpc3QuZ2V0SXRlbSg0KS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJaIgogUEFTUyBw
YXRoLnBhdGhTZWdMaXN0Lm51bWJlck9mSXRlbXMgaXMgNQogUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiTSIKQEAgLTYzLDE3ICs2MywxNyBA
QCBQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS55IGlzIDYwCiBQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSg0KS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJaIgogUEFTUyBwYXRo
LmFuaW1hdGVkUGF0aFNlZ0xpc3QubnVtYmVyT2ZJdGVtcyBpcyA1CiBQQVNTIHBhdGguYW5pbWF0
ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIk0iCi1QQVNT
IHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgMAotUEFTUyBwYXRoLmFu
aW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIDAKK1BBU1MgcGF0aC5hbmltYXRlZFBh
dGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyA0MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS55IGlzIDQwCiBQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMTAwCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS54IGlzIDExMAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
IGlzIDQwCiBQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdU
eXBlQXNMZXR0ZXIgaXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnggaXMgMTAwCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkg
aXMgMTAwCitQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnggaXMgMTEw
CitQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMTEwCiBQQVNT
IHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIg
aXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnggaXMgMAot
UEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS55IGlzIDEwMAorUEFTUyBw
YXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDQwCitQQVNTIHBhdGguYW5p
bWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnkgaXMgMTEwCiBQQVNTIHBhdGguYW5pbWF0ZWRQ
YXRoU2VnTGlzdC5nZXRJdGVtKDQpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIloiCiBQQVNTIHBh
dGgucGF0aFNlZ0xpc3QubnVtYmVyT2ZJdGVtcyBpcyA1CiBQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJNIgpAQCAtOTQsMTQgKzk0LDQyIEBA
IFBBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xl
dHRlciBpcyAiTSIKIFBBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBp
cyA0MAogUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIDQwCiBQ
QVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgIkwiCi1QQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMg
NjAKK1BBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAxNjAKIFBB
U1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0MAogUEFTUyBwYXRo
LmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJM
IgotUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIDYwCi1QQVNT
IHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgNjAKK1BBU1MgcGF0aC5h
bmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAxNjAKK1BBU1MgcGF0aC5hbmltYXRl
ZFBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAxNjAKIFBBU1MgcGF0aC5hbmltYXRlZFBhdGhT
ZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiTCIKIFBBU1MgcGF0aC5h
bmltYXRlZFBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyA0MAotUEFTUyBwYXRoLmFuaW1hdGVk
UGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS55IGlzIDYwCitQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2Vn
TGlzdC5nZXRJdGVtKDMpLnkgaXMgMTYwCitQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5n
ZXRJdGVtKDQpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIloiCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QubnVtYmVyT2ZJdGVtcyBpcyA1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICJNIgorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyA0MAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiTCIK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgNjAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIkwiCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS54IGlzIDYwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDYw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICJMIgorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyA0MAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueSBpcyA2MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oNCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiWiIKK1BBU1MgcGF0aC5hbmltYXRlZFBh
dGhTZWdMaXN0Lm51bWJlck9mSXRlbXMgaXMgNQorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJNIgorUEFTUyBwYXRoLmFuaW1h
dGVkUGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIDQwCitQQVNTIHBhdGguYW5pbWF0ZWRQYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgNDAKK1BBU1MgcGF0aC5hbmltYXRlZFBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAiTCIKK1BBU1MgcGF0aC5hbmltYXRl
ZFBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAxNjAKK1BBU1MgcGF0aC5hbmltYXRlZFBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJMIgorUEFTUyBwYXRoLmFuaW1hdGVk
UGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIDE2MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS55IGlzIDE2MAorUEFTUyBwYXRoLmFuaW1hdGVkUGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICJMIgorUEFTUyBwYXRoLmFuaW1hdGVk
UGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDQwCitQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2Vn
TGlzdC5nZXRJdGVtKDMpLnkgaXMgMTYwCiBQQVNTIHBhdGguYW5pbWF0ZWRQYXRoU2VnTGlzdC5n
ZXRJdGVtKDQpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgIloiCiBQQVNTIHBhdGgucGF0aFNlZ0xp
c3QubnVtYmVyT2ZJdGVtcyBpcyA1CiBQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICJNIgo=
</data>
<flag name="review"
          id="144788"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>