<?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>5620</bug_id>
          
          <creation_ts>2005-11-03 13:32:47 -0800</creation_ts>
          <short_desc>Should only honor encoding from &lt;meta&gt; in HTML</short_desc>
          <delta_ts>2019-02-06 09:04:05 -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>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ian</cc>
    
    <cc>troyb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23641</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-03 13:32:47 -0800</bug_when>
    <thetext>When a document is served as application/xhtml+xml, Firefox doesn&apos;t honor an encoding specified in a 
&lt;meta&gt; (probably, true for everything except for text/html). However, Decoder::decode() has no logic like 
this.

I don&apos;t have a reference to any standard right now (haven&apos;t looked yet).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23642</commentid>
    <comment_count>1</comment_count>
      <attachid>4586</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-03 13:33:51 -0800</bug_when>
    <thetext>Created attachment 4586
test case

This test case will render properly until a fix to 5548 is committed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53799</commentid>
    <comment_count>2</comment_count>
      <attachid>10244</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-26 14:35:04 -0700</bug_when>
    <thetext>Created attachment 10244
proposed fix

Also fixes bug 9783 and bug 10155.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53821</commentid>
    <comment_count>3</comment_count>
      <attachid>10244</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-26 16:47:05 -0700</bug_when>
    <thetext>Comment on attachment 10244
proposed fix

You might also try using svn --dif-cmd diff -x uPw to ignore whitespace.  That might result in an even-easier-to-read diff.

I didn&apos;t give it a full indepth review, but in general the changes look great.  If I were to review this, I&apos;d want to discuss some of the pseudo-xml cases with you over irc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53914</commentid>
    <comment_count>4</comment_count>
      <attachid>10251</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-27 00:53:37 -0700</bug_when>
    <thetext>Created attachment 10251
same patch ignoring whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53943</commentid>
    <comment_count>5</comment_count>
      <attachid>10244</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-27 13:34:55 -0700</bug_when>
    <thetext>Comment on attachment 10244
proposed fix

Mitz has suggested a way not to dump pixels in CSS test cases. Also, after looking at the current XMLHttpRequest draft, I think that leaving the CSS case without incremental loading support is imprudent (currently, we only look inside XML content, so it doesn&apos;t matter, but that&apos;s not what the XHR spec says).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54044</commentid>
    <comment_count>6</comment_count>
      <attachid>10278</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-28 11:15:44 -0700</bug_when>
    <thetext>Created attachment 10278
revised patch

This doesn&apos;t implement CSSCharsetRule creation, which is somewhat tricky, because WinIE doesn&apos;t seem to create those. Fortunately, IE and Firefox have different properties for accessing rules (.rules vs. .cssRules), so it might be possible to figure something out (I&apos;ll file a followup bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54045</commentid>
    <comment_count>7</comment_count>
      <attachid>10279</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-28 11:16:15 -0700</bug_when>
    <thetext>Created attachment 10279
same patch, ignoring whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54540</commentid>
    <comment_count>8</comment_count>
      <attachid>10345</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-31 21:36:37 -0700</bug_when>
    <thetext>Created attachment 10345
revised patch

Incorporating suggestions made by Eric on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54572</commentid>
    <comment_count>9</comment_count>
      <attachid>10345</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-01 12:29:42 -0700</bug_when>
    <thetext>Comment on attachment 10345
revised patch

Was reviewed by Eric.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54573</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-01 12:29:58 -0700</bug_when>
    <thetext>Committed revision 16175.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503098</commentid>
    <comment_count>11</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:04:05 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>4586</attachid>
            <date>2005-11-03 13:33:51 -0800</date>
            <delta_ts>2005-11-03 13:33:51 -0800</delta_ts>
            <desc>test case</desc>
            <filename>ignore-meta-in.xhtml</filename>
            <type>application/xhtml+xml</type>
            <size>233</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0ia29pOC1yIj8+CjxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+CjxtZXRhIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgo8L2hl
YWQ+Cjxib2R5PgpTaG91bGQgbG9vayBsaWtlIGEgUm9tYW4gIkIiOiAi9yIuCjwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10244</attachid>
            <date>2006-08-26 14:35:04 -0700</date>
            <delta_ts>2006-08-27 13:34:55 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>5620r1_patch.txt</filename>
            <type>text/plain</type>
            <size>93431</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MDUxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMDYtMDgtMjcgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHMgZm9yOgorICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMAorICAgICAgICBTaG91bGQgb25seSBob25vciBl
bmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEu
b3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMKKyAgICAgICAgQW4gWE1MIGRlY2xh
cmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMK
KyAgICAgICAgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCisgICAgICAgIC0g
aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NQorICAg
ICAgICBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAgKiBmYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
ZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJy
aWRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3MtY2hh
cnNldC1vdmVycmlkZS5jc3M6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNo
YXJzZXQtb3ZlcnJpZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3Mt
Y2hhcnNldC5jc3M6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29k
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9kZWZhdWx0
LXhodG1sLWVuY29kaW5nLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL21l
dGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L21ldGEtaW4teGh0bWwueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNl
dWRvLXhtbC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wc2V1ZG8t
eG1sLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVk
by14bWwtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
NC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC5odG1s
OiBBZGRlZC4KKwogMjAwNi0wOC0yNSAgQWRlbGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlZCByZXN1bHRzIGZvciBhZGRpdGlvbiBvZiAtd2Via2l0LXRleHQt
c2VjdXJpdHkuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4
cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
Y3NzLWNoYXJzZXQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxIEBACis0ZmY5M2RiOWZkZWM5YzlkMzU5ZDI0NzU4MDRhMjA1ZApcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3Nz
LWNoYXJzZXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1NzYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCww
KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1
M3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUzOiAiVGVzdCBmb3IgIgor
ICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNjh4MTggW2NvbG9yPSMwMDAw
RUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MywwKSBzaXplIDY4eDE4Cisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTMsMCkgd2lkdGggNjg6ICJidWcgMTAxNTUiCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIxLDApIHNpemUgMjE2eDE4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDEyMSwwKSB3aWR0aCAyMTY6ICI6IENTUzI6IEBjaGFyc2V0IGlzIG5vdCBz
dXBwb3J0ZWQiCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzg0eDE4Cisg
ICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDcxeDE4CisgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDcxeDE4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA3MTogIlNVXHh7NDIxfVx4ezQyMX1ceHs0MTV9U1MiCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVj
dGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5h
bWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nz
cy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxIEBACis4YTM3MTU2NjkzMDI3YmZmNjkwY2E0YzVkZjdkMjk1NApcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQt
b3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1vdmVycmlkZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1NzYKKyAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA1M3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDUzOiAiVGVzdCBmb3IgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUg
Njh4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1
MywwKSBzaXplIDY4eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTMsMCkgd2lkdGggNjg6
ICJidWcgMTAxNTUiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIxLDApIHNpemUg
MjE2eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMSwwKSB3aWR0aCAyMTY6ICI6IENTUzI6
IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQiCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MzQpIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDc2NXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc2NTogIkNTUyAyLjEg
c2F5cyB0aGF0IEBjaGFyc2V0IGhhcyBhIGhpZ2hlciBwcmlvcml0eSB0aGFuIDxsaW5rIGNoYXJz
ZXQ9XCJcIj4sIGJ1dCBGaXJlZm94IHdvcmtzIGluIGFuIG9wcG9zaXRlIHdheSwgYW5kIHNvIGRv
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAyMzogIndlLiIKKyAgICAgIFJl
bmRlckJsb2NrIHtQfSBhdCAoMCw4Nikgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNzF4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IGF0
ICgwLDApIHNpemUgNzF4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcx
OiAiU1VceHs0MjF9XHh7NDIxfVx4ezQxNX1TUyIKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVv
bC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3Nz
LWNoYXJzZXQtb3ZlcnJpZGUuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUuY3NzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1vdmVycmlkZS5jc3MJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMiBAQAorQGNoYXJzZXQgIndpbmRvd3MtMTI1MSI7CisjdGVzdDpiZWZvcmUgeyBj
b250ZW50OiAiU1XQodCh0JVTUyI7IH0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUuY3NzCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTog
c3ZuOm1pbWUtdHlwZQogICArIHRleHQvY3NzCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9jc3MtY2hhcnNldC1vdmVycmlkZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJjc3MtY2hhcnNldC5jc3MiIGNoYXJzZXQ9InV0Zi04Ij4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE1NSI+YnVnIDEwMTU1PC9hPjoKK0NTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBw
b3J0ZWQ8L3A+Cis8cD5DU1MgMi4xIHNheXMgdGhhdCBAY2hhcnNldCBoYXMgYSBoaWdoZXIgcHJp
b3JpdHkgdGhhbiAmbHQ7bGluayBjaGFyc2V0PSIiPiwKK2J1dCBGaXJlZm94IHdvcmtzIGluIGFu
IG9wcG9zaXRlIHdheSwgYW5kIHNvIGRvIHdlLjwvcD4KKzxwIGlkPSJ0ZXN0Ij48L3A+CisKKzxz
Y3JpcHQ+CisvLyBEdW1wUmVuZGVyVHJlZSBkb2Vzbid0IGR1bXAgZ2VuZXJhdGVkIGNvbnRlbnQg
OigKKy8vaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKy8vICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0
LW92ZXJyaWRlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9o
dG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitAY2hhcnNldCAidXRmLTgiOworI3Rlc3Q6YmVm
b3JlIHsgY29udGVudDogIlNV0KHQodCVU1MiOyB9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzcwpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjptaW1lLXR5cGUKICAgKyB0ZXh0L2NzcwoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY3NzLWNoYXJzZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2Nzcy1jaGFyc2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRv
d3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIi8+CisgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iY3NzLWNoYXJzZXQuY3NzIj4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4u
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NSI+YnVnIDEwMTU1PC9hPjoKK0NTUzI6IEBjaGFyc2V0
IGlzIG5vdCBzdXBwb3J0ZWQ8L3A+CisKKzxwIGlkPSJ0ZXN0Ij48L3A+CisKKzxzY3JpcHQ+Cisv
LyBEdW1wUmVuZGVyVHJlZSBkb2Vzbid0IGR1bXAgZ2VuZXJhdGVkIGNvbnRlbnQgOigKKy8vaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKy8vICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5j
b2RpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1IEBACitUZXN0IGRlZmF1bHQgWEhUTUwgZW5jb2RpbmcgKGluIHRoZSBhYnNlbmNl
IG9mIGFuIFhNTCBkZWNsYXJhdGlvbikuCisKK0NoYXJzZXQ6IFVURi04IChzaG91bGQgYmUgVVRG
LTgpCisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9k
ZWZhdWx0LXhodG1sLWVuY29kaW5nLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpt
aW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUK
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2Rpbmcu
eGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9kZWZhdWx0LXho
dG1sLWVuY29kaW5nLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE2IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8Ym9k
eT4KKzxwPlRlc3QgZGVmYXVsdCBYSFRNTCBlbmNvZGluZyAoaW4gdGhlIGFic2VuY2Ugb2YgYW4g
WE1MIGRlY2xhcmF0aW9uKS48L3A+CisKKzxwIGlkPSJyZXN1bHQiIC8+CisKKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVy
SFRNTCA9ICJDaGFyc2V0OiAiICsgCisgICAgKGRvY3VtZW50LmNoYXJzZXQgPyBkb2N1bWVudC5j
aGFyc2V0IDogZG9jdW1lbnQuY2hhcmFjdGVyU2V0KSArICIgKHNob3VsZCBiZSBVVEYtOCkiOwor
PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3htbAoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGVzdCBmb3IgYnVnIDU2MjA6
IFNob3VsZCBvbmx5IGhvbm9yIGVuY29kaW5nIGZyb20gPG1ldGE+IGluIEhUTUwKKworQ2hhcnNl
dDogVVRGLTggKHNob3VsZCBiZSBVVEYtOCkKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0Cl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHls
ZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14
aHRtbC54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEt
aW4teGh0bWwueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L21ldGEtaW4teGh0bWwueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1s
IHZlcnNpb249IjEuMCIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13
aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTU2MjAiPmJ1ZyA1NjIwPC9hPjoKK1Nob3VsZCBvbmx5IGhvbm9yIGVuY29k
aW5nIGZyb20gJmx0O21ldGE+IGluIEhUTUw8L3A+CisKKzxwIGlkPSJyZXN1bHQiIC8+CisKKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dCIpLmlubmVySFRNTCA9ICJDaGFyc2V0OiAiICsgCisgICAgKGRvY3VtZW50LmNoYXJzZXQgPyBk
b2N1bWVudC5jaGFyc2V0IDogZG9jdW1lbnQuY2hhcmFjdGVyU2V0KSArICIgKHNob3VsZCBiZSBV
VEYtOCkiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMg
b246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC54aHRtbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3htbAoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVnIDk3ODM6IEFu
IFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5
IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQKKworQ2hhcnNldDog
S09JOC1SIChzaG91bGQgYmUgS09JOC1SKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTItZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFt
ZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTIu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9ImtvaTgtciIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RS
L3hodG1sMS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+
OgorQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3Jy
ZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKwor
PHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAg
ICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0
ZXJTZXQpICsgIiAoc2hvdWxkIGJlIEtPSTgtUikiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwv
aHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNl
dWRvLXhtbC0yLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9o
dG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcHNldWRvLXhtbC0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBA
CitUZXN0IGZvciBidWcgOTc4MzogQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGlj
aXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRN
TCBkb2N1bWVudAorCitDaGFyc2V0OiBLT0k4LVIgKHNob3VsZCBiZSBLT0k4LVIpCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpO
YW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9y
Zy9UUi94aHRtbDEvRFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9S09JOC1SIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiLz4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzgzIj5idWcgOTc4MzwvYT46CitBbiBYTUwgZGVjbGFyYXRpb24g
d2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBl
bmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50PC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8g
ZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUg
S09JOC1SKSI7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzgzOiBB
biBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3Rs
eSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKK0NoYXJzZXQ6
IHdpbmRvd3MtMTI1MSAoc2hvdWxkIGJlIHdpbmRvd3MtMTI1MSkKClByb3BlcnR5IGNoYW5nZXMg
b246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC00LWV4cGVjdGVkLnR4dApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjpl
b2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bz
ZXVkby14bWwtNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC00Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJLT0k4LVIiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
Lz4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05NzgzIj5idWcgOTc4MzwvYT46CitBbiBY
TUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0
cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50PC9wPgorCis8cCBpZD0i
cmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1
bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkg
KyAiIChzaG91bGQgYmUgd2luZG93cy0xMjUxKSI7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1
ZG8teG1sLTQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0
bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bz
ZXVkby14bWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1Rlc3Qg
Zm9yIGJ1ZyA5NzgzOiBBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNv
ZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3Vt
ZW50CisKK0NoYXJzZXQ6IElTTy04ODU5LTEgKHNob3VsZCBiZSB5b3VyIGJyb3dzZXIgZGVmYXVs
dCBvbmUpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bz
ZXVkby14bWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3
dy53My5vcmcvVFIveGh0bWwxL0RURC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJl
Zj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05NzgzIj5i
dWcgOTc4MzwvYT46CitBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNv
ZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3Vt
ZW50PC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNl
dDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3Vt
ZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgeW91ciBicm93c2VyIGRlZmF1bHQgb25l
KSI7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLmh0bWwKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDUxKQorKysgV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAorMjAwNi0wOC0y
NyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMAorICAgICAgICBTaG91bGQgb25seSBob25vciBl
bmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEu
b3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMKKyAgICAgICAgQW4gWE1MIGRlY2xh
cmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMK
KyAgICAgICAgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCisgICAgICAgIC0g
aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NQorICAg
ICAgICBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIAorICAgICAgICAq
IGxvYWRlci9EZWNvZGVyLmNwcDoKKyAgICAgICAgKERlY29kZXI6OkRlY29kZXIpOiBEZWNvZGVy
IG5vdyBrbm93cyB3aGF0IGtpbmQgb2YgY29udGVudCBpdCBpcyBkZWNvZGluZy4KKyAgICAgICAg
QWxzbywgdGhlIGJyb3dzZXIgZGVmYXVsdCBlbmNvZGluZyBjYW4gbm93IGJlIHBhc3NlZCBkaXJl
Y3RseSB0byB0aGUgY29uc3RydWN0b3IsCisgICAgICAgIHRvIHN0cmVhbWxpbmUgdGhlIGxvZ2lj
LgorICAgICAgICAoRGVjb2Rlcjo6ZGVjb2RlKTogQWRkIHN1cHBvcnQgZm9yIEBjaGFyc2V0LCBk
aWZmZXJlbnRpYXRlIGJldHdlZW4gSFRNTCBhbmQgWE1MLgorICAgICAgICAoRGVjb2Rlcjo6c2V0
RW5jb2RpbmdOYW1lKTogU3R5bGUgY2xlYW51cC4KKyAgICAgICAgKERlY29kZXI6OmVuY29kaW5n
TmFtZSk6IERpdHRvLgorICAgICAgICAoRGVjb2Rlcjo6Zmx1c2gpOiBEaXR0by4KKyAgICAgICAg
KiBsb2FkZXIvRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGVjb2Rlcjo6KToKKworICAg
ICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5ncy5tbTogUGFzcyBhIGNvbnRlbnQgdHlw
ZSBvZiB0ZXh0L2h0bWwgdG8gRGVjb2Rlci4KKworICAgICAgICAqIGxvYWRlci9DYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OkNh
Y2hlZENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVl
dDo6c2V0Q2hhcnNldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICBV
c2UgRGVjb2RlciBpbnN0ZWFkIG9mIFRleHRFbmNvZGluZzo6dG9Vbmljb2RlKCkgdG8gZW5hYmxl
IEBjaGFyc2V0IHN1cHBvcnQuCisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1lbnQ6OkNhY2hlZFhCTERvY3Vt
ZW50KTogUGFzcyBhIGNvbnRlbnQgdHlwZS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWFNMU3R5
bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNo
ZWRYU0xTdHlsZVNoZWV0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHls
ZVNoZWV0OjpkYXRhKTogRmx1c2ggdGhlIGRlY29kZXIgdG8gYmUgc2FmZS4KKworICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndyaXRlKTogUGFzcyBh
IGNvbnRlbnQgdHlwZSBhbmQgYSBkZWZhdWx0IGVuY29kaW5nIHRvIAorICAgICAgICB0aGUgRGVj
b2Rlci4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYU0xUUHJvY2Vzc29yOjpjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UpOiBQYXNzIHRoZSBvdXRw
dXQgZG9jdW1lbnQKKyAgICAgICAgTUlNRSB0eXBlLgorICAgICAgICAqIHhtbC94bWxodHRwcmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVjZWl2ZWREYXRh
KTogRGl0dG8uCisKIDIwMDYtMDgtMjYgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5A
a2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLgpJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MDUwKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2
MTEsMjMgKzE2MTEsNiBAQAogCQlGQUUwNDE5MDA5NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VM
b2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZB
RTA0MThFMDk3NTk2QzkwMDA1NDBCRSAvKiBTVkdJbWFnZUxvYWRlci5oICovOyB9OwogLyogRW5k
IFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKLS8qIEJlZ2luIFBCWEJ1aWxkU3R5bGUgc2VjdGlv
biAqLwotCQlCQzU3QkYxNzBBQTAyNDMwMDBBNDNDRjEgLyogRGV2ZWxvcG1lbnQgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhCdWlsZFN0eWxlOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT1BZX1BI
QVNFX1NUUklQID0gTk87Ci0JCQl9OwotCQkJbmFtZSA9IERldmVsb3BtZW50OwotCQl9OwotCQlC
QzU3QkYxODBBQTAyNDMwMDBBNDNDRjEgLyogRGVwbG95bWVudCAqLyA9IHsKLQkJCWlzYSA9IFBC
WEJ1aWxkU3R5bGU7Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUNPUFlfUEhBU0VfU1RSSVAg
PSBZRVM7Ci0JCQl9OwotCQkJbmFtZSA9IERlcGxveW1lbnQ7Ci0JCX07Ci0vKiBFbmQgUEJYQnVp
bGRTdHlsZSBzZWN0aW9uICovCi0KIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0
aW9uICovCiAJCUREMDQxRkYwMDlEOUUzMjUwMDEwQUYyQSAvKiBQQlhDb250YWluZXJJdGVtUHJv
eHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CkBAIC02NDc5LDEyICs2
NDYyLDYgQEAKIAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICov
ID0gewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAx
NDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9OwotCQkJ
YnVpbGRTdHlsZXMgPSAoCi0JCQkJQkM1N0JGMTcwQUEwMjQzMDAwQTQzQ0YxIC8qIERldmVsb3Bt
ZW50ICovLAotCQkJCUJDNTdCRjE4MEFBMDI0MzAwMEE0M0NGMSAvKiBEZXBsb3ltZW50ICovLAot
CQkJKTsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0g
KAogCQkJCUVuZ2xpc2gsCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5n
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5ncy5t
bQkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5n
cy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKICsgKE5TU3RyaW5nICopZGVjb2RlRGF0YTooTlNEYXRhICopZGF0YQogewogICAgIEhU
TUxOYW1lczo6aW5pdCgpOyAvLyB0aGlzIG1ldGhvZCBpcyB1c2VkIGZvciBpbXBvcnRpbmcgYm9v
a21hcmtzIGF0IHN0YXJ0dXAsIHNvIEhUTUxOYW1lcyBhcmUgbGlrZWx5IHRvIGJlIHVuaW5pdGlh
bGl6ZWQgeWV0Ci0gICAgRGVjb2RlciogZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgIERlY29k
ZXIqIGRlY29kZXIgPSBuZXcgRGVjb2RlcigidGV4dC9odG1sIik7IC8vIGJvb2ttYXJrIGZpbGVz
IGFyZSBIVE1MCiAgICAgRGVwcmVjYXRlZFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUo
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsK
ICAgICByZXN1bHQgKz0gZGVjb2Rlci0+Zmx1c2goKTsKICAgICBkZWNvZGVyLT5kZXJlZigpOwpJ
bmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAJKHJldmlzaW9uIDE2MDUw
KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIu
aCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTG9hZGVyRnVuY3Rpb25zLmgiCiAj
aW5jbHVkZSAibG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAsMjAgKzQx
LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVk
Q1NTU3R5bGVTaGVldChEb2NMb2FkZXIqIGRsLCBjb25zdCBTdHJpbmcgJnVybCwgQ2FjaGVQb2xp
Y3kgY2FjaGVQb2xpY3ksIHRpbWVfdCBfZXhwaXJlRGF0ZSwgY29uc3QgRGVwcmVjYXRlZFN0cmlu
ZyYgY2hhcnNldCkKICAgICA6IENhY2hlZFJlc291cmNlKHVybCwgQ1NTU3R5bGVTaGVldCwgY2Fj
aGVQb2xpY3ksIF9leHBpcmVEYXRlKQotICAgICwgbV9lbmNvZGluZyhjaGFyc2V0LmxhdGluMSgp
KQorICAgICwgbV9kZWNvZGVyKG5ldyBEZWNvZGVyKCJ0ZXh0L2NzcyIpKQogewogICAgIC8vIEl0
J3MgY3NzIHdlIHdhbnQuCiAgICAgc2V0QWNjZXB0KCJ0ZXh0L2NzcyIpOwogICAgIC8vIGxvYWQg
dGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQoZGwsIHRoaXMsIGZhbHNlKTsKICAg
ICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIGlmICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpCi0gICAg
ICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwogfQogCiBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyAmdXJsLCBj
b25zdCBEZXByZWNhdGVkU3RyaW5nICZzdHlsZXNoZWV0X2RhdGEpCiAgICAgOiBDYWNoZWRSZXNv
dXJjZSh1cmwsIENTU1N0eWxlU2hlZXQsIENhY2hlUG9saWN5VmVyaWZ5LCAwLCBzdHlsZXNoZWV0
X2RhdGEubGVuZ3RoKCkpCi0gICAgLCBtX2VuY29kaW5nKEludmFsaWRFbmNvZGluZykKIHsKICAg
ICBtX2xvYWRpbmcgPSBmYWxzZTsKICAgICBtX3N0YXR1cyA9IFBlcnNpc3RlbnQ7CkBAIC04Miwx
MSArODAsOCBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlcmVmKENhY2hlZFJlCiAKIHZv
aWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6c2V0Q2hhcnNldChjb25zdCBEZXByZWNhdGVkU3RyaW5n
JiBjaHMpCiB7Ci0gICAgaWYgKCFjaHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFRleHRFbmNvZGlu
ZyBlbmNvZGluZyA9IFRleHRFbmNvZGluZyhjaHMubGF0aW4xKCkpOwotICAgICAgICBpZiAoZW5j
b2RpbmcuaXNWYWxpZCgpKQotICAgICAgICAgICAgbV9lbmNvZGluZyA9IGVuY29kaW5nOwotICAg
IH0KKyAgICBpZiAoIWNocy5pc0VtcHR5KCkpCisgICAgICAgIG1fZGVjb2Rlci0+c2V0RW5jb2Rp
bmdOYW1lKGNocy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CiB9
CiAKIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YShWZWN0b3I8Y2hhcj4mIGRhdGEsIGJv
b2wgYWxsRGF0YVJlY2VpdmVkKQpAQCAtOTUsNyArOTAsOCBAQCB2b2lkIENhY2hlZENTU1N0eWxl
U2hlZXQ6OmRhdGEoVmVjdG9yPGNoCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldFNpemUoZGF0
YS5zaXplKCkpOwotICAgIG1fc2hlZXQgPSBTdHJpbmcobV9lbmNvZGluZy50b1VuaWNvZGUoZGF0
YS5kYXRhKCksIHNpemUoKSkpOworICAgIG1fc2hlZXQgPSBtX2RlY29kZXItPmRlY29kZShkYXRh
LmRhdGEoKSwgc2l6ZSgpKTsKKyAgICBtX3NoZWV0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsKICAg
ICBtX2xvYWRpbmcgPSBmYWxzZTsKICAgICBjaGVja05vdGlmeSgpOwogfQpJbmRleDogV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xv
YWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CiAgICAgY2xhc3MgRG9jTG9hZGVyOworICAgIGNsYXNz
IERlY29kZXI7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IDogcHVibGljIENhY2hl
ZFJlc291cmNlCiAgICAgewpAQCAtNTgsNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZQogCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBTdHJpbmcgbV9zaGVldDsKLSAgICAgICAgVGV4dEVuY29k
aW5nIG1fZW5jb2Rpbmc7CisgICAgICAgIFJlZlB0cjxEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAg
fTsKIAogfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcAkocmV2aXNpb24g
MTYwNTApCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgQ2FjaGVkWEJMRG9jdW1lbnQ6OkNhY2hlZFhCTERvY3Vt
ZW50KERvYwogICAgIC8vIExvYWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQo
ZGwsIHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIG1fZGVjb2RlciA9
IG5ldyBEZWNvZGVyOworICAgIG1fZGVjb2RlciA9IG5ldyBEZWNvZGVyKCJhcHBsaWNhdGlvbi94
bWwiKTsKIH0KIAogQ2FjaGVkWEJMRG9jdW1lbnQ6On5DYWNoZWRYQkxEb2N1bWVudCgpCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24gMTYwNTApCisr
KyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFhTTFN0eWxlU2hl
ZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoRG9jTG9hZGVyKiBkbCwgY29uc3QgU3RyaW5nICZ1cmws
IENhY2hlUG9saWN5IGNhY2hlUG9saWN5LCB0aW1lX3QgX2V4cGlyZURhdGUpCiAgICAgOiBDYWNo
ZWRSZXNvdXJjZSh1cmwsIFhTTFN0eWxlU2hlZXQsIGNhY2hlUG9saWN5LCBfZXhwaXJlRGF0ZSkK
KyAgICAsIG1fZGVjb2RlcihuZXcgRGVjb2RlcigidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdz
IFhNTCB3ZSB3YW50LgogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhY2NlcHQgbW9yZSBnZW5l
cmFsIHhtbCBmb3JtYXRzICovKit4bWwsIGltYWdlL3N2Zyt4bWwgZm9yIGV4YW1wbGUuCkBAIC01
MCw3ICs1MSw2IEBAIENhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQKICAg
ICAvLyBsb2FkIHRoZSBmaWxlCiAgICAgQ2FjaGU6OmxvYWRlcigpLT5sb2FkKGRsLCB0aGlzLCBm
YWxzZSk7CiAgICAgbV9sb2FkaW5nID0gdHJ1ZTsKLSAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2Rl
cjsKIH0KIAogdm9pZCBDYWNoZWRYU0xTdHlsZVNoZWV0OjpyZWYoQ2FjaGVkUmVzb3VyY2VDbGll
bnQgKmMpCkBAIC04Miw2ICs4Miw3IEBAIHZvaWQgQ2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YShW
ZWN0b3I8Y2gKIAogICAgIHNldFNpemUoZGF0YS5zaXplKCkpOwogICAgIG1fc2hlZXQgPSBTdHJp
bmcobV9kZWNvZGVyLT5kZWNvZGUoZGF0YS5kYXRhKCksIHNpemUoKSkpOworICAgIG1fc2hlZXQg
Kz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNr
Tm90aWZ5KCk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9EZWNvZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2xvYWRlci9EZWNvZGVyLmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJD
b3JlL2xvYWRlci9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAKIAog
ICAgIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQog
ICAgIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICAgIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChh
cEBueXBvcC5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAKKyNpbmNsdWRlICJET01JbXBs
ZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlN0cmVhbWlu
Z1RleHREZWNvZGVyLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKQEAgLTI0OCwz
MyArMjUwLDQ2IEBAIGJyZWFrQnJlYWs6CiAgICAgcmV0dXJuIChjb2RlKTsKIH0KIAotRGVjb2Rl
cjo6RGVjb2RlcigpIAotICA6IG1fZW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpCi0gICwgbV9kZWNv
ZGVyKFN0cmVhbWluZ1RleHREZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpCi0gICwgZW5jKDAp
CitEZWNvZGVyOjpEZWNvZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdEVuY29kaW5nTmFtZSkKKyAgOiBtX2VuY29kaW5nKGRlZmF1bHRFbmNvZGluZ05hbWUu
aXNOdWxsKCkgPyAiaXNvODg1OS0xIiA6IGRlZmF1bHRFbmNvZGluZ05hbWUuYXNjaWkoKS5kYXRh
KCkpCisgICwgbV9lbmNvZGluZ05hbWUoZGVmYXVsdEVuY29kaW5nTmFtZS5pc051bGwoKSA/ICJp
c284ODU5LTEiIDogZGVmYXVsdEVuY29kaW5nTmFtZS5hc2NpaSgpLmRhdGEoKSkKICAgLCBtX3R5
cGUoRGVmYXVsdEVuY29kaW5nKQotICAsIGJvZHkoZmFsc2UpCi0gICwgYmVnaW5uaW5nKHRydWUp
CisgICwgbV9yZWFjaGVkQm9keShmYWxzZSkKKyAgLCBtX2NoZWNrZWRGb3JCT00oZmFsc2UpCiB7
CisgICAgaWYgKG1pbWVUeXBlID09ICJ0ZXh0L2NzcyIpCisgICAgICAgIG1fY29udGVudFR5cGUg
PSBDU1M7CisgICAgZWxzZSBpZiAobWltZVR5cGUgPT0gInRleHQvaHRtbCIpCisgICAgICAgIG1f
Y29udGVudFR5cGUgPSBIVE1MOworICAgIGVsc2UgaWYgKERPTUltcGxlbWVudGF0aW9uOjppc1hN
TE1JTUVUeXBlKG1pbWVUeXBlKSkgeworICAgICAgICBtX2NvbnRlbnRUeXBlID0gWE1MOworICAg
ICAgICAvLyBEZXNwaXRlIDguNSAiVGV4dC94bWwgd2l0aCBPbWl0dGVkIENoYXJzZXQiIG9mIFJG
QyAzMDIzLCB3ZSBkbyBub3QgYXNzdW1lIHVzLWFzY2lpIAorICAgICAgICAvLyBmb3IgdGV4dC94
bWwsIHRvIG1hdGNoIEZpcmVmb3guCisgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2Rpbmco
VVRGOEVuY29kaW5nKTsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSAiVVRGLTgiOworICAgIH0g
ZWxzZQorICAgICAgICBtX2NvbnRlbnRUeXBlID0gUGxhaW5UZXh0OworCisgICAgbV9kZWNvZGVy
LnNldChTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1fZW5jb2RpbmcpKTsKIH0KIAogRGVj
b2Rlcjo6fkRlY29kZXIoKQogewogfQogCi12b2lkIERlY29kZXI6OnNldEVuY29kaW5nTmFtZShj
b25zdCBjaGFyKiBfZW5jb2RpbmcsIEVuY29kaW5nU291cmNlIHR5cGUpCit2b2lkIERlY29kZXI6
OnNldEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGluZ05hbWUsIEVuY29kaW5nU291cmNl
IHR5cGUpCiB7Ci0gICAgZW5jID0gX2VuY29kaW5nOwotICAgIGVuYyA9IGVuYy5sb3dlcigpOwor
ICAgIG1fZW5jb2RpbmdOYW1lID0gZW5jb2RpbmdOYW1lOworICAgIG1fZW5jb2RpbmdOYW1lID0g
bV9lbmNvZGluZ05hbWUubG93ZXIoKTsKIAotICAgIGlmIChlbmMuaXNFbXB0eSgpKQorICAgIGlm
IChtX2VuY29kaW5nTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRleHRF
bmNvZGluZyBlbmNvZGluZyA9IFRleHRFbmNvZGluZyhlbmMsIHR5cGUgPT0gRW5jb2RpbmdGcm9t
TWV0YVRhZyB8fCB0eXBlID09IEVuY29kaW5nRnJvbVhNTEhlYWRlcik7CisgICAgVGV4dEVuY29k
aW5nIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKG1fZW5jb2RpbmdOYW1lLCB0eXBlID09IEVuY29k
aW5nRnJvbU1ldGFUYWcgfHwgdHlwZSA9PSBFbmNvZGluZ0Zyb21YTUxIZWFkZXIgfHwgdHlwZSA9
PSBFbmNvZGluZ0Zyb21DU1NDaGFyc2V0KTsKIAogICAgIC8vIGluIGNhc2UgdGhlIGVuY29kaW5n
IGRpZG4ndCBleGlzdCwgd2Uga2VlcCB0aGUgb2xkIG9uZSAoZml4ZXMgc29tZSBzaXRlcyBzcGVj
aWZ5aW5nIGludmFsaWQgZW5jb2RpbmdzKQogICAgIGlmIChlbmNvZGluZy5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgZW5jID0gZW5jb2RpbmcubmFtZSgpOworICAgICAgICBtX2VuY29kaW5nTmFtZSA9
IGVuY29kaW5nLm5hbWUoKTsKICAgICAgICAgbV9lbmNvZGluZyA9IGVuY29kaW5nOwogICAgICAg
ICBtX3R5cGUgPSB0eXBlOwogICAgICAgICBtX2RlY29kZXIuc2V0KFN0cmVhbWluZ1RleHREZWNv
ZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOwpAQCAtMjgzLDcgKzI5OCw3IEBAIHZvaWQgRGVjb2Rl
cjo6c2V0RW5jb2RpbmdOYW1lKGNvbnN0IGNoYXIKIAogY29uc3QgY2hhciogRGVjb2Rlcjo6ZW5j
b2RpbmdOYW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZW5jOworICAgIHJldHVybiBtX2VuY29k
aW5nTmFtZTsKIH0KIAogLy8gT3RoZXIgYnJvd3NlcnMgYWxsb3cgY29tbWVudHMgaW4gdGhlIGhl
YWQgc2VjdGlvbiwgc28gd2UgbmVlZCB0byBhbHNvLgpAQCAtMzU4LDE2ICszNzMsMTYgQEAgc3Rh
dGljIGludCBmaW5kWE1MRW5jb2RpbmcoY29uc3QgRGVwcmVjYQogRGVwcmVjYXRlZFN0cmluZyBE
ZWNvZGVyOjpkZWNvZGUoY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbikKIHsKICAgICAvLyBDaGVj
ayBmb3IgVVRGLTE2IG9yIFVURi04IEJPTSBtYXJrIGF0IHRoZSBiZWdpbm5pbmcsIHdoaWNoIGlz
IGEgc3VyZSBzaWduIG9mIGEgVW5pY29kZSBlbmNvZGluZy4KLSAgICBpbnQgYnVmZmVyTGVuZ3Ro
ID0gYnVmZmVyLmxlbmd0aCgpOworICAgIGludCBidWZmZXJMZW5ndGggPSBtX2J1ZmZlci5sZW5n
dGgoKTsKICAgICBjb25zdCBpbnQgbWF4aW11bUJPTUxlbmd0aCA9IDM7Ci0gICAgaWYgKGJlZ2lu
bmluZyAmJiBidWZmZXJMZW5ndGggKyBsZW4gPj0gbWF4aW11bUJPTUxlbmd0aCkgeworICAgIGlm
ICghbV9jaGVja2VkRm9yQk9NICYmIGJ1ZmZlckxlbmd0aCArIGxlbiA+PSBtYXhpbXVtQk9NTGVu
Z3RoKSB7CiAgICAgICAgIGlmIChtX3R5cGUgIT0gVXNlckNob3NlbkVuY29kaW5nKSB7CiAgICAg
ICAgICAgICAvLyBFeHRyYWN0IHRoZSBmaXJzdCB0aHJlZSBieXRlcy4KICAgICAgICAgICAgIC8v
IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBzb21lIG9mIGJ5dGVzIGFyZSBhbHJlYWR5IGluIHRoZSBi
dWZmZXIuCiAgICAgICAgICAgICAvLyBUaGUgbGFzdCBieXRlIGlzIGFsd2F5cyBndWFyYW50ZWVk
IHRvIG5vdCBiZSBpbiB0aGUgYnVmZmVyLgogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hh
ciAqdWRhdGEgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKWRhdGE7Ci0gICAgICAgICAgICB1bnNp
Z25lZCBjaGFyIGMxID0gYnVmZmVyTGVuZ3RoID49IDEgPyBidWZmZXJbMF0udW5pY29kZSgpIDog
KnVkYXRhKys7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyID0gYnVmZmVyTGVuZ3RoID49
IDIgPyBidWZmZXJbMV0udW5pY29kZSgpIDogKnVkYXRhKys7CisgICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyIGMxID0gYnVmZmVyTGVuZ3RoID49IDEgPyBtX2J1ZmZlclswXS51bmljb2RlKCkgOiAq
dWRhdGErKzsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzIgPSBidWZmZXJMZW5ndGggPj0g
MiA/IG1fYnVmZmVyWzFdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOwogICAgICAgICAgICAgQVNTRVJU
KGJ1ZmZlckxlbmd0aCA8IDMpOwogICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMyA9ICp1ZGF0
YTsKIApAQCAtMzg2LDE5NCArNDAxLDIxNyBAQCBEZXByZWNhdGVkU3RyaW5nIERlY29kZXI6OmRl
Y29kZShjb25zdCBjCiAgICAgICAgICAgICAgICAgbV90eXBlID0gQXV0b0RldGVjdGVkRW5jb2Rp
bmc7CiAgICAgICAgICAgICAgICAgbV9lbmNvZGluZyA9IFRleHRFbmNvZGluZyhhdXRvRGV0ZWN0
ZWRFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG1fZW5jb2RpbmcuaXNWYWxpZCgp
KTsKLSAgICAgICAgICAgICAgICBlbmMgPSBtX2VuY29kaW5nLm5hbWUoKTsKKyAgICAgICAgICAg
ICAgICBtX2VuY29kaW5nTmFtZSA9IG1fZW5jb2RpbmcubmFtZSgpOwogICAgICAgICAgICAgICAg
IG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29kaW5nKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYmVnaW5uaW5nID0gZmFsc2U7Cisg
ICAgICAgIG1fY2hlY2tlZEZvckJPTSA9IHRydWU7CiAgICAgfQogICAgIAotICAgIC8vIHRoaXMg
aXMgbm90IGNvbXBsZXRlbHkgZWZmaWNpZW50LCBzaW5jZSB0aGUgZnVuY3Rpb24gbWlnaHQgZ28K
LSAgICAvLyB0aHJvdWdoIHRoZSBodG1sIGhlYWQgc2V2ZXJhbCB0aW1lcy4uLgotCi0gICAgYm9v
bCBsb29rRm9yTWV0YVRhZyA9IG1fdHlwZSA9PSBEZWZhdWx0RW5jb2RpbmcgJiYgIWJvZHk7Cisg
ICAgYm9vbCBjdXJyZW50Q2h1bmtJbkJ1ZmZlciA9IGZhbHNlOwogICAgIAotICAgIGlmIChsb29r
Rm9yTWV0YVRhZykgewotI2lmZGVmIERFQ09ERV9ERUJVRwotICAgICAgICBrZERlYnVnKDYwMDUp
IDw8ICJsb29raW5nIGZvciBjaGFyc2V0IGRlZmluaXRpb24iIDw8IGVuZGw7Ci0jZW5kaWYKLSAg
ICAgICAgeyAvLyBleHRyYSBsZXZlbCBvZiBicmFjZXMgdG8ga2VlcCBpbmRlbnRpbmcgbWF0Y2hp
bmcgb3JpZ2luYWwgZm9yIGJldHRlciBkaWZmJ2luZwotICAgICAgICAgICAgYnVmZmVyLmFwcGVu
ZChkYXRhLCBsZW4pOwotICAgICAgICAgICAgLy8gd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhbiBlbmNv
ZGluZywgYW5kIGFyZSBpbiB0aGUgaGVhZAotICAgICAgICAgICAgLy8gdGhlIGZvbGxvd2luZyB0
YWdzIGFyZSBhbGxvd2VkIGluIDxoZWFkPjoKLSAgICAgICAgICAgIC8vIFNDUklQVHxTVFlMRXxN
RVRBfExJTkt8T0JKRUNUfFRJVExFfEJBU0UKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8g
V2Ugc3RvcCBzY2FubmluZyB3aGVuIGEgdGFnIHRoYXQgaXMgbm90IHBlcm1pdHRlZCBpbiA8aGVh
ZD4KLSAgICAgICAgICAgIC8vIGlzIHNlZW4sIHJhdGhlciB3aGVuIDwvaGVhZD4gaXMgc2Vlbiwg
YmVjYXVzZSB0aGF0IG1vcmUgY2xvc2VseQotICAgICAgICAgICAgLy8gbWF0Y2hlcyBiZWhhdmlv
ciBpbiBvdGhlciBicm93c2VyczsgbW9yZSBkZXRhaWxzIGluCi0gICAgICAgICAgICAvLyA8aHR0
cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTkwPi4KLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgLy8gQWRkaXRpb25hbGx5LCB3ZSBpZ25vcmUgdGhpbmdzIHRo
YXQgbG9va3MgbGlrZSB0YWdzIGluIDx0aXRsZT47IHNlZQotICAgICAgICAgICAgLy8gPGh0dHA6
Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MD4uCisgICAgaWYg
KG1fdHlwZSA9PSBEZWZhdWx0RW5jb2RpbmcgJiYgbV9jb250ZW50VHlwZSA9PSBDU1MpIHsKKyAg
ICAgICAgY29uc3QgY2hhciogcHRyID0gZGF0YTsKKyAgICAgICAgY29uc3QgY2hhciogZGF0YUVu
ZCA9IGRhdGEgKyBsZW47CisgICAgICAgIGlmIChsZW4gPiAxMCAmJiBwdHJbMF0gPT0gJ0AnICYm
IHB0clsxXSA9PSAnYycgJiYgcHRyWzJdID09ICdoJyAmJiBwdHJbM10gPT0gJ2EnICYmIHB0cls0
XSA9PSAncicgJiYgCisgICAgICAgICAgICBwdHJbNV0gPT0gJ3MnICYmIHB0cls2XSA9PSAnZScg
JiYgcHRyWzddID09ICd0JyAmJiBwdHJbOF0gPT0gJyAnICYmIHB0cls5XSA9PSAnIicpIHsKKyAg
ICAgICAgCisgICAgICAgICAgICBwdHIgKz0gMTA7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBj
aGFyc2V0RW5kID0gcHRyOworICAgICAgICAgICAgd2hpbGUgKGNoYXJzZXRFbmQgPCBkYXRhRW5k
ICYmICpjaGFyc2V0RW5kICE9ICciJykKKyAgICAgICAgICAgICAgICArK2NoYXJzZXRFbmQ7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgd2l0aGluVGl0bGUgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGlmIChjaGFyc2V0RW5kICsgMSA8IGRhdGFFbmQgJiYgKmNoYXJzZXRFbmQgPT0gJyIn
ICYmICooY2hhcnNldEVuZCArIDEpID09ICc7JykgeworICAgICAgICAgICAgICAgIERlcHJlY2F0
ZWRDU3RyaW5nIHN0cihwdHIsIGNoYXJzZXRFbmQgLSBwdHIgKyAxKTsKKyAgICAgICAgICAgICAg
ICBzZXRFbmNvZGluZ05hbWUoc3RyLCBFbmNvZGluZ0Zyb21DU1NDaGFyc2V0KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBzdHlsZXNlZXRzIGFyZSBmZWQgdG8gdGhlIGRl
Y29kZXIgaW4gYSBzaW5nbGUgY2h1bmssIHRodXMgbm8gbmVlZCB0byBzdXBwb3J0IHJlc3VtaW5n
CiAKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKnB0ciA9IGJ1ZmZlci5sYXRpbjEoKTsKLSAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnBFbmQgPSBwdHIgKyBidWZmZXIubGVuZ3RoKCk7Ci0gICAgICAg
ICAgICB3aGlsZShwdHIgIT0gcEVuZCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBp
ZigqcHRyID09ICc8JykgewotICAgICAgICAgICAgICAgICAgICBib29sIGVuZCA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgICAgICBwdHIrKzsKKyAgICB9IGVsc2UgaWYgKG1fdHlwZSA9PSBEZWZh
dWx0RW5jb2RpbmcgJiYgIW1fcmVhY2hlZEJvZHkgJiYgbV9jb250ZW50VHlwZSAhPSBQbGFpblRl
eHQpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBub3QgY29tcGxldGVseSBlZmZpY2llbnQsIHNpbmNl
IHRoZSBmdW5jdGlvbiBtaWdodCBnbworICAgICAgICAvLyB0aHJvdWdoIHRoZSBodG1sIGhlYWQg
c2V2ZXJhbCB0aW1lcy4uLgorICAgIAorICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSwgbGVu
KTsKKyAgICAgICAgY3VycmVudENodW5rSW5CdWZmZXIgPSB0cnVlOworICAgICAgICAKKyAgICAg
ICAgLy8gd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhbiBlbmNvZGluZywgYW5kIGFyZSBpbiB0aGUgaGVh
ZAorICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHRhZ3MgYXJlIGFsbG93ZWQgaW4gPGhlYWQ+Ogor
ICAgICAgICAvLyBTQ1JJUFR8U1RZTEV8TUVUQXxMSU5LfE9CSkVDVHxUSVRMRXxCQVNFCisgICAg
ICAgIAorICAgICAgICAvLyBXZSBzdG9wIHNjYW5uaW5nIHdoZW4gYSB0YWcgdGhhdCBpcyBub3Qg
cGVybWl0dGVkIGluIDxoZWFkPgorICAgICAgICAvLyBpcyBzZWVuLCByYXRoZXIgd2hlbiA8L2hl
YWQ+IGlzIHNlZW4sIGJlY2F1c2UgdGhhdCBtb3JlIGNsb3NlbHkKKyAgICAgICAgLy8gbWF0Y2hl
cyBiZWhhdmlvciBpbiBvdGhlciBicm93c2VyczsgbW9yZSBkZXRhaWxzIGluCisgICAgICAgIC8v
IDxodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTA+Lgor
ICAgICAgICAKKyAgICAgICAgLy8gQWRkaXRpb25hbGx5LCB3ZSBpZ25vcmUgdGhpbmdzIHRoYXQg
bG9va3MgbGlrZSB0YWdzIGluIDx0aXRsZT47IHNlZQorICAgICAgICAvLyA8aHR0cDovL2J1Z3pp
bGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD00NTYwPi4KKyAgICAgICAgCisgICAg
ICAgIGJvb2wgd2l0aGluVGl0bGUgPSBmYWxzZTsKKworICAgICAgICBjb25zdCBjaGFyICpwdHIg
PSBtX2J1ZmZlci5sYXRpbjEoKTsKKyAgICAgICAgY29uc3QgY2hhciAqcEVuZCA9IHB0ciArIG1f
YnVmZmVyLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAocHRyICE9IHBFbmQpIHsKKyAgICAgICAg
ICAgIGlmICgqcHRyID09ICc8JykgeworICAgICAgICAgICAgICAgIGJvb2wgZW5kID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgcHRyKys7CisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY29t
bWVudHMuCisgICAgICAgICAgICAgICAgaWYgKHB0clswXSA9PSAnIScgJiYgcHRyWzFdID09ICct
JyAmJiBwdHJbMl0gPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgIHB0ciArPSAzOworICAg
ICAgICAgICAgICAgICAgICBza2lwQ29tbWVudChwdHIsIHBFbmQpOworICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgLy8gSGFuZGxlIFhNTCBkZWNsYXJhdGlvbiwgd2hpY2ggY2FuIGhhdmUgZW5j
b2RpbmcgaW4gaXQuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBlbmNvZGluZyBpcyBob25vcmVk
IGV2ZW4gZm9yIEhUTUwgZG9jdW1lbnRzLgorICAgICAgICAgICAgICAgIGlmIChwdHJbMF0gPT0g
Jz8nICYmIHB0clsxXSA9PSAneCcgJiYgcHRyWzJdID09ICdtJyAmJiBwdHJbM10gPT0gJ2wnKSB7
CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuZCA9IHB0cjsKKyAgICAgICAgICAg
ICAgICAgICAgd2hpbGUgKCplbmQgIT0gJz4nICYmICplbmQgIT0gJ1wwJykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZCsrOworICAgICAgICAgICAgICAgICAgICBpZiAoKmVuZCA9PSAnXDAn
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIERl
cHJlY2F0ZWRDU3RyaW5nIHN0cihwdHIsIGVuZCAtIHB0cik7CisgICAgICAgICAgICAgICAgICAg
IGludCBsZW47CisgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBmaW5kWE1MRW5jb2Rpbmco
c3RyLCBsZW4pOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKHN0ci5taWQocG9zLCBsZW4pLCBFbmNvZGlu
Z0Zyb21YTUxIZWFkZXIpOworICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBsb29raW5n
IGZvciBhIGNoYXJzZXQgLSBpdCBtYXkgYmUgc3BlY2lmaWVkIGluIGFuIEhUVFAtRXF1aXYgbWV0
YQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRyWzBdID09IDAgJiYgcHRyWzFdID09ICc/
JyAmJiBwdHJbMl0gPT0gMCAmJiBwdHJbM10gPT0gJ3gnICYmIHB0cls0XSA9PSAwICYmIHB0cls1
XSA9PSAnbScgJiYgcHRyWzZdID09IDAgJiYgcHRyWzddID09ICdsJykgeworICAgICAgICAgICAg
ICAgICAgICAvLyBVVEYtMTYgd2l0aG91dCBCT00KKyAgICAgICAgICAgICAgICAgICAgc2V0RW5j
b2RpbmdOYW1lKCgocHRyIC0gbV9idWZmZXIubGF0aW4xKCkpICUgMikgPyAiVVRGLTE2TEUiIDog
IlVURi0xNkJFIiwgQXV0b0RldGVjdGVkRW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICBn
b3RvIGZvdW5kOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAvLyB0aGUgSFRUUC1FUVVJViBtZXRhIGhhcyBubyBlZmZlY3Qgb24gWEhUTUwKKyAg
ICAgICAgICAgICAgICBpZiAobV9jb250ZW50VHlwZSA9PSBYTUwpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gZm91bmQ7CisKKyAgICAgICAgICAgICAgICBpZiAoKnB0ciA9PSAnLycpIHsKKyAg
ICAgICAgICAgICAgICAgICAgKytwdHI7CisgICAgICAgICAgICAgICAgICAgIGVuZD10cnVlOwor
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY29tbWVu
dHMuCi0gICAgICAgICAgICAgICAgICAgIGlmIChwdHJbMF0gPT0gJyEnICYmIHB0clsxXSA9PSAn
LScgJiYgcHRyWzJdID09ICctJykgewotICAgICAgICAgICAgICAgICAgICAgICAgcHRyICs9IDM7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBza2lwQ29tbWVudChwdHIsIHBFbmQpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBYTUwgaGVhZGVy
LCB3aGljaCBjYW4gaGF2ZSBlbmNvZGluZyBpbiBpdC4KLSAgICAgICAgICAgICAgICAgICAgaWYg
KHB0clswXSA9PSAnPycgJiYgcHRyWzFdID09ICd4JyAmJiBwdHJbMl0gPT0gJ20nICYmIHB0clsz
XSA9PSAnbCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuZCA9IHB0
cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgqZW5kICE9ICc+JyAmJiAqZW5kICE9
ICdcMCcpIGVuZCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCplbmQgPT0gJ1wwJykK
KyAgICAgICAgICAgICAgICBjaGFyIHRtcFsyMF07CisgICAgICAgICAgICAgICAgaW50IGxlbiA9
IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKAorICAgICAgICAgICAgICAgICAgICAoKCpwdHIg
Pj0gJ2EnKSAmJiAoKnB0ciA8PSAneicpIHx8CisgICAgICAgICAgICAgICAgICAgICAoKnB0ciA+
PSAnQScpICYmICgqcHRyIDw9ICdaJykgfHwKKyAgICAgICAgICAgICAgICAgICAgICgqcHRyID49
ICcwJykgJiYgKCpwdHIgPD0gJzknKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgbGVuIDwgMTkg
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdG1wW2xlbl0gPSB0b2xv
d2VyKCpwdHIpOworICAgICAgICAgICAgICAgICAgICBwdHIrKzsKKyAgICAgICAgICAgICAgICAg
ICAgbGVuKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRtcFtsZW5dID0g
MDsKKyAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgdGFnKHRtcCk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgaWYgKHRhZyA9PSB0aXRsZVRhZykKKyAgICAgICAgICAgICAg
ICAgICAgd2l0aGluVGl0bGUgPSAhZW5kOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGlmICghZW5kICYmIHRhZyA9PSBtZXRhVGFnKSB7CisgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGVuZCA9IHB0cjsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCplbmQgIT0g
Jz4nICYmICplbmQgIT0gJ1wwJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZCsrOworICAg
ICAgICAgICAgICAgICAgICBpZiAoKmVuZCA9PSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRDU3RyaW5nIHN0cihwdHIs
IChlbmQtcHRyKSsxKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLmxvd2VyKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAgICAgICAgICAgICB3aGls
ZSAocG9zIDwgKGludClzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgocG9zID0gc3RyLmZpbmQoImNoYXJzZXQiLCBwb3MsIGZhbHNlKSkgPT0gLTEpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICBEZXBy
ZWNhdGVkQ1N0cmluZyBzdHIocHRyLCBlbmQgLSBwdHIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGxlbjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBmaW5kWE1MRW5j
b2Rpbmcoc3RyLCBsZW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmNvZGluZ05hbWUoc3RyLm1pZChwb3Ms
IGxlbiksIEVuY29kaW5nRnJvbVhNTEhlYWRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobV90eXBlICE9IEVuY29kaW5nRnJvbVhNTEhlYWRlcikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmNvZGluZ05hbWUoIlVURi04IiwgRW5jb2RpbmdGcm9tWE1MSGVhZGVyKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGxvb2tpbmcgZm9yIGEgY2hhcnNl
dCAtIGl0IG1heSBiZSBzcGVjaWZpZWQgaW4gYW4gSFRUUC1FcXVpdiBtZXRhCi0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAocHRyWzBdID09IDAgJiYgcHRyWzFdID09ICc/JyAmJiBwdHJb
Ml0gPT0gMCAmJiBwdHJbM10gPT0gJ3gnICYmIHB0cls0XSA9PSAwICYmIHB0cls1XSA9PSAnbScg
JiYgcHRyWzZdID09IDAgJiYgcHRyWzddID09ICdsJykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVVRGLTE2IHdpdGhvdXQgQk9NCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmNv
ZGluZ05hbWUoKChwdHIgLSBidWZmZXIubGF0aW4xKCkpICUgMikgPyAiVVRGLTE2TEUiIDogIlVU
Ri0xNkJFIiwgQXV0b0RldGVjdGVkRW5jb2RpbmcpOwotICAgICAgICAgICAgICAgICAgICAgICAg
Z290byBmb3VuZDsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgcG9zICs9IDc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdoaXRlc3BhY2Uu
LgorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IChpbnQpc3RyLmxlbmd0aCgp
ICYmIHN0cltwb3NdIDw9ICcgJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RyW3BvcysrXSAhPSAnPScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgKGludClzdHIubGVu
Z3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cltwb3NdIDw9ICcg
JykgfHwgc3RyW3Bvc10gPT0gJz0nIHx8IHN0cltwb3NdID09ICciJyB8fCBzdHJbcG9zXSA9PSAn
XCcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwogCi0gICAgICAgICAgICAg
ICAgICAgIGlmKCpwdHIgPT0gJy8nKSBwdHIrKywgZW5kPXRydWU7Ci0gICAgICAgICAgICAgICAg
ICAgIGNoYXIgdG1wWzIwXTsKLSAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IDA7Ci0gICAg
ICAgICAgICAgICAgICAgIHdoaWxlICgKLSAgICAgICAgICAgICAgICAgICAgICAgICgoKnB0ciA+
PSAnYScpICYmICgqcHRyIDw9ICd6JykgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoKnB0
ciA+PSAnQScpICYmICgqcHRyIDw9ICdaJykgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAo
KnB0ciA+PSAnMCcpICYmICgqcHRyIDw9ICc5JykpCi0gICAgICAgICAgICAgICAgICAgICAgICAm
JiBsZW4gPCAxOSApCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRtcFtsZW5dID0gdG9sb3dlciggKnB0ciApOwotICAgICAgICAgICAgICAgICAgICAgICAg
cHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZW4rKzsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICB0bXBbbGVuXSA9IDA7Ci0gICAgICAgICAgICAgICAg
ICAgIEF0b21pY1N0cmluZyB0YWcodG1wKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIGlmICh0YWcgPT0gdGl0bGVUYWcpCi0gICAgICAgICAgICAgICAgICAgICAg
ICB3aXRoaW5UaXRsZSA9ICFlbmQ7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICBpZiAoIWVuZCAmJiB0YWcgPT0gbWV0YVRhZykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqIGVuZCA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdo
aWxlKCplbmQgIT0gJz4nICYmICplbmQgIT0gJ1wwJykgZW5kKys7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoICplbmQgPT0gJ1wwJyApIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgRGVwcmVjYXRlZENTdHJpbmcgc3RyKCBwdHIsIChlbmQtcHRyKSsxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ciA9IHN0ci5sb3dlcigpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aW50IHBvcyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSggcG9zIDwgKCBpbnQg
KSBzdHIubGVuZ3RoKCkgKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIChwb3Mg
PSBzdHIuZmluZCgiY2hhcnNldCIsIHBvcywgZmFsc2UpKSA9PSAtMSkgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zICs9IDc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gc2tpcCB3aGl0ZXNwYWNlLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGls
ZSggIHBvcyA8IChpbnQpc3RyLmxlbmd0aCgpICYmIHN0cltwb3NdIDw9ICcgJyApIHBvcysrOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggcG9zID09ICggaW50IClzdHIubGVuZ3Ro
KCkpIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc3RyW3BvcysrXSAh
PSAnPScgKSBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIHBv
cyA8ICggaW50IClzdHIubGVuZ3RoKCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICggc3RyW3Bvc10gPD0gJyAnICkgfHwgc3RyW3Bvc10gPT0gJz0nIHx8IHN0cltwb3Nd
ID09ICciJyB8fCBzdHJbcG9zXSA9PSAnXCcnKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MrKzsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZCA/Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBwb3MgPT0gKCBpbnQgKXN0ci5sZW5ndGgoKSAp
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGVuZHBvcyA9IHBv
czsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSggZW5kcG9zIDwgc3RyLmxlbmd0
aCgpICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJbZW5kcG9zXSAh
PSAnICcgJiYgc3RyW2VuZHBvc10gIT0gJyInICYmIHN0cltlbmRwb3NdICE9ICdcJycKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHN0cltlbmRwb3NdICE9ICc7JyAmJiBz
dHJbZW5kcG9zXSAhPSAnPicpICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
cG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKHN0ci5t
aWQocG9zLCBlbmRwb3MtcG9zKSwgRW5jb2RpbmdGcm9tTWV0YVRhZyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYoIG1fdHlwZSA9PSBFbmNvZGluZ0Zyb21NZXRhVGFnICkgZ290byBm
b3VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZCA/CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocG9zID09IChpbnQpc3RyLmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZW5kcG9z
ID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGVuZHBvcyA8IHN0ci5sZW5n
dGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltlbmRwb3NdICE9ICcg
JyAmJiBzdHJbZW5kcG9zXSAhPSAnIicgJiYgc3RyW2VuZHBvc10gIT0gJ1wnJyAmJgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltlbmRwb3NdICE9ICc7JyAmJiBzdHJbZW5kcG9z
XSAhPSAnPicpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9zKys7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmNvZGluZ05hbWUoc3RyLm1pZChwb3MsIGVuZHBvcy1wb3Mp
LCBFbmNvZGluZ0Zyb21NZXRhVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3R5
cGUgPT0gRW5jb2RpbmdGcm9tTWV0YVRhZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIGZvdW5kOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBlbmRwb3MgPj0g
c3RyLmxlbmd0aCgpIHx8IHN0cltlbmRwb3NdID09ICcvJyB8fCBzdHJbZW5kcG9zXSA9PSAnPicg
KSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmRwb3MgPj0gc3RyLmxlbmd0
aCgpIHx8IHN0cltlbmRwb3NdID09ICcvJyB8fCBzdHJbZW5kcG9zXSA9PSAnPicpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb3MgPSBlbmRwb3MgKyAxOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyAhPSBzY3JpcHRUYWcgJiYgdGFnICE9IG5vc2NyaXB0
VGFnICYmIHRhZyAhPSBzdHlsZVRhZyAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRhZyAhPSBsaW5rVGFnICYmIHRhZyAhPSBtZXRhVGFnICYmIHRhZyAhPSBvYmplY3RUYWcgJiYK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcgIT0gdGl0bGVUYWcgJiYgdGFnICE9
IGJhc2VUYWcgJiYgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZCB8fCB0YWcg
IT0gaHRtbFRhZykgJiYgIXdpdGhpblRpdGxlICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRhZyAhPSBoZWFkVGFnKSAmJiBpc2FscGhhKHRtcFswXSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJvZHkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBm
b3VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGVuZHBvcyArIDE7CiAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyAhPSBzY3JpcHRU
YWcgJiYgdGFnICE9IG5vc2NyaXB0VGFnICYmIHRhZyAhPSBzdHlsZVRhZyAmJgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFnICE9IGxpbmtUYWcgJiYgdGFnICE9IG1ldGFUYWcgJiYgdGFn
ICE9IG9iamVjdFRhZyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnICE9IHRpdGxl
VGFnICYmIHRhZyAhPSBiYXNlVGFnICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu
ZCB8fCB0YWcgIT0gaHRtbFRhZykgJiYgIXdpdGhpblRpdGxlICYmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodGFnICE9IGhlYWRUYWcpICYmIGlzYWxwaGEodG1wWzBdKSkgeworICAgICAg
ICAgICAgICAgICAgICBtX3JlYWNoZWRCb2R5ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
Z290byBmb3VuZDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBwdHIrKzsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biBEZXByZWNhdGVkU3RyaW5nOjpudWxsOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHB0cisrOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBEZXByZWNhdGVkU3RyaW5nOjpu
dWxsOwogICAgIH0KIAogIGZvdW5kOgogICAgIC8vIERvIHRoZSBhdXRvLWRldGVjdCBpZiBvdXIg
ZGVmYXVsdCBlbmNvZGluZyBpcyBvbmUgb2YgdGhlIEphcGFuZXNlIG9uZXMuCi0gICAgaWYgKG1f
dHlwZSAhPSBVc2VyQ2hvc2VuRW5jb2RpbmcgJiYgbV90eXBlICE9IEF1dG9EZXRlY3RlZEVuY29k
aW5nICYmIG1fZW5jb2RpbmcuaXNKYXBhbmVzZSgpKQotICAgIHsKKyAgICBpZiAobV90eXBlICE9
IFVzZXJDaG9zZW5FbmNvZGluZyAmJiBtX3R5cGUgIT0gQXV0b0RldGVjdGVkRW5jb2RpbmcgJiYg
bV9lbmNvZGluZy5pc0phcGFuZXNlKCkpIHsKICAgICAgICAgY29uc3QgY2hhciAqYXV0b0RldGVj
dGVkRW5jb2Rpbmc7CiAgICAgICAgIHN3aXRjaCAoS2FuamlDb2RlOjpqdWRnZShkYXRhLCBsZW4p
KSB7Ci0gICAgICAgIGNhc2UgS2FuamlDb2RlOjpKSVM6Ci0gICAgICAgICAgICBhdXRvRGV0ZWN0
ZWRFbmNvZGluZyA9ICJqaXM3IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEth
bmppQ29kZTo6RVVDOgotICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSAiZXVjanAi
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS2FuamlDb2RlOjpTSklTOgotICAg
ICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSAic2ppcyI7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGF1dG9EZXRlY3RlZEVuY29kaW5nID0g
TlVMTDsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLYW5qaUNvZGU6OkpJ
UzoKKyAgICAgICAgICAgICAgICBhdXRvRGV0ZWN0ZWRFbmNvZGluZyA9ICJqaXM3IjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2FuamlDb2RlOjpFVUM6CisgICAg
ICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSAiZXVjanAiOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLYW5qaUNvZGU6OlNKSVM6CisgICAgICAgICAg
ICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSAic2ppcyI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGF1dG9EZXRlY3RlZEVu
Y29kaW5nID0gTlVMTDsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBpZiAoYXV0b0RldGVjdGVkRW5jb2RpbmcgIT0gMCkgeworICAgICAgICBpZiAoYXV0b0RldGVj
dGVkRW5jb2RpbmcpCiAgICAgICAgICAgICBzZXRFbmNvZGluZ05hbWUoYXV0b0RldGVjdGVkRW5j
b2RpbmcsIEF1dG9EZXRlY3RlZEVuY29kaW5nKTsKLSAgICAgICAgfQogICAgIH0KIAotICAgIC8v
IGlmIHdlIHN0aWxsIGhhdmVuJ3QgZm91bmQgYW4gZW5jb2RpbmcsIGFzc3VtZSBsYXRpbjEKLSAg
ICBpZiAoIW1fZW5jb2RpbmcuaXNWYWxpZCgpKQotICAgIHsKLSAgICAgICAgaWYgKGVuYy5pc0Vt
cHR5KCkpIAotICAgICAgICAgICAgZW5jID0gImlzbzg4NTktMSI7Ci0gICAgICAgIG1fZW5jb2Rp
bmcgPSBUZXh0RW5jb2RpbmcoZW5jKTsKLSAgICAgICAgLy8gYmUgc3VyZSBub3QgdG8gY3Jhc2gK
LSAgICAgICAgaWYgKCFtX2VuY29kaW5nLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgZW5jID0g
Imlzbzg4NTktMSI7Ci0gICAgICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29kaW5nKExhdGlu
MUVuY29kaW5nKTsKLSAgICAgICAgfQotICAgICAgICBtX2RlY29kZXIuc2V0KFN0cmVhbWluZ1Rl
eHREZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOworICAgIC8vIElmIHdlIHN0aWxsIGhhdmVu
J3QgZm91bmQgYW4gZW5jb2RpbmcsIGFzc3VtZSBsYXRpbjEKKyAgICAvLyAodGhpcyBjYW4gaGFw
cGVuIGlzIGFuIGVtcHR5IG5hbWUgaXMgcGFzc2VkIGZyb20gb3V0c2lkZSkuCisgICAgaWYgKG1f
ZW5jb2RpbmdOYW1lLmlzRW1wdHkoKSB8fCAhbV9lbmNvZGluZy5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgbV9lbmNvZGluZ05hbWUgPSAiaXNvODg1OS0xIjsKKyAgICAgICAgbV9lbmNvZGluZyA9IFRl
eHRFbmNvZGluZyhMYXRpbjFFbmNvZGluZyk7CiAgICAgfQorICAgIG1fZGVjb2Rlci5zZXQoU3Ry
ZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29kaW5nKSk7CisKICAgICBEZXByZWNhdGVk
U3RyaW5nIG91dDsKIAotICAgIGlmICghYnVmZmVyLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAo
IWxvb2tGb3JNZXRhVGFnKQotICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkYXRhLCBsZW4pOwot
ICAgICAgICBvdXQgPSBtX2RlY29kZXItPnRvVW5pY29kZShidWZmZXIubGF0aW4xKCksIGJ1ZmZl
ci5sZW5ndGgoKSk7Ci0gICAgICAgIGJ1ZmZlci50cnVuY2F0ZSgwKTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmICghbV9idWZmZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICghY3VycmVudENodW5r
SW5CdWZmZXIpCisgICAgICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKKyAgICAg
ICAgb3V0ID0gbV9kZWNvZGVyLT50b1VuaWNvZGUobV9idWZmZXIubGF0aW4xKCksIG1fYnVmZmVy
Lmxlbmd0aCgpKTsKKyAgICAgICAgbV9idWZmZXIudHJ1bmNhdGUoMCk7CisgICAgfSBlbHNlCiAg
ICAgICAgIG91dCA9IG1fZGVjb2Rlci0+dG9Vbmljb2RlKGRhdGEsIGxlbik7Ci0gICAgfQogCiAg
ICAgcmV0dXJuIG91dDsKIH0KIAogRGVwcmVjYXRlZFN0cmluZyBEZWNvZGVyOjpmbHVzaCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fZGVjb2Rlci0+dG9Vbmljb2RlKGJ1ZmZlci5sYXRpbjEoKSwg
YnVmZmVyLmxlbmd0aCgpLCB0cnVlKTsKKyAgICByZXR1cm4gbV9kZWNvZGVyLT50b1VuaWNvZGUo
bV9idWZmZXIubGF0aW4xKCksIG1fYnVmZmVyLmxlbmd0aCgpLCB0cnVlKTsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9EZWNvZGVyLmgJKHJldmlzaW9uIDE2MDUwKQorKysgV2Vi
Q29yZS9sb2FkZXIvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAK
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCwx
MSArNDEsMTIgQEAgcHVibGljOgogICAgICAgICBBdXRvRGV0ZWN0ZWRFbmNvZGluZywKICAgICAg
ICAgRW5jb2RpbmdGcm9tWE1MSGVhZGVyLAogICAgICAgICBFbmNvZGluZ0Zyb21NZXRhVGFnLAor
ICAgICAgICBFbmNvZGluZ0Zyb21DU1NDaGFyc2V0LAogICAgICAgICBFbmNvZGluZ0Zyb21IVFRQ
SGVhZGVyLAogICAgICAgICBVc2VyQ2hvc2VuRW5jb2RpbmcKICAgICB9OwogICAgIAotICAgIERl
Y29kZXIoKTsKKyAgICBEZWNvZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdEVuY29kaW5nTmFtZSA9IFN0cmluZygpKTsKICAgICB+RGVjb2RlcigpOwogCiAg
ICAgdm9pZCBzZXRFbmNvZGluZ05hbWUoY29uc3QgY2hhciogZW5jb2RpbmcsIEVuY29kaW5nU291
cmNlIHR5cGUpOwpAQCAtNTYsMTkgKzU4LDI3IEBAIHB1YmxpYzoKICAgICBEZXByZWNhdGVkU3Ry
aW5nIGRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKTsKICAgICBEZXByZWNhdGVkU3Ry
aW5nIGZsdXNoKCkgY29uc3Q7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CisgICAgZW51bSBDb250
ZW50VHlwZSB7CisgICAgICAgIEhUTUwsCisgICAgICAgIFhNTCwKKyAgICAgICAgQ1NTLAorICAg
ICAgICBQbGFpblRleHQgLy8gRG8gbm90IGxvb2sgaW5zaWRlIHRoZSBkb2N1bWVudCAoZXF1aXZh
bGVudCB0byBkaXJlY3RseSB1c2luZyBTdHJlYW1pbmdUZXh0RGVjb2RlcikKKyAgICB9OworCiAg
ICAgLy8gZW5jb2RpbmcgdXNlZCBmb3IgZGVjb2RpbmcuIGRlZmF1bHQgaXMgTGF0aW4xLgogICAg
IFRleHRFbmNvZGluZyBtX2VuY29kaW5nOworICAgIENvbnRlbnRUeXBlIG1fY29udGVudFR5cGU7
CiAgICAgT3duUHRyPFN0cmVhbWluZ1RleHREZWNvZGVyPiBtX2RlY29kZXI7Ci0gICAgRGVwcmVj
YXRlZENTdHJpbmcgZW5jOworICAgIERlcHJlY2F0ZWRDU3RyaW5nIG1fZW5jb2RpbmdOYW1lOwog
ICAgIEVuY29kaW5nU291cmNlIG1fdHlwZTsKIAogICAgIC8vIE91ciB2ZXJzaW9uIG9mIERlcHJl
Y2F0ZWRTdHJpbmcgd29ya3Mgd2VsbCBmb3IgYWxsLTgtYml0IGNoYXJhY3RlcnMsIGFuZCBhbGxv
d3MgbnVsbCBjaGFyYWN0ZXJzLgogICAgIC8vIFRoaXMgd29ya3MgYmV0dGVyIHRoYW4gRGVwcmVj
YXRlZENTdHJpbmcgd2hlbiB0aGVyZSBhcmUgbnVsbCBjaGFyYWN0ZXJzIGludm9sdmVkLgotICAg
IERlcHJlY2F0ZWRTdHJpbmcgYnVmZmVyOworICAgIERlcHJlY2F0ZWRTdHJpbmcgbV9idWZmZXI7
CiAKLSAgICBib29sIGJvZHk7Ci0gICAgYm9vbCBiZWdpbm5pbmc7CisgICAgYm9vbCBtX3JlYWNo
ZWRCb2R5OworICAgIGJvb2wgbV9jaGVja2VkRm9yQk9NOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShy
ZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0MiwxMiArNjQyLDEwIEBAIHZvaWQgRnJhbWU6OndyaXRlKGNvbnN0IGNoYXIqIHN0ciwg
aW50IGwKICAgICB9CiAgICAgCiAgICAgaWYgKCFkLT5tX2RlY29kZXIpIHsKLSAgICAgICAgZC0+
bV9kZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgICAgIGQtPm1fZGVjb2RlciA9IG5ldyBEZWNv
ZGVyKGQtPm1fcmVxdWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUsIHNldHRpbmdzKCktPmVuY29kaW5n
KCkubGF0aW4xKCkpOwogICAgICAgICBpZiAoIWQtPm1fZW5jb2RpbmcuaXNOdWxsKCkpCiAgICAg
ICAgICAgICBkLT5tX2RlY29kZXItPnNldEVuY29kaW5nTmFtZShkLT5tX2VuY29kaW5nLmxhdGlu
MSgpLAogICAgICAgICAgICAgICAgIGQtPm1faGF2ZUVuY29kaW5nID8gRGVjb2Rlcjo6VXNlckNo
b3NlbkVuY29kaW5nIDogRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGQtPm1fZGVjb2Rlci0+c2V0RW5jb2RpbmdOYW1lKHNldHRpbmdz
KCktPmVuY29kaW5nKCkubGF0aW4xKCksIERlY29kZXI6OkRlZmF1bHRFbmNvZGluZyk7CiAKICAg
ICAgICAgaWYgKGQtPm1fZG9jKQogICAgICAgICAgICAgZC0+bV9kb2MtPnNldERlY29kZXIoZC0+
bV9kZWNvZGVyLmdldCgpKTsKSW5kZXg6IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCShyZXZpc2lvbiAxNjA1
MCkKKysrIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTIsNyArMjEyLDcgQEAgUmVmUHRyPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVhdGVEbwog
ICAgIH0KICAgICByZXN1bHQtPmRldGVybWluZVBhcnNlTW9kZShkb2N1bWVudFNvdXJjZSk7IC8v
IE1ha2Ugc3VyZSB3ZSBwYXJzZSBpbiB0aGUgY29ycmVjdCBtb2RlLgogICAgIAotICAgIFJlZlB0
cjxEZWNvZGVyPiBkZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgUmVmUHRyPERlY29kZXI+IGRl
Y29kZXIgPSBuZXcgRGVjb2Rlcihzb3VyY2VNSU1FVHlwZSk7CiAgICAgZGVjb2Rlci0+c2V0RW5j
b2RpbmdOYW1lKHNvdXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/ICJVVEYtOCIgOiBzb3VyY2VFbmNv
ZGluZy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tWE1MSGVhZGVyKTsKICAgICByZXN1
bHQtPnNldERlY29kZXIoZGVjb2Rlci5nZXQoKSk7CiAgICAgCkluZGV4OiBXZWJDb3JlL3htbC94
bWxodHRwcmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwveG1saHR0cHJlcXVl
c3QuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTM5LDEyICs1MzksMTYgQEAgdm9pZCBYTUxIdHRwUmVxdWVz
dDo6cmVjZWl2ZWREYXRhKFJlc291cgogICAgICAgICBpZiAobV9lbmNvZGluZy5pc0VtcHR5KCkg
JiYgbV9qb2IpCiAgICAgICAgICAgICBtX2VuY29kaW5nID0gbV9qb2ItPnF1ZXJ5TWV0YURhdGEo
ImNoYXJzZXQiKTsKICAgICAKLSAgICAgICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXI7Ci0gICAg
ICAgIGlmICghbV9lbmNvZGluZy5pc0VtcHR5KCkpCisgICAgICAgIGlmICghbV9lbmNvZGluZy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fZGVjb2RlciA9IG5ldyBEZWNvZGVyKCJ0ZXh0L3Bs
YWluIik7CiAgICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nTmFtZShtX2VuY29kaW5n
LmRlcHJlY2F0ZWRTdHJpbmcoKS5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhl
YWRlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIC8vIG9ubHkgYWxsb3cgRGVjb2RlciB0
byBsb29rIGluc2lkZSB0aGUgbV9yZXNwb25zZSBpZiBpdCdzIFhNTAotICAgICAgICAgICAgbV9k
ZWNvZGVyLT5zZXRFbmNvZGluZ05hbWUoIlVURi04IiwgcmVzcG9uc2VJc1hNTCgpID8gRGVjb2Rl
cjo6RGVmYXVsdEVuY29kaW5nIDogRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7Cisg
ICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VJc1hNTCgpKSB7CisgICAgICAgICAgICAvLyBhbGxv
dyBEZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSBtX3Jlc3BvbnNlIGlmIGl0J3MgWE1MCisgICAg
ICAgICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcigiYXBwbGljYXRpb24veG1sIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcigidGV4dC9w
bGFpbiIpOworICAgICAgICAgICAgbV9kZWNvZGVyLT5zZXRFbmNvZGluZ05hbWUoIlVURi04Iiwg
RGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CisgICAgICAgIH0KICAgICB9CiAgICAg
aWYgKGxlbiA9PSAwKQogICAgICAgICByZXR1cm47CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5n
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFy
c2V0LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFn
ZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWdB
RWxFUVZSNG5PM2RlM1RVNVozNDhVOUNBZ1lGClJRUlJVUzRXTjZnSTF1SUY2d1VWYjRXV1EydGxh
OXRUdFJWWHFsc3Q5YWZWeXNvcXJWc3JSZGNMVytzTjlZQTNxcmFXRlMrbEtsZ3YKb0dzWEtCYlJB
eXBRYmdJbUlTRjVmbit3akVRZ21TQjkyaDVmcjNNOHU1bnZNelBQZHpKUE9tL21POThwU1NtbEFB
QUF5S0QwYnowQgpBQURnMDBPQUFBQUEyUWdRQUFBZ0d3RUNBQUJrSTBBQUFJQnNCQWdBQUpDTkFB
RUFBTElSSUFBQVFEWUNCQUFBeU9ZZkprQ1dMVnNXCnp6enpUS3hjdVhLSDNONjZkUkh2dnZ1MytS
TDQ2dXB0YjF1MUtzV0dEZHQvL2MyOTgwN0RKOXJlbFBmZmZ6L2VmLy85d3M5Yis3MnMKV2JNbTNu
bm5uWWlJV0x0MmJkVFUxR3pYbU9YTGwrK3czM3RLS2Q1KysrMTQ4ODAzWTBOekQvUTJyRnUzTGhZ
dFdyUkQ1dlBYc21MRgppbmp6elRmLzF0UDQxS3F2cjQ5NTgrYjlyYWNCQUgrWG1nMlF3WU1IUjRj
T0hlTFVVMCtOcjM3MXE5R3FWYXZvMGFOSGZPVXJYNG5QCmYvN3owYXBWcTdqbm5uditxcFA4ci8v
NnI1ZzBhVkpNbno0OURqcm9vRmkvZnYwbnVyMEpFMnFqWThmVjhlQ0R0VHRvaHNWWnNpVEYKOTc1
WEhZTUhyOXRpMjV0dk5zUlh2L3BoUFBSUVhWeDVaWFdNSHIzbEMvR21yaDhSY2QxMTY2T2taRlho
di8vMy82cGJ0TDA1cTFhdAppclBQUGp1T1BmYlkrTWxQZmhMang0K1BrMDQ2S1U0NDRZUVlObXhZ
WWR5Nzc3NGIzL2pHTjJMVXFGRXhmdno0Nk4rL2Z4eDExRkh4CjJtdXZ0V2pNSzYrOEVvTUdEWW91
WGJwRXg0NGQ0OHd6ejl4cW9CUmoxcXhaTVdUSWtEam5uSE5pNHNTSjhldGYvem91dXVpaStKZC8K
K1pkWXVIQmgwYmR6Ly8zM3g1NTc3aGtUSjA3Y3JubmtjdFZWVjhYUW9VUC8xdFA0VkhyNTVaZWpY
NzkrY2Q1NTUvMnRwd0lBZjVmSwptaHRRVjFjWHMyYk5paDQ5ZWtSRVJFVkZSUngvL1BGeDU1MTNS
a1RFRFRmY3NOMHZDaU1pMXE5Zkh6Tm16SWlCQXdkdWRmdUhIMzRZCmwxeHlTYXhac3laS1Mwdmps
Rk5PaVRadDJtejMvVVZFakJqUk9rYVBidG1MNzA5cTdkcUkrZlByNC9YWDYyUDkrclRGdGlGRDFz
VjEKMTFYRWw3NVVIaEVSUngrOU52YlpwelRPTzY5MXM5ZVAyUGl1eU1zdmI0aW5uMjRYRVJFbEpS
RUhIZFNxNk8zTm1UdDNiZ3dhTkNoTwpQUEhFZU9xcHA2SjE2NDN6U2luRkQzLzR3M2pra1VjS1l5
KysrT0tvcmEwdHZFaXZxNnVML3YzN3grTEZpNHNlczNidDJ2alJqMzRVCkYxNTRZVXljT0RGdXV1
bW1HRHQyYkJ4NDRJRXhldlRvb3VjZEVYSHBwWmZHM0xsejQ4WWJieXc4anpkWnVYSmxYSHJwcFRG
cTFLaW8Kckt4czlyYSs5cld2eFRYWFhOT2krLzlyYUc3ZGpCa3pab2U5YTlRU3pjM3JIOG4yN2t2
Ly92M2orT09QanpsejV2eVZaZ1lBLzlpYQpmUWZra2tzdTJlSkYyK1pHakJnUkJ4MTBVTkYzbU5K
SEw1N3I2dXJpRzkvNFJqejMzSFBiSFAvR0cyOUViVzF0bEpadW5PcUFBUU9LCnZxK21sSmR2ZkJI
K1NhVWlqK0pxMXk3aTJHUExvckt5ZEl2N3ZlKysybGkrUE1XUUllV0Z5ODQrdTAyTUdWTWQ5ZlhO
WHo4aTRoZS8KV0I4VkZTVlJYWjNpaUNQS1l1REFzdWpjdWFUbzdVMnByNitQYjM3em0xRmFXaG9U
Smt3b3hFZEVSRWxKU1Z4NzdiVnh3QUVIRkM2YgpOMjllTEZxMEtPcnE2aUlpb3J5OFBPNjg4ODVH
TDRpYkd6Tno1c3o0NVM5L0dWLzg0aGVqUzVjdWNjMDExMFN2WHIxaXhvd1pSYzE1CmszSGp4c1hz
MmJOanlwUXAwYU5IajVnOWUzYU1IVHMycGt5WkVqTm16SWhYWDMwMWJyMzExdmpaejM1VzlHMlds
NWRIU1JGUG5wWWUKNHBXS2ZESVZzMjQ2ZHV3WXZYcjEydTc3MkI3RnpHdEh6S081Nis2SWZXekp2
bXl1b1dIallZMWxaV1dGdjFrQVFHUE52Z055eWltbgpOTGw5NTUxM2pxT1BQam9pSXBZdVhSclhY
WGRkdlBycXE3RnUzYnE0K2VhYjQ4Z2pqNHlJaU1tVEo4ZktsU3RqelpvMThlaWpqOGFNCkdUUGk1
ei8vZVR6MjJHUHg1ei8vT1JZc1dCQzMzSEpMN0x6enpvWGJ2djMyMitPaGh4NktEUnMyeE1pUkk2
T2lvaUt1di83NldMZHUKWFZ4MjJXWFJwazJiV0xCZ1FleTMzMzV4M1hYWFJVVkZSY3lhTlNzbVRK
Z1FuVHAxaW9xS2l2ajV6Mzhldi9uTmIrTHd3dy9mWXU1VgpWU2xHamFxT2lSTnJvMnZYMHJqMzNw
MmpkKy9TbUR5NUxpNjVwQ291dTJ5bnVQRENOakZwVWwyTUhsMGRBd2VXeFcyM3RmMi82MFpjCmVt
bDFkTzVjRXM4L3Z5RjIzNzBrRGoyMExBWU1hQlhISE5Qc3c5ckliMzliRjcxNmxjYm1yMWQ2OVNx
TmQ5OXRpTm16NitOem4ydisKbllwSmsycGo1c3dOY2UrOTYyTy8vVXJqMWx0M2p0TlBMeXQ2Kzcv
Lys3L0hZNDg5RmkrLy9QSVd0LzNrazAvR0s2KzhFcU5IajQ2ZApkdHBwaSsybHBhV05Ec01iUG54
NFhISEZGVEZvMEtDWVBIbHk3TG5ubm5Ib29ZZkdvWWNlV3ZTWWswOCt1ZEY5bEpTVXhJRUhIaGhk
CnVuUXBhczRSRVlzWEw0NHhZOGJFVzIrOUZXVmxaZkdMWC93aUxyMzAwcGcyYlZvc1hibzBoZ3da
RXQvLy92ZGowS0JCMGJsejUvamcKZ3c5aTExMTNqWWlJNnVycXVPYWFhNko5Ky9ZeGE5YXM2Tisv
ZjR3YU5hcHcydzBORFhIVlZWZkZYWGZkRmUzYnQ0L0hIMys4RU9wUApQLzEwdlBMS0sxRlNVaEtQ
UHZwb1RKZ3dJUTQrK09CdFBqY1hMbHk0eGRxSTJQWjZhbTdkdlAvKyt6Rng0c1NZTW1WS3pKdzVN
eUsyCnZ2NCs3dGxubjQwSkV5WkUxNjVkbzNmdjNqRjI3TmdvTHkrUDMvNzJ0NFY5YTJydE5UZXZi
YzFqOHVUSmNja2xsOFJsbDEwV0YxNTQKWVV5YU5DbEdqeDRkQXdjT2pOdHV1eTJlZXVxcCtPVXZm
eG1mK2N4bm9xNnVMdTY2NjY1bzNicDEzSEhISFhIU1NTYzF1NzI1ZVcvdAo5eko4K1BBdDltWGR1
blhiL1B0V1ZWVVZvMGFOaWk1ZHVzUjc3NzBYLy91Ly83dlZ0UUlBUkVScW9aMTIyaWw5NjF2ZjJ1
THlEUnMyCnBOTk9PeTJ0V2JNbTFkZlhweEVqUnFST25UcWxWYXRXcGJxNnV2UzV6MzJ1TVBiaWl5
OU85ZlgxS2FXVXVuZnZuc2FPSGJ2TiszdmcKZ1FkU2FXbHBvOHVPUGZiWWRNODk5NlNVVXFxdHJV
MkhIMzU0R2p4NGNFb3BwWmt6WjZZT0hUcWtmdjM2cFljZWVpaU5HREVpelo4LwpmNHZiN2RwMWRU
cm9vQS9TWTQvVnBtZWVxVXZkdTMrUWV2YjhJTlhWYmR5K3p6NnIwN1hYVmhmR24zenkyblRHR2Vz
S1A5OTBVMDM2Ci92ZXJVa29wdmZGR2ZZcFltYTY3cmlhOS9YWjlrNC9mK2VkL21BWU1XTlBvc3Y3
OTE2UlRUbG5iNkxKWFg5MlFJbGFtS1ZOcW03MysKSmdzVzFLZWYvN3dtVlZTc1NxMWJyMHJ6NXRV
WHZmM21tMjlPWC9yU2w3WjZ1ei85NlU5VFJLUzc3NzY3eVgzYjVJTVBQa2pISDM5OAppb2kweHg1
N3BNY2VlMnk3eG15dW9hRWhkZXZXTGIzNjZxdEZ6VG1sbEI1KytPRjAzSEhIcFpSU1dyeDRjV3Ji
dG0yNit1cXJVMG9wCnZmVFNTeWtpMHV1dnY1NVNTbW5zMkxGcDZkS2xoZXVlZXVxcGFlYk1tU21s
bEY1NTVaVVVFWVg3UHVTUVExTGZ2bjNUVTA4OWxSWXQKV3BRcUt5dlR0Ny85N1pSU1N1dlhyMC83
N0xOUGV1YVpaMUpLS2YzYnYvMWIrdktYdjV4UzJ2cHpjODZjT1Z0ZEcwMnRwNVNhWGpmTApsaTFM
NTU5L2Z0cGpqejFTU3FuSjliZTVKVXVXcEFNT09DQlZWbGFteHg5L1BMMzk5dHZwbi83cG45SjN2
dk9kd3BpbTFsNXo4MnBxCkh2dnNzMCs2OXRwckM5dE9Qdm5rZE1ZWlo2U1VVbHE0Y0dIcTNMbHo2
dEdqUjNydXVlZlM5T25UVTkrK2ZkTysrKzViMVBibTVyMnQKdnhtYjcwdHp2NDh2Zk9FTGFkS2tT
U21sbE9ycjY5UGVlKytkQmcwYXROWEhBUUErN1hiWU1RSVBQUEJBcEpUaXVlZWVpNmxUcDhaZQpl
KzBWZi9uTFgrTDN2Lzk5ckY2OU9sNTc3YlY0NG9rbklpTGlPOS81VHFQREpJbzVuR1dUcVZPbnh2
UFBQeC9EaHcrUGlJMkh3NXh6Cnpqbng2MS8vT21iT25CbEhIbmxrVkZaV1J1L2V2ZVBMWC81eTNI
YmJiVnM5RkNVaTRwdmZiQk5EaHBUSHdJRmw4Wk9mVk1SYmI5WEgKVTA5dFBHeW1vcUtrMGFGT2Jk
czIvbm5peE5ybzJISGpCUWNmWEJxZE9tMThLTHQxYS9sRFdsMmRvcnk4OFdQUXV2WEduLy92Q0tX
aQo5T3haR3YvNnIyM2krZWZiUmJ0MkpmRWYvMUZUOVBZTExyZ2dmdldyWDIzMWR0OTk5OTJJaU5o
amp6Mktta2Y3OXUzanlTZWZqTXN2CnZ6eFdyVm9WUTRjT2pWdHV1YVhGWXpiMzhNTVB4K21ubng2
Zi9leG5pNXB6Uk1UcnI3OGVoeHh5U0VSRVRKczJMYXFxcXVLMDAwNkwKaUlnWFhuZ2h1blRwVXRp
K2JObXk2Tnk1YzBSRVBQUE1NekY3OXV3NDRvZ2pJaUxpc01NT2k5dHV1eTI2ZGV0V3VPM0Jnd2ZI
aVNlZQpHRjI3ZG8yQkF3Y1d6bmhVWGw0ZXc0WU5pNzU5KzBiRXhrT2g1czZkR3hHeDFlZG1wMDZk
dHJvMm1scFBtMnhyM1hUcTFDbjY5T2xUCldHUE5yYjlOOXR4eno5aC8vLzJqVDU4K01Yanc0T2pX
clZ1Y2NNSUo4YWMvL1NraW1sOTd6YzJycVhsVVZGUTB1bDdidG0wTFAzZnYKM2ozMjNYZmYrT0lY
dnhpZi8vem40OWhqajQxSmt5YkZva1dMWXU3Y3VjMXUveVIvTXpiTm9hbmZ4NHN2dmhoUFBQRkU0
ZDNpMHRMUwpPUDMwMDdmNkdBQUFPL0EwdkRObnpveU9IVHRHNjlhdG8zWHIxbkgwMFVmSHRHblQ0
ckRERG9zOTl0Z2poZzBiRmtPR0RJbVJJMGRHCjkrN2RvMVdyanc0cmFrbUF2UFRTUzlHcFU2Y29M
Ly9vOHhLYkRxK2FQWHQyUkd4OE1kT3BVNmRtYjJ2WFhUKzYzeU9QM0RpZk45K3MKTDJvZTdkcVZ4
TXlaSDQzdDBxVWtqamlpK0E5MWI2NUxsOUpZdWJMeEtYRS8vSERqQzdOZXZWcitLL3JzWjF2Rmw3
OWNIcSsvdnZWOQphVzc3eDNYdjNqMGlQZ3FSWXBTWGw4ZllzV1BqNmFlZmprNmRPc1hJa1NQandR
Y2ZiUEdZaUkwdlhCOTQ0SUVZTjI1YzBmY2ZFYkhQClB2dkUwcVZMSXlLaXRyWTJkdHR0dHpqc3NN
TWlZdU1MeW1PT09TWWlOc2JINXMrWDMvLys5ekZnd0lCR3o4c1JJMFpFeDQ0ZEN6OXYKdnExRGh3
NnhidDI2d3VVMzNuaGpyRjY5T3E2NzdycVlQbjE2ckYyN3RqRDI0OC9OYmEyTnB0YlQxdWJ3Y1NV
bEpZWHR6YTIvYlYwdgpJcUpkdTNhRmswd1VzL2FhbWxkTDVyRzFlVzArdHJLeU1qcDA2QkJQUGZW
VXM5cy95ZCtNVGZ2UzFPL2pkNy83WFZSV1ZzWnV1KzFXCnVONHV1K3pTb3I5ckFQQnAwcklQS3pS
aCtmTGxVVlpXVmpqbSt1UHV2Ly8rMkh2dnZXUDgrUEV4YTlhcytPLy8vdTlvMzc1OWkrK24KcXFv
cWxpOWZIdXZXcll0ZGR0a2xJaUw2OU9rVFpXVmw4ZUdISDI3My9MdDFLNDEyN1VxaVhidmlYalJj
ZkhHYitOYTNxdUtOTitxagpUWnVTYU51MkpJNDdidnNlenE1ZFMrUDU1eHQvWUhuZHVrMEJzbjFS
Yzh3eFpURnYzcmEvNTZPNTdaczc4TUFESXlLS09xdlAyMisvCkhSMDdkb3gyN1RhZWJldTQ0NDZM
Ung1NUpJNCsrdWg0OE1FSDQ0d3p6aWhxek9hdXVPS0t1T0dHRzFwODlyUEREanNzcnIvKytvaUkK
R0RwMGFGeDAwVVh4MWx0dnhRc3Z2QkR0MnJXTGhvYUdlTys5OTJMczJMRng3YlhYRnE2M2RPblMr
T01mLzlpaSs5cmNoQWtUNHZubgpuNDg3N3JnamJyLzk5bmpwcFplYUhMKzF0ZEhjZW1xcEhiSCtk
c1RhMjFGL0J5STJ2dE5RVnJidE5iZHArNDZZZDFPL2o4V0xGOGZ5CjVjdTN1RnlBQU1EVzdiQjNR
SHIwNkJIVHBrMXJkRXJlbEZMODduZS9peVZMbHNTeVpjdGkzTGh4TVhYcTFIampqVGRpMHFSSmhY
RXQKK1IvcXlzcktxSyt2Yi9UQjQyWExsc1dHRFJ1aWQrL2UyejMvOTk1THNYWnRpa01QL2VnRmYw
TVRyODlQUDcwOHZ2T2ROakYxNm9aNAo1WlVOOGV5ejdiYjd2b2NPTFk4bFN4b0taN3lLaVBqVG4r
cmo0SU5ieGNjK3cxdTAxMTZyajhNUDMzYThOTGQ5Y3llZWVHTDA3ZHMzCjdyenp6bGk5ZXZWV3gy
dzY0OVBTcFV0ai9QanhqYllOR0RBZ3VuZnZYdmp5dm1MR2JITDk5ZGZIdWVlZUcxMjdkaTFjdHVs
ZGplWWMKZHRoaDBidDM3N2pycnJ1aWMrZk9NV1BHakxqcHBwdWljK2ZPOGVDREQ4YWhoeDRhdDk5
K2U0d2VQYnJ3NGZPSWlHN2R1c1diYjc0WgpDeFlzS0Z5V1VtcjByL3piTW1mT25MamdnZ3ZpK3V1
dmIvUXY3dHV5cmJYUjFIcmFwTmgxMDl6NksxYXhhMjliODJwdUhnMU5MYmlQCm1UOS9mcXhZc2FM
UklYbmIydjVKL21aczJwZW1maDk3NzcxMy9PVXZmNG41OCtjWFBYOEErRFJyVVlBME5EUkViVzN0
VnI5ZjRLeXoKem9xbFM1ZkdpQkVqWXRXcVZiRnMyYklZTTJaTTlPclZLMWFzV0JHVEowK09pSTFu
Ti9yU2w3NVUrSmZJM1hiYnJmRGRENnRXcmRyaQpkdGVzV1JNTkRRMVJWVlVWRVJGbm5IRkdkTzNh
TmFaTm0xWVk4OG9ycjBSbFpXV2NldXFwRWJIeHhYQjFFVjhYWGwvLzBYSHd6enhUCkYwT0h0bzYr
ZlRlK0tPL1RwMVg4NFEvMVVWdTdNVTRXTEtpUEZTcytHbi8xMVRWeHdBR2xjZEZGYmVKclgyc2RG
UlhOM2wxRVJLeGYKdjJYWURCNWNIcDA3bDhZREQzejBnWTlubjkwUTQ4ZTNMZXI2aXhlbm1EcDFR
K0h5NnVxSW1UTTN4T1dYNzFUVTlvaUk1NTU3YnB1SApPSldXbHNhTk45NFlkWFYxY2M0NTV6UTZw
Q2dpWXVIQ2hmR0RIL3dnTm16WUVEMTc5b3h4NDhZMWVqRzJaTW1TV0x4NGNlRzQrR0xHClJFVGNm
ZmZkc1dyVnFxaXRyWTBYWDN3eFpzeVlFVGZmZkhQTW1qV3IyVGx2Y3NjZGQ4Uk5OOTBVVTZkT2pj
OSs5ck14ZnZ6NE9PMjAKMDZKOSsvWnh4UlZYeERlLytjMllPblZxbyt1Y2VlYVpzZE5PTzhYWlo1
OGRjK2ZPamJsejU4YWxsMTRhKys2N2IwUnNmQ2RnMC9OeAo0K05aWFhpK3paMDdOeG9hR21MT25E
bFJYMThmMDZkUGo1cWFta2dwUlVwcGkrZm10dFpHVStzcG92bDFVMVZWRmRYVjFaRlNhbkw5CmZW
eHRiVzJqRUtpcXFvcjYveXZqWXRaZVUvTnFhaDU5K3ZTSlAvemhEMUZiV3h2dnZmZGVMRml3SUZh
c1dMSEY5VGQ1OXRsbjQ1aGoKamlsOFRxZXA3ZHY3TjJQemZSazhlUEEyZng5bm5ubG1sSldWeFcy
MzNWYTQ3cng1ODJMNTh1V0Z4dzRBMkV5eG4xYi80eC8vbUVhTQpHSkVpSXUyNjY2N3Baei83V2Zy
Z2d3OGFqYm4xMWx0VG16WnRVa2xKU2VyVXFWT2FNbVZLNGJyNzc3OS9takJoUW5yMDBVZlRCUmRj
CmtPcis3M1JUUC96aEQxTkpTVWs2NTV4ekdwMkZLS1dVWG56eHhYVE1NY2VraUVpalJvMUtDeFlz
U0NtbE5HdldySFRnZ1FlbW4vNzAKcCttSko1NUl3NGNQVDNQbnprMHBwWFRmZmZlbG5YZmVPZTIx
MTE1cDh1VEoyOXlmMGFPclU1OCtINlNmL0tRbS9makgxZWxmLzdVcQpyZG5zNUZKUFAxMlhPblpj
blhyMi9DRDk0QWRWNmZ6elAwd25ucmcyUGZQTXhubC83M3RWS1dKbGlsaVpXclZhbGZiY2MzVzY0
SUtxCnRINzkxdSt2cGlhbGlSUFhwNzMzWHAzYXRGbVY3cjEzZlZxNXNxR3cvYTIzNnRNWHZyQTIz
WEJEVGJyMTF2WHBweit0S2ZyNkw3KzgKSWJWdHV5cjE2dlZCdXZ6eTZuVHV1UittQlFzK09zdFJj
OXRUU3VtaWl5NUtYYnAwU1JzMmJOam1ZelovL3Z4MDNISEhwWjQ5ZTZadgpmL3ZiYWRTb1VlbUVF
MDVJbDE5K2VhcXArV2krbFpXVmFlREFnZW5paXk5T1k4ZU9UWDM3OWszbm5YZGVxcTJ0TFhyTXM4
OCttOHJMCnkxTkVOUHB2NzczM0xzeXhtRG1ubEZKVlZWVWFNMlpNR2o1OGVCbzllblM2Kys2NzB3
MDMzSkMrKzkzdnBqRmp4cVFWSzFac2NaMHAKVTZha1RwMDZwWWhJM2JwMVM4OC8vM3hLS2FXSEhu
b29sWmFXcGdNUFBERE5uajA3elpvMUsvWHUzVHVWbFpXbHh4NTdMSDM0NFllcApYNzkrYVpkZGRr
bG5uMzEyK3MxdmZwUGF0bTJidnY3MXI2ZTc3NzU3aStkbVUydGpXK3NwcGFiWHpSLys4SWQwMUZG
SHBZaEk0OGFOClM3Tm56OTdtZld4dSt2VHBhYmZkZGt0Nzc3MTNtamx6Wm5ydHRkZlNaejd6bWRT
bVRadjA1Sk5QcHBTYVhudk56YXVwZlgzNjZhZFQKeDQ0ZFU4K2VQZE1QZnZDRGRQNzU1NmNUVHp5
eGNEYXh6MzN1YzZsZnYzN3BSei82VWJyNjZxdlR5U2VmbkpZc1dWSzQ3ZWEyYjgvZgpqSS92UzFP
L2ovdnV1eSsxYTljdTllN2RPMzMxcTE5TlE0WU1TUU1HREVqMzNYZmZGbzh6QUh6YWxhUzBZNyta
ckxhMk5oWXRXaFRkCnVuVXJISi9kME5BUXBhV2xzWHIxNmlndkw5L2l1d0dXTDE5ZTlCbVdOa2tw
eFovLy9PY29MUzJOL2ZmZmY3dm51MlJKaWozMktJbXQKSFVwZVd4dFJYeDlSVWJIeGJGU2JIMUh6
NHgvWHhGZSswanBxYWxLc1hSdXhlbldLQng2b2phOS92WFdjZE5MMmY3Um01Y29VSFRvMApQdU5X
TWRhdGkxaTJyQ0c2ZGkyTnpiNG5zT2p0S2FXb3FhbUppaUxleXFtcHFZbTVjK2RHV1ZsWjlPclZh
NHZ2TzFpNWNtWHN2dnZ1ClVWVlZGUXNYTG96OTl0dXY4SG1QbG94cFRrdm12TW1LRlN0aTBhSkZz
ZDkrKzhYdXUrL2U3TzB2VzdZczl0eHp6eGJOSzJManV5S2IKNWxWWFY3Zk53N0dhV3h0YlcwK2JG
THR1bXJ1UGxtcHU3VzFyWHNYc2EzMTlmVlJVVkd6eG1QWHYzeitPUGZiWUdETm1URlJWVlczeApn
ZkhtdGhjejc2MzUrTDQwOWZ1b3I2K1BWYXRXeFI1NzdCRTFOVFcrQndRQXRtR0hCOGcvZ3BLU0xR
OVorVFJMcWNQZmVnclFwRTJCCnNhMXZyRzl1T3dEdzkyT0huUVhySDhrbmZjSDl4aHYxMGIvLzJo
Z3lwRHdPTzZ4VlZGZEhMRjNhRUlNSGw4Zmd3YzEvOEJnbzNxYXoKbFcxK1VvQ1diQWNBL3I1OEt0
OEIyUkUrK0NERjczKy9JWllzU1RGd1lGbDg1ak03N0lSaXdHYnV2dnZ1d29mQmUvYnNHZi84ei8v
YwpvdTBBd044WEFRSUFBR1RqbiswQkFJQnNCQWdBQUpDTkFBRUFBTElSSUFBQVFEWUNCQUFBeUVh
QUFBQUEyUWdRQUFBZ0d3RUNBQUJrCkkwQUFBSUJzQkFnQUFKQ05BQUVBQUxJUklBQUFRRFlDQkFB
QXlFYUFBQUFBMlFnUUFBQWdHd0VDQUFCa0kwQUFBSUJzV2hRZ2E5YXMKaVhmZWVTY2lJdGF1WFJz
MU5UVTdaQklwcFhqcnJiZGkwYUpGaGN1V0xsM2E0ckVwcFdiLzI1NTkrbXZ0TndBQWZOcVVGVFBv
M1hmZgpqY3N1dXl3cUtpcGlsMTEyaWVlZWV5NnFxNnZqOXR0dmp5T1BQREorOWF0ZnhaZ3hZMkwy
N05seHhCRkh4SlZYWGhtREJ3K09pSWg1CjgrYkZWVmRkRlE4KytHQ2NmLzc1TVhyMDZPalNwVXRF
Ukt4ZXZUcSs5NzN2eGZ6NTgrUHd3dytQWFhmZE5kNTQ0NDFZczJaTkxGNjgKT09iTm0xZVlRekZq
cDB5WkVsZGVlV1hNblRzMzl0eHp6emp4eEJNalltTkFUSjA2TlFZUEhoeFRwa3dwYXArS0hRTUFB
QlN2cUFDNQorT0tMbzdhMk5pWk9uQmdSRVhWMWRkRy9mLzlZdkhoeFJFUU1IVG8wbGkxYkZpTkdq
SWlMTHJxb0VCOFJFWldWbFhILy9mZkhDeSs4CkVMZmVlbXZoOGtXTEZzVlJSeDBWQXdjT2pPblRw
MGQ1ZVhsaDJ3MDMzQkRYWEhOTmk4Y09HellzbGl4WkVpTkhqb3g3N3JrblRqNzUKNU1LNHQ5OStP
NjYrK3VxaTk2bllNUUFBUVBHS09nUnIzcng1c1dqUm9xaXJxNHVJaVBMeThyanp6anRqNWNxVmhU
RWRPblJvOUg4MwpWMVpXRnYzNjlXdDAyYm5ubmh0MWRYWHhpMS84b2xGUVJFUmNjc2tsY2ZqaGgy
L1gyRTNiZDk1NTUwYmo5dGxubjdqaGhodGF0RS9GCmpBRUFBSXBYVklBTUh6NDhaczJhRllNR0RT
cDgzdUxRUXcrTjg4NDdyL2c3S3Yzb3J1Yk1tUlBUcGsyTE04NDRJM2JhYWFldGpuL2cKZ1FkYVBM
WXBGMTk4Y2FNNEttYWZkc1IrQXdBQUh5a3FRTDc3M2UvRzhjY2ZIOU9uVDQrRER6NDRIbi84OFU5
MHAzUG16SW1JaVAzMgoyMitiWTlxM2I5L2lzWnQ3NG9rbjRxNjc3b29KRXliRTJXZWZIVE5tekdp
MHZaaDkydEg3RFFBQW4zWkZCVWo3OXUzanlTZWZqTXN2CnZ6eFdyVm9WUTRjT2pWdHV1V1c3Ny9U
OTk5K1BpSWhkZHRsbGg0N2RYS3RXcmFLOHZEekt5c3FpcEtRa1NrcEtHbTB2WnA5MjlINEQKQU1D
blhkR240UzB2TDQreFk4ZkcwMDgvSFowNmRZcVJJMGZHZ3c4K3VGMTN1di8rKzBkRXhIdnZ2YmRE
eDI3dWxGTk9pYlBPT2l2TwpQZmZjdU9PT08rS0lJNDdZWWt3eCs3UWo5eHNBQUQ3dG1nMlF0OTkr
TzlhdVhWdjQrYmpqam90SEhua2tJcUxSQy9GTmgwZ3RYNzU4CnE3ZlRxbFdyd3YvZnUzZnZpSWo0
bi8vNW4yWW4ySkt4VGRuOEErakY3Rk94K3cwQUFCU3YyUUJadW5ScGpCOC92dEZsQXdZTWlPN2QK
dXpmNk1zQStmZnBFcTFhdEduMTN4eWJ2dlBOT284OXc5T2pSSTRZTkd4YS8vZTF2dC9uT3hxWXpU
N1ZrYkZOMjJtbW5lT2VkZCtMZQplKzh0YXArSzNXOEFBS0I0elFaSXo1NDlZOXk0Y1RGLy92ekNa
VXVXTEluRml4Zkg2YWVmWHJpc2JkdTJjZXl4eDhaRER6M1U2RjJRCmhvYUd1UGJhYStQclgvOTZv
OXU5L3Zycm8zMzc5akZzMkxCWXNXSkZvMjF2dmZWV1hIWFZWVkZkWGQzaXNadGlaUDM2OVkzR1ZW
VlYKeFlnUkkrS0FBdzRvYXArSzNXOEFBS0I0SlNtbDFOeWczcjE3eDE1NzdSWDkrdldMVHAwNnhl
VEprK09JSTQ2SS8velAvMnowdlJ4cgoxNjZOczg0NksrYk5teGZISEhOTVZGUlV4THZ2dmhzalI0
Nk1rMDQ2YVl2YlhiSmtTVng0NFlYeDhzc3Z4K0dISHg3NzdydHZyRnExCktnNDU1SkM0NktLTEdw
MjZ0NWl4RHovOGNGeDU1WlV4Yjk2OHFLeXNqTDU5K3hhdU8zZnUzS2lwcVltVksxZEdxMWF0aXRx
bll2Y2IKQUFBb1RsRUJzbkxseXRoOTk5MmpxcW9xRmk1Y0dQdnR0MSswYTlkdW0rUHI2dXBpL3Z6
NXNkZGVlOFh1dSsvZTdDVHE2K3Rqd1lJRgowYTVkdTlocnI3MTIyTmltRkxOUExkMXZBQUNnYVVV
RkNBQUF3STVROUdsNEFRQUFQaWtCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCCkFBQ3lFU0FBQUVB
MkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FB
QUVBMkFnUUEKQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5
RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQQpJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFC
QUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBCmJBUUlBQUNR
alFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlB
QUNRalFBQkFBQ3kKRVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0Fi
QVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oRwpnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFB
QUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCCkFnQUFa
Q05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFn
QUFaQ05BQUFDQWJBUUkKQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlC
c0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQQpBRUEyQWdRQUFNaEdnQUFBQU5rSUVB
QUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBCkFO
a0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FB
QUFOa0lFQUFBSUJzQkFnQUEKWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1o
R2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUQpqUUFCQUFDeUVTQUFBRUEyQWdR
QUFNaEdnQUFBQU5rSUVDcjlHUVFBQUFsS1NVUkJWQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNR
CmpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJ
QUFDUWpRQUJBQUN5RVNBQUFFQTIKQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNB
YkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSQpFQUFBSUJzQkFnQUFaQ05B
QUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFa
Q05BCkFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JB
Z0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUIKQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJ
QnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQQpBTWhHZ0FBQUFOa0lF
QUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFO
a0lFQUFBCklCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dB
QUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0EKYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFN
aEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeQpFU0FBQUVBMkFn
UUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVB
MkFnUUFBTWhHCmdBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNB
QUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0IKQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFD
eUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSQpBQUNRalFB
QkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNR
alFBQkFBQ3lFU0FBCkFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJ
QUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUEKQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNB
YkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQQpaQ05B
QUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFa
Q05BQUFDQWJBUUlBQUNRCmpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JB
Z0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTIKQWdRQUFNaEdnQUFBQU5rSUVBQUFJ
QnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSQpF
QUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFO
a0lFQUFBSUJzQkFnQUFaQ05BCkFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dB
QUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUIKQUFDeUVTQUFBRUEyQWdRQUFN
aEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdR
QQpBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVB
MkFnUUFBTWhHZ0FBQUFOa0lFQUFBCklCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNB
QUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0EKYkFRSUFBQ1FqUUFCQUFD
eUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFC
QUFDeQpFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNR
alFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHCmdBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJ
QUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0IKQWdBQVpDTkFBQUNB
YkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFB
QUNBYkFRSQpBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFa
Q05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBCkFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JB
Z0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUEKQU5rSUVBQUFJ
QnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVB
QUFJQnNCQWdBQQpaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFO
a0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRCmpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dB
QUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTIKQWdRQUFN
aEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdR
QUFNaEdnQUFBQU5rSQpFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVB
MkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BCkFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNB
QUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUIKQUFD
eUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFC
QUFDeUVTQUFBRUEyQWdRQQpBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFaQ05BQUFDQWJBUUlBQUNR
alFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBCklCc0JBZ0FBWkNOQUFBQ0FiQVFJ
QUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlCc0JBZ0FBWkNOQUFBQ0EK
YkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVBQUFJQnNCQWdBQVpDTkFB
QUNBYkFRSUFBQ1FqUUFCQUFDeQpFU0FBQUVBMkFnUUFBTWhHZ0FBQUFOa0lFQUFBSUJzQkFnQUFa
Q05BQUFDQWJBUUlBQUNRalFBQkFBQ3lFU0FBQUVBMkFnUUFBTWhHCmdBQUFBTmtJRUFBQUlCc0JB
Z0FBWkNOQUFBQ0FiQVFJQUFDUWpRQUJBQUN5RVNBQUFFQTJBZ1FBQU1oR2dBQUFBTmtJRUFBQUlC
c0IKQWdBQVpDTkFBQUNBYkFRSUFBQ1FqUUFCQUFDeUVTQUFBRUEyQWdRQUFNaEdnQUFBQU5rSUVB
QUFJQnNCQWdBQVpDTkFBQUNBYkFRSQpBQUNRalFBQkFBQ3lFU0FBQUVBMi94OEZYcDRGV3V1bkpn
QUFBQUJKUlU1RXJrSmdnZz09CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3Mt
Y2hhcnNldC1vdmVycmlkZS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTog
ZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNl
dC1vdmVycmlkZS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAg
ICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRv
SndBQUFnQUVsRVFWUjRuT3pkZVhnVVZiNy84VTlDUXRqQwpZZ2o3am1DQ0lDQ0xBc08rdUV4UUJr
VlFSNjZBQ2lQS0NLSS9YQkRoU2tZVVFmUU9pd3VLaUErTHlvaktvR3dpeUNLWTZPQWxETXJpClpV
MEloQ1ZrVDc2L1AzTFRKcER1cms1Q3FkZjM2M2w0dEx0T256cm5WSjNxK3FTcnE0UE16QVFBQUFB
QUxnaitwUnNBQUFBQTRQZUQKQUFJQUFBREFOUVFRQUFBQUFLNGhnQUFBQUFCd0RRRUVBQUFBZ0dz
SUlBQUFBQUJjUXdBQkFBQUE0Qm9DQ0FBQUFBRFhFRUFBQUFBQQp1T1kzRTBDU2twSzBZY01HblQ1
OXVrenFTMDJWamg3OVpYNEVQajNkKzdLVUZGTk9Uc2xmWDloUFArV1Zhcmt2eDQ4ZjEvSGp4ejJQ
Cmk5c3U1ODZkMDA4Ly9TUkpPbi8rdkRJeU1rcFVKams1dWN5MnU1bnAwS0ZEK3VHSEg1VGpiNkM5
U0UxTjFlSERoOHVrUFpmTHFWT24KOU1NUFAvelN6ZmpkeXMzTjFkNjllMy9wWmdBQThLdmtONERF
eE1Tb1JvMGF1dkhHRzNYSEhYZW9YTGx5YXRxMHFXNi8vWGI5NFE5LwpVTGx5NWZUT08rOWMxa2Er
OXRwcldycDBxVFp0MnFTcnI3NWFtWm1acGFwdndZSXNSVVNjMFlvVldXWFVRbWRPbkRBOThraTZZ
bUpTCkwxbjJ3dzk1dXVPT0Mzci8vV3c5L1hTNnBreTU5RVRjMStzbGFjYU1UQVVGcFhqKy9iLy9s
eDdRY245U1VsSTBZc1FJOWVqUlE4OC8KLzd6bXpKbWpmdjM2cVUrZlBobzhlTENuM05HalIzWFBQ
ZmRvNHNTSm1qTm5qanAxNnFRdVhicm8yMisvRGFqTXJsMjcxTDkvZjlXcApVMGNSRVJFYU9uUm9z
UUhGaWJpNE9BMGNPRkFqUjQ3VTRzV0w5Y2tubjJqY3VISDZ5MS8rb29NSER6cXU1NzMzM2xQdDJy
VzFlUEhpCkVyWERMYzg4ODR3R0RScjBTemZqZDJubnpwMXExNjZkSG5qZ2dWKzZLUUFBL0NxRitD
dVFuWjJ0dUxnNE5XM2FWSkpVc1dKRjllclYKUzIrOTlaWWthZGFzV1NVK0taU2t6TXhNYmQyNlZi
MTc5eTUyK1lVTEZ6Umh3Z1NkTzNkT3djSEJ1dUdHR3hRV0ZsYmk5VW5TNk5IbApOV1ZLWUNmZnBY
WCt2TFJ2WDY2Kyt5NVhtWmwyeWJLQkExTTFZMFpGM1hwcnFDU3BXN2Z6cWw4L1dBODhVTjd2NjZY
OFQwVjI3c3pSCit2WGhrcVNnSU9ucXE4czVYdTVQUWtLQyt2ZnZyNzU5KzJyZHVuVXFYejYvWFdh
bUo1OThVaDkrK0tHbjdQang0NVdWbGVVNVNjL08KemxhblRwMTA1TWdSeDJYT256K3Z5Wk1uNitH
SEg5Yml4WXYxNnF1dktqWTJWcTFhdGRLVUtWTWN0MXVTSG4vOGNTVWtKT2lWVjE3eAo3TWNGVHA4
K3JjY2ZmMXdUSjA1VVZGU1UzN3J1dXVzdVBmZmNjd0d0LzNMd04yK21UWnRXWnA4YUJjSmZ1MzVM
U3RxWFRwMDZxVmV2Clh0cXpaODlsYWhrQUFMOXRmajhCbVRCaHdpVW5iWVdOSGoxYVYxOTl0ZU1W
bXYxODhweWRuYTE3N3JsSG16ZHY5bHArOSs3ZHlzcksKVW5Cd2ZsTzdkdTNxZUYyK2hJYm1uNFNY
bGptOGlpczhYT3JSSTBSUlVjR1hySGZKa2l3bEo1c0dEZ3oxUERkaVJKaW1UVXRYYnE3LwoxMHZT
NjY5bnFtTEZJS1dubTY2N0xrUzllNGVvVnEwZ3g4dDl5YzNOMWZEaHd4VWNIS3dGQ3haNHdvY2tC
UVVGYWZyMDZXclpzcVhuCnViMTc5K3J3NGNQS3pzNldKSVdHaHVxdHQ5NHFja0xzcjh5MmJkdjA1
cHR2NnBaYmJsR2RPblgwM0hQUHFVV0xGdHE2ZGF1ak5oZVkKUFh1MjR1UGp0WExsU2pWdDJsVHg4
ZkdLalkzVnlwVXJ0WFhyVm4zenpUZWFOMitlWG5ycEpjZDFob2FHS3NqQnpoUG9KVjdtY0dkeQpN
bThpSWlMVW9rV0xFcStqSkp5MHF5emE0ZSsxWmRISFFQcFNXRjVlL21XTklTRWhubU1XQUFBb3l1
OG5JRGZjY0lQUDVaVXJWMWEzCmJ0MGtTWW1KaVpveFk0YSsrZVlicGFhbTZ1OS8vN3V1di81NlNk
S3laY3QwK3ZScG5UdDNUaDk5OUpHMmJ0MnFsMTkrV2F0V3JkS1AKUC82by9mdjNhKzdjdWFwY3Vi
S243amZlZUVQdnYvKytjbkp5Tkhic1dGV3NXRkV6Wjg1VWFtcXFKazJhcExDd01PM2Z2MStOR2pY
UwpqQmt6VkxGaVJjWEZ4V25CZ2dXS2pJeFV4WW9WOWZMTEwrdlRUejlWNTg2ZEwybDdXcHBwNHNS
MExWNmNwUVlOZ3ZYdXU1VVZIUjJzClpjdXlOV0ZDbWlaTnFxQ0hIdzdUMHFYWm1qSWxYYjE3aDJq
Ky9Fci8rMXJwOGNmVFZhdFdrTFpzeWRFVlZ3U3BmZnNRZGUxYVR0MjcKK3gzV0l2NzV6MnkxYUJH
c3d1Y3JMVm9FNitqUlBNWEg1NnBqUi8rZlZDeGRtcVZ0MjNMMDdydVphdFFvV1BQbVZkYk5ONGM0
WHY2ZgovL21mV3JWcWxYYnUzSGxKM1o5Ly9ybDI3ZHFsS1ZPbXFFS0ZDcGNzRHc0T0xuSVozckJo
dy9UVVUwK3BmLy8rV3Jac21XclhycTMyCjdkdXJmZnYyanNzTUdEQ2d5RHFDZ29MVXFsVXIxYWxU
eDFHYkplbklrU09hTm0yYURodzRvSkNRRUwzKyt1dDYvUEhIdFhidFdpVW0KSm1yZ3dJRjY5TkZI
MWI5L2Y5V3FWVXRuejU1VnRXclZKRW5wNmVsNjdybm5WTFZxVmNYRnhhbFRwMDZhT0hHaXArNjh2
RHc5ODh3egpldnZ0dDFXMWFsVjkvUEhIbnFDK2Z2MTY3ZHExUzBGQlFmcm9vNCswWU1FQ3RXN2Qy
dXUrZWZEZ3dVdm1odVI5UHZtYk44ZVBIOWZpCnhZdTFjdVZLYmR1MlRWTHg4KzlpR3pkdTFJSUZD
OVNnUVFORlIwY3JOalpXb2FHaCt1Yy8vK25wbTYrNTU2OWQzdHF4Yk5reVRaZ3cKUVpNbVRkTERE
eitzcFV1WGFzcVVLZXJkdTdmbXo1K3ZkZXZXNmMwMzM5U1ZWMTZwN094c3ZmMzIyeXBmdnJ3V0xs
eW9mdjM2K1YzdQpyOTNGYlpkaHc0WmQwcGZVMUZTdng3ZTB0RFJObkRoUmRlclUwYkZqeC9UZi8v
M2Z4YzRWQUFBZ3lRSlVvVUlGdS9mZWV5OTVQaWNuCngyNjY2U1k3ZCs2YzVlYm0ydWpSb3kweU10
SlNVbElzT3p2Yk9uYnM2Q2s3ZnZ4NHk4M05OVE96SmsyYVdHeHNyTmYxTFYrKzNJS0QKZzRzODE2
TkhEM3ZublhmTXpDd3JLOHM2ZCs1c01URXhabWEyYmRzMnExR2poclZyMTg3ZWYvOTlHejE2dE8z
YnQrK1NlaHMwT0dOWApYMzNXVnEzS3NnMGJzcTFKazdQV3JObFp5ODdPWDE2Ly9obWJQajNkVTM3
QWdQTTJaRWlxNS9HcnIyYllvNCttbVpuWjd0MjVKcDIyCkdUTXk3TkNoWEovak4yYk1CZXZhOVZ5
UjV6cDFPbWMzM0hDK3lIUGZmSk5qMG1sYnVUTEw3K3NMN04rZmF5Ky9uR0VWSzZaWStmSXAKdG5k
dnJ1UGxmLy83MyszV1cyOHR0dDRYWDN6UkpObWlSWXQ4OXEzQTJiTm5yVmV2WGliSmF0YXNhYXRX
clNwUm1jTHk4dktzY2VQRwo5czAzM3pocXM1blpCeDk4WUQxNzlqUXpzeU5IamxpbFNwVnM2dFNw
Wm1iMjlkZGZteVQ3N3J2dnpNd3NOamJXRWhNVFBhKzk4Y1liCmJkdTJiV1ptdG12WExwUGtXZmMx
MTF4amJkdTJ0WFhyMXRuaHc0Y3RLaXJLN3J2dlBqTXp5OHpNdFByMTY5dUdEUnZNek96Wlo1KzEK
MjI2N3pjeUszemYzN05sVDdOendOWi9NZk0rYnBLUWtHek5tak5Xc1dkUE16T2Y4Syt6RWlSUFdz
bVZMaTRxS3NvOC8vdGdPSFRwawpWMTExbGQxLy8vMmVNcjdtbnI5MitXcEgvZnIxYmZyMDZaNWxB
d1lNc0NGRGhwaVoyY0dEQjYxV3JWcld0R2xUMjd4NXMyM2F0TW5hCnRtMXJEUnMyZExUY1g3dTlI
VE1LOThYZjl2ampILzlvUzVjdU5UT3ozTnhjcTFldm52WHYzNy9ZY1FBQTRQZXV6SzRSV0w1OHVj
eE0KbXpkdjFwbzFhMVMzYmwyZFBIbFNYMzc1cGM2Y09hTnZ2LzFXcTFldmxpVGRmLy85UlM2VGNI
STVTNEUxYTlab3k1WXRHalpzbUtUOAp5MkZHamh5cFR6NzVSTnUyYmRQMTExK3ZxS2dvUlVkSDY3
YmJidFA4K2ZPTHZSUkZrb1lQRDlQQWdhSHEzVHRFeno5ZlVRY081R3JkCnV2ekxaaXBXRENweXFW
T2xTa1VmTDE2Y3BZaUkvQ2RhdHc1V1pHVCtVRFp1SFBpUXBxZWJRa09MamtINTh2bVAvL2NLSlVl
YU5RdlcKWC84YXBpMWJ3aFVlSHFRWFhzaHd2UHpCQngvVVAvN3hqMkxyUFhyMHFDU3BaczJhanRw
UnRXcFZmZjc1NTNyaWlTZVVrcEtpUVlNRwphZTdjdVFHWEtleUREejdRelRmZnJHdXZ2ZFpSbXlY
cHUrKyswelhYWENOSldydDJyZExTMG5UVFRUZEprcjc2Nml2VnFWUEhzendwCktVbTFhdFdTSkcz
WXNFSHg4Zkc2N3JyckpFa2RPblRRL1BuejFiaHhZMC9kTVRFeDZ0dTNyeG8wYUtEZXZYdDc3bmdV
R2hxcXdZTUgKcTIzYnRwTHlMNFZLU0VpUXBHTDN6Y2pJeUdMbmhxLzVWTURidkltTWpGU2JObTA4
Yzh6Zi9DdFF1M1p0TlcvZVhHM2F0RkZNVEl3YQpOMjZzUG4zNjZOLy8vcmNrLzNQUFg3dDh0YU5p
eFlwRlhsZXBVaVhQNHlaTm1xaGh3NGE2NVpaYjlJYy8vRUU5ZXZUUTBxVkxkZmp3CllTVWtKUGhk
WHBwalJrRWJmRzJQN2R1M2EvWHExWjVQaTRPRGczWHp6VGNYT3dZQUFLQU1iOE83YmRzMlJVUkVx
SHo1OGlwZnZyeTYKZGV1bXRXdlhxa09IRHFwWnM2WUdEeDZzZ1FNSGF1ellzV3JTcEluS2xmdjVz
cUpBQXNqWFgzK3R5TWhJaFliKy9IMkpnc3VyNHVQagpKZVdmekVSR1J2cXRxMXExbjlkNy9mWDU3
Zm5oaDF4SDdRZ1BEOUsyYlQrWHJWTW5TTmRkNS94TDNZWFZxUk9zMDZlTDNoTDN3b1g4CkU3TVdM
UUxmUk5kZVcwNjMzUmFxNzc0cnZpLytsbCtzU1pNbWtuNE9JazZFaG9ZcU5qWlc2OWV2VjJSa3BN
YU9IYXNWSzFZRVhFYksKUDNGZHZueTVacytlN1hqOWtsUy9mbjBsSmlaS2tyS3lzbFM5ZW5WMTZO
QkJVdjRKWmZmdTNTWGxoNC9DKzh1WFgzNnBybDI3RnRrdgpSNDhlcllpSUNNL2p3c3RxMUtpaDFO
UlV6L092dlBLS3pwdzVveGt6Wm1qVHBrMDZmLzY4cCt6Ris2YTN1ZUZyUGhYWGhvc0ZCUVY1Cmx2
dWJmOTVlSjBuaDRlR2VtMHc0bVh1KzJoVklPNHByVitHeVVWRlJxbEdqaHRhdFcrZDNlV21PR1FW
OThiVTl2dmppQzBWRlJhbDYKOWVxZTExV3BVaVdnNHhvQUFMOG5nWDFad1lmazVHU0ZoSVI0cnJt
KzJIdnZ2YWQ2OWVwcHpwdzVpb3VMMDJlZmZhYXFWYXNHdko2MAp0RFFsSnljck5UVlZWYXBVa1NT
MWFkTkdJU0VodW5EaFFvbmIzN2h4c01MRGd4UWU3dXlrWWZ6NE1OMTdiNXAyNzg1VldGaVFLbFVL
ClVzK2VKUnZPQmcyQ3RXVkwwUzhzcDZZV0JKQ1NoWnJ1M1VPMGQ2LzMzL253dDd5d1ZxMWFTWktq
dS9vY09uUklFUkVSQ2cvUHY5dFcKejU0OTllR0hINnBidDI1YXNXS0ZoZ3daNHFoTVlVODk5WlJt
elpvVjhOM1BPblRvb0prelowcVNCZzBhcEhIanh1bkFnUVA2NnF1dgpGQjRlcnJ5OFBCMDdka3l4
c2JHYVBuMjY1M1dKaVluNi92dnZBMXBYWVFzV0xOQ1dMVnUwY09GQ3ZmSEdHL3I2NjY5OWxpOXVi
dmliClQ0RXFpL2xYRm5PdnJJNERVdjRuRFNFaDN1ZGN3Zkt5YUxldjdYSGt5QkVsSnlkZjhqd0JC
QUNBNHBYWkp5Qk5temJWMnJWcmk5eVMKMTh6MHhSZGY2TVNKRTBwS1N0THMyYk8xWnMwYTdkNjlX
MHVYTHZXVUMrU05PaW9xU3JtNXVVVytlSnlVbEtTY25CeEZSMGVYdVAzSApqcG5PbnplMWIvL3pD
WCtlai9Qem0yOE8xZjMzaDJuTm1oenQycFdqalJ2RFM3enVRWU5DZGVKRW51ZU9WNUwwNzMvbnFu
WHJjcnJvCk83eU9mZnR0cmpwMzloNWUvQzB2ckcvZnZtcmJ0cTNlZXVzdG5UbHpwdGd5QlhkOFNr
eE0xSnc1YzRvczY5cTFxNW8wYWVMNThUNG4KWlFyTW5EbFRvMGFOVW9NR0RUelBGWHlxNFUrSERo
MFVIUjJ0dDk5K1c3VnExZExXclZ2MTZxdXZxbGF0V2xxeFlvWGF0Mit2Tjk1NApRMU9tVFBGOCtW
eVNHamR1ckI5KytFSDc5Ky8zUEdkbVJmN0s3ODJlUFh2MDRJTVBhdWJNbVVYKzR1Nk50N25oYXo0
VmNEcHYvTTAvCnA1ek9QVy90OHRlT1BGOFQ3aUw3OXUzVHFWT25pbHlTNTIxNWFZNFpCWDN4dFQz
cTFhdW5reWRQYXQrK2ZZN2JEd0RBNzFsQUFTUXYKTDA5WldWbkYvcjdBM1hmZnJjVEVSSTBlUFZv
cEtTbEtTa3JTdEduVDFLSkZDNTA2ZFVyTGxpMlRsSDkzbzF0dnZkWHpsOGpxMWF0NwpmdnNoSlNY
bGtuclBuVHVudkx3OHBhV2xTWktHREJtaUJnMGFhTzNhdFo0eXUzYnRVbFJVbEc2ODhVWkorU2ZE
NlE1K0xqdzM5K2ZyCjREZHN5TmFnUWVYVnRtMytTWG1iTnVXMFkwZXVzckx5dzhuKy9iazZkZXJu
OGxPblpxaGx5MkNOR3hlbXUrNHFyNG9WL2E1T2twU1oKZVdtd2lZa0pWYTFhd1ZxKy9PY3ZmR3pj
bUtNNWN5bzVldjJSSTZZMWEzSTh6NmVuUzl1MjVlaUpKeW80V2k1Sm16ZHY5bnFKVTNCdwpzRjU1
NVJWbFoyZHI1TWlSUlM0cGtxU0RCdy9xc2NjZVUwNU9qcG8xYTZiWnMyY1hPUms3Y2VLRWpodzU0
cmt1M2trWlNWcTBhSkZTClVsS1VsWldsN2R1M2ErdldyZnI3My8rdXVMZzR2MjB1c0hEaFFyMzY2
cXRhczJhTnJyMzJXczJaTTBjMzNYU1RxbGF0cXFlZWVrckQKaHcvWG1qVnJpcnhtNk5DaHFsQ2hn
a2FNR0tHRWhBUWxKQ1RvOGNjZlY4T0dEU1hsZnhKUXNEL21qMmU2WjM5TFNFaFFYbDZlOXV6Wgpv
OXpjWEczYXRFa1pHUmt5TTVuWkpmdW10N25oYXo1Si91ZE5XbHFhMHRQVFpXWSs1OS9Gc3JLeWln
U0J0TFEwNWY1dk1uWXk5M3kxCnkxYzcyclJwb3gwN2RpZ3JLMHZIamgzVC92MzdkZXJVcVV0ZVgy
RGp4bzNxM3IyNzUzczZ2cGFYOUpoUnVDOHhNVEZldDhmUW9VTVYKRWhLaStmUG5lMTY3ZCs5ZUpT
Y25lOFlPQUFBVTR2VGI2dDkvLzcyTkhqM2FKRm0xYXRYc3BaZGVzck5uenhZcE0yL2VQQXNMQzdP
ZwpvQ0NMakl5MGxTdFhlbDdidkhselc3QmdnWDMwMFVmMjRJTVBXdmIvM203cXlTZWZ0S0NnSUJz
NWNtU1J1eENabVczZnZ0MjZkKzl1Cmtteml4SW0yZi85K016T0xpNHV6VnExYTJZc3Z2bWlyVjYr
MlljT0dXVUpDZ3BtWkxWbXl4Q3BYcm14MTY5YTFaY3VXZWUzUGxDbnAKMXFiTldYdisrUXo3Mjkv
UzdhOS9UYk56aFc0dXRYNTl0a1ZFbkxGbXpjN2FZNCtsMlpneEY2eHYzL08yWVVOK3V4OTVKTTJr
MHlhZAp0bkxsVXF4MjdUUDI0SU5wbHBsWi9Qb3lNc3dXTDg2MGV2WE9XRmhZaXIzN2JxYWRQcDNu
V1g3Z1FLNzk4WS9uYmRhc0RKczNMOU5lCmZESEQ4ZXQzN3N5eFNwVlNyRVdMcy9iRUUrazJhdFFG
MjcvLzU3c2MrVnR1WmpadTNEaXJVNmVPNWVUa2VCMnpmZnYyV2MrZVBhMVoKczJaMjMzMzMyY1NK
RTYxUG56NzJ4Qk5QV0ViR3orMk5pb3F5M3IxNzIvang0eTAyTnRiYXRtMXJEenp3Z0dWbFpUa3Vz
M0hqUmdzTgpEVFZKUmY3VnExZlAwMFluYlRZelMwdExzMm5UcHRtd1ljTnN5cFFwdG1qUklwczFh
NVk5OU5CRE5tM2FORHQxNnRRbHIxbTVjcVZGClJrYWFKR3ZjdUxGdDJiTEZ6TXplZi85OUN3NE90
bGF0V2xsOGZMekZ4Y1ZaZEhTMGhZU0UyS3BWcSt6Q2hRdldybDA3cTFLbGlvMFkKTWNJKy9mUlRx
MVNwa3YzNXozKzJSWXNXWGJKditwb2IzdWFUbWU5NXMyUEhEdXZTcFl0SnN0bXpaMXQ4Zkx6WGRS
UzJhZE1tcTE2OQp1dFdyVjgrMmJkdG0zMzc3clYxNTVaVVdGaFptbjMvK3VabjVubnYrMnVXcnIr
dlhyN2VJaUFocjFxeVpQZmJZWXpabXpCanIyN2V2CjUyNWlIVHQydEhidDJ0bmt5Wk50NnRTcE5t
REFBRHR4NG9TbmJuL0xTM0xNdUxndnZyYkhraVZMTER3ODNLS2pvKzJPTys2d2dRTUgKV3RldVhX
M0praVdYakRNQUFMOTNRV1psKzh0a1dWbFpPbno0c0JvM2J1eTVQanN2TDAvQndjRTZjK2FNUWtO
REwvbHRnT1RrWk1kMwpXQ3BnWnZyeHh4OFZIQnlzNXMyYmw3aTlKMDZZYXRZTVVuR1hrbWRsU2Jt
NVVzV0srWGVqS254RnpkLytscUhiYnkrdmpBelQrZlBTCm1UT201Y3V6OU9jL2wxZS9maVgvYXMz
cDA2WWFOWXJlY2N1SjFGUXBLU2xQRFJvRXE5RHZCRHBlYm1iS3lNaFFSUWNmNVdSa1pDZ2gKSVVF
aElTRnEwYUxGSmI5M2NQcjBhVjF4eFJWS1MwdlR3WU1IMWFoUkk4LzNQUUlwNDA4Z2JTNXc2dFFw
SFQ1OFdJMGFOZElWVjF6aAp0LzZrcENUVnJsMDdvSFpKK1orS0ZMUXJPenZiNitWWS91WkdjZk9w
Z05ONTQyOGRnZkkzOTd5MXkwbGZjM056VmJGaXhVdkdyRk9uClR1clJvNGVtVFp1bXRMUzBTNzR3
N20rNWszWVg1K0srK05vZXVibTVTa2xKVWMyYU5aV1JrY0h2Z0FBQTRFV1pCNURmZ3FDZ1N5OVoK
K1QwenEvRkxOd0h3cVNCZ2VQdkZlbi9MQVFEQXIwZVozUVhydDZTMEo5eTdkK2VxVTZmekdqZ3dW
QjA2bEZONnVwU1ltS2VZbUZERgp4UGovNGpFQTV3cnVWbGI0cGdDQkxBY0FBTDh1djh0UFFNckMy
Yk9tTDcvTTBZa1RwdDY5UTNUbGxXVjJRekVBaFN4YXRNanpaZkJtCnpacnB6anZ2REdnNUFBRDRk
U0dBQUFBQUFIQU5mN1lIQUFBQTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQUFnQUFBTUExQkJBQUFB
QUEKcmlHQUFBQUFBSEFOQVFRQUFBQ0Fhd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlBQUFBQU5jUVFB
QUFBQUM0aGdBQ0FBQUF3RFVFRUFBQQpBQUN1SVlBQUFBQUFjQTBCQkFBQUFJQnJDQ0FBQUFBQVhF
TUFBUUFBQU9DYUVnV1E0OGVQNi9qeDQ1N0hwMCtmdnFUTXVYUG45Tk5QClAwbVN6cDgvcjR5TWpC
S1Z1Vmh5Y25LeDYvTWxQVDA5b1BLL3ROVFVWQjArZk5pMTlabVpEaDA2cEI5KytFRTVPVGtscXNQ
dE5wZkUKcjYyTi90cHo2dFFwL2ZEREQyVlczeThoMEQ1Y3JqcDgrYldOVzJabXByWnUzZXA1SEdq
LzA5UFRkZWpRb1RKcHk2OXRiSnhLUzB2VApxVk9uSk9tUzl2dGFWaFpTVTFOMTlPalJNcTgzRUdV
MVo1S1NrclJodzRhQTMzTi9MY3BxTGx6dVk5RC9CWXlSZjdtNXVkcTdkKy92ClpyMytPQTRnS1Nr
cEdqRmloSHIwNktIbm4zOWVjK2JNVWI5Ky9kU25UeDhOSGp6WVUrN28wYU82NTU1N05ISGlSTTJa
TTBlZE9uVlMKbHk1ZDlPMjMzd1pVNW1LN2R1MVMvLzc5VmFkT0hVVkVSR2pvMEtGK0E4dUpFeWYw
eUNPUEtDWW14bWszZjNIdnZmZWVhdGV1cmNXTApGMS8yZGNYRnhXbmd3SUVhT1hLa0ZpOWVyRTgr
K1VUanhvM1RYLzd5RngwOGVOQnhQVzYydWFSK2JXMTAwcDVubm5sR2d3WU5LclA2CmZnbUI5T0Z5
MXVITnIyM2NkdXpZb1k0ZE94WTVwZ2JTLzJYTGxxbGV2WHFhTld0V3FkdnlheHViUU15YU5VdWpS
NC9XM3IxNzFhUkoKRTJWblp6dGFWbG9MRml4UVJFU0VWcXhZVVdaMUZyWjgrWEpGUjBjcktDaElm
ZnIwMGYzMzM2Lzc3cnRQZDk5OXQ2NjY2aXJkZE5OTgprc3BtenJ6MjJtdGF1blNwTm0zYXBLdXZ2
bHFabVpsbDBRWFhsT1ZjdUp6SG9QOHJHQ1BmZHU3Y3FYYnQydW1CQng3NFhhelhFWE5nCno1NDlW
cjkrZlJzK2ZMaGxabVo2bnMvTHk3TkpreVpaeTVZdFBjOE5HVExFYnIzMVZzL2pyS3dzYTl1MnJh
MVlzU0tnTW9XZE8zZk8KYnJ6eFJ2dm9vNC9zK1BIajl1U1RUNW9rZS9iWlo3MjIrZHk1YzdacDB5
YnIxYXVYZGVuU3hVazNmekVaR1JtMlljTUd6K1BvNkdpYgpQbjE2bWRUbHpXT1BQV1l4TVRGMjRN
Q0JTNWFkT25YS1JvMGFaUWtKQ1k3WFc1bzJseFYvZmY4MXRMRXdmKzFKVGs2MmZmdjJsVmw5CnY0
UkErK0NrRHFmN3VEZGxPZDh1aDVreloxcnQyclU5andNZHcyN2R1dG5ERHo5Y0ptMzVOWXhOU2Ji
M0s2KzhZdmZlZTY4ZFBYclUKS2xldTdIaFpXYWhkdTdiTm5qMjd4Sy8zMTkvWTJGaVRaTnUyYlN2
eS9PblRwejN2cTZXZGQ2bXBxVmE1Y21YTHpjMDFNN092dnZxcQp4SFg5a3NwcUxwVEZjZXovdXJJ
K1R2OWY5TkJERDFtZlBuMStOK3YxeCs4bklMbTV1Um8rZkxpQ2c0TzFZTUVDbFM5ZjNyTXNLQ2hJ
CjA2ZFBWOHVXTFQzUDdkMjdWNGNQSC9iOFZTazBORlJ2dmZWV2tZOXduWlFwYk51MmJYcnp6VGQx
eXkyM3FFNmRPbnJ1dWVmVW9rV0wKSXBjcFhDdzhQRnc5ZXZSUVZGU1Vnb0tDL0hYVHc4eUtmYjZr
bHliNXFsT1Nzck96ZGM4OTkyano1czJlNTBKRFF4MjErZUkyRlZkWApjV2JQbnEzNCtIaXRYTGxT
VFpzMlZYeDh2R0pqWTdWeTVVcHQzYnBWMzN6emplYk5tNmVYWG5ySmJ4dEsyMlovZkkxZFlVNzZY
aFp0CmROb2VKLzMwMTU2SWlBaTFhTkhDY1J1YzlxOHNPQjBIYjMwSVJPRTZuTzdqM3BUbGZDdEx1
M2J0MHZMbHl5Vko1Y3VYTDlLZVFNY3cKTEN5c3pQYUQzOEs4TGs2elpzM1V1SEZqMWExYlYxZGRk
WldqWlRObXpORC8vTS8vQkxTZTRwUm1IanJwYi9YcTFTWHBrblZVcmx4WgpDeFlza0ZUNmViZDc5
MjVsWldVcE9Eai9GS0ZyMTY0bHJ1dVg1SFF1K05zZnkrSTRKbDNlWTBoeC9QWEw2VHgwOHRxeVBF
NlgxT1VjCjM5TFVuWmVYSjBrS0NRbnh6Q2xmU3JOZFNyTmV0L2x0MGVlZmY2NWR1M1pwNU1pUnFs
Q2h3cVVWQkFmcm5YZmU4VHdlTm15WTR1TGkKMUw5L2Z5VW1Ka3FTMnJkdlgrVGpIeWRsQ2hzd1lJ
RHExYXZuZVJ3VUZLUldyVnFwYWRPbURydnAzN0pseXpSdjNqeTk4TUlMUlE2Mgo2OWV2MTR3Wk16
UnIxaXgxNjlaTjMzLy92YVQ4eXhPdXZ2cHEvZkdQZi9SY1c3ZDc5MjUxNmRKRkd6ZHU5RmxuWVMr
Ly9MSldyVnFsCmYvempIL3FQLy9nUFhiaHdRVkwranZQTU04K29VYU5HYXQyNmRaRkxvcnkxeVZ0
ZGhSMDVja1RUcGszVDh1WExGUklTb3RkZmYxMTkKK3ZUUmdBRURWTDU4ZVEwY09GQTdkKzVVYUdp
b2F0V3FwYk5uejNwZW01NmVycWVlZWtvelpzelEwS0ZETlhQbXpDSjFsNlROY1hGeApHajE2dEo1
KyttbE5uejVka1pHUit2cnJyNzJPWFdKaW9pWk1tS0NlUFh1cVE0Y08ycjU5dStPK2w3U05UcmVs
dnpvQ2FjL3g0OGYxCndnc3ZxRXVYTHA2eWFXbHBldWloaC9TZi8vbWZHakJnZ0lZTkc2WVpNMllV
T2NqNzZwKzNzZk8yRFFwYnQyNmQ3cnp6VGsyZVBGbVQKSmsxUzNicDExYWhSSTYxYnQ4NXJIYXRY
cjc2a0Q2bXBxWHJvb1lmMDZLT1BhdENnUVJvM2Jwem5PMXBPNnJoNE95OWN1TkR2UEN5cwpMT2Zi
eG8wYk5XellNRTJjT0ZGdnZ2bW1tamR2cnFpb3FJQXVYOXk5ZTdmKzlLYy82YmJiYmxPTkdqVXVX
WDd4ZmhEb091UGo0OVdwClV5YzkrdWlqWGk5eC9iOHdyeTlXRURLQ2dvTFVzMmRQUjh2TVROZGVl
NjFHalJwVjZtdlowOUxTTkhIaVJOV3VYVnNkT25SUVFrS0MKcFB6alNQMzY5ZlhxcTY5S2twWXVY
YXFycnJwS1k4YU1LVlYvelV5VEprMVM3ZHExTDlsbnZHMExiMlAreGh0djZObG5uMVZPVG83Rwpq
aDJyaVJNblN2STlkNy81NWhzTkdEQkFWMTk5dGI3NDRndDk4ODAzYXR1MnJSWXRXbFJzZXovODhF
TkZSa2JxVDMvNms4NmNPYU8zCjMzNWJrWkdSNnQrL3YzNzg4VWRKK1pmS2RlL2UzWE9wZGFESGpv
dVBZY1hOQlNmSDlkTE9RYWxzanlHK3hzSGZjZHJmY24vMWV4dXoKaThlb3VQM1kyLzUyc1pMc0c2
VTVUL09uTk5zdUxTMU5Eejc0b0o1NzdqbU5HVE5HdTNidDhya3ViL3VqdjIxeU1YL3JEYlMreThi
ZgpSeVF2dnZpaVNiSkZpeFk1K2tqbDdObXoxcXRYTDVOa05Xdld0RldyVnBXb2pDOTVlWG5XdUhG
aisrYWJiL3lXSFRObWpIWHQydFZuCm1lenNiT3ZZc2FQbjhmang0eTAzTjljeU16T3RmdjM2bm84
Um4zMzJXYnZ0dHRzODVYcjA2R0g5K3ZYelBNN0p5ZkVzOTFabmNabzAKYVdLeHNiR2V4OWRjYzQy
MWJkdlcxcTFiWjRjUEg3YW9xQ2k3Nzc3N3pNejh0dW5pdWk3MndRY2ZXTStlUGMzTTdNaVJJMWFw
VWlXYgpPbldxbVpsOS9mWFhKc20rKys0N004di9xRDh4TWRIejJodHZ2Tkh6c2YrdVhidE1rbWNi
bExUTjI3WnRzeG8xYWxpN2R1M3MvZmZmCnQ5R2pSOXVlUFh1S0hidWNuQnk3NmFhYjdOeTVjNWFi
bTJ1alI0KzJ5TWhJUzBsSmNkVDNrcmJSNmJiMHQyMENhVTlTVXBLTkdUUEcKYXRhczZTbi82cXV2
MnFPUFBtcG1acnQzN3paSk5tUEdESTUzMlhZQUFDQUFTVVJCVkR0MDZKRGYrbnlOWFhIYjRPTExE
UTRlUEdpMQphdFd5cGsyYjJ1Yk5tMjNUcGszV3RtMWJhOWl3b2RmdHVIMzc5a3Y2MEtOSEQzdm5u
WGZNTFAvU3k4NmRPMXRNVEV4QWRWeThuWDNOCncrS1UxWHc3Y2VLRXRXelowcUtpb3V6amp6KzJR
NGNPMlZWWFhXWDMzMysvMTNVWDJMZHZuOTE1NTUxV3ZYcDFpNDJOdGZUMGRNK3kKVjE1NXhlclVx
V05tbCs0SFR0YlpwMDhmR3pkdW5KbVp6WjgvMysreCs3YzByOTk0NHczcjNidTMxMzl6NTg0MXMv
eDk2K1RKazJabQpkdlRvMFNMOTliWHMxS2xUOXRSVFQxbjE2dFZ0Nk5DaG5tTmhJQm8wYUdCWFgz
MjFyVnExeWpaczJHQk5talN4WnMyYVdYWjJ0cG1aCjFhOWZ2OGhsYlFNR0RMQWhRNFo0SHZzN2pz
MmRPOWNrMlRQUFBHUHZ2UE9PdmZiYWEzYm5uWGQ2NnJoNG55bHVXeVFrSlBnYzgrWEwKbDF0d2NI
Q1I5ZnFhdTJabTY5YXRNMG4yejMvKzAxYXZYbTJ6WnMzeU9VN1hYbnV0alJ3NTB2TzRWNjllTm1M
RUNNL2pUei85MU41Ngo2eTFINi9kMkRQTTFGNXdlMTBzeUJ3c3I2Mk9JcjNId2Q1ejJ0OXhmL2Q3
R3JMajNxOEw3c2I4NWZyRkE5bzNTbktmNVU5cHQ5OGMvCi90R1dMbDFxWm1hNXVibFdyMTQ5Njkr
L2Y3SHI4clUvK3B0N0YvTzMza0RydTF6OGZnSlNjRGVQbWpWck9nbzBWYXRXMWVlZmY2NG4Kbm5o
Q0tTa3BHalJva09iT25SdHdHVjgrK09BRDNYenp6YnIyMm1zZHY4YVhNMmZPNk50dnY5WHExYXNs
U2ZmZmY3L01US0dob1JvOAplTERhdG0wcktmOGp4b0svWkVuUytQSGp0WDc5ZWsvaTNiSmxpK2RM
Z043cTlPYmlqNGxqWW1MVXQyOWZOV2pRUUwxNzkvYWtkMzl0CktxNnV3cjc3N2p0ZGM4MDFrcVMx
YTljcUxTM04wK2F2dnZwS2RlclU4U3hQU2twU3JWcTFKRWtiTm14UWZIeThycnZ1T2tsU2h3NGQK
TkgvK2ZEVnUzTGhVYmI3Kyt1c1ZGUldsNk9obzNYYmJiWm8vZjc0aUl5T0xIYnZseTVmTHpMUjU4
MmF0V2JOR2RldlcxY21USi9YbApsMTg2Nm50SjIraDBXenJaTms3YkV4a1pxVFp0MmhSWnorTEZp
eFVSRVNGSmF0MjZ0U0lqSXlYSjBUYndOWGJGYllPTEx6ZG8wcVNKCkdqWnNxRnR1dVVWLytNTWYx
S05IRHkxZHVsU0hEeDlXUWtKQ3NYVmNkOTExUmZxd1pzMGFiZG15UmNPR0RmT00xOGlSSS9YSko1
OW8KMjdadGp1b29VSGc3KzVxSDNwVEZmS3RkdTdhYU4yK3VObTNhS0NZbVJvMGJOMWFmUG4zMDcz
Ly8yK3Q2Zi9ycEo0MGFOVXJYWEhPTgpxbGV2cm4zNzl1bUpKNTRvOXRObDZkTDlJSkIxenA4L1h4
RVJFUm8rZkxqWDl2elc1blh6NXMzVnIxOC9yLzhLOXR2UTBGRFBlMWJoClQ4LzlMYnZpaWl2MDNI
UFBhZi8rL1dyV3JKbTZkKyt1VzI2NVJUdDI3UEE2aHNVWlBueTRCZzRjcU42OWUrdjU1NS9YZ1FN
SFBIOWwKcmxpeFlwSDlyMUtsU3Bmc2owNHVHd29ORFZYNTh1VVZGaFpXNUxLOWkvZVo0clpGZkh5
ODN6RXZ6Ti9jbGFTK2ZmdHE2TkNoZXZMSgpKN1Y0OFdLTkd6Zk9aL3RIakJpaHp6Nzd6SE9aU0w5
Ky9mVHh4eDk3TG5WWnQyNmRoZ3daNG1qOS9vNWh4YzBGcDhmMTBzekJncmFXCjFUSEUzemo0TzA3
N1crNnZmbTlqVnR6N2xmVHpmdXhramhjV3lMNVJtdk0wZjBxejdiWnYzNjdWcTFmcmhodHVrSlIv
dGRETk45L3MKZFYzZXh0YkozQ3ZNMzNvRHJlOXk4aHRBbWpScElra0IzVll3TkRSVXNiR3hXcjkr
dlNJakl6VjI3TmhMN2dyaXBFeHh6cHc1bytYTApsMnYyN05tTzIrTlB6Wm8xTlhqd1lBMGNPRkJq
eDQ1Vmt5Wk5WSzVjT1FVRkJlbVZWMTdSbVRObk5HUEdERzNhdEVubno1LzN2RzdnCndJRnEyTENo
WG52dE5VblNKNTk4b3R0dXU4MW5uZDc0ZWdPcVVhT0dVbE5UUGMvN2FsTnhkUlZXdjM1OXoyVnZX
VmxacWw2OXVqcDAKNkNBcC95RFJ2WHQzU2ZuaG8rQUVWNUsrL1BKTGRlM2F0VWpkbzBlUDlwd1Fs
NmJORlN0V0xMSXViMk8zYmRzMlJVUkVxSHo1OGlwZgp2cnk2ZGV1bXRXdlhldHJ2cis4bGJhUFRi
ZWxrMnpodFQ4R3l3c3ZEdzhPTEhDRHExS25qT1hIMFY1Ky9zYnQ0RzNocmErRitSMFZGCnFVYU5H
a1ZPckM2dW8zQWZ2djc2YTBWR1JpbzBOTlN6dkhQbnpwTHlMNDl3VWtkeC9mUTFEMzMxeGR2alFQ
YmQ0cmFSdDd2enZmdnUKdTJyWnNxWFdyRm1qWGJ0MmFlN2N1WDdIdkxoMU9Gbm42dFdyTlgzNmRN
K2JrRGUvdFhuZHExY3ZQZm5razE3Lzlldlh6L2RnT25URgpGVmNvTmpaV0J3NGNVRTVPanE2Ly9u
cmRkZGRkamw5ZnJWbzF6LzlmZi8zMWtoVFFaVjFPQWtqLy92MDFkT2hRRFI4K1hHKzk5WllhCk5H
aFE1UFdGNjdoNFd6Z1o4OEtjekYxSm1qbHpwdmJ0MjZjT0hUcjRmTCtUcER2dnZGTW5UNTcwWEVM
Ni9mZmY2OEtGQzFxL2ZyMHkKTWpLVWw1ZW55cFVyTzE2L3QyT1l0N2tReUh0MFNlWmc0YkpsZFF4
eE1nNytqdE8rbHZ1cjM5ZVkrVHBPQjdxL0JiSnZsT1k4elovUwpiTHN2dnZoQ1VWRlJudTlzU1ZL
VktsVzh6bTF2WSt0MDdoWHd0OTVBNjd1Y1F2d1ZhTldxbFNScHo1NDlmaXM3ZE9pUUlpSWlGQjRl
CkxrbnEyYk9uUHZ6d1EzWHIxazByVnF6UWtDRkRISlh4NWFtbm50S3NXYk1VRmhibXR6MkJlTys5
OTFTdlhqM05tVE5IY1hGeCt1eXoKejFTMWFsVXRXTEJBVzdaczBjS0ZDL1hHRzI4VXVhNjBYTGx5
K3N0Zi9xS1hYMzVaVTZkT1ZYcDZlcEdON3EzTzB2TFZKbjg2ZE9qZwp1Y2E3NE5xL0F3Y082S3V2
dmxKNGVMank4dkowN05neHhjYkdhdnIwNlo3WEpTWW0rdjArUTFtMnViaXhTMDVPVmtoSVNKbWRa
QVRTClJxZmJzalRieHAveDQ4ZnIzbnZ2MWU3ZHV4VVdGcVpLbFNwZGNuMjdONWRyN0lLRGd4VVM0
dmN3SWluL3V0VGs1R1NscHFhcVNwVXEKa3FRMmJkb29KQ1RFOGJYdXhmRTNEMHVyckxicDdiZmZy
cVNrSlAzdGIzL1RYWGZkcFJkZWVNRnZRQ2lwN3QyN2E5T21UWHJra1VmMAo1cHR2ZWkzM1c1dlhw
MCtmMXBrelo3d3VyMWF0V3BId1ZCcmJ0Mi9YMUtsVDllV1hYMnJjdUhGNi9QSEhTMVJQNDhhTkZS
NGU3bm5QCnV4eUNnb0wwL1BQUE95NGY2UEhBNmR3TkRRMVZaR1NrWG5qaEJZMGFOY3JuUEl5SWlG
Qk1USXlXTEZtaTZ0V3JxMlBIamdvT0R0YlMKcFV0MTl1elpJcmQwTGMyeHc5ZGN1Rnp2MFJjcnEy
TklTY2ZCMzNHNllMbVQra3N5Wm9IdWI0SHNHNUx2OFMzdCswTkp0OTJSSTBlVQpuSng4eWZPKy9y
aFEzTmdHdXMzOXJmZHl2UStYaE45UFFQcjI3YXUyYmR2cXJiZmU4bnJnTC9oWUxERXhVWFBtekNt
eXJHdlhybXJTCnBJbm5CNStjbFBGbTVzeVpHalZxVkpHLzlCVDhOYjgwVHB3NG9hU2tKTTJlUFZ0
cjFxelI3dDI3dFhUcFV1M1pzMGNQUHZpZ1pzNmMKV1NRdEZuYmZmZmZwekpremV2TEpKejJmSHZp
cTB4dW5kMDF4MGlaZmRYWG8wRUhSMGRGNisrMjNWYXRXTFczZHVsV3Z2dnFxYXRXcQpwUlVyVnFo
OSsvWjY0NDAzTkdYS2xDSi94V3ZjdUxGKytPRUg3ZCsvMy9PY21UbEt6RTdhWEppM3NXdmF0S25X
cmwxYjVLOURacVl2CnZ2akNVZDlMMmthbjJ6TFFmZ2JxNXB0djF2MzMzKy81QzdyVEw5RkpjalIy
Z2RxM2I1OU9uVHJsK0ZMSXFLZ281ZWJtYXVmT25aN24Ka3BLU2xKT1RvK2pvNklEV2ZmRjI5allQ
bmI3ZW03TGNwaFVxVk5DRUNSTjA0TUFCM1g3NzdicmpqanZVdjM5L243OS9WRkxoNGVGYQp2SGl4
RmkxYXBBOCsrTUJydWQvYXZIN3BwWmZVdkhsenIvOWlZMlA5dHNPZnJWdTM2c1liYjlTQUFRTjB6
VFhYNk9EQmc1b3paNDdxCjE2OWZvdnFPSFR1bTgrZlBxMzM3OXA3bkNpNHQ4YVlreDdGQTlzOUFq
d2RPNSs3a3laTzFldlZxQlFVRmFmTGt5WDdiY2UrOTkyckYKaWhWNi9mWFhkZDk5OTJuRWlCRmF1
WEtsMXExYlYrU1BLNlU1ZG5pYkM0RytSNWRVV1I1RFNqSU8vbzdUaFpmN3E3K2s1elVsZWY5eAp1
bStVNWp6Tm45SnN1M3IxNnVua3laUGF0Mitmby9MZXhqYlFiZTV2dldYNVBseGFmZ05JY0hDd1hu
bmxGV1ZuWjJ2a3lKR1hYRkp5CjhPQkJQZmJZWThySnlWR3paczAwZS9ic0loMC9jZUtFamh3NTRy
a0d6VW1aNGl4YXRFZ3BLU25LeXNyUzl1M2J0WFhyVnYzOTczOVgKWEZ5Y3BQeGZENDZOamRXUkkw
ZUt2QzR6TTlQdndmN1VxVk5hdG15WnBQdzdidDE2NjYycVVxV0tFaElTbEplWHB6MTc5aWczTjFl
YgpObTFTUmthR3pNeHpyV1BObWpVMWJOZ3d2ZmJhYXhvNGNLRGZPb3RUdlhwMVQ3dFRVbEtVbHBh
bXRMUTB6L0wwOUhUUEhRcjh0ZW5pCnVvcXpjT0ZDdmZycXExcXpabzJ1dmZaYXpaa3pSemZkZEpP
cVZxMnFwNTU2U3NPSEQ5ZWFOV3VLdkdibzBLR3FVS0dDUm93WW9ZU0UKQkNVa0pPanh4eDlYdzRZ
TkphbFViYzdKeVNseUJ3WnZZM2YzM1hjck1URlJvMGVQVmtwS2lwS1NralJ0MmpUUHRiNysrbDdT
TmlZbgpKenZhbGs3MkY2ZnRLVmllbnA3dWVlM1VxVlBWc21WTGpSczNUbmZkZFpjcVZxem91RDUv
WTNmeE52Q200QmVrcGZ5N2dIVHYzdDF6CkdWaHhkUlR1dzVBaFE5U2dRUU90WGJ2V3MzelhybDJL
aW9yU2pUZmU2S2dPcWZqdDdHMGVGcWNzNTF0V1ZsYVI0MHRhV3BweWMzTjkKcmo4OFBGeVRKMC9X
d1lNSGRlMjExNnA3OSs0YVBueTQ1dzh3V1ZsWlJYNGM3K0wrKzF0blRrNk96RXhkdTNiVnBFbVRO
R3JVS0srLwpndnRibTlkLytjdGZsSmlZNlBYZjFLbFRmWTY5TDF1M2J0V0FBUU1VRXhPajY2NjdU
b2NPSGRLTUdUTTgzNE1yY1A3OGVVMmVQTm56CjNsT2N3dHRqdzRZTkdqUm9rT2M2OGpadDJtakhq
aDNLeXNyU3NXUEh0SC8vL2lMenl0OXhyR0JNdlIzZnBVdjNtWXUzaGI4eFAzZnUKblBMeThqemIz
c25jWGJObWpWcTBhS0hvNkdqTm1ERkQ4K2JOOHh0a2I3cnBKb1dGaGFsY3VYS3FWcTJhK3ZUcG82
cFZxNnB1M2JwRgpRbGhKangyKzVrSWc3OUdCenNIQ3l2SVk0bVFjQ3ZwVzRPTGp0Sy9sL3VyM05X
YStqdE14TVRFKzk3ZmlPTjAzU25PZUp2bWV6NlhaCmRrT0hEbFZJU0lqbXo1L3ZXYjUzNzE0bEp5
Y1h1MzI5amEzVGJWN0EzM29EcmUreWN2cHQ5WDM3OWxuUG5qMnRXYk5tZHQ5OTk5bkUKaVJPdFQ1
OCs5c1FUVDFoR1JvYW5YRlJVbFBYdTNkdkdqeDl2c2JHeDFyWnRXM3ZnZ1Fjc0t5c3JvREtGYmR5
NDBVSkRRMDFTa1gvMQo2dFd6bkp3Y004di9zY1Nnb0NEUFhTNHlNakpzOGVMRlZxOWVQUXNMQzdO
MzMzM1hUcDgrWFd6OTMzLy92VFZ2M3R3V0xGaGdIMzMwCmtUMzQ0SU9XbloxdEZ5NWNzSGJ0Mmxt
VktsVnN4SWdSOXVtbm4xcWxTcFhzejMvK2M1RWZaTnkwYVpQZGRkZGRqdW9zenBOUFBtbEIKUVVF
MmN1UkllL1BOTnkwNE9OaGF0V3BsOGZIeEZoY1haOUhSMFJZU0VtS3JWcTN5MjZiQ2RSVytnOVhG
MHRMU2JOcTBhVFpzMkRDYgpNbVdLTFZxMHlHYk5tbVVQUGZTUVRaczJ6VTZkT25YSmExYXVYR21S
a1pFbXlSbzNibXhidG13eE03UDMzMysveEcxZXRHaVJWYTVjCjJlcldyV3ZMbGkzek8zYno1czJ6
c0xBd0N3b0tzc2pJU0Z1NWNtV3g0M2h4MzB2VHh2ajRlRWZiMHVuKzRxUTlPM2Jzc0M1ZHVwZ2sK
bXoxN3RtVm1adG9qanp6aTJmZkxsU3RudFd2WHRnY2ZmTkF5TXpQOTF1ZHI3SllzV1hMSk5paE94
NDRkclYyN2RqWjU4bVNiT25XcQpEUmd3d0U2Y09PRzFqdUw2RUJjWFo2MWF0YklYWDN6UlZxOWVi
Y09HRGZQODRLWFRPcnh0NStMbVlYSEthcjZ0VzdmT3FsZXZidlhxCjFiTnQyN2JadDk5K2ExZGVl
YVdGaFlYWjU1OS83cmNkQlk0ZE8yWmp4NDYxU1pNbTJZNGRPNnhEaHc0bXllYk9uV3RidG13cDBu
OS8KNjF5eFlvVlZxVkxGbWpkdmJsdTNiclg5Ky9kYnBVcVZyRzdkdXZaZi8vVmZ4YTcvdHp5dnkx
S1hMbDBzTmpiV3pwNDk2N05jZkh5OApCUWNIVzZkT25ZcGRQbVhLRkd2VHBvMDkvL3p6OXJlLy9j
MysrdGUvMnJsejV6ekwxNjlmYnhFUkVkYXNXVE43N0xISGJNeVlNZGEzCmIxL1BuWFo4OVhmWnNt
WFd1blZyazJTOWUvZTJqUnMzWHJMK2krZE1jZHZDelB1WWI5KyszYnAzNzI2U2JPTEVpYlovLzM0
ek01OXoKZDhPR0RWYW5UaDM3OXR0dnpTei8vYmhjdVhMV3RHbFQyN0ZqaDgveG5EaHhvdjM0NDQr
ZXg1TW5UeTd5dUVDZ3h3NS9jOEhwZS9URgo0eG5vdkMvclk0aXZjVER6Zlp4MnN0eFgvZDdHek1s
eDJ0Y2M5OGJKdmxHYTh6UXozL081dE50dXlaSWxGaDRlYnRIUjBYYkhIWGZZCndJRURyV3ZYcnJa
a3laSkwxdVZyZi9TM3pTL21iNzJCMW5lNU9BNGdCZExUMHkwdUxzNys5YTkvRmJsMVpJR0NFOWNM
Rnk3WTk5OS8KWCtUQUcwaVpra2hLU2lyUjZ3cHVkWmFTa21LcHFhbVhMRTlMUy9QOGYzRWhhY0dD
QmZiWlo1OEZWT2ZGQ200TDZaU3ZOZ1ZhVjNKeQpzc1hIeHhjYk9pNldsNWRYNUdBVkNIL2pXTURm
MkdWbVp0cVBQLzVZN0p0Rm9IMTMwc1pBdDZYVGZnWXFOamJXOXUzYlovLzYxNy9zCnE2Kytzazgv
L2RUKzR6Lyt3OWF1WGV1NERsOWo1MC9IamgxdHdvUUpscHFhV3VLNVpwYS9EKzNidDYvWWt3eW5p
dHZPeGMzRFFGN3YKeStYYXBvV1ZaSnVVbGYvcjg5cUpRTWIvekprejl1eXp6L29zYy96NGNhOTFa
bVptZXNhdHVERnpvNzhGN1Fqa2VGQVdjL2RpaGYrQQpXZHpqeTdYK1FJL3JwVldXeHhCZjQrRHZP
TzNrT082dC90S2Uxd1M2dndXeWI1VGtQSzJBdi9sY21tMlhrNVBqR1lmaXpwa0wrQnZiClFQZDlm
K3U5SEhNNVVFRm1aZlNUaTc5RDU4K2ZWMWhZbU82KysyNHRYNzdjdFYraHh1L1BhNis5cHVYTGx4
ZjV3U2hKK3V5eno5UzgKZVhOZGVlV1ZsNzBOblRwMVVvOGVQZlRTU3k5ZDluVUZnbmtJdHkxY3VG
Q2RPM2RXNjlhdGYrbW1BRVg0TzA3L1dvL2psNHVUOXdmbQo4eS9qMS9mYjdMOFJjK2ZPVmJWcTFk
UzhlWFBkZi8vOW5QVGdzdXJTcFl1MmJObWlJVU9HNlBubm45ZVVLVk0wWnN3WVpXZG51eEkrCkN1
Nk9WdmpMeXI4R3pFUDhFdjcwcHo5eHNvSmZIWC9INlYvcmNmeHljZnIrd0h6K1pmQUpTQW1kUG4x
YXk1WXQwNjIzM25ySmoxa0IKbDhQWnMyZjE1WmRmNnNTSkUrcmR1N2Nyd2FQQW9rV0xQRjhvYk5h
c21lNjg4MDdYMXUwTDh4QUE4dms3VHY5YWorT1hDKzhQdjI0RQpFQUFBQUFDdTRSSXNBQUFBQUs0
aGdBQUFBQUJ3RFFFRUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFBQTRCcS9BZVRERHo5VVpHU2svdlNu
ClArbk1tVE42KysyM0ZSa1pxZjc5Kyt2SEgzK1VKTTJhTlV2ZHUzZFhSa2FHSkNreE1WRVRKa3hR
ejU0OTFhRkRCMjNmdnYzeTlnSUEKQUFEQWI0TGZBREo0OEdBMWF0UklWMXh4aGFwWHI2NTc3NzFY
clZ1M1ZzT0dEVDIvUXhBVkZhVlJvMGFwUW9VS3lzM04xWWdSSXpSMQo2bFJ0M0xoUm5UcDEwaTIz
M0tJelo4NWM5czRBQUFBQStIVnpkQW5XaUJFajlObG5ueWt2TDArUzFLOWZQMzM4OGNmS3ljbVJK
SzFiCnQwNURoZ3lSSkMxZnZseG1wczJiTjJ2Tm1qV3FXN2V1VHA0OHFTKy8vUEl5ZFFFQUFBREFi
NFdqQUhMbm5YZnE1TW1UMnJ4NXN5VHAKKysrLzE0VUxGN1IrL1hwbFpHUW9MeTlQbFN0WGxpUnQy
N1pORVJFUktsKyt2TXFYTDY5dTNicHA3ZHExNnRDaHcrWHJCUUFBQUlEZgpoQkFuaFNJaUloUVRF
Nk1sUzVhb2V2WHE2dGl4bzRLRGc3VjA2VktkUFh0V2d3WU44cFJOVGs1V1NFaUkrdlhyZDlrYURR
QUFBT0MzCnlWRUFrYVI3NzcxWHc0Y1BWL255NVRWOStuVHQzTGxUdDk5K3UwSkRRN1Znd1FKUHVh
Wk5tMnJod29YS3lNaFFoUW9WSkVsbXBrMmIKTnFsWHIxNWwzZ0VBQUFBQXZ4Mk9iOE43MDAwM0tT
d3NUT1hLbFZPMWF0WFVwMDhmVmExYVZYWHIxbFZRVUpDbjNOMTMzNjNFeEVTTgpIajFhS1NrcFNr
cEswclJwMDlTaVJRdEpVbVptcG1KalkzWGt5Skd5N3cwQUFBQ0FYelhIQVNRa0pFVDMzSE9QeG8w
YmwvL0M0R0RQCnB5S0Z0V3JWU25Qbnp0V3laY3NVRVJHaDFxMWJxMjNidHFwZnY3NGs2Y0NCQTNy
NjZhZTFZY09HTXV3R0FBQUFnTitDSURNenA0VXoKTXpNVkZoYm05WEZoV1ZsWk9uejRzQm8zYnF5
UWtLSlhlcDA4ZVZLUmtaRWxiRElBQUFDQTM2cUFBZ2dBQUFBQWxJYmpTN0FBQUFBQQpvTFFJSUFB
QUFBQmNRd0FCQUFBQTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQUFnQUFBTUExQkJBQUFBQUFyaUdB
QUFBQUFIQU5BUVFBCkFBQ0Fhd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlBQUFBQU5jUVFBQUFBQUM0
aGdBQ0FBQUF3RFVFRUFBQUFBQ3VJWUFBQUFBQWNBMEIKQkFBQUFJQnJDQ0FBQUFBQVhFTUFBUUFB
QU9BYUFnZ0FBQUFBMXdRVVFNNmRPNmVmZnZwSmtuVCsvSGxsWkdTVVNTUE1UQWNPSE5EaAp3NGM5
enlVbUpnWmMxc3o4L2l0Sm55NVh2d0VBQUlEZm14QW5oWTRlUGFwSmt5YXBZc1dLcWxLbGlqWnYz
cXowOUhTOThjWWJ1djc2CjYvV1BmL3hEMDZaTlUzeDh2SzY3N2pvOS9mVFRpb21Ka1NUdDNidFh6
enp6akZhc1dLRXhZOFpveXBRcHFsT25qaVRwekpremV1U1IKUjdSdjN6NTE3dHhaMWFwVjArN2R1
M1h1M0RrZE9YSkVlL2Z1OWJUQlNkbVZLMWZxNmFlZlZrSkNnbXJYcnEyK2ZmdEt5ZzhRYTlhcwpV
VXhNakZhdVhPbW9UMDdMQUFBQUFIRE9VUUFaUDM2OHNyS3l0SGp4WWtsU2RuYTJPblhxcENOSGpr
aVNCZzBhcEtTa0pJMGVQVnJqCnhvM3poQTlKaW9xSzBudnZ2YWV2dnZwSzgrYk44engvK1BCaGRl
blNSYjE3OTlhbVRac1VHaHJxV1RacjFpdzk5OXh6QVpjZFBIaXcKVHB3NG9iRmp4K3FkZDk3UmdB
RURQT1VPSFRxa3FWT25PdTZUMHpJQUFBQUFuSE4wQ2RiZXZYdDErUEJoWldkblM1SkNRMFAxMWx0
dgo2ZlRwMDU0eU5XclVLUExmd2tKQ1F0U3VYYnNpejQwYU5VcloyZGw2L2ZYWGl3UUtTWm93WVlJ
NmQrNWNvcklGeXl0WHJseWtYUDM2CjlUVnIxcXlBK3VTa0RBQUFBQURuSEFXUVljT0dLUzR1VHYz
NzkvZDgzNko5Ky9aNjRJRUhuSzhvK09kVjdkbXpSMnZYcnRXUUlVTlUKb1VLRllzc3ZYNzQ4NExL
K2pCOC92a2c0Y3RLbnN1ZzNBQUFBZ0o4NUNpQVBQZlNRZXZYcXBVMmJOcWwxNjliNitPT1BTN1hT
UFh2MgpTSklhTldya3RVelZxbFVETGx2WTZ0V3I5ZmJiYjJ2QmdnVWFNV0tFdG03ZFdtUzVrejZW
ZGI4QkFBQ0EzenRIQWFScTFhcjYvUFBQCjljUVRUeWdsSlVXREJnM1MzTGx6Uzd6UzQ4ZVBTNUtx
VktsU3BtVUxLMWV1bkVKRFF4VVNFcUtnb0NBRkJRVVZXZTZrVDJYZGJ3QUEKQU9EM3p2RnRlRU5E
UXhVYkc2djE2OWNyTWpKU1k4ZU8xWW9WSzBxMDB1Yk5tMHVTamgwN1ZxWmxDN3ZoaGh0MDk5MTNh
OVNvVVZxNApjS0d1dSs2NlM4bzQ2Vk5aOWhzQUFBRDR2Zk1iUUE0ZE9xVHo1ODk3SHZmczJWTWZm
dmloSkJVNUVTKzRSQ281T2JuWWVzcVZLK2Y1Ci8ram9hRW5Tdi83MUw3OE5ES1NzTDRXL2dPNmtU
MDc3RFFBQUFNQTV2d0VrTVRGUmMrYk1LZkpjMTY1ZDFhUkpreUkvQnRpbVRSdVYKSzFldXlHOTNG
UGpwcDUrS2ZJZWphZE9tR2p4NHNQNzV6Mzk2L1dTajRNNVRnWlQxcFVLRkN2cnBwNS8wN3J2dk91
cVQwMzREQUFBQQpjTTV2QUduV3JKbG16NTZ0ZmZ2MmVaNDdjZUtFamh3NW9wdHZ2dG56WEtWS2xk
U2pSdys5Ly83N1JUNEZ5Y3ZMMC9UcDAvWG5QLys1ClNMMHpaODVVMWFwVk5YandZSjA2ZGFySXNn
TUhEdWlaWjU1UmVucDZ3R1VMd2tobVptYVJjbWxwYVJvOWVyUmF0bXpwcUU5Tyt3MEEKQUFEQXVT
QXpNMytGb3FPalZiZHVYYlZyMTA2UmtaRmF0bXlacnJ2dU92M1hmLzFYa2QvbE9ILyt2TzYrKzI3
dDNidFgzYnQzVjhXSwpGWFgwNkZHTkhUdFcvZnIxdTZUZUV5ZE82T0dISDliT25UdlZ1WE5uTld6
WVVDa3BLYnJtbW1zMGJ0eTRJcmZ1ZFZMMmd3OCswTk5QClA2MjllL2NxS2lwS2JkdTI5YncySVNG
QkdSa1pPbjM2dE1xVksrZW9UMDc3RFFBQUFNQVpSd0hrOU9uVHV1S0tLNVNXbHFhREJ3K3EKVWFO
R0NnOFA5MW8rT3p0YisvYnRVOTI2ZFhYRkZWZjRiVVJ1YnE3Mjc5K3Y4UEJ3MWExYnQ4eksrdUtr
VDRIMkd3QUFBSUJ2amdJSQpBQUFBQUpRRng3ZmhCUUFBQUlEU0lvQUFBQUFBY0EwQkJBQUFBSUJy
Q0NBQUFBQUFYRU1BQVFBQUFPQWFBZ2dBQUFBQTF4QkFBQUFBCkFMaUdBQUlBQUFEQU5RUVFBQUFB
QUs0aGdBQUFBQUJ3RFFFRUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFBQTRCb0NDQUFBQUFEWEVFQUEK
QUFBQXVJWUFBZ0FBQU1BMUJCQUFBQUFBcmlHQUFBQUFBSEFOQVFRQUFBQ0Fhd2dnQUFBQUFGeERB
QUVBQUFEZ0dnSUlBQUFBQU5jUQpRQUFBQUFDNGhnQUNBQUFBd0RVRUVBQUFBQUN1SVlBQUFBQUFj
QTBCQkFBQUFJQnJDQ0FBQUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFBCjF4QkFBQUFBQUxpR0FBSUFB
QURBTlFRUUFBQUFBSzRoZ0FBQUFBQndEUUVFQUFBQWdHc0lJQUFBQUFCY1F3QUJBQUFBNEJvQ0NB
QUEKQUFEWEVFQUFBQUFBdUlZQUFnQUFBTUExQkJBQUFBQUFyaUdBQUFBQUFIQU5BUVFBQUFDQWF3
Z2dBQUFBQUZ4REFBRUFBQURnR2dJSQpBQUFBQU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFRUFBQUFB
Q3VJWUFBQUFBQWNBMEJCQUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0FhCkFnZ0FBQUFBMXhCQUFB
QUFBTGlHQUFJQUFBREFOUVFRQUFBQUFLNGhnQUFBQUFCd0RRRUVBQUFBZ0dzSUlBQUFBQUJjUXdB
QkFBQUEKNEJvQ0NBQUFBQURYRUVBQUFBQUF1SVlBQWdBQUFNQTFCQkFBQUFBQXJpR0FBQUFBQUhB
TkFRUUFBQUNBYXdnZ0FBQUFBRnhEQUFFQQpBQURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDQUFB
QXdEVUVFQUFBQUFDdUlZQUFBQUFBY0EwQkJBQUFBSUJyQ0NBQUFBQUFYRU1BCkFRQUFBT0FhQWdn
QUFBQUExeEJBQUFBQUFMaUdBQUlBQUFEQU5RUVFBQUFBQUs0aGdBQUFBQUJ3RFFFRUFBQUFnR3NJ
SUFBQUFBQmMKUXdBQkFBQUE0Qm9DQ0FBQUFBRFhFRUFBQUFBQXVJWUFBZ0FBQU1BMUJCQUFBQUFB
cmlHQUFBQUFBSEFOQVFRQUFBQ0Fhd2dnQUFBQQpBRnhEQUFFQUFBRGdHZ0lJQUFBQUFOY1FRQUFB
QUFDNGhnQUNBQUFBd0RVRUVBQUFBQUN1SVlBQUFBQUFjQTBCQkFBQUFJQnJDQ0FBCkFBQUFYRU1B
QVFBQUFPQWFBZ2dBQUFBQTF4QkFBQUFBQUxpR0FBSUFBQURBTlFRUUFBQUFBSzRoZ0FBQUFBQndE
UUVFQUFBQWdHc0kKSUFBQUFBQmNRd0FCQUFBQTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQUFnQUFB
TUExQkJBQUFBQUFyaUdBQUFBQUFIQU5BUVFBQUFDQQphd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlB
QUFBQU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFRUFBQUFBQ3VJWUFBQUFBQWNBMEJCQUFBCkFJQnJD
Q0FBQUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFBMXhCQUFBQUFBTGlHQUFJQUFBREFOUVFRQUFBQUFL
NGhnQUFBQUFCd0RRRUUKQUFBQWdHc0lJQUFBQUFCY1F3QUJBQUFBNEJvQ0NBQUFBQURYRUVBQUFB
QUF1SVlBQWdBQUFNQTFCQkFBQUFBQXJpR0FBQUFBQUhBTgpBUVFBQUFDQWF3Z2dBQUFBQUZ4REFB
RUFBQURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDQUFBQXdEVUVFQUFBQUFDdUlZQUFBQUFBCmNB
MEJCQUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0FhQWdnQUFBQUExeEJBQUFBQUFMaUdBQUlBQUFE
QU5RUVFBQUFBQUs0aGdBQUEKQUFCd0RRRUVBQUFBZ0dzSUlBQUFBQUJjUXdBQnBTc2JSd0FBQnpC
SlJFRlVBQUFBNEJvQ0NBQUFBQURYRUVBQUFBQUF1SVlBQWdBQQpBTUExQkJBQUFBQUFyaUdBQUFB
QUFIQU5BUVFBQUFDQWF3Z2dBQUFBQUZ4REFBRUFBQURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FD
CkFBQUF3RFVFRUFBQUFBQ3VJWUFBQUFBQWNBMEJCQUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0Fh
QWdnQUFBQUExeEJBQUFBQUFMaUcKQUFJQUFBREFOUVFRQUFBQUFLNGhnQUFBQUFCd0RRRUVBQUFB
Z0dzSUlBQUFBQUJjUXdBQkFBQUE0Qm9DQ0FBQUFBRFhFRUFBQUFBQQp1SVlBQWdBQUFNQTFCQkFB
QUFBQXJpR0FBQUFBQUhBTkFRUUFBQUNBYXdnZ0FBQUFBRnhEQUFFQUFBRGdHZ0lJQUFBQUFOY1FR
QUFBCkFBQzRoZ0FDQUFBQXdEVUVFQUFBQUFDdUlZQUFBQUFBY0EwQkJBQUFBSUJyQ0NBQUFBQUFY
RU1BQVFBQUFPQWFBZ2dBQUFBQTF4QkEKQUFBQUFMaUdBQUlBQUFEQU5RUVFBQUFBQUs0aGdBQUFB
QUJ3RFFFRUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFBQThQL2JyMk1CQUFBQQpnRUgrMXJQWVZSWnRC
QVFBQU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJB
QUEyQWdJCkFBQ3dFUkFBQUdBaklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFB
RFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJrQUEKQUlDTmdBQUFBQnNCQVFBQU5nSUNBQUJzQkFRQUFO
Z0lDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQQpBR3dFQkFBQTJB
Z0lBQUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0FqWUFBQUFBYkFRRUFBRFlDQWdBQWJBUUVBQURZQ0Fn
QUFMQVJFQUFBCllDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDQUFCc0JBUUFBTmdJQ0FB
QXNCRVFBQUJnSXlBQUFNQkdRQUFBZ0kyQUFBQUEKR3dFQkFBQTJBZ0lBQUd3RUJBQUEyQWdJQUFD
d0VSQUFBR0FqSUFBQXdFWkFBQUNBallBQUFBQWJBUUVBQURZQ0FnQUFiQVFFQUFEWQpDQWdBQUxB
UkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJQ0FBQnNCQVFBQU5nSUNBQUFzQkVR
QUFCZ0l5QUFBTUJHClFBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBMkFnSUFBQ3dFUkFB
QUdBaklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUMKQWdBQWJBUUVBQURZQ0FnQUFMQVJFQUFB
WUNNZ0FBREFSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUNBQUJzQkFRQUFOZ0lDQUFBc0JFUQpBQUJn
SXlBQUFNQkdRQUFBZ0kyQUFBQUFHd0VCQUFBMkFnSUFBR3dFQkFBQTJBZ0lBQUN3RVJBQUFHQWpJ
QUFBd0VaQUFBQ0FqWUFBCkFBQWJBUUVBQURZQ0FnQUFiQVFFQUFEWUNBZ0FBTEFSRUFBQVlDTWdB
QURBUmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDQUFCc0JBUUEKQU5nSUNBQUFzQkVRQUFCZ0l5QUFB
TUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJBQUEyQWdJQUFDd0VSQUFBR0FqSUFBQQp3
RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFBRFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJr
QUFBSUNOZ0FBQUFCc0JBUUFBCk5nSUNBQUJzQkFRQUFOZ0lDQUFBc0JFUUFBQmdJeUFBQU1CR1FB
QUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBMkFnSUFBQ3cKRVJBQUFHQWpJQUFBd0VaQUFB
Q0FqWUFBQUFBYkFRRUFBRFlDQWdBQWJBUUVBQURZQ0FnQUFMQVJFQUFBWUNNZ0FBREFSa0FBQUlD
TgpnQUFBQUJzQkFRQUFOZ0lDQUFCc0JBUUFBTmdJQ0FBQXNCRVFBQUJnSXlBQUFNQkdRQUFBZ0ky
QUFBQUFHd0VCQUFBMkFnSUFBR3dFCkJBQUEyQWdJQUFDd0VSQUFBR0FqSUFBQXdFWkFBQUNBallB
QUFBQWJBUUVBQURZQ0FnQUFiQVFFQUFEWUNBZ0FBTEFSRUFBQVlDTWcKQUFEQVJrQUFBSUNOZ0FB
QUFCc0JBUUFBTmdJQ0FBQnNCQVFBQU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQWdJMkFBQUFB
R3dFQgpBQUEyQWdJQUFHd0VCQUFBMkFnSUFBQ3dFUkFBQUdBaklBQUF3RVpBQUFDQWpZQUFBQUFi
QVFFQUFEWUNBZ0FBYkFRRUFBRFlDQWdBCkFMQVJFQUFBWUNNZ0FBREFSa0FBQUlDTmdBQUFBQnNC
QVFBQU5nSUNBQUJzQkFRQUFOZ0lDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUEKZ0kyQUFBQUFHd0VC
QUFBMkFnSUFBR3dFQkFBQTJBZ0lBQUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0FqWUFBQUFBYkFRRUFB
RFlDQWdBQQpiQVFFQUFEWUNBZ0FBTEFSRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFRQUFO
Z0lDQUFCc0JBUUFBTmdJQ0FBQXNCRVFBQUJnCkl5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJB
Z0lBQUd3RUJBQUEyQWdJQUFDd0VSQUFBR0FqSUFBQXdFWkFBQUNBallBQUFBQWIKQVFFQUFEWUNB
Z0FBYkFRRUFBRFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJQ0FB
QnNCQVFBQU5nSQpDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFH
d0VCQUFBMkFnSUFBQ3dFUkFBQUdBaklBQUF3RVpBCkFBQ0FqWUFBQUFBYkFRRUFBRFlDQWdBQWJB
UUVBQURZQ0FnQUFMQVJFQUFBWUNNZ0FBREFSa0FBQUlCTnp2Tm1RYnFaTFRNQUFBQUEKU1VWT1JL
NUNZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10251</attachid>
            <date>2006-08-27 00:53:37 -0700</date>
            <delta_ts>2006-08-27 13:35:16 -0700</delta_ts>
            <desc>same patch ignoring whitespace</desc>
            <filename>5620r1_nowhitespace.txt</filename>
            <type>text/plain</type>
            <size>47697</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjA1MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjExLDIzICsxNjExLDYgQEAKIAkJRkFFMDQxOTAwOTc1OTZDOTAw
MDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGQUUwNDE4RTA5NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VMb2Fk
ZXIuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCi0vKiBCZWdpbiBQ
QlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KLQkJQkM1N0JGMTcwQUEwMjQzMDAwQTQzQ0YxIC8qIERl
dmVsb3BtZW50ICovID0gewotCQkJaXNhID0gUEJYQnVpbGRTdHlsZTsKLQkJCWJ1aWxkU2V0dGlu
Z3MgPSB7Ci0JCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POwotCQkJfTsKLQkJCW5hbWUgPSBEZXZl
bG9wbWVudDsKLQkJfTsKLQkJQkM1N0JGMTgwQUEwMjQzMDAwQTQzQ0YxIC8qIERlcGxveW1lbnQg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhCdWlsZFN0eWxlOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJ
CQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOwotCQkJfTsKLQkJCW5hbWUgPSBEZXBsb3ltZW50Owot
CQl9OwotLyogRW5kIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLwotCiAvKiBCZWdpbiBQQlhDb250
YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCQlERDA0MUZGMDA5RDlFMzI1MDAxMEFGMkEgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVBy
b3h5OwpAQCAtNjQ3OSwxMiArNjQ2Miw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQlidWlsZFNldHRp
bmdzID0gewotCQkJfTsKLQkJCWJ1aWxkU3R5bGVzID0gKAotCQkJCUJDNTdCRjE3MEFBMDI0MzAw
MEE0M0NGMSAvKiBEZXZlbG9wbWVudCAqLywKLQkJCQlCQzU3QkYxODBBQTAyNDMwMDBBNDNDRjEg
LyogRGVwbG95bWVudCAqLywKLQkJCSk7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsK
IAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDUxKQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAorMjAwNi0w
OC0yNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVu
ZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMAorICAgICAgICBTaG91bGQgb25seSBob25v
ciBlbmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKKyAgICAgICAgLSBodHRwOi8vYnVnemls
bGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMKKyAgICAgICAgQW4gWE1MIGRl
Y2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dl
cnMKKyAgICAgICAgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCisgICAgICAg
IC0gaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NQor
ICAgICAgICBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIAorICAgICAg
ICAqIGxvYWRlci9EZWNvZGVyLmNwcDoKKyAgICAgICAgKERlY29kZXI6OkRlY29kZXIpOiBEZWNv
ZGVyIG5vdyBrbm93cyB3aGF0IGtpbmQgb2YgY29udGVudCBpdCBpcyBkZWNvZGluZy4KKyAgICAg
ICAgQWxzbywgdGhlIGJyb3dzZXIgZGVmYXVsdCBlbmNvZGluZyBjYW4gbm93IGJlIHBhc3NlZCBk
aXJlY3RseSB0byB0aGUgY29uc3RydWN0b3IsCisgICAgICAgIHRvIHN0cmVhbWxpbmUgdGhlIGxv
Z2ljLgorICAgICAgICAoRGVjb2Rlcjo6ZGVjb2RlKTogQWRkIHN1cHBvcnQgZm9yIEBjaGFyc2V0
LCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gSFRNTCBhbmQgWE1MLgorICAgICAgICAoRGVjb2Rlcjo6
c2V0RW5jb2RpbmdOYW1lKTogU3R5bGUgY2xlYW51cC4KKyAgICAgICAgKERlY29kZXI6OmVuY29k
aW5nTmFtZSk6IERpdHRvLgorICAgICAgICAoRGVjb2Rlcjo6Zmx1c2gpOiBEaXR0by4KKyAgICAg
ICAgKiBsb2FkZXIvRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGVjb2Rlcjo6KToKKwor
ICAgICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5ncy5tbTogUGFzcyBhIGNvbnRlbnQg
dHlwZSBvZiB0ZXh0L2h0bWwgdG8gRGVjb2Rlci4KKworICAgICAgICAqIGxvYWRlci9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6
OkNhY2hlZENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVT
aGVldDo6c2V0Q2hhcnNldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0
OjpkYXRhKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAg
ICBVc2UgRGVjb2RlciBpbnN0ZWFkIG9mIFRleHRFbmNvZGluZzo6dG9Vbmljb2RlKCkgdG8gZW5h
YmxlIEBjaGFyc2V0IHN1cHBvcnQuCisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWEJMRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1lbnQ6OkNhY2hlZFhCTERv
Y3VtZW50KTogUGFzcyBhIGNvbnRlbnQgdHlwZS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHlsZVNoZWV0OjpD
YWNoZWRYU0xTdHlsZVNoZWV0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xT
dHlsZVNoZWV0OjpkYXRhKTogRmx1c2ggdGhlIGRlY29kZXIgdG8gYmUgc2FmZS4KKworICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndyaXRlKTogUGFz
cyBhIGNvbnRlbnQgdHlwZSBhbmQgYSBkZWZhdWx0IGVuY29kaW5nIHRvIAorICAgICAgICB0aGUg
RGVjb2Rlci4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYU0xUUHJvY2Vzc29yOjpjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UpOiBQYXNzIHRoZSBv
dXRwdXQgZG9jdW1lbnQKKyAgICAgICAgTUlNRSB0eXBlLgorICAgICAgICAqIHhtbC94bWxodHRw
cmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVjZWl2ZWRE
YXRhKTogRGl0dG8uCisKIDIwMDYtMDgtMjYgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLgpJbmRleDogV2ViQ29yZS9i
cmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlk
Z2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHJldmlzaW9uIDE2MDUwKQorKysgV2ViQ29yZS9i
cmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAKICsgKE5TU3RyaW5nICopZGVjb2RlRGF0YTooTlNEYXRhICopZGF0YQogewogICAgIEhU
TUxOYW1lczo6aW5pdCgpOyAvLyB0aGlzIG1ldGhvZCBpcyB1c2VkIGZvciBpbXBvcnRpbmcgYm9v
a21hcmtzIGF0IHN0YXJ0dXAsIHNvIEhUTUxOYW1lcyBhcmUgbGlrZWx5IHRvIGJlIHVuaW5pdGlh
bGl6ZWQgeWV0Ci0gICAgRGVjb2RlciogZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgIERlY29k
ZXIqIGRlY29kZXIgPSBuZXcgRGVjb2RlcigidGV4dC9odG1sIik7IC8vIGJvb2ttYXJrIGZpbGVz
IGFyZSBIVE1MCiAgICAgRGVwcmVjYXRlZFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUo
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsK
ICAgICByZXN1bHQgKz0gZGVjb2Rlci0+Zmx1c2goKTsKICAgICBkZWNvZGVyLT5kZXJlZigpOwpJ
bmRleDogV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL3ht
bC94bWxodHRwcmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzOSwxMiArNTM5LDE2IEBA
CiAgICAgICAgIGlmIChtX2VuY29kaW5nLmlzRW1wdHkoKSAmJiBtX2pvYikKICAgICAgICAgICAg
IG1fZW5jb2RpbmcgPSBtX2pvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNldCIpOwogICAgIAotICAg
ICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcjsKLSAgICAgICAgaWYgKCFtX2VuY29kaW5nLmlz
RW1wdHkoKSkKKyAgICAgICAgaWYgKCFtX2VuY29kaW5nLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXIoInRleHQvcGxhaW4iKTsKICAgICAgICAgICAgIG1f
ZGVjb2Rlci0+c2V0RW5jb2RpbmdOYW1lKG1fZW5jb2RpbmcuZGVwcmVjYXRlZFN0cmluZygpLmxh
dGluMSgpLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgLy8gb25seSBhbGxvdyBEZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSBtX3Jl
c3BvbnNlIGlmIGl0J3MgWE1MCi0gICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nTmFt
ZSgiVVRGLTgiLCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpEZWZhdWx0RW5jb2RpbmcgOiBE
ZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXNw
b25zZUlzWE1MKCkpIHsKKyAgICAgICAgICAgIC8vIGFsbG93IERlY29kZXIgdG8gbG9vayBpbnNp
ZGUgdGhlIG1fcmVzcG9uc2UgaWYgaXQncyBYTUwKKyAgICAgICAgICAgIG1fZGVjb2RlciA9IG5l
dyBEZWNvZGVyKCJhcHBsaWNhdGlvbi94bWwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIG1fZGVjb2RlciA9IG5ldyBEZWNvZGVyKCJ0ZXh0L3BsYWluIik7CisgICAgICAgICAgICBt
X2RlY29kZXItPnNldEVuY29kaW5nTmFtZSgiVVRGLTgiLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21I
VFRQSGVhZGVyKTsKKyAgICAgICAgfQogICAgIH0KICAgICBpZiAobGVuID09IDApCiAgICAgICAg
IHJldHVybjsKSW5kZXg6IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEy
LDcgQEAKICAgICB9CiAgICAgcmVzdWx0LT5kZXRlcm1pbmVQYXJzZU1vZGUoZG9jdW1lbnRTb3Vy
Y2UpOyAvLyBNYWtlIHN1cmUgd2UgcGFyc2UgaW4gdGhlIGNvcnJlY3QgbW9kZS4KICAgICAKLSAg
ICBSZWZQdHI8RGVjb2Rlcj4gZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgIFJlZlB0cjxEZWNv
ZGVyPiBkZWNvZGVyID0gbmV3IERlY29kZXIoc291cmNlTUlNRVR5cGUpOwogICAgIGRlY29kZXIt
PnNldEVuY29kaW5nTmFtZShzb3VyY2VFbmNvZGluZy5pc0VtcHR5KCkgPyAiVVRGLTgiIDogc291
cmNlRW5jb2RpbmcubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbVhNTEhlYWRlcik7CiAg
ICAgcmVzdWx0LT5zZXREZWNvZGVyKGRlY29kZXIuZ2V0KCkpOwogICAgIApJbmRleDogV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xv
YWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CiAgICAgY2xhc3MgRG9jTG9hZGVyOworICAgIGNsYXNz
IERlY29kZXI7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IDogcHVibGljIENhY2hl
ZFJlc291cmNlCiAgICAgewpAQCAtNTgsNyArNTksNyBAQAogCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICBTdHJpbmcgbV9zaGVldDsKLSAgICAgICAgVGV4dEVuY29kaW5nIG1fZW5jb2Rpbmc7Cisg
ICAgICAgIFJlZlB0cjxEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRGVj
b2Rlci5jcHAJKHJldmlzaW9uIDE2MDUwKQorKysgV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw3IEBACiAKICAgICBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAbXBpLWhkLm1wZy5kZSkKICAgICBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogCiAgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNCw2ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGVjb2Rlci5oIgogCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJTdHJlYW1pbmdUZXh0RGVjb2Rlci5oIgogI2luY2x1
ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCkBAIC0yNDgsMzMgKzI1MCw0NiBAQAogICAgIHJldHVy
biAoY29kZSk7CiB9CiAKLURlY29kZXI6OkRlY29kZXIoKSAKLSAgOiBtX2VuY29kaW5nKExhdGlu
MUVuY29kaW5nKQotICAsIG1fZGVjb2RlcihTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1f
ZW5jb2RpbmcpKQotICAsIGVuYygwKQorRGVjb2Rlcjo6RGVjb2Rlcihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRFbmNvZGluZ05hbWUpCisgIDogbV9lbmNvZGlu
ZyhkZWZhdWx0RW5jb2RpbmdOYW1lLmlzTnVsbCgpID8gImlzbzg4NTktMSIgOiBkZWZhdWx0RW5j
b2RpbmdOYW1lLmFzY2lpKCkuZGF0YSgpKQorICAsIG1fZW5jb2RpbmdOYW1lKGRlZmF1bHRFbmNv
ZGluZ05hbWUuaXNOdWxsKCkgPyAiaXNvODg1OS0xIiA6IGRlZmF1bHRFbmNvZGluZ05hbWUuYXNj
aWkoKS5kYXRhKCkpCiAgICwgbV90eXBlKERlZmF1bHRFbmNvZGluZykKLSAgLCBib2R5KGZhbHNl
KQotICAsIGJlZ2lubmluZyh0cnVlKQorICAsIG1fcmVhY2hlZEJvZHkoZmFsc2UpCisgICwgbV9j
aGVja2VkRm9yQk9NKGZhbHNlKQogeworICAgIGlmIChtaW1lVHlwZSA9PSAidGV4dC9jc3MiKQor
ICAgICAgICBtX2NvbnRlbnRUeXBlID0gQ1NTOworICAgIGVsc2UgaWYgKG1pbWVUeXBlID09ICJ0
ZXh0L2h0bWwiKQorICAgICAgICBtX2NvbnRlbnRUeXBlID0gSFRNTDsKKyAgICBlbHNlIGlmIChE
T01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkpIHsKKyAgICAgICAgbV9j
b250ZW50VHlwZSA9IFhNTDsKKyAgICAgICAgLy8gRGVzcGl0ZSA4LjUgIlRleHQveG1sIHdpdGgg
T21pdHRlZCBDaGFyc2V0IiBvZiBSRkMgMzAyMywgd2UgZG8gbm90IGFzc3VtZSB1cy1hc2NpaSAK
KyAgICAgICAgLy8gZm9yIHRleHQveG1sLCB0byBtYXRjaCBGaXJlZm94LgorICAgICAgICBtX2Vu
Y29kaW5nID0gVGV4dEVuY29kaW5nKFVURjhFbmNvZGluZyk7CisgICAgICAgIG1fZW5jb2RpbmdO
YW1lID0gIlVURi04IjsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9jb250ZW50VHlwZSA9IFBsYWlu
VGV4dDsKKworICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZSht
X2VuY29kaW5nKSk7CiB9CiAKIERlY29kZXI6On5EZWNvZGVyKCkKIHsKIH0KIAotdm9pZCBEZWNv
ZGVyOjpzZXRFbmNvZGluZ05hbWUoY29uc3QgY2hhciogX2VuY29kaW5nLCBFbmNvZGluZ1NvdXJj
ZSB0eXBlKQordm9pZCBEZWNvZGVyOjpzZXRFbmNvZGluZ05hbWUoY29uc3QgY2hhciogZW5jb2Rp
bmdOYW1lLCBFbmNvZGluZ1NvdXJjZSB0eXBlKQogewotICAgIGVuYyA9IF9lbmNvZGluZzsKLSAg
ICBlbmMgPSBlbmMubG93ZXIoKTsKKyAgICBtX2VuY29kaW5nTmFtZSA9IGVuY29kaW5nTmFtZTsK
KyAgICBtX2VuY29kaW5nTmFtZSA9IG1fZW5jb2RpbmdOYW1lLmxvd2VyKCk7CiAKLSAgICBpZiAo
ZW5jLmlzRW1wdHkoKSkKKyAgICBpZiAobV9lbmNvZGluZ05hbWUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoZW5j
LCB0eXBlID09IEVuY29kaW5nRnJvbU1ldGFUYWcgfHwgdHlwZSA9PSBFbmNvZGluZ0Zyb21YTUxI
ZWFkZXIpOworICAgIFRleHRFbmNvZGluZyBlbmNvZGluZyA9IFRleHRFbmNvZGluZyhtX2VuY29k
aW5nTmFtZSwgdHlwZSA9PSBFbmNvZGluZ0Zyb21NZXRhVGFnIHx8IHR5cGUgPT0gRW5jb2RpbmdG
cm9tWE1MSGVhZGVyIHx8IHR5cGUgPT0gRW5jb2RpbmdGcm9tQ1NTQ2hhcnNldCk7CiAKICAgICAv
LyBpbiBjYXNlIHRoZSBlbmNvZGluZyBkaWRuJ3QgZXhpc3QsIHdlIGtlZXAgdGhlIG9sZCBvbmUg
KGZpeGVzIHNvbWUgc2l0ZXMgc3BlY2lmeWluZyBpbnZhbGlkIGVuY29kaW5ncykKICAgICBpZiAo
ZW5jb2RpbmcuaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVuYyA9IGVuY29kaW5nLm5hbWUoKTsKKyAg
ICAgICAgbV9lbmNvZGluZ05hbWUgPSBlbmNvZGluZy5uYW1lKCk7CiAgICAgICAgIG1fZW5jb2Rp
bmcgPSBlbmNvZGluZzsKICAgICAgICAgbV90eXBlID0gdHlwZTsKICAgICAgICAgbV9kZWNvZGVy
LnNldChTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1fZW5jb2RpbmcpKTsKQEAgLTI4Myw3
ICsyOTgsNyBAQAogCiBjb25zdCBjaGFyKiBEZWNvZGVyOjplbmNvZGluZ05hbWUoKSBjb25zdAog
ewotICAgIHJldHVybiBlbmM7CisgICAgcmV0dXJuIG1fZW5jb2RpbmdOYW1lOwogfQogCiAvLyBP
dGhlciBicm93c2VycyBhbGxvdyBjb21tZW50cyBpbiB0aGUgaGVhZCBzZWN0aW9uLCBzbyB3ZSBu
ZWVkIHRvIGFsc28uCkBAIC0zNTgsMTYgKzM3MywxNiBAQAogRGVwcmVjYXRlZFN0cmluZyBEZWNv
ZGVyOjpkZWNvZGUoY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbikKIHsKICAgICAvLyBDaGVjayBm
b3IgVVRGLTE2IG9yIFVURi04IEJPTSBtYXJrIGF0IHRoZSBiZWdpbm5pbmcsIHdoaWNoIGlzIGEg
c3VyZSBzaWduIG9mIGEgVW5pY29kZSBlbmNvZGluZy4KLSAgICBpbnQgYnVmZmVyTGVuZ3RoID0g
YnVmZmVyLmxlbmd0aCgpOworICAgIGludCBidWZmZXJMZW5ndGggPSBtX2J1ZmZlci5sZW5ndGgo
KTsKICAgICBjb25zdCBpbnQgbWF4aW11bUJPTUxlbmd0aCA9IDM7Ci0gICAgaWYgKGJlZ2lubmlu
ZyAmJiBidWZmZXJMZW5ndGggKyBsZW4gPj0gbWF4aW11bUJPTUxlbmd0aCkgeworICAgIGlmICgh
bV9jaGVja2VkRm9yQk9NICYmIGJ1ZmZlckxlbmd0aCArIGxlbiA+PSBtYXhpbXVtQk9NTGVuZ3Ro
KSB7CiAgICAgICAgIGlmIChtX3R5cGUgIT0gVXNlckNob3NlbkVuY29kaW5nKSB7CiAgICAgICAg
ICAgICAvLyBFeHRyYWN0IHRoZSBmaXJzdCB0aHJlZSBieXRlcy4KICAgICAgICAgICAgIC8vIEhh
bmRsZSB0aGUgY2FzZSB3aGVyZSBzb21lIG9mIGJ5dGVzIGFyZSBhbHJlYWR5IGluIHRoZSBidWZm
ZXIuCiAgICAgICAgICAgICAvLyBUaGUgbGFzdCBieXRlIGlzIGFsd2F5cyBndWFyYW50ZWVkIHRv
IG5vdCBiZSBpbiB0aGUgYnVmZmVyLgogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAq
dWRhdGEgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKWRhdGE7Ci0gICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyIGMxID0gYnVmZmVyTGVuZ3RoID49IDEgPyBidWZmZXJbMF0udW5pY29kZSgpIDogKnVk
YXRhKys7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyID0gYnVmZmVyTGVuZ3RoID49IDIg
PyBidWZmZXJbMV0udW5pY29kZSgpIDogKnVkYXRhKys7CisgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyIGMxID0gYnVmZmVyTGVuZ3RoID49IDEgPyBtX2J1ZmZlclswXS51bmljb2RlKCkgOiAqdWRh
dGErKzsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzIgPSBidWZmZXJMZW5ndGggPj0gMiA/
IG1fYnVmZmVyWzFdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOwogICAgICAgICAgICAgQVNTRVJUKGJ1
ZmZlckxlbmd0aCA8IDMpOwogICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMyA9ICp1ZGF0YTsK
IApAQCAtMzg2LDI0ICs0MDEsNDAgQEAKICAgICAgICAgICAgICAgICBtX3R5cGUgPSBBdXRvRGV0
ZWN0ZWRFbmNvZGluZzsKICAgICAgICAgICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29kaW5n
KGF1dG9EZXRlY3RlZEVuY29kaW5nKTsKICAgICAgICAgICAgICAgICBBU1NFUlQobV9lbmNvZGlu
Zy5pc1ZhbGlkKCkpOwotICAgICAgICAgICAgICAgIGVuYyA9IG1fZW5jb2RpbmcubmFtZSgpOwor
ICAgICAgICAgICAgICAgIG1fZW5jb2RpbmdOYW1lID0gbV9lbmNvZGluZy5uYW1lKCk7CiAgICAg
ICAgICAgICAgICAgbV9kZWNvZGVyLnNldChTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1f
ZW5jb2RpbmcpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBiZWdpbm5pbmcg
PSBmYWxzZTsKKyAgICAgICAgbV9jaGVja2VkRm9yQk9NID0gdHJ1ZTsKKyAgICB9CisgICAgCisg
ICAgYm9vbCBjdXJyZW50Q2h1bmtJbkJ1ZmZlciA9IGZhbHNlOworICAgIAorICAgIGlmIChtX3R5
cGUgPT0gRGVmYXVsdEVuY29kaW5nICYmIG1fY29udGVudFR5cGUgPT0gQ1NTKSB7CisgICAgICAg
IGNvbnN0IGNoYXIqIHB0ciA9IGRhdGE7CisgICAgICAgIGNvbnN0IGNoYXIqIGRhdGFFbmQgPSBk
YXRhICsgbGVuOworICAgICAgICBpZiAobGVuID4gMTAgJiYgcHRyWzBdID09ICdAJyAmJiBwdHJb
MV0gPT0gJ2MnICYmIHB0clsyXSA9PSAnaCcgJiYgcHRyWzNdID09ICdhJyAmJiBwdHJbNF0gPT0g
J3InICYmIAorICAgICAgICAgICAgcHRyWzVdID09ICdzJyAmJiBwdHJbNl0gPT0gJ2UnICYmIHB0
cls3XSA9PSAndCcgJiYgcHRyWzhdID09ICcgJyAmJiBwdHJbOV0gPT0gJyInKSB7CisgICAgICAg
IAorICAgICAgICAgICAgcHRyICs9IDEwOworICAgICAgICAgICAgY29uc3QgY2hhciogY2hhcnNl
dEVuZCA9IHB0cjsKKyAgICAgICAgICAgIHdoaWxlIChjaGFyc2V0RW5kIDwgZGF0YUVuZCAmJiAq
Y2hhcnNldEVuZCAhPSAnIicpCisgICAgICAgICAgICAgICAgKytjaGFyc2V0RW5kOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoY2hhcnNldEVuZCArIDEgPCBkYXRhRW5kICYmICpjaGFy
c2V0RW5kID09ICciJyAmJiAqKGNoYXJzZXRFbmQgKyAxKSA9PSAnOycpIHsKKyAgICAgICAgICAg
ICAgICBEZXByZWNhdGVkQ1N0cmluZyBzdHIocHRyLCBjaGFyc2V0RW5kIC0gcHRyICsgMSk7Cisg
ICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKHN0ciwgRW5jb2RpbmdGcm9tQ1NTQ2hhcnNl
dCk7CisgICAgICAgICAgICB9CiAgICAgfQorICAgICAgICAvLyBzdHlsZXNlZXRzIGFyZSBmZWQg
dG8gdGhlIGRlY29kZXIgaW4gYSBzaW5nbGUgY2h1bmssIHRodXMgbm8gbmVlZCB0byBzdXBwb3J0
IHJlc3VtaW5nCiAgICAgCisgICAgfSBlbHNlIGlmIChtX3R5cGUgPT0gRGVmYXVsdEVuY29kaW5n
ICYmICFtX3JlYWNoZWRCb2R5ICYmIG1fY29udGVudFR5cGUgIT0gUGxhaW5UZXh0KSB7CiAgICAg
Ly8gdGhpcyBpcyBub3QgY29tcGxldGVseSBlZmZpY2llbnQsIHNpbmNlIHRoZSBmdW5jdGlvbiBt
aWdodCBnbwogICAgIC8vIHRocm91Z2ggdGhlIGh0bWwgaGVhZCBzZXZlcmFsIHRpbWVzLi4uCiAK
LSAgICBib29sIGxvb2tGb3JNZXRhVGFnID0gbV90eXBlID09IERlZmF1bHRFbmNvZGluZyAmJiAh
Ym9keTsKKyAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIGN1cnJl
bnRDaHVua0luQnVmZmVyID0gdHJ1ZTsKICAgICAKLSAgICBpZiAobG9va0Zvck1ldGFUYWcpIHsK
LSNpZmRlZiBERUNPREVfREVCVUcKLSAgICAgICAga2REZWJ1Zyg2MDA1KSA8PCAibG9va2luZyBm
b3IgY2hhcnNldCBkZWZpbml0aW9uIiA8PCBlbmRsOwotI2VuZGlmCi0gICAgICAgIHsgLy8gZXh0
cmEgbGV2ZWwgb2YgYnJhY2VzIHRvIGtlZXAgaW5kZW50aW5nIG1hdGNoaW5nIG9yaWdpbmFsIGZv
ciBiZXR0ZXIgZGlmZidpbmcKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsK
ICAgICAgICAgICAgIC8vIHdlIHN0aWxsIGRvbid0IGhhdmUgYW4gZW5jb2RpbmcsIGFuZCBhcmUg
aW4gdGhlIGhlYWQKICAgICAgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgdGFncyBhcmUgYWxsb3dl
ZCBpbiA8aGVhZD46CiAgICAgICAgICAgICAvLyBTQ1JJUFR8U1RZTEV8TUVUQXxMSU5LfE9CSkVD
VHxUSVRMRXxCQVNFCkBAIC00MTgsMTAgKzQ0OSw5IEBACiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGJvb2wgd2l0aGluVGl0bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgY29uc3QgY2hhciAq
cHRyID0gYnVmZmVyLmxhdGluMSgpOwotICAgICAgICAgICAgY29uc3QgY2hhciAqcEVuZCA9IHB0
ciArIGJ1ZmZlci5sZW5ndGgoKTsKLSAgICAgICAgICAgIHdoaWxlKHB0ciAhPSBwRW5kKQotICAg
ICAgICAgICAgeworICAgICAgICBjb25zdCBjaGFyICpwdHIgPSBtX2J1ZmZlci5sYXRpbjEoKTsK
KyAgICAgICAgY29uc3QgY2hhciAqcEVuZCA9IHB0ciArIG1fYnVmZmVyLmxlbmd0aCgpOworICAg
ICAgICB3aGlsZSAocHRyICE9IHBFbmQpIHsKICAgICAgICAgICAgICAgICBpZigqcHRyID09ICc8
JykgewogICAgICAgICAgICAgICAgICAgICBib29sIGVuZCA9IGZhbHNlOwogICAgICAgICAgICAg
ICAgICAgICBwdHIrKzsKQEAgLTQzMywxMCArNDYzLDEyIEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIFhNTCBoZWFkZXIsIHdoaWNoIGNhbiBo
YXZlIGVuY29kaW5nIGluIGl0LgorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBYTUwgZGVjbGFy
YXRpb24sIHdoaWNoIGNhbiBoYXZlIGVuY29kaW5nIGluIGl0LgorICAgICAgICAgICAgICAgIC8v
IFRoaXMgZW5jb2RpbmcgaXMgaG9ub3JlZCBldmVuIGZvciBIVE1MIGRvY3VtZW50cy4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHB0clswXSA9PSAnPycgJiYgcHRyWzFdID09ICd4JyAmJiBwdHJb
Ml0gPT0gJ20nICYmIHB0clszXSA9PSAnbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKmVuZCA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgqZW5k
ICE9ICc+JyAmJiAqZW5kICE9ICdcMCcpIGVuZCsrOworICAgICAgICAgICAgICAgICAgICB3aGls
ZSAoKmVuZCAhPSAnPicgJiYgKmVuZCAhPSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAgICAg
ZW5kKys7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmVuZCA9PSAnXDAnKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgRGVw
cmVjYXRlZENTdHJpbmcgc3RyKHB0ciwgZW5kIC0gcHRyKTsKQEAgLTQ0NCwxNiArNDc2LDIyIEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gZmluZFhNTEVuY29kaW5nKHN0ciwg
bGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgIT0gLTEpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKHN0ci5taWQocG9zLCBsZW4pLCBFbmNv
ZGluZ0Zyb21YTUxIZWFkZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdHlwZSAh
PSBFbmNvZGluZ0Zyb21YTUxIZWFkZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5jb2RpbmdOYW1lKCJVVEYtOCIsIEVuY29kaW5nRnJvbVhNTEhlYWRlcik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBjb250aW51ZSBsb29raW5nIGZvciBhIGNoYXJzZXQgLSBpdCBtYXkg
YmUgc3BlY2lmaWVkIGluIGFuIEhUVFAtRXF1aXYgbWV0YQogICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKHB0clswXSA9PSAwICYmIHB0clsxXSA9PSAnPycgJiYgcHRyWzJdID09IDAgJiYg
cHRyWzNdID09ICd4JyAmJiBwdHJbNF0gPT0gMCAmJiBwdHJbNV0gPT0gJ20nICYmIHB0cls2XSA9
PSAwICYmIHB0cls3XSA9PSAnbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVURi0x
NiB3aXRob3V0IEJPTQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKCgo
cHRyIC0gYnVmZmVyLmxhdGluMSgpKSAlIDIpID8gIlVURi0xNkxFIiA6ICJVVEYtMTZCRSIsIEF1
dG9EZXRlY3RlZEVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1l
KCgocHRyIC0gbV9idWZmZXIubGF0aW4xKCkpICUgMikgPyAiVVRGLTE2TEUiIDogIlVURi0xNkJF
IiwgQXV0b0RldGVjdGVkRW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5k
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAv
LyB0aGUgSFRUUC1FUVVJViBtZXRhIGhhcyBubyBlZmZlY3Qgb24gWEhUTUwKKyAgICAgICAgICAg
ICAgICBpZiAobV9jb250ZW50VHlwZSA9PSBYTUwpCiAgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIGZvdW5kOworCisgICAgICAgICAgICAgICAgaWYgKCpwdHIgPT0gJy8nKSB7CisgICAgICAg
ICAgICAgICAgICAgICsrcHRyOworICAgICAgICAgICAgICAgICAgICBlbmQ9dHJ1ZTsKICAgICAg
ICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmKCpwdHIgPT0gJy8nKSBw
dHIrKywgZW5kPXRydWU7CiAgICAgICAgICAgICAgICAgICAgIGNoYXIgdG1wWzIwXTsKICAgICAg
ICAgICAgICAgICAgICAgaW50IGxlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgK
QEAgLTQ3NCwzMyArNTEyLDQyIEBACiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICBpZiAoIWVuZCAmJiB0YWcgPT0gbWV0YVRhZykgewogICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqIGVuZCA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdo
aWxlKCplbmQgIT0gJz4nICYmICplbmQgIT0gJ1wwJykgZW5kKys7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoICplbmQgPT0gJ1wwJyApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB3
aGlsZSAoKmVuZCAhPSAnPicgJiYgKmVuZCAhPSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgZW5kKys7CisgICAgICAgICAgICAgICAgICAgIGlmICgqZW5kID09ICdcMCcpCisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0
ZWRDU3RyaW5nIHN0ciggcHRyLCAoZW5kLXB0cikrMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHIgPSBzdHIubG93ZXIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSAw
OwogICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoIHBvcyA8ICggaW50ICkgc3RyLmxlbmd0
aCgpICkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAocG9zID0gc3RyLmZpbmQo
ImNoYXJzZXQiLCBwb3MsIGZhbHNlKSkgPT0gLTEpIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKChwb3MgPSBzdHIuZmluZCgiY2hhcnNldCIsIHBvcywgZmFsc2UpKSA9PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3MgKz0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdo
aXRlc3BhY2UuLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCAgcG9zIDwgKGlu
dClzdHIubGVuZ3RoKCkgJiYgc3RyW3Bvc10gPD0gJyAnICkgcG9zKys7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCBwb3MgPT0gKCBpbnQgKXN0ci5sZW5ndGgoKSkgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzdHJbcG9zKytdICE9ICc9JyApIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IChpbnQpc3RyLmxlbmd0
aCgpICYmIHN0cltwb3NdIDw9ICcgJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Mr
KzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RyW3BvcysrXSAhPSAnPScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBwb3MgPCAoIGlu
dCApc3RyLmxlbmd0aCgpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
IHN0cltwb3NdIDw9ICcgJyApIHx8IHN0cltwb3NdID09ICc9JyB8fCBzdHJbcG9zXSA9PSAnIicg
fHwgc3RyW3Bvc10gPT0gJ1wnJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z
Kys7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmQgPwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICggcG9zID09ICggaW50IClzdHIubGVuZ3RoKCkgKSBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgZW5kcG9zID0gcG9zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdoaWxlKCBlbmRwb3MgPCBzdHIubGVuZ3RoKCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAhPSAnIicgJiYg
c3RyW2VuZHBvc10gIT0gJ1wnJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JiYgc3RyW2VuZHBvc10gIT0gJzsnICYmIHN0cltlbmRwb3NdICE9ICc+JykgKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAh
PSAnIicgJiYgc3RyW2VuZHBvc10gIT0gJ1wnJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cltlbmRwb3NdICE9ICc7JyAmJiBzdHJbZW5kcG9zXSAhPSAnPicpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvcysrOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuY29kaW5nTmFtZShzdHIubWlkKHBvcywgZW5kcG9zLXBvcyksIEVuY29kaW5n
RnJvbU1ldGFUYWcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBtX3R5cGUgPT0g
RW5jb2RpbmdGcm9tTWV0YVRhZyApIGdvdG8gZm91bmQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobV90eXBlID09IEVuY29kaW5nRnJvbU1ldGFUYWcpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ290byBmb3VuZDsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgg
ZW5kcG9zID49IHN0ci5sZW5ndGgoKSB8fCBzdHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBv
c10gPT0gJz4nICkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kcG9zID49
IHN0ci5sZW5ndGgoKSB8fCBzdHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBvc10gPT0gJz4n
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gZW5kcG9zICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0K
QEAgLTUwOSw3ICs1NTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyAh
PSB0aXRsZVRhZyAmJiB0YWcgIT0gYmFzZVRhZyAmJiAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZW5kIHx8IHRhZyAhPSBodG1sVGFnKSAmJiAhd2l0aGluVGl0bGUgJiYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodGFnICE9IGhlYWRUYWcpICYmIGlzYWxwaGEodG1w
WzBdKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIG1fcmVhY2hlZEJvZHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAg
Z290byBmb3VuZDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAg
LTUxOCwxMiArNTY1LDEwIEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gRGVw
cmVjYXRlZFN0cmluZzo6bnVsbDsKICAgICAgICAgfQotICAgIH0KIAogIGZvdW5kOgogICAgIC8v
IERvIHRoZSBhdXRvLWRldGVjdCBpZiBvdXIgZGVmYXVsdCBlbmNvZGluZyBpcyBvbmUgb2YgdGhl
IEphcGFuZXNlIG9uZXMuCi0gICAgaWYgKG1fdHlwZSAhPSBVc2VyQ2hvc2VuRW5jb2RpbmcgJiYg
bV90eXBlICE9IEF1dG9EZXRlY3RlZEVuY29kaW5nICYmIG1fZW5jb2RpbmcuaXNKYXBhbmVzZSgp
KQotICAgIHsKKyAgICBpZiAobV90eXBlICE9IFVzZXJDaG9zZW5FbmNvZGluZyAmJiBtX3R5cGUg
IT0gQXV0b0RldGVjdGVkRW5jb2RpbmcgJiYgbV9lbmNvZGluZy5pc0phcGFuZXNlKCkpIHsKICAg
ICAgICAgY29uc3QgY2hhciAqYXV0b0RldGVjdGVkRW5jb2Rpbmc7CiAgICAgICAgIHN3aXRjaCAo
S2FuamlDb2RlOjpqdWRnZShkYXRhLCBsZW4pKSB7CiAgICAgICAgIGNhc2UgS2FuamlDb2RlOjpK
SVM6CkBAIC01MzksNDEgKzU4NCwzNCBAQAogICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2Rp
bmcgPSBOVUxMOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF1
dG9EZXRlY3RlZEVuY29kaW5nICE9IDApIHsKKyAgICAgICAgaWYgKGF1dG9EZXRlY3RlZEVuY29k
aW5nKQogICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKGF1dG9EZXRlY3RlZEVuY29kaW5nLCBB
dXRvRGV0ZWN0ZWRFbmNvZGluZyk7CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICAvLyBpZiB3ZSBz
dGlsbCBoYXZlbid0IGZvdW5kIGFuIGVuY29kaW5nLCBhc3N1bWUgbGF0aW4xCi0gICAgaWYgKCFt
X2VuY29kaW5nLmlzVmFsaWQoKSkKLSAgICB7Ci0gICAgICAgIGlmIChlbmMuaXNFbXB0eSgpKSAK
LSAgICAgICAgICAgIGVuYyA9ICJpc284ODU5LTEiOwotICAgICAgICBtX2VuY29kaW5nID0gVGV4
dEVuY29kaW5nKGVuYyk7Ci0gICAgICAgIC8vIGJlIHN1cmUgbm90IHRvIGNyYXNoCi0gICAgICAg
IGlmICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIGVuYyA9ICJpc284ODU5
LTEiOworICAgIC8vIElmIHdlIHN0aWxsIGhhdmVuJ3QgZm91bmQgYW4gZW5jb2RpbmcsIGFzc3Vt
ZSBsYXRpbjEKKyAgICAvLyAodGhpcyBjYW4gaGFwcGVuIGlmIGFuIGVtcHR5IG5hbWUgaXMgcGFz
c2VkIGZyb20gb3V0c2lkZSkuCisgICAgaWYgKG1fZW5jb2RpbmdOYW1lLmlzRW1wdHkoKSB8fCAh
bV9lbmNvZGluZy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSAiaXNvODg1
OS0xIjsKICAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2Rp
bmcpOwogICAgICAgICB9CiAgICAgICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29k
ZXI6OmNyZWF0ZShtX2VuY29kaW5nKSk7Ci0gICAgfQorCiAgICAgRGVwcmVjYXRlZFN0cmluZyBv
dXQ7CiAKLSAgICBpZiAoIWJ1ZmZlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFsb29rRm9y
TWV0YVRhZykKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKLSAgICAgICAg
b3V0ID0gbV9kZWNvZGVyLT50b1VuaWNvZGUoYnVmZmVyLmxhdGluMSgpLCBidWZmZXIubGVuZ3Ro
KCkpOwotICAgICAgICBidWZmZXIudHJ1bmNhdGUoMCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAo
IW1fYnVmZmVyLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWN1cnJlbnRDaHVua0luQnVmZmVy
KQorICAgICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIG91dCA9
IG1fZGVjb2Rlci0+dG9Vbmljb2RlKG1fYnVmZmVyLmxhdGluMSgpLCBtX2J1ZmZlci5sZW5ndGgo
KSk7CisgICAgICAgIG1fYnVmZmVyLnRydW5jYXRlKDApOworICAgIH0gZWxzZQogICAgICAgICBv
dXQgPSBtX2RlY29kZXItPnRvVW5pY29kZShkYXRhLCBsZW4pOwotICAgIH0KIAogICAgIHJldHVy
biBvdXQ7CiB9CiAKIERlcHJlY2F0ZWRTdHJpbmcgRGVjb2Rlcjo6Zmx1c2goKSBjb25zdAogewot
ICAgIHJldHVybiBtX2RlY29kZXItPnRvVW5pY29kZShidWZmZXIubGF0aW4xKCksIGJ1ZmZlci5s
ZW5ndGgoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+dG9Vbmljb2RlKG1fYnVmZmVy
LmxhdGluMSgpLCBtX2J1ZmZlci5sZW5ndGgoKSwgdHJ1ZSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkocmV2
aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNs
aWVudFdhbGtlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJMb2FkZXJGdW5j
dGlvbnMuaCIKICNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBA
IC00MCwyMCArNDEsMTcgQEAKIAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVT
aGVldChEb2NMb2FkZXIqIGRsLCBjb25zdCBTdHJpbmcgJnVybCwgQ2FjaGVQb2xpY3kgY2FjaGVQ
b2xpY3ksIHRpbWVfdCBfZXhwaXJlRGF0ZSwgY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgY2hhcnNl
dCkKICAgICA6IENhY2hlZFJlc291cmNlKHVybCwgQ1NTU3R5bGVTaGVldCwgY2FjaGVQb2xpY3ks
IF9leHBpcmVEYXRlKQotICAgICwgbV9lbmNvZGluZyhjaGFyc2V0LmxhdGluMSgpKQorICAgICwg
bV9kZWNvZGVyKG5ldyBEZWNvZGVyKCJ0ZXh0L2NzcyIpKQogewogICAgIC8vIEl0J3MgY3NzIHdl
IHdhbnQuCiAgICAgc2V0QWNjZXB0KCJ0ZXh0L2NzcyIpOwogICAgIC8vIGxvYWQgdGhlIGZpbGUK
ICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQoZGwsIHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRp
bmcgPSB0cnVlOwotICAgIGlmICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpCi0gICAgICAgIG1fZW5j
b2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwogfQogCiBDYWNoZWRDU1NTdHls
ZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyAmdXJsLCBjb25zdCBEZXBy
ZWNhdGVkU3RyaW5nICZzdHlsZXNoZWV0X2RhdGEpCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmws
IENTU1N0eWxlU2hlZXQsIENhY2hlUG9saWN5VmVyaWZ5LCAwLCBzdHlsZXNoZWV0X2RhdGEubGVu
Z3RoKCkpCi0gICAgLCBtX2VuY29kaW5nKEludmFsaWRFbmNvZGluZykKIHsKICAgICBtX2xvYWRp
bmcgPSBmYWxzZTsKICAgICBtX3N0YXR1cyA9IFBlcnNpc3RlbnQ7CkBAIC04MiwxMSArODAsOCBA
QAogCiB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OnNldENoYXJzZXQoY29uc3QgRGVwcmVjYXRl
ZFN0cmluZyYgY2hzKQogewotICAgIGlmICghY2hzLmlzRW1wdHkoKSkgewotICAgICAgICBUZXh0
RW5jb2RpbmcgZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoY2hzLmxhdGluMSgpKTsKLSAgICAgICAg
aWYgKGVuY29kaW5nLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBlbmNvZGlu
ZzsKLSAgICB9CisgICAgaWYgKCFjaHMuaXNFbXB0eSgpKQorICAgICAgICBtX2RlY29kZXItPnNl
dEVuY29kaW5nTmFtZShjaHMubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFk
ZXIpOwogfQogCiB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRhdGEoVmVjdG9yPGNoYXI+JiBk
YXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKQEAgLTk1LDcgKzkwLDggQEAKICAgICAgICAgcmV0
dXJuOwogCiAgICAgc2V0U2l6ZShkYXRhLnNpemUoKSk7Ci0gICAgbV9zaGVldCA9IFN0cmluZyht
X2VuY29kaW5nLnRvVW5pY29kZShkYXRhLmRhdGEoKSwgc2l6ZSgpKSk7CisgICAgbV9zaGVldCA9
IG1fZGVjb2Rlci0+ZGVjb2RlKGRhdGEuZGF0YSgpLCBzaXplKCkpOworICAgIG1fc2hlZXQgKz0g
bV9kZWNvZGVyLT5mbHVzaCgpOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNrTm90
aWZ5KCk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkocmV2
aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogCiBDYWNoZWRYU0xTdHlsZVNoZWV0OjpD
YWNoZWRYU0xTdHlsZVNoZWV0KERvY0xvYWRlciogZGwsIGNvbnN0IFN0cmluZyAmdXJsLCBDYWNo
ZVBvbGljeSBjYWNoZVBvbGljeSwgdGltZV90IF9leHBpcmVEYXRlKQogICAgIDogQ2FjaGVkUmVz
b3VyY2UodXJsLCBYU0xTdHlsZVNoZWV0LCBjYWNoZVBvbGljeSwgX2V4cGlyZURhdGUpCisgICAg
LCBtX2RlY29kZXIobmV3IERlY29kZXIoInRleHQveHNsIikpCiB7CiAgICAgLy8gSXQncyBYTUwg
d2Ugd2FudC4KICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWNjZXB0IG1vcmUgZ2VuZXJhbCB4
bWwgZm9ybWF0cyAqLyoreG1sLCBpbWFnZS9zdmcreG1sIGZvciBleGFtcGxlLgpAQCAtNTAsNyAr
NTEsNiBAQAogICAgIC8vIGxvYWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQo
ZGwsIHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIG1fZGVjb2RlciA9
IG5ldyBEZWNvZGVyOwogfQogCiB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OnJlZihDYWNoZWRS
ZXNvdXJjZUNsaWVudCAqYykKQEAgLTgyLDYgKzgyLDcgQEAKIAogICAgIHNldFNpemUoZGF0YS5z
aXplKCkpOwogICAgIG1fc2hlZXQgPSBTdHJpbmcobV9kZWNvZGVyLT5kZWNvZGUoZGF0YS5kYXRh
KCksIHNpemUoKSkpOworICAgIG1fc2hlZXQgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogICAgIG1f
bG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNrTm90aWZ5KCk7CiB9CkluZGV4OiBXZWJDb3JlL2xv
YWRlci9EZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5oCShy
ZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDAsMTEgKzQxLDEyIEBACiAgICAgICAgIEF1dG9EZXRlY3RlZEVu
Y29kaW5nLAogICAgICAgICBFbmNvZGluZ0Zyb21YTUxIZWFkZXIsCiAgICAgICAgIEVuY29kaW5n
RnJvbU1ldGFUYWcsCisgICAgICAgIEVuY29kaW5nRnJvbUNTU0NoYXJzZXQsCiAgICAgICAgIEVu
Y29kaW5nRnJvbUhUVFBIZWFkZXIsCiAgICAgICAgIFVzZXJDaG9zZW5FbmNvZGluZwogICAgIH07
CiAgICAgCi0gICAgRGVjb2RlcigpOworICAgIERlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0RW5jb2RpbmdOYW1lID0gU3RyaW5nKCkpOwogICAgIH5E
ZWNvZGVyKCk7CiAKICAgICB2b2lkIHNldEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGlu
ZywgRW5jb2RpbmdTb3VyY2UgdHlwZSk7CkBAIC01NiwxOSArNTgsMjcgQEAKICAgICBEZXByZWNh
dGVkU3RyaW5nIGRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKTsKICAgICBEZXByZWNh
dGVkU3RyaW5nIGZsdXNoKCkgY29uc3Q7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CisgICAgZW51
bSBDb250ZW50VHlwZSB7CisgICAgICAgIEhUTUwsCisgICAgICAgIFhNTCwKKyAgICAgICAgQ1NT
LAorICAgICAgICBQbGFpblRleHQgLy8gRG8gbm90IGxvb2sgaW5zaWRlIHRoZSBkb2N1bWVudCAo
ZXF1aXZhbGVudCB0byBkaXJlY3RseSB1c2luZyBTdHJlYW1pbmdUZXh0RGVjb2RlcikKKyAgICB9
OworCiAgICAgLy8gZW5jb2RpbmcgdXNlZCBmb3IgZGVjb2RpbmcuIGRlZmF1bHQgaXMgTGF0aW4x
LgogICAgIFRleHRFbmNvZGluZyBtX2VuY29kaW5nOworICAgIENvbnRlbnRUeXBlIG1fY29udGVu
dFR5cGU7CiAgICAgT3duUHRyPFN0cmVhbWluZ1RleHREZWNvZGVyPiBtX2RlY29kZXI7Ci0gICAg
RGVwcmVjYXRlZENTdHJpbmcgZW5jOworICAgIERlcHJlY2F0ZWRDU3RyaW5nIG1fZW5jb2RpbmdO
YW1lOwogICAgIEVuY29kaW5nU291cmNlIG1fdHlwZTsKIAogICAgIC8vIE91ciB2ZXJzaW9uIG9m
IERlcHJlY2F0ZWRTdHJpbmcgd29ya3Mgd2VsbCBmb3IgYWxsLTgtYml0IGNoYXJhY3RlcnMsIGFu
ZCBhbGxvd3MgbnVsbCBjaGFyYWN0ZXJzLgogICAgIC8vIFRoaXMgd29ya3MgYmV0dGVyIHRoYW4g
RGVwcmVjYXRlZENTdHJpbmcgd2hlbiB0aGVyZSBhcmUgbnVsbCBjaGFyYWN0ZXJzIGludm9sdmVk
LgotICAgIERlcHJlY2F0ZWRTdHJpbmcgYnVmZmVyOworICAgIERlcHJlY2F0ZWRTdHJpbmcgbV9i
dWZmZXI7CiAKLSAgICBib29sIGJvZHk7Ci0gICAgYm9vbCBiZWdpbm5pbmc7CisgICAgYm9vbCBt
X3JlYWNoZWRCb2R5OworICAgIGJvb2wgbV9jaGVja2VkRm9yQk9NOwogfTsKIAogfQpJbmRleDog
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJD
b3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcg
KzQ5LDcgQEAKICAgICAvLyBMb2FkIHRoZSBmaWxlCiAgICAgQ2FjaGU6OmxvYWRlcigpLT5sb2Fk
KGRsLCB0aGlzLCBmYWxzZSk7CiAgICAgbV9sb2FkaW5nID0gdHJ1ZTsKLSAgICBtX2RlY29kZXIg
PSBuZXcgRGVjb2RlcjsKKyAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcigiYXBwbGljYXRpb24v
eG1sIik7CiB9CiAKIENhY2hlZFhCTERvY3VtZW50Ojp+Q2FjaGVkWEJMRG9jdW1lbnQoKQpJbmRl
eDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY0MiwxMiArNjQyLDEwIEBACiAgICAgfQogICAgIAogICAgIGlmICghZC0+
bV9kZWNvZGVyKSB7Ci0gICAgICAgIGQtPm1fZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgICAg
ICBkLT5tX2RlY29kZXIgPSBuZXcgRGVjb2RlcihkLT5tX3JlcXVlc3QubV9yZXNwb25zZU1JTUVU
eXBlLCBzZXR0aW5ncygpLT5lbmNvZGluZygpLmxhdGluMSgpKTsKICAgICAgICAgaWYgKCFkLT5t
X2VuY29kaW5nLmlzTnVsbCgpKQogICAgICAgICAgICAgZC0+bV9kZWNvZGVyLT5zZXRFbmNvZGlu
Z05hbWUoZC0+bV9lbmNvZGluZy5sYXRpbjEoKSwKICAgICAgICAgICAgICAgICBkLT5tX2hhdmVF
bmNvZGluZyA/IERlY29kZXI6OlVzZXJDaG9zZW5FbmNvZGluZyA6IERlY29kZXI6OkVuY29kaW5n
RnJvbUhUVFBIZWFkZXIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkLT5tX2RlY29kZXIt
PnNldEVuY29kaW5nTmFtZShzZXR0aW5ncygpLT5lbmNvZGluZygpLmxhdGluMSgpLCBEZWNvZGVy
OjpEZWZhdWx0RW5jb2RpbmcpOwogCiAgICAgICAgIGlmIChkLT5tX2RvYykKICAgICAgICAgICAg
IGQtPm1fZG9jLT5zZXREZWNvZGVyKGQtPm1fZGVjb2Rlci5nZXQoKSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjA1MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQxIEBACisyMDA2LTA4LTI3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAbnlwb3Au
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzIGZvcjoKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MjAKKyAgICAgICAgU2hvdWxkIG9ubHkgaG9ub3IgZW5jb2RpbmcgZnJvbSA8
bWV0YT4gaW4gSFRNTAorCisgICAgICAgIC0gaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzgzCisgICAgICAgIEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0
IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzCisgICAgICAgIFVURi04
IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQKKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxs
YS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTUKKyAgICAgICAgQ1NTMjogQGNo
YXJzZXQgaXMgbm90IHN1cHBvcnRlZAorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3MtY2hh
cnNldC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9j
c3MtY2hhcnNldC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
Y3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVkLnBuZzogQWRkZWQu
CisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1vdmVycmlkZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUu
Y3NzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGlu
Zy54aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1s
LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwtNC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwuaHRtbDogQWRkZWQuCisKIDIw
MDYtMDgtMjUgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZWQgcmVzdWx0cyBmb3IgYWRkaXRpb24gb2YgLXdlYmtpdC10ZXh0LXNlY3VyaXR5LgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC5jaGVja3N1
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4
cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9jc3MtY2hhcnNldC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBA
QAorNGZmOTNkYjlmZGVjOWM5ZDM1OWQyNDc1ODA0YTIwNWQKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJy
aWRlLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVj
dGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis4YTM3MTU2NjkzMDI3YmZm
NjkwY2E0YzVkZjdkMjk1NApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2Rpbmcu
eGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQt
eGh0bWwtZW5jb2RpbmcueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorPHA+VGVzdCBk
ZWZhdWx0IFhIVE1MIGVuY29kaW5nIChpbiB0aGUgYWJzZW5jZSBvZiBhbiBYTUwgZGVjbGFyYXRp
b24pLjwvcD4KKworPHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJz
ZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1
bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAoc2hvdWxkIGJlIFVURi04KSI7Cis8L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIHRleHQveG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wc2V1ZG8teG1sLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iS09JOC1SIiA/PgorPCFET0NUWVBFIGh0bWwg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIi8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+Ogor
QW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0
bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKworPHAg
aWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAo
ZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJT
ZXQpICsgIiAoc2hvdWxkIGJlIHdpbmRvd3MtMTI1MSkiOworPC9zY3JpcHQ+CisKKzwvYm9keT4K
KzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC00Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4
dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNz
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitAY2hhcnNldCAidXRmLTgiOworI3Rlc3Q6
YmVmb3JlIHsgY29udGVudDogIlNV0KHQodCVU1MiOyB9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzcwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6
IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2NzcwoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1v
dmVycmlkZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHg1NzYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1M3gxOAorICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDUzOiAiVGVzdCBmb3IgIgorICAgICAgICBSZW5kZXJJbmxpbmUg
e0F9IGF0ICgwLDApIHNpemUgNjh4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg1MywwKSBzaXplIDY4eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNTMsMCkgd2lkdGggNjg6ICJidWcgMTAxNTUiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTIxLDApIHNpemUgMjE2eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMSwwKSB3
aWR0aCAyMTY6ICI6IENTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQiCisgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDc2NXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDc2NTogIkNTUyAyLjEgc2F5cyB0aGF0IEBjaGFyc2V0IGhhcyBhIGhpZ2hlciBwcmlvcml0
eSB0aGFuIDxsaW5rIGNoYXJzZXQ9XCJcIj4sIGJ1dCBGaXJlZm94IHdvcmtzIGluIGFuIG9wcG9z
aXRlIHdheSwgYW5kIHNvIGRvIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAy
MzogIndlLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw4Nikgc2l6ZSA3ODR4MTgKKyAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNzF4MTgKKyAgICAg
ICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNzF4MTgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDcxOiAiU1VceHs0MjF9XHh7NDIxfVx4ezQxNX1TUyIKClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJp
ZGUtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQv
cGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0
dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIvPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjAiPmJ1ZyA1NjIwPC9hPjoK
K1Nob3VsZCBvbmx5IGhvbm9yIGVuY29kaW5nIGZyb20gJmx0O21ldGE+IGluIEhUTUw8L3A+CisK
KzxwIGlkPSJyZXN1bHQiIC8+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJDaGFyc2V0OiAiICsgCisg
ICAgKGRvY3VtZW50LmNoYXJzZXQgPyBkb2N1bWVudC5jaGFyc2V0IDogZG9jdW1lbnQuY2hhcmFj
dGVyU2V0KSArICIgKHNob3VsZCBiZSBVVEYtOCkiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwv
aHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0
YS1pbi14aHRtbC54aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0
L3htbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJz
ZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9jc3MtY2hhcnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1NzYKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1M3gxOAorICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUzOiAiVGVzdCBmb3IgIgorICAgICAgICBSZW5kZXJJ
bmxpbmUge0F9IGF0ICgwLDApIHNpemUgNjh4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MywwKSBzaXplIDY4eDE4CisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNTMsMCkgd2lkdGggNjg6ICJidWcgMTAxNTUiCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTIxLDApIHNpemUgMjE2eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEy
MSwwKSB3aWR0aCAyMTY6ICI6IENTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQiCisgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlcklu
bGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDcxeDE4CisgICAgICAgICAgUmVuZGVyVGV4
dCBhdCAoMCwwKSBzaXplIDcxeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA3MTogIlNVXHh7NDIxfVx4ezQyMX1ceHs0MTV9U1MiCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5
bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFy
c2V0LW92ZXJyaWRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9jc3MtY2hhcnNldC1vdmVycmlkZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1vdmVycmlkZS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIwIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy1jaGFyc2V0
LmNzcyIgY2hhcnNldD0idXRmLTgiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU1
Ij5idWcgMTAxNTU8L2E+OgorQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBvcnRlZDwvcD4KKzxw
PkNTUyAyLjEgc2F5cyB0aGF0IEBjaGFyc2V0IGhhcyBhIGhpZ2hlciBwcmlvcml0eSB0aGFuICZs
dDtsaW5rIGNoYXJzZXQ9IiI+LAorYnV0IEZpcmVmb3ggd29ya3MgaW4gYW4gb3Bwb3NpdGUgd2F5
LCBhbmQgc28gZG8gd2UuPC9wPgorPHAgaWQ9InRlc3QiPjwvcD4KKworPHNjcmlwdD4KKy8vIER1
bXBSZW5kZXJUcmVlIGRvZXNuJ3QgZHVtcCBnZW5lcmF0ZWQgY29udGVudCA6KAorLy9pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorLy8gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUuaHRt
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4t
eGh0bWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Rlc3QgZm9y
IGJ1ZyA1NjIwOiBTaG91bGQgb25seSBob25vciBlbmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1M
CisKK0NoYXJzZXQ6IFVURi04IChzaG91bGQgYmUgVVRGLTgpCisKKwoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4cGVjdGVkLnR4
dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2
bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzgzOiBBbiBYTUwgZGVjbGFyYXRp
b24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYt
OCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKK0NoYXJzZXQ6IEtPSTgtUiAoc2hvdWxk
IGJlIEtPSTgtUikKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVk
LnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LW92ZXJyaWRlLWV4cGVjdGVkLnBuZwpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgor
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy1jaGFy
c2V0LmNzcyI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTUiPmJ1ZyAxMDE1NTwv
YT46CitDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkPC9wPgorCis8cCBpZD0idGVzdCI+
PC9wPgorCis8c2NyaXB0PgorLy8gRHVtcFJlbmRlclRyZWUgZG9lc24ndCBkdW1wIGdlbmVyYXRl
ZCBjb250ZW50IDooCisvL2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisvLyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9j
c3MtY2hhcnNldC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQv
aHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTIuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0y
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9ImtvaTgtciIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+Ogor
QW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0
bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKworPHAg
aWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAo
ZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJT
ZXQpICsgIiAoc2hvdWxkIGJlIEtPSTgtUikiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRv
LXhtbC0yLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1s
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC5w
bmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlw
ZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC5wbmcKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0IGZvciBidWcgOTc4MzogQW4gWE1M
IGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJp
Z2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCitDaGFyc2V0OiBLT0k4
LVIgKHNob3VsZCBiZSBLT0k4LVIpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBz
dm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0
aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0
IGZvciBidWcgOTc4MzogQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5j
b2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1
bWVudAorCitDaGFyc2V0OiBJU08tODg1OS0xIChzaG91bGQgYmUgeW91ciBicm93c2VyIGRlZmF1
bHQgb25lKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1l
bmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUgQEAKK1Rlc3QgZGVmYXVsdCBYSFRNTCBlbmNvZGluZyAoaW4gdGhlIGFic2Vu
Y2Ugb2YgYW4gWE1MIGRlY2xhcmF0aW9uKS4KKworQ2hhcnNldDogVVRGLTggKHNob3VsZCBiZSBV
VEYtOCkKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtb3ZlcnJpZGUu
Y3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQt
b3ZlcnJpZGUuY3NzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9j
c3MtY2hhcnNldC1vdmVycmlkZS5jc3MJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorQGNo
YXJzZXQgIndpbmRvd3MtMTI1MSI7CisjdGVzdDpiZWZvcmUgeyBjb250ZW50OiAiU1XQodCh0JVT
UyI7IH0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3Nz
LWNoYXJzZXQtb3ZlcnJpZGUuY3NzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IHRleHQvY3NzCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
My5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8t
eG1sLTMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFu
c2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3RyYW5z
aXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9S09JOC1SIiBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiLz4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEg
aHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzgz
Ij5idWcgOTc4MzwvYT46CitBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBl
bmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRv
Y3VtZW50PC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hh
cnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRv
Y3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgS09JOC1SKSI7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVk
by14bWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVk
by14bWwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNl
dWRvLXhtbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRy
YW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQvdHJh
bnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCI+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+OgorQW4gWE1MIGRlY2xh
cmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMg
VVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKworPHAgaWQ9InJlc3VsdCIg
Lz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQuY2hh
cnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAoc2hv
dWxkIGJlIHlvdXIgYnJvd3NlciBkZWZhdWx0IG9uZSkiOworPC9zY3JpcHQ+CisKKzwvYm9keT4K
KzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQv
aHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC00LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14
bWwtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBA
QAorVGVzdCBmb3IgYnVnIDk3ODM6IEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxp
Y2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhU
TUwgZG9jdW1lbnQKKworQ2hhcnNldDogd2luZG93cy0xMjUxIChzaG91bGQgYmUgd2luZG93cy0x
MjUxKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1
ZG8teG1sLTQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10278</attachid>
            <date>2006-08-28 11:15:44 -0700</date>
            <delta_ts>2006-08-31 21:36:37 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>5620r2_patch.txt</filename>
            <type>text/plain</type>
            <size>52717</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MDcyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMDYtMDgtMjggIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHMgZm9yOgorICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMAorICAgICAgICBTaG91bGQgb25seSBob25vciBl
bmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEu
b3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMKKyAgICAgICAgQW4gWE1MIGRlY2xh
cmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMK
KyAgICAgICAgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCisgICAgICAgIC0g
aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NQorICAg
ICAgICBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAgKiBmYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9jc3MtY2hhcnNldC5jc3M6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
Y3NzLWNoYXJzZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3MtY2hh
cnNldC1ldmlsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9j
c3MtY2hhcnNldC1ldmlsLmNzczogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jc3Mt
Y2hhcnNldC1ldmlsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvZGVmYXVs
dC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5j
b2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy9wc2V1ZG8teG1sLTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Bz
ZXVkby14bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Bz
ZXVkby14bWwuaHRtbDogQWRkZWQuCisKIDIwMDYtMDgtMjcgIFJvYiBCdWlzICA8YnVpc0BrZGUu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyAx
MDE1NTogQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBvcnRlZAorCitDU1MgMi4xIHNheXMgdGhh
dCBAY2hhcnNldCAiIG11c3QgYmUgd3JpdHRlbiBsaXRlcmFsbHksIGJ1dCBGaXJlZm94IGFuZCBJ
RSBhbGxvdyBleHRyYSBzcGFjZXMgYW5kIHNpbmdsZSBxdW90ZXMuCisKK1NV0KHQodCVU1MKKwor
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFy
c2V0LWV2aWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC5jc3MKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1ldmlsLmNzcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC5jc3MJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorQGNoYXJzZXQJICAndXRmLTgnIAk7CisjZHVtbXk6
YmVmb3JlIHsgY29udGVudDogIlNV0KHQodCVU1MiOyB9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuY3NzCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvY3NzCgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9jc3MtY2hhcnNldC1ldmlsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC1ldmlsLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
Lz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3Mt
Y2hhcnNldC1ldmlsLmNzcyI+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTU1Ij5idWcgMTAxNTU8L2E+OgorQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBv
cnRlZDwvcD4KKworPHA+Q1NTIDIuMSBzYXlzIHRoYXQgPGNvZGU+QGNoYXJzZXQgIjwvY29kZT4g
bXVzdCBiZSB3cml0dGVuIGxpdGVyYWxseSwgCitidXQgRmlyZWZveCBhbmQgSUUgYWxsb3cgZXh0
cmEgc3BhY2VzIGFuZCBzaW5nbGUgcXVvdGVzLjwvcD4KKworPHAgaWQ9InJlc3VsdCI+PC9wPgor
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgIHRyeSB7
CisgICAgdGV4dCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLnJ1bGVzWzBdLnN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoImNvbnRlbnQiKTsKKyAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC8iL2csICIi
KTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikudGV4dENvbnRlbnQgPSB0
ZXh0OworICB9IGNhdGNoIChleCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS50ZXh0Q29udGVudCA9IGV4LnRvU3RyaW5nKCk7CisgIH0KK30KKzwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1j
aGFyc2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyAxMDE1NTogQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1
cHBvcnRlZAorCitUZXN0IHRoYXQgQGNoYXJzZXQgd29ya3MgYW5kIHRoYXQgaW5kZXhlZCBydWxl
IGFjY2VzcyB2aWEgYW4gSUUtc3BlY2lmaWMgcnVsZXMgcHJvcGVydHkgZG9lcyBub3QgdGFrZSBp
dCBpbnRvIGFjY291bnQuCisKK1NVQ0NFU1MKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV4cGVjdGVkLnR4dApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUK
ICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0
LmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0
LmNzcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJz
ZXQuY3NzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0BjaGFyc2V0ICJ1dGYtOCI7Cisj
ZHVtbXk6YmVmb3JlIHsgY29udGVudDogIlNV0KHQodCVU1MiOyB9CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzcwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2NzcwoKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PXdpbmRvd3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIi8+CisgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iY3NzLWNoYXJzZXQuY3NzIiBj
aGFyc2V0PSJ3aW5kb3dzLTEyNTEiPgorICAgIDwhLS0gVGhlIGRvY3VtZW50IGNoYXJzZXQgYW5k
IGxpbmsgY2hhcnNldCBoYXZlIGxvd2VyIHByaW9yaXR5IHRoYW4gCisgICAgICAgICBAY2hhcnNl
dCwgc28gdGhleSBzaG91bGRuJ3QgYWZmZWN0IGFueXRoaW5nLiAtLT4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTUiPmJ1ZyAxMDE1NTwvYT46CitDU1My
OiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkPC9wPgorPHA+VGVzdCB0aGF0IDxjb2RlPkBjaGFy
c2V0PC9jb2RlPiB3b3JrcyBhbmQgdGhhdCBpbmRleGVkIHJ1bGUgYWNjZXNzIHZpYSAKK2FuIElF
LXNwZWNpZmljIDxjb2RlPnJ1bGVzPC9jb2RlPiBwcm9wZXJ0eSBkb2VzIG5vdCB0YWtlIGl0IGlu
dG8gYWNjb3VudC48L3A+CisKKzxwIGlkPSJyZXN1bHQiPjwvcD4KKworPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICB0cnkgeworICAgIHRleHQgPSBkb2N1
bWVudC5zdHlsZVNoZWV0c1swXS5ydWxlc1swXS5zdHlsZS5jc3NUZXh0OworICAgIGlmICh0ZXh0
Lm1hdGNoKCcuKlNV0dHFU1MuKicpKQorICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJTVUNDRVNT
IjsKKyAgICBlbHNlCisgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIkZBSUxVUkU6ICIgKyB0ZXh0
OworICB9IGNhdGNoIChleCkgeworICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiRkFJTFVSRTogIiAr
IGV4OworICB9Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29k
aW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNSBAQAorVGVzdCBkZWZhdWx0IFhIVE1MIGVuY29kaW5nIChpbiB0aGUgYWJzZW5jZSBv
ZiBhbiBYTUwgZGVjbGFyYXRpb24pLgorCitDaGFyc2V0OiBVVEYtOCAoc2hvdWxkIGJlIFVURi04
KQorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVm
YXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnho
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRt
bC1lbmNvZGluZy54aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NiBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGJvZHk+
Cis8cD5UZXN0IGRlZmF1bHQgWEhUTUwgZW5jb2RpbmcgKGluIHRoZSBhYnNlbmNlIG9mIGFuIFhN
TCBkZWNsYXJhdGlvbikuPC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhU
TUwgPSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hh
cnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgVVRGLTgpIjsKKzwv
c2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmcueGh0bWwKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC94bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Rlc3QgZm9yIGJ1ZyA1NjIwOiBT
aG91bGQgb25seSBob25vciBlbmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKK0NoYXJzZXQ6
IFVURi04IChzaG91bGQgYmUgVVRGLTgpCisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4cGVjdGVkLnR4dApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUK
ICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0
bWwueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWlu
LXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9t
ZXRhLWluLXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv
RFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2lu
ZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiLz4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD01NjIwIj5idWcgNTYyMDwvYT46CitTaG91bGQgb25seSBob25vciBlbmNvZGlu
ZyBmcm9tICZsdDttZXRhPiBpbiBIVE1MPC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9j
dW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgVVRG
LTgpIjsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWwKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC94bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzgzOiBBbiBY
TUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0
cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKK1Rlc3QgdGhhdCBh
biBYTUwgZGVjbGFyYXRpb24gd2l0aCBhbiBleHBsaWNpdCBlbmNvZGluZyBpcyBzdGlsbCBob25v
cmVkLiBUaGlzIGlzIHdoYXQgRmlyZWZveCAxLjUgYW5kIFNhZmFyaSAyLjAgZG8sIHVubGlrZSBX
aW5JRSA2LgorCitDaGFyc2V0OiBLT0k4LVIgKHNob3VsZCBiZSBLT0k4LVIpCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3Rl
ZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1l
OiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wc2V1ZG8teG1sLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BzZXVkby14bWwtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0ia29pOC1yIiA/PgorPGh0bWw+Cis8Ym9k
eT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+OgorQW4gWE1MIGRlY2xhcmF0aW9uIHdp
dGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5j
b2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKzxwPlRlc3QgdGhhdCBhbiBYTUwgZGVjbGFy
YXRpb24gPGI+d2l0aDwvYj4gYW4gZXhwbGljaXQgZW5jb2RpbmcgaXMgc3RpbGwgaG9ub3JlZC4g
VGhpcyBpcyB3aGF0IEZpcmVmb3ggMS41IGFuZCBTYWZhcmkgMi4wIGRvLCB1bmxpa2UgV2luSUUg
Ni48L3A+Cis8cCBpZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDog
IiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50
LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgS09JOC1SKSI7Cis8L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wc2V1ZG8teG1sLTIuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
My1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzgzOiBBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBh
biBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBp
biBhbiBIVE1MIGRvY3VtZW50CisKK0NoYXJzZXQ6IEtPSTgtUiAoc2hvdWxkIGJlIEtPSTgtUikK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC0zLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0
L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93
d3cudzMub3JnL1RSL3hodG1sMS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1LT0k4LVIiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRh
cndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMiPmJ1ZyA5NzgzPC9hPjoKK0FuIFhNTCBkZWNs
YXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJz
IFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQ8L3A+CisKKzxwIGlkPSJyZXN1bHQi
IC8+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJDaGFyc2V0OiAiICsgCisgICAgKGRvY3VtZW50LmNo
YXJzZXQgPyBkb2N1bWVudC5jaGFyc2V0IDogZG9jdW1lbnQuY2hhcmFjdGVyU2V0KSArICIgKHNo
b3VsZCBiZSBLT0k4LVIpIjsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC00LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
NC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVn
IDk3ODM6IEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGlu
Y29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQKKwor
Q2hhcnNldDogd2luZG93cy0xMjUxIChzaG91bGQgYmUgd2luZG93cy0xMjUxKQoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTQtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFt
ZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLTQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvcHNldWRvLXhtbC00Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IktPSTgtUiIgPz4KKzwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQvdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIvPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8v
YnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMiPmJ1ZyA5NzgzPC9h
PjoKK0FuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29y
cmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQ8L3A+CisK
KzxwIGlkPSJyZXN1bHQiIC8+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJDaGFyc2V0OiAiICsgCisg
ICAgKGRvY3VtZW50LmNoYXJzZXQgPyBkb2N1bWVudC5jaGFyc2V0IDogZG9jdW1lbnQuY2hhcmFj
dGVyU2V0KSArICIgKHNob3VsZCBiZSB3aW5kb3dzLTEyNTEpIjsKKzwvc2NyaXB0PgorCis8L2Jv
ZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1
ZG8teG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBA
QAorVGVzdCBmb3IgYnVnIDk3ODM6IEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxp
Y2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhU
TUwgZG9jdW1lbnQKKworQ2hhcnNldDogSVNPLTg4NTktMSAoc2hvdWxkIGJlIHlvdXIgYnJvd3Nl
ciBkZWZhdWx0IG9uZSkKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10
eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGJvZHk+Cis8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lk
PTk3ODMiPmJ1ZyA5NzgzPC9hPjoKK0FuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxp
Y2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhU
TUwgZG9jdW1lbnQ8L3A+CisKKzxwIGlkPSJyZXN1bHQiIC8+CisKKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9
ICJDaGFyc2V0OiAiICsgCisgICAgKGRvY3VtZW50LmNoYXJzZXQgPyBkb2N1bWVudC5jaGFyc2V0
IDogZG9jdW1lbnQuY2hhcmFjdGVyU2V0KSArICIgKHNob3VsZCBiZSB5b3VyIGJyb3dzZXIgZGVm
YXVsdCBvbmUpIjsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwuaHRtbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNTEp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisy
MDA2LTA4LTI3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAbnlwb3AuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01NjIwCisgICAgICAgIFNob3VsZCBvbmx5
IGhvbm9yIGVuY29kaW5nIGZyb20gPG1ldGE+IGluIEhUTUwKKworICAgICAgICAtIGh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MworICAgICAgICBBbiBY
TUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0
cmlnZ2VycworICAgICAgICBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKKyAg
ICAgICAgLSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTU1CisgICAgICAgIENTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgCisg
ICAgICAgICogbG9hZGVyL0RlY29kZXIuY3BwOgorICAgICAgICAoRGVjb2Rlcjo6RGVjb2Rlcik6
IERlY29kZXIgbm93IGtub3dzIHdoYXQga2luZCBvZiBjb250ZW50IGl0IGlzIGRlY29kaW5nLgor
ICAgICAgICBBbHNvLCB0aGUgYnJvd3NlciBkZWZhdWx0IGVuY29kaW5nIGNhbiBub3cgYmUgcGFz
c2VkIGRpcmVjdGx5IHRvIHRoZSBjb25zdHJ1Y3RvciwKKyAgICAgICAgdG8gc3RyZWFtbGluZSB0
aGUgbG9naWMuCisgICAgICAgIChEZWNvZGVyOjpkZWNvZGUpOiBBZGQgc3VwcG9ydCBmb3IgQGNo
YXJzZXQsIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBIVE1MIGFuZCBYTUwuCisgICAgICAgIChEZWNv
ZGVyOjpzZXRFbmNvZGluZ05hbWUpOiBTdHlsZSBjbGVhbnVwLgorICAgICAgICAoRGVjb2Rlcjo6
ZW5jb2RpbmdOYW1lKTogRGl0dG8uCisgICAgICAgIChEZWNvZGVyOjpmbHVzaCk6IERpdHRvLgor
ICAgICAgICAqIGxvYWRlci9EZWNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWNvZGVyOjop
OgorCisgICAgICAgICogYnJpZGdlL21hYy9XZWJDb3JlRW5jb2RpbmdzLm1tOiBQYXNzIGEgY29u
dGVudCB0eXBlIG9mIHRleHQvaHRtbCB0byBEZWNvZGVyLgorCisgICAgICAgICogbG9hZGVyL0Nh
Y2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVT
aGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NT
dHlsZVNoZWV0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxl
U2hlZXQ6OmRhdGEpOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0Lmg6Cisg
ICAgICAgIFVzZSBEZWNvZGVyIGluc3RlYWQgb2YgVGV4dEVuY29kaW5nOjp0b1VuaWNvZGUoKSB0
byBlbmFibGUgQGNoYXJzZXQgc3VwcG9ydC4KKworICAgICAgICAqIGxvYWRlci9DYWNoZWRYQkxE
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYQkxEb2N1bWVudDo6Q2FjaGVk
WEJMRG9jdW1lbnQpOiBQYXNzIGEgY29udGVudCB0eXBlLgorICAgICAgICAqIGxvYWRlci9DYWNo
ZWRYU0xTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hl
ZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFhTTFN0eWxlU2hlZXQ6OmRhdGEpOiBGbHVzaCB0aGUgZGVjb2RlciB0byBiZSBzYWZlLgorCisg
ICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d3JpdGUp
OiBQYXNzIGEgY29udGVudCB0eXBlIGFuZCBhIGRlZmF1bHQgZW5jb2RpbmcgdG8gCisgICAgICAg
IHRoZSBEZWNvZGVyLgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OmNyZWF0ZURvY3VtZW50RnJvbVNvdXJjZSk6IFBhc3Mg
dGhlIG91dHB1dCBkb2N1bWVudAorICAgICAgICBNSU1FIHR5cGUuCisgICAgICAgICogeG1sL3ht
bGh0dHByZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZWNl
aXZlZERhdGEpOiBEaXR0by4KKwogMjAwNi0wOC0yNiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emlt
bWVybWFubkBrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYwNTApCisr
KyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMTYxMSwyMyArMTYxMSw2IEBACiAJCUZBRTA0MTkwMDk3NTk2QzkwMDA1NDBCRSAvKiBT
VkdJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkFFMDQxOEUwOTc1OTZDOTAwMDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggKi87IH07
CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAotLyogQmVnaW4gUEJYQnVpbGRTdHls
ZSBzZWN0aW9uICovCi0JCUJDNTdCRjE3MEFBMDI0MzAwMEE0M0NGMSAvKiBEZXZlbG9wbWVudCAq
LyA9IHsKLQkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJ
CUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKLQkJCX07Ci0JCQluYW1lID0gRGV2ZWxvcG1lbnQ7Ci0J
CX07Ci0JCUJDNTdCRjE4MEFBMDI0MzAwMEE0M0NGMSAvKiBEZXBsb3ltZW50ICovID0gewotCQkJ
aXNhID0gUEJYQnVpbGRTdHlsZTsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJQ09QWV9QSEFT
RV9TVFJJUCA9IFlFUzsKLQkJCX07Ci0JCQluYW1lID0gRGVwbG95bWVudDsKLQkJfTsKLS8qIEVu
ZCBQQlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KLQogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVBy
b3h5IHNlY3Rpb24gKi8KIAkJREQwNDFGRjAwOUQ5RTMyNTAwMTBBRjJBIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKQEAgLTY0
NzksMTIgKzY0NjIsNiBAQAogCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi8gPSB7CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJ
CX07Ci0JCQlidWlsZFN0eWxlcyA9ICgKLQkJCQlCQzU3QkYxNzBBQTAyNDMwMDBBNDNDRjEgLyog
RGV2ZWxvcG1lbnQgKi8sCi0JCQkJQkM1N0JGMTgwQUEwMjQzMDAwQTQzQ0YxIC8qIERlcGxveW1l
bnQgKi8sCi0JCQkpOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJl
Z2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3Jl
RW5jb2RpbmdzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRW5j
b2RpbmdzLm1tCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3Jl
RW5jb2RpbmdzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogKyAoTlNTdHJpbmcgKilkZWNvZGVEYXRhOihOU0RhdGEgKilkYXRhCiB7
CiAgICAgSFRNTE5hbWVzOjppbml0KCk7IC8vIHRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIGltcG9y
dGluZyBib29rbWFya3MgYXQgc3RhcnR1cCwgc28gSFRNTE5hbWVzIGFyZSBsaWtlbHkgdG8gYmUg
dW5pbml0aWFsaXplZCB5ZXQKLSAgICBEZWNvZGVyKiBkZWNvZGVyID0gbmV3IERlY29kZXI7Cisg
ICAgRGVjb2RlciogZGVjb2RlciA9IG5ldyBEZWNvZGVyKCJ0ZXh0L2h0bWwiKTsgLy8gYm9va21h
cmsgZmlsZXMgYXJlIEhUTUwKICAgICBEZXByZWNhdGVkU3RyaW5nIHJlc3VsdCA9IGRlY29kZXIt
PmRlY29kZShzdGF0aWNfY2FzdDxjb25zdCBjaGFyICo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxl
bmd0aF0pOwogICAgIHJlc3VsdCArPSBkZWNvZGVyLT5mbHVzaCgpOwogICAgIGRlY29kZXItPmRl
cmVmKCk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkocmV2aXNp
b24gMTYwNTApCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJMb2FkZXJGdW5jdGlv
bnMuaCIKICNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00
MCwyMCArNDEsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDYWNoZWRDU1NTdHlsZVNoZWV0
OjpDYWNoZWRDU1NTdHlsZVNoZWV0KERvY0xvYWRlciogZGwsIGNvbnN0IFN0cmluZyAmdXJsLCBD
YWNoZVBvbGljeSBjYWNoZVBvbGljeSwgdGltZV90IF9leHBpcmVEYXRlLCBjb25zdCBEZXByZWNh
dGVkU3RyaW5nJiBjaGFyc2V0KQogICAgIDogQ2FjaGVkUmVzb3VyY2UodXJsLCBDU1NTdHlsZVNo
ZWV0LCBjYWNoZVBvbGljeSwgX2V4cGlyZURhdGUpCi0gICAgLCBtX2VuY29kaW5nKGNoYXJzZXQu
bGF0aW4xKCkpCisgICAgLCBtX2RlY29kZXIobmV3IERlY29kZXIoInRleHQvY3NzIikpCiB7CiAg
ICAgLy8gSXQncyBjc3Mgd2Ugd2FudC4KICAgICBzZXRBY2NlcHQoInRleHQvY3NzIik7CiAgICAg
Ly8gbG9hZCB0aGUgZmlsZQogICAgIENhY2hlOjpsb2FkZXIoKS0+bG9hZChkbCwgdGhpcywgZmFs
c2UpOwogICAgIG1fbG9hZGluZyA9IHRydWU7Ci0gICAgaWYgKCFtX2VuY29kaW5nLmlzVmFsaWQo
KSkKLSAgICAgICAgbV9lbmNvZGluZyA9IFRleHRFbmNvZGluZyhMYXRpbjFFbmNvZGluZyk7CiB9
CiAKIENhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5n
ICZ1cmwsIGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcgJnN0eWxlc2hlZXRfZGF0YSkKICAgICA6IENh
Y2hlZFJlc291cmNlKHVybCwgQ1NTU3R5bGVTaGVldCwgQ2FjaGVQb2xpY3lWZXJpZnksIDAsIHN0
eWxlc2hlZXRfZGF0YS5sZW5ndGgoKSkKLSAgICAsIG1fZW5jb2RpbmcoSW52YWxpZEVuY29kaW5n
KQogewogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIG1fc3RhdHVzID0gUGVyc2lzdGVudDsK
QEAgLTgyLDExICs4MCw4IEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVyZWYoQ2FjaGVk
UmUKIAogdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpzZXRDaGFyc2V0KGNvbnN0IERlcHJlY2F0
ZWRTdHJpbmcmIGNocykKIHsKLSAgICBpZiAoIWNocy5pc0VtcHR5KCkpIHsKLSAgICAgICAgVGV4
dEVuY29kaW5nIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKGNocy5sYXRpbjEoKSk7Ci0gICAgICAg
IGlmIChlbmNvZGluZy5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBtX2VuY29kaW5nID0gZW5jb2Rp
bmc7Ci0gICAgfQorICAgIGlmICghY2hzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9kZWNvZGVyLT5z
ZXRFbmNvZGluZ05hbWUoY2hzLmxhdGluMSgpLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVh
ZGVyKTsKIH0KIAogdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpkYXRhKFZlY3RvcjxjaGFyPiYg
ZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCkBAIC05NSw3ICs5MCw4IEBAIHZvaWQgQ2FjaGVk
Q1NTU3R5bGVTaGVldDo6ZGF0YShWZWN0b3I8Y2gKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0
U2l6ZShkYXRhLnNpemUoKSk7Ci0gICAgbV9zaGVldCA9IFN0cmluZyhtX2VuY29kaW5nLnRvVW5p
Y29kZShkYXRhLmRhdGEoKSwgc2l6ZSgpKSk7CisgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVj
b2RlKGRhdGEuZGF0YSgpLCBzaXplKCkpOworICAgIG1fc2hlZXQgKz0gbV9kZWNvZGVyLT5mbHVz
aCgpOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNrTm90aWZ5KCk7CiB9CkluZGV4
OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCShyZXZpc2lvbiAxNjA1MCkKKysrIFdl
YkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBEb2NMb2FkZXI7Cisg
ICAgY2xhc3MgRGVjb2RlcjsKIAogICAgIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQgOiBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2UKICAgICB7CkBAIC01OCw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFN0cmluZyBtX3NoZWV0OwotICAgICAgICBU
ZXh0RW5jb2RpbmcgbV9lbmNvZGluZzsKKyAgICAgICAgUmVmUHRyPERlY29kZXI+IG1fZGVjb2Rl
cjsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3BwCShy
ZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBDYWNoZWRYQkxEb2N1bWVudDo6Q2FjaGVk
WEJMRG9jdW1lbnQoRG9jCiAgICAgLy8gTG9hZCB0aGUgZmlsZQogICAgIENhY2hlOjpsb2FkZXIo
KS0+bG9hZChkbCwgdGhpcywgZmFsc2UpOwogICAgIG1fbG9hZGluZyA9IHRydWU7Ci0gICAgbV9k
ZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXIoImFwcGxp
Y2F0aW9uL3htbCIpOwogfQogCiBDYWNoZWRYQkxEb2N1bWVudDo6fkNhY2hlZFhCTERvY3VtZW50
KCkKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCShyZXZpc2lvbiAx
NjA1MCkKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ2FjaGVkWFNM
U3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChEb2NMb2FkZXIqIGRsLCBjb25zdCBTdHJp
bmcgJnVybCwgQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3ksIHRpbWVfdCBfZXhwaXJlRGF0ZSkKICAg
ICA6IENhY2hlZFJlc291cmNlKHVybCwgWFNMU3R5bGVTaGVldCwgY2FjaGVQb2xpY3ksIF9leHBp
cmVEYXRlKQorICAgICwgbV9kZWNvZGVyKG5ldyBEZWNvZGVyKCJ0ZXh0L3hzbCIpKQogewogICAg
IC8vIEl0J3MgWE1MIHdlIHdhbnQuCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFjY2VwdCBt
b3JlIGdlbmVyYWwgeG1sIGZvcm1hdHMgKi8qK3htbCwgaW1hZ2Uvc3ZnK3htbCBmb3IgZXhhbXBs
ZS4KQEAgLTUwLDcgKzUxLDYgQEAgQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVT
aGVldAogICAgIC8vIGxvYWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQoZGws
IHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIG1fZGVjb2RlciA9IG5l
dyBEZWNvZGVyOwogfQogCiB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OnJlZihDYWNoZWRSZXNv
dXJjZUNsaWVudCAqYykKQEAgLTgyLDYgKzgyLDcgQEAgdm9pZCBDYWNoZWRYU0xTdHlsZVNoZWV0
OjpkYXRhKFZlY3RvcjxjaAogCiAgICAgc2V0U2l6ZShkYXRhLnNpemUoKSk7CiAgICAgbV9zaGVl
dCA9IFN0cmluZyhtX2RlY29kZXItPmRlY29kZShkYXRhLmRhdGEoKSwgc2l6ZSgpKSk7CisgICAg
bV9zaGVldCArPSBtX2RlY29kZXItPmZsdXNoKCk7CiAgICAgbV9sb2FkaW5nID0gZmFsc2U7CiAg
ICAgY2hlY2tOb3RpZnkoKTsKIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuY3BwCShyZXZpc2lvbiAxNjA1MCkK
KysrIFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMs
NyBAQAogCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQG1waS1oZC5t
cGcuZGUpCiAgICAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgICAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3Vy
eWFrb3YgKGFwQG55cG9wLmNvbSkKIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsNiArMjUsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKIAorI2luY2x1ZGUg
IkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
U3RyZWFtaW5nVGV4dERlY29kZXIuaCIKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgpA
QCAtMjQ4LDMzICsyNTAsNDcgQEAgYnJlYWtCcmVhazoKICAgICByZXR1cm4gKGNvZGUpOwogfQog
Ci1EZWNvZGVyOjpEZWNvZGVyKCkgCi0gIDogbV9lbmNvZGluZyhMYXRpbjFFbmNvZGluZykKLSAg
LCBtX2RlY29kZXIoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29kaW5nKSkKLSAg
LCBlbmMoMCkKK0RlY29kZXI6OkRlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0RW5jb2RpbmdOYW1lKQorICA6IG1fZW5jb2RpbmcoZGVmYXVsdEVuY29k
aW5nTmFtZS5pc051bGwoKSA/ICJpc284ODU5LTEiIDogZGVmYXVsdEVuY29kaW5nTmFtZS5hc2Np
aSgpLmRhdGEoKSkKKyAgLCBtX2VuY29kaW5nTmFtZShkZWZhdWx0RW5jb2RpbmdOYW1lLmlzTnVs
bCgpID8gImlzbzg4NTktMSIgOiBkZWZhdWx0RW5jb2RpbmdOYW1lLmFzY2lpKCkuZGF0YSgpKQog
ICAsIG1fdHlwZShEZWZhdWx0RW5jb2RpbmcpCi0gICwgYm9keShmYWxzZSkKLSAgLCBiZWdpbm5p
bmcodHJ1ZSkKLXsKKyAgLCBtX3JlYWNoZWRCb2R5KGZhbHNlKQorICAsIG1fY2hlY2tlZEZvckNT
U0NoYXJzZXQoZmFsc2UpCisgICwgbV9jaGVja2VkRm9yQk9NKGZhbHNlKQoreworICAgIGlmICht
aW1lVHlwZSA9PSAidGV4dC9jc3MiKQorICAgICAgICBtX2NvbnRlbnRUeXBlID0gQ1NTOworICAg
IGVsc2UgaWYgKG1pbWVUeXBlID09ICJ0ZXh0L2h0bWwiKQorICAgICAgICBtX2NvbnRlbnRUeXBl
ID0gSFRNTDsKKyAgICBlbHNlIGlmIChET01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZSht
aW1lVHlwZSkpIHsKKyAgICAgICAgbV9jb250ZW50VHlwZSA9IFhNTDsKKyAgICAgICAgLy8gRGVz
cGl0ZSA4LjUgIlRleHQveG1sIHdpdGggT21pdHRlZCBDaGFyc2V0IiBvZiBSRkMgMzAyMywgd2Ug
ZG8gbm90IGFzc3VtZSB1cy1hc2NpaSAKKyAgICAgICAgLy8gZm9yIHRleHQveG1sLCB0byBtYXRj
aCBGaXJlZm94LgorICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29kaW5nKFVURjhFbmNvZGlu
Zyk7CisgICAgICAgIG1fZW5jb2RpbmdOYW1lID0gIlVURi04IjsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbV9jb250ZW50VHlwZSA9IFBsYWluVGV4dDsKKworICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFt
aW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29kaW5nKSk7CiB9CiAKIERlY29kZXI6On5EZWNv
ZGVyKCkKIHsKIH0KIAotdm9pZCBEZWNvZGVyOjpzZXRFbmNvZGluZ05hbWUoY29uc3QgY2hhciog
X2VuY29kaW5nLCBFbmNvZGluZ1NvdXJjZSB0eXBlKQordm9pZCBEZWNvZGVyOjpzZXRFbmNvZGlu
Z05hbWUoY29uc3QgY2hhciogZW5jb2RpbmdOYW1lLCBFbmNvZGluZ1NvdXJjZSB0eXBlKQogewot
ICAgIGVuYyA9IF9lbmNvZGluZzsKLSAgICBlbmMgPSBlbmMubG93ZXIoKTsKKyAgICBtX2VuY29k
aW5nTmFtZSA9IGVuY29kaW5nTmFtZTsKKyAgICBtX2VuY29kaW5nTmFtZSA9IG1fZW5jb2RpbmdO
YW1lLmxvd2VyKCk7CiAKLSAgICBpZiAoZW5jLmlzRW1wdHkoKSkKKyAgICBpZiAobV9lbmNvZGlu
Z05hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUZXh0RW5jb2RpbmcgZW5j
b2RpbmcgPSBUZXh0RW5jb2RpbmcoZW5jLCB0eXBlID09IEVuY29kaW5nRnJvbU1ldGFUYWcgfHwg
dHlwZSA9PSBFbmNvZGluZ0Zyb21YTUxIZWFkZXIpOworICAgIFRleHRFbmNvZGluZyBlbmNvZGlu
ZyA9IFRleHRFbmNvZGluZyhtX2VuY29kaW5nTmFtZSwgdHlwZSA9PSBFbmNvZGluZ0Zyb21NZXRh
VGFnIHx8IHR5cGUgPT0gRW5jb2RpbmdGcm9tWE1MSGVhZGVyIHx8IHR5cGUgPT0gRW5jb2RpbmdG
cm9tQ1NTQ2hhcnNldCk7CiAKICAgICAvLyBpbiBjYXNlIHRoZSBlbmNvZGluZyBkaWRuJ3QgZXhp
c3QsIHdlIGtlZXAgdGhlIG9sZCBvbmUgKGZpeGVzIHNvbWUgc2l0ZXMgc3BlY2lmeWluZyBpbnZh
bGlkIGVuY29kaW5ncykKICAgICBpZiAoZW5jb2RpbmcuaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVu
YyA9IGVuY29kaW5nLm5hbWUoKTsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSBlbmNvZGluZy5u
YW1lKCk7CiAgICAgICAgIG1fZW5jb2RpbmcgPSBlbmNvZGluZzsKICAgICAgICAgbV90eXBlID0g
dHlwZTsKICAgICAgICAgbV9kZWNvZGVyLnNldChTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRl
KG1fZW5jb2RpbmcpKTsKQEAgLTI4Myw3ICsyOTksNyBAQCB2b2lkIERlY29kZXI6OnNldEVuY29k
aW5nTmFtZShjb25zdCBjaGFyCiAKIGNvbnN0IGNoYXIqIERlY29kZXI6OmVuY29kaW5nTmFtZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVuYzsKKyAgICByZXR1cm4gbV9lbmNvZGluZ05hbWU7CiB9
CiAKIC8vIE90aGVyIGJyb3dzZXJzIGFsbG93IGNvbW1lbnRzIGluIHRoZSBoZWFkIHNlY3Rpb24s
IHNvIHdlIG5lZWQgdG8gYWxzby4KQEAgLTM1OCwxNiArMzc0LDE2IEBAIHN0YXRpYyBpbnQgZmlu
ZFhNTEVuY29kaW5nKGNvbnN0IERlcHJlY2EKIERlcHJlY2F0ZWRTdHJpbmcgRGVjb2Rlcjo6ZGVj
b2RlKGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4pCiB7CiAgICAgLy8gQ2hlY2sgZm9yIFVURi0x
NiBvciBVVEYtOCBCT00gbWFyayBhdCB0aGUgYmVnaW5uaW5nLCB3aGljaCBpcyBhIHN1cmUgc2ln
biBvZiBhIFVuaWNvZGUgZW5jb2RpbmcuCi0gICAgaW50IGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5s
ZW5ndGgoKTsKKyAgICBpbnQgYnVmZmVyTGVuZ3RoID0gbV9idWZmZXIubGVuZ3RoKCk7CiAgICAg
Y29uc3QgaW50IG1heGltdW1CT01MZW5ndGggPSAzOwotICAgIGlmIChiZWdpbm5pbmcgJiYgYnVm
ZmVyTGVuZ3RoICsgbGVuID49IG1heGltdW1CT01MZW5ndGgpIHsKKyAgICBpZiAoIW1fY2hlY2tl
ZEZvckJPTSAmJiBidWZmZXJMZW5ndGggKyBsZW4gPj0gbWF4aW11bUJPTUxlbmd0aCkgewogICAg
ICAgICBpZiAobV90eXBlICE9IFVzZXJDaG9zZW5FbmNvZGluZykgewogICAgICAgICAgICAgLy8g
RXh0cmFjdCB0aGUgZmlyc3QgdGhyZWUgYnl0ZXMuCiAgICAgICAgICAgICAvLyBIYW5kbGUgdGhl
IGNhc2Ugd2hlcmUgc29tZSBvZiBieXRlcyBhcmUgYWxyZWFkeSBpbiB0aGUgYnVmZmVyLgogICAg
ICAgICAgICAgLy8gVGhlIGxhc3QgYnl0ZSBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBub3QgYmUg
aW4gdGhlIGJ1ZmZlci4KICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnVkYXRhID0g
KGNvbnN0IHVuc2lnbmVkIGNoYXIgKilkYXRhOwotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBj
MSA9IGJ1ZmZlckxlbmd0aCA+PSAxID8gYnVmZmVyWzBdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOwot
ICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMiA9IGJ1ZmZlckxlbmd0aCA+PSAyID8gYnVmZmVy
WzFdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOworICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMSA9
IGJ1ZmZlckxlbmd0aCA+PSAxID8gbV9idWZmZXJbMF0udW5pY29kZSgpIDogKnVkYXRhKys7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyID0gYnVmZmVyTGVuZ3RoID49IDIgPyBtX2J1ZmZl
clsxXS51bmljb2RlKCkgOiAqdWRhdGErKzsKICAgICAgICAgICAgIEFTU0VSVChidWZmZXJMZW5n
dGggPCAzKTsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzMgPSAqdWRhdGE7CiAKQEAgLTM4
NiwxOTQgKzQwMiwyNDMgQEAgRGVwcmVjYXRlZFN0cmluZyBEZWNvZGVyOjpkZWNvZGUoY29uc3Qg
YwogICAgICAgICAgICAgICAgIG1fdHlwZSA9IEF1dG9EZXRlY3RlZEVuY29kaW5nOwogICAgICAg
ICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoYXV0b0RldGVjdGVkRW5jb2Rpbmcp
OwogICAgICAgICAgICAgICAgIEFTU0VSVChtX2VuY29kaW5nLmlzVmFsaWQoKSk7Ci0gICAgICAg
ICAgICAgICAgZW5jID0gbV9lbmNvZGluZy5uYW1lKCk7CisgICAgICAgICAgICAgICAgbV9lbmNv
ZGluZ05hbWUgPSBtX2VuY29kaW5nLm5hbWUoKTsKICAgICAgICAgICAgICAgICBtX2RlY29kZXIu
c2V0KFN0cmVhbWluZ1RleHREZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgICAgIGJlZ2lubmluZyA9IGZhbHNlOworICAgICAgICBtX2No
ZWNrZWRGb3JCT00gPSB0cnVlOwogICAgIH0KICAgICAKLSAgICAvLyB0aGlzIGlzIG5vdCBjb21w
bGV0ZWx5IGVmZmljaWVudCwgc2luY2UgdGhlIGZ1bmN0aW9uIG1pZ2h0IGdvCi0gICAgLy8gdGhy
b3VnaCB0aGUgaHRtbCBoZWFkIHNldmVyYWwgdGltZXMuLi4KLQotICAgIGJvb2wgbG9va0Zvck1l
dGFUYWcgPSBtX3R5cGUgPT0gRGVmYXVsdEVuY29kaW5nICYmICFib2R5OworICAgIGJvb2wgY3Vy
cmVudENodW5rSW5CdWZmZXIgPSBmYWxzZTsKICAgICAKLSAgICBpZiAobG9va0Zvck1ldGFUYWcp
IHsKLSNpZmRlZiBERUNPREVfREVCVUcKLSAgICAgICAga2REZWJ1Zyg2MDA1KSA8PCAibG9va2lu
ZyBmb3IgY2hhcnNldCBkZWZpbml0aW9uIiA8PCBlbmRsOwotI2VuZGlmCi0gICAgICAgIHsgLy8g
ZXh0cmEgbGV2ZWwgb2YgYnJhY2VzIHRvIGtlZXAgaW5kZW50aW5nIG1hdGNoaW5nIG9yaWdpbmFs
IGZvciBiZXR0ZXIgZGlmZidpbmcKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVu
KTsKLSAgICAgICAgICAgIC8vIHdlIHN0aWxsIGRvbid0IGhhdmUgYW4gZW5jb2RpbmcsIGFuZCBh
cmUgaW4gdGhlIGhlYWQKLSAgICAgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgdGFncyBhcmUgYWxs
b3dlZCBpbiA8aGVhZD46Ci0gICAgICAgICAgICAvLyBTQ1JJUFR8U1RZTEV8TUVUQXxMSU5LfE9C
SkVDVHxUSVRMRXxCQVNFCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIHN0b3Agc2Nh
bm5pbmcgd2hlbiBhIHRhZyB0aGF0IGlzIG5vdCBwZXJtaXR0ZWQgaW4gPGhlYWQ+Ci0gICAgICAg
ICAgICAvLyBpcyBzZWVuLCByYXRoZXIgd2hlbiA8L2hlYWQ+IGlzIHNlZW4sIGJlY2F1c2UgdGhh
dCBtb3JlIGNsb3NlbHkKLSAgICAgICAgICAgIC8vIG1hdGNoZXMgYmVoYXZpb3IgaW4gb3RoZXIg
YnJvd3NlcnM7IG1vcmUgZGV0YWlscyBpbgotICAgICAgICAgICAgLy8gPGh0dHA6Ly9idWd6aWxs
YS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MD4uCi0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIC8vIEFkZGl0aW9uYWxseSwgd2UgaWdub3JlIHRoaW5ncyB0aGF0IGxvb2tzIGxp
a2UgdGFncyBpbiA8dGl0bGU+OyBzZWUKLSAgICAgICAgICAgIC8vIDxodHRwOi8vYnVnemlsbGEu
b3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjA+LgotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBib29sIHdpdGhpblRpdGxlID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnB0ciA9IGJ1ZmZlci5sYXRpbjEoKTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBFbmQg
PSBwdHIgKyBidWZmZXIubGVuZ3RoKCk7Ci0gICAgICAgICAgICB3aGlsZShwdHIgIT0gcEVuZCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZigqcHRyID09ICc8JykgewotICAgICAg
ICAgICAgICAgICAgICBib29sIGVuZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBwdHIr
KzsKKyAgICBpZiAobV90eXBlID09IERlZmF1bHRFbmNvZGluZyAmJiBtX2NvbnRlbnRUeXBlID09
IENTUyAmJiAhbV9jaGVja2VkRm9yQ1NTQ2hhcnNldCkgeworICAgICAgICBtX2J1ZmZlci5hcHBl
bmQoZGF0YSwgbGVuKTsKKyAgICAgICAgY3VycmVudENodW5rSW5CdWZmZXIgPSB0cnVlOworCisg
ICAgICAgIGlmIChsZW4gPiA4KSB7IC8vIHN0cmxlbigiQGNoYXJzZXQiKSA9PSA4CisgICAgICAg
ICAgICBjb25zdCBjaGFyICpwdHIgPSBtX2J1ZmZlci5sYXRpbjEoKTsKKyAgICAgICAgICAgIGNv
bnN0IGNoYXIgKmRhdGFFbmQgPSBwdHIgKyBtX2J1ZmZlci5sZW5ndGgoKTsKKworICAgICAgICAg
ICAgaWYgKHB0clswXSA9PSAnQCcgJiYgcHRyWzFdID09ICdjJyAmJiBwdHJbMl0gPT0gJ2gnICYm
IHB0clszXSA9PSAnYScgJiYgcHRyWzRdID09ICdyJyAmJiAKKyAgICAgICAgICAgICAgICBwdHJb
NV0gPT0gJ3MnICYmIHB0cls2XSA9PSAnZScgJiYgcHRyWzddID09ICd0JykgeworICAgICAgICAK
KyAgICAgICAgICAgICAgICBwdHIgKz0gODsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBw
b3MgPSBwdHI7CisgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGRhdGFFbmQgJiYgKCpwb3Mg
PT0gJ1x0JyB8fCAqcG9zID09ICcgJykpCisgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAg
ICAgICAgICAgICAgIGlmIChwb3MgPT0gZGF0YUVuZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIERlcHJlY2F0ZWRTdHJpbmc6Om51bGw7CisKKyAgICAgICAgICAgICAgICBpZiAoKnBvcyA9
PSAnIicgfHwgKnBvcyA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgcXVvdGF0
aW9uTWFyayA9ICpwb3M7CisgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAg
ICAgICAgICBwdHIgPSBwb3M7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IHdoaWxlIChwb3MgPCBkYXRhRW5kICYmICpwb3MgIT0gcXVvdGF0aW9uTWFyaykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zID09IGRh
dGFFbmQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZzo6
bnVsbDsKIAotICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY29tbWVudHMuCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChwdHJbMF0gPT0gJyEnICYmIHB0clsxXSA9PSAnLScgJiYgcHRyWzJd
ID09ICctJykgewotICAgICAgICAgICAgICAgICAgICAgICAgcHRyICs9IDM7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBza2lwQ29tbWVudChwdHIsIHBFbmQpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgRGVwcmVjYXRlZENTdHJpbmcgZW5jb2RpbmdOYW1lKHB0ciwgcG9zIC0gcHRyICsgMSk7CiAg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgWE1MIGhl
YWRlciwgd2hpY2ggY2FuIGhhdmUgZW5jb2RpbmcgaW4gaXQuCi0gICAgICAgICAgICAgICAgICAg
IGlmIChwdHJbMF0gPT0gJz8nICYmIHB0clsxXSA9PSAneCcgJiYgcHRyWzJdID09ICdtJyAmJiBw
dHJbM10gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmQg
PSBwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKmVuZCAhPSAnPicgJiYgKmVu
ZCAhPSAnXDAnKSBlbmQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgqZW5kID09ICdc
MCcpCisgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICB3aGls
ZSAocG9zIDwgZGF0YUVuZCAmJiAoKnBvcyA9PSAnXHQnIHx8ICpwb3MgPT0gJyAnKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zID09
IGRhdGFFbmQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmlu
Zzo6bnVsbDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoKnBvcyA9PSAnOycpCisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmNvZGluZ05hbWUoZW5jb2RpbmdOYW1lLCBFbmNvZGluZ0Zy
b21DU1NDaGFyc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBtX2NoZWNrZWRGb3JDU1NDaGFyc2V0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gRGVwcmVjYXRlZFN0cmluZzo6bnVsbDsKKworICAgIH0gZWxzZSBpZiAobV90eXBlID09
IERlZmF1bHRFbmNvZGluZyAmJiBtX2NvbnRlbnRUeXBlICE9IFBsYWluVGV4dCAmJiAhbV9yZWFj
aGVkQm9keSkgeyAvLyBIVE1MIGFuZCBYTUwKKyAgICAgICAgLy8gdGhpcyBpcyBub3QgY29tcGxl
dGVseSBlZmZpY2llbnQsIHNpbmNlIHRoZSBmdW5jdGlvbiBtaWdodCBnbworICAgICAgICAvLyB0
aHJvdWdoIHRoZSBodG1sIGhlYWQgc2V2ZXJhbCB0aW1lcy4uLgorICAgIAorICAgICAgICBtX2J1
ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKKyAgICAgICAgY3VycmVudENodW5rSW5CdWZmZXIgPSB0
cnVlOworICAgICAgICAKKyAgICAgICAgLy8gd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhbiBlbmNvZGlu
ZywgYW5kIGFyZSBpbiB0aGUgaGVhZAorICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHRhZ3MgYXJl
IGFsbG93ZWQgaW4gPGhlYWQ+OgorICAgICAgICAvLyBTQ1JJUFR8U1RZTEV8TUVUQXxMSU5LfE9C
SkVDVHxUSVRMRXxCQVNFCisgICAgICAgIAorICAgICAgICAvLyBXZSBzdG9wIHNjYW5uaW5nIHdo
ZW4gYSB0YWcgdGhhdCBpcyBub3QgcGVybWl0dGVkIGluIDxoZWFkPgorICAgICAgICAvLyBpcyBz
ZWVuLCByYXRoZXIgd2hlbiA8L2hlYWQ+IGlzIHNlZW4sIGJlY2F1c2UgdGhhdCBtb3JlIGNsb3Nl
bHkKKyAgICAgICAgLy8gbWF0Y2hlcyBiZWhhdmlvciBpbiBvdGhlciBicm93c2VyczsgbW9yZSBk
ZXRhaWxzIGluCisgICAgICAgIC8vIDxodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTM1OTA+LgorICAgICAgICAKKyAgICAgICAgLy8gQWRkaXRpb25hbGx5LCB3
ZSBpZ25vcmUgdGhpbmdzIHRoYXQgbG9va3MgbGlrZSB0YWdzIGluIDx0aXRsZT47IHNlZQorICAg
ICAgICAvLyA8aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTYwPi4KKyAgICAgICAgCisgICAgICAgIGJvb2wgd2l0aGluVGl0bGUgPSBmYWxzZTsKKworICAg
ICAgICBjb25zdCBjaGFyICpwdHIgPSBtX2J1ZmZlci5sYXRpbjEoKTsKKyAgICAgICAgY29uc3Qg
Y2hhciAqcEVuZCA9IHB0ciArIG1fYnVmZmVyLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAocHRy
ICE9IHBFbmQpIHsKKyAgICAgICAgICAgIGlmICgqcHRyID09ICc8JykgeworICAgICAgICAgICAg
ICAgIGJvb2wgZW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcHRyKys7CisKKyAgICAgICAg
ICAgICAgICAvLyBIYW5kbGUgY29tbWVudHMuCisgICAgICAgICAgICAgICAgaWYgKHB0clswXSA9
PSAnIScgJiYgcHRyWzFdID09ICctJyAmJiBwdHJbMl0gPT0gJy0nKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB0ciArPSAzOworICAgICAgICAgICAgICAgICAgICBza2lwQ29tbWVudChwdHIsIHBF
bmQpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIFhNTCBkZWNsYXJhdGlv
biwgd2hpY2ggY2FuIGhhdmUgZW5jb2RpbmcgaW4gaXQuCisgICAgICAgICAgICAgICAgLy8gVGhp
cyBlbmNvZGluZyBpcyBob25vcmVkIGV2ZW4gZm9yIEhUTUwgZG9jdW1lbnRzLgorICAgICAgICAg
ICAgICAgIGlmIChwdHJbMF0gPT0gJz8nICYmIHB0clsxXSA9PSAneCcgJiYgcHRyWzJdID09ICdt
JyAmJiBwdHJbM10gPT0gJ2wnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVu
ZCA9IHB0cjsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCplbmQgIT0gJz4nICYmICplbmQg
IT0gJ1wwJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZCsrOworICAgICAgICAgICAgICAg
ICAgICBpZiAoKmVuZCA9PSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRDU3RyaW5nIHN0cihwdHIsIGVuZCAtIHB0cik7
CisgICAgICAgICAgICAgICAgICAgIGludCBsZW47CisgICAgICAgICAgICAgICAgICAgIGludCBw
b3MgPSBmaW5kWE1MRW5jb2Rpbmcoc3RyLCBsZW4pOworICAgICAgICAgICAgICAgICAgICBpZiAo
cG9zICE9IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKHN0ci5t
aWQocG9zLCBsZW4pLCBFbmNvZGluZ0Zyb21YTUxIZWFkZXIpOworICAgICAgICAgICAgICAgICAg
ICAvLyBjb250aW51ZSBsb29raW5nIGZvciBhIGNoYXJzZXQgLSBpdCBtYXkgYmUgc3BlY2lmaWVk
IGluIGFuIEhUVFAtRXF1aXYgbWV0YQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRyWzBd
ID09IDAgJiYgcHRyWzFdID09ICc/JyAmJiBwdHJbMl0gPT0gMCAmJiBwdHJbM10gPT0gJ3gnICYm
IHB0cls0XSA9PSAwICYmIHB0cls1XSA9PSAnbScgJiYgcHRyWzZdID09IDAgJiYgcHRyWzddID09
ICdsJykgeworICAgICAgICAgICAgICAgICAgICAvLyBVVEYtMTYgd2l0aG91dCBCT00KKyAgICAg
ICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKCgocHRyIC0gbV9idWZmZXIubGF0aW4xKCkp
ICUgMikgPyAiVVRGLTE2TEUiIDogIlVURi0xNkJFIiwgQXV0b0RldGVjdGVkRW5jb2RpbmcpOwor
ICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0aGUgSFRUUC1FUVVJViBtZXRhIGhhcyBu
byBlZmZlY3Qgb24gWEhUTUwKKyAgICAgICAgICAgICAgICBpZiAobV9jb250ZW50VHlwZSA9PSBY
TUwpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CisKKyAgICAgICAgICAgICAgICBp
ZiAoKnB0ciA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICAgICAgKytwdHI7CisgICAgICAgICAg
ICAgICAgICAgIGVuZD10cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGNoYXIgdG1wWzIwXTsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAg
ICAgICB3aGlsZSAoCisgICAgICAgICAgICAgICAgICAgICgoKnB0ciA+PSAnYScpICYmICgqcHRy
IDw9ICd6JykgfHwKKyAgICAgICAgICAgICAgICAgICAgICgqcHRyID49ICdBJykgJiYgKCpwdHIg
PD0gJ1onKSB8fAorICAgICAgICAgICAgICAgICAgICAgKCpwdHIgPj0gJzAnKSAmJiAoKnB0ciA8
PSAnOScpKQorICAgICAgICAgICAgICAgICAgICAmJiBsZW4gPCAxOSApCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB0bXBbbGVuXSA9IHRvbG93ZXIoKnB0cik7CisgICAg
ICAgICAgICAgICAgICAgIHB0cisrOworICAgICAgICAgICAgICAgICAgICBsZW4rKzsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdG1wW2xlbl0gPSAwOworICAgICAgICAgICAg
ICAgIEF0b21pY1N0cmluZyB0YWcodG1wKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAodGFnID09IHRpdGxlVGFnKQorICAgICAgICAgICAgICAgICAgICB3aXRoaW5UaXRs
ZSA9ICFlbmQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFlbmQgJiYg
dGFnID09IG1ldGFUYWcpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kID0g
cHRyOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKmVuZCAhPSAnPicgJiYgKmVuZCAhPSAn
XDAnKQorICAgICAgICAgICAgICAgICAgICAgICAgZW5kKys7CisgICAgICAgICAgICAgICAgICAg
IGlmICgqZW5kID09ICdcMCcpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgRGVwcmVjYXRlZENTdHJpbmcgc3RyKHB0ciwgKGVuZC1wdHIpKzEpOwor
ICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIubG93ZXIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaW50IHBvcyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCAoaW50KXN0
ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwb3MgPSBzdHIuZmlu
ZCgiY2hhcnNldCIsIHBvcywgZmFsc2UpKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRDU3RyaW5nIHN0
cihwdHIsIGVuZCAtIHB0cik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuOwotICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGZpbmRYTUxFbmNvZGluZyhzdHIsIGxlbik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVuY29kaW5nTmFtZShzdHIubWlkKHBvcywgbGVuKSwgRW5jb2RpbmdG
cm9tWE1MSGVhZGVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3R5cGUgIT0gRW5j
b2RpbmdGcm9tWE1MSGVhZGVyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuY29k
aW5nTmFtZSgiVVRGLTgiLCBFbmNvZGluZ0Zyb21YTUxIZWFkZXIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gY29udGludWUgbG9va2luZyBmb3IgYSBjaGFyc2V0IC0gaXQgbWF5IGJlIHNw
ZWNpZmllZCBpbiBhbiBIVFRQLUVxdWl2IG1ldGEKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChwdHJbMF0gPT0gMCAmJiBwdHJbMV0gPT0gJz8nICYmIHB0clsyXSA9PSAwICYmIHB0clsz
XSA9PSAneCcgJiYgcHRyWzRdID09IDAgJiYgcHRyWzVdID09ICdtJyAmJiBwdHJbNl0gPT0gMCAm
JiBwdHJbN10gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBVVEYtMTYgd2l0
aG91dCBCT00KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuY29kaW5nTmFtZSgoKHB0ciAt
IGJ1ZmZlci5sYXRpbjEoKSkgJSAyKSA/ICJVVEYtMTZMRSIgOiAiVVRGLTE2QkUiLCBBdXRvRGV0
ZWN0ZWRFbmNvZGluZyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOwotICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKz0gNzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgd2hpdGVzcGFjZS4uCisgICAgICAgICAgICAg
ICAgICAgICAgICB3aGlsZSAocG9zIDwgKGludClzdHIubGVuZ3RoKCkgJiYgc3RyW3Bvc10gPD0g
JyAnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHBvcyA9PSAoaW50KXN0ci5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJbcG9zKytd
ICE9ICc9JykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCAoaW50KXN0ci5sZW5ndGgoKSAmJgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyW3Bvc10gPD0gJyAnKSB8fCBzdHJbcG9zXSA9
PSAnPScgfHwgc3RyW3Bvc10gPT0gJyInIHx8IHN0cltwb3NdID09ICdcJycpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zKys7CiAKLSAgICAgICAgICAgICAgICAgICAgaWYoKnB0ciA9
PSAnLycpIHB0cisrLCBlbmQ9dHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgY2hhciB0bXBbMjBd
OwotICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gMDsKLSAgICAgICAgICAgICAgICAgICAg
d2hpbGUgKAotICAgICAgICAgICAgICAgICAgICAgICAgKCgqcHRyID49ICdhJykgJiYgKCpwdHIg
PD0gJ3onKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICgqcHRyID49ICdBJykgJiYgKCpw
dHIgPD0gJ1onKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICgqcHRyID49ICcwJykgJiYg
KCpwdHIgPD0gJzknKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICYmIGxlbiA8IDE5ICkKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgdG1wW2xlbl0gPSB0
b2xvd2VyKCAqcHRyICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxlbisrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIHRtcFtsZW5dID0gMDsKLSAgICAgICAgICAgICAgICAgICAgQXRvbWljU3RyaW5n
IHRhZyh0bXApOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHRhZyA9PSB0aXRsZVRhZykKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpblRpdGxlID0g
IWVuZDsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmICghZW5k
ICYmIHRhZyA9PSBtZXRhVGFnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICogZW5kID0gcHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoKmVuZCAhPSAnPicg
JiYgKmVuZCAhPSAnXDAnKSBlbmQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggKmVu
ZCA9PSAnXDAnICkgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkQ1N0
cmluZyBzdHIoIHB0ciwgKGVuZC1wdHIpKzEpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
ID0gc3RyLmxvd2VyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gMDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCBwb3MgPCAoIGludCApIHN0ci5sZW5ndGgoKSAp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggKHBvcyA9IHN0ci5maW5kKCJjaGFy
c2V0IiwgcG9zLCBmYWxzZSkpID09IC0xKSBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MgKz0gNzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdoaXRl
c3BhY2UuLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCAgcG9zIDwgKGludClz
dHIubGVuZ3RoKCkgJiYgc3RyW3Bvc10gPD0gJyAnICkgcG9zKys7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCBwb3MgPT0gKCBpbnQgKXN0ci5sZW5ndGgoKSkgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzdHJbcG9zKytdICE9ICc9JyApIGNvbnRpbnVl
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggcG9zIDwgKCBpbnQgKXN0ci5s
ZW5ndGgoKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdHJbcG9z
XSA8PSAnICcgKSB8fCBzdHJbcG9zXSA9PSAnPScgfHwgc3RyW3Bvc10gPT0gJyInIHx8IHN0cltw
b3NdID09ICdcJycpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5kID8KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIHBvcyA9PSAoIGludCApc3RyLmxlbmd0aCgpICkgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZW5kcG9zID0gcG9zOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdoaWxlKCBlbmRwb3MgPCBzdHIubGVuZ3RoKCkgJiYKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5k
cG9zXSAhPSAnIicgJiYgc3RyW2VuZHBvc10gIT0gJ1wnJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgc3RyW2VuZHBvc10gIT0gJzsnICYmIHN0cltlbmRwb3NdICE9ICc+
JykgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb3MrKzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmNvZGluZ05hbWUoc3RyLm1pZChwb3MsIGVuZHBvcy1w
b3MpLCBFbmNvZGluZ0Zyb21NZXRhVGFnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiggbV90eXBlID09IEVuY29kaW5nRnJvbU1ldGFUYWcgKSBnb3RvIGZvdW5kOworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZW5kID8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3Mg
PT0gKGludClzdHIubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBlbmRwb3MgPSBwb3M7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aGlsZSAoZW5kcG9zIDwgc3RyLmxlbmd0aCgpICYmCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RyW2VuZHBvc10gIT0gJyAnICYmIHN0cltlbmRwb3Nd
ICE9ICciJyAmJiBzdHJbZW5kcG9zXSAhPSAnXCcnICYmCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RyW2VuZHBvc10gIT0gJzsnICYmIHN0cltlbmRwb3NdICE9ICc+JykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmRwb3MrKzsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNldEVuY29kaW5nTmFtZShzdHIubWlkKHBvcywgZW5kcG9zLXBvcyksIEVuY29kaW5nRnJvbU1l
dGFUYWcpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBFbmNvZGluZ0Zy
b21NZXRhVGFnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGVuZHBvcyA+PSBzdHIubGVuZ3RoKCkgfHwg
c3RyW2VuZHBvc10gPT0gJy8nIHx8IHN0cltlbmRwb3NdID09ICc+JyApIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGVuZHBvcyA+PSBzdHIubGVuZ3RoKCkgfHwgc3RyW2VuZHBv
c10gPT0gJy8nIHx8IHN0cltlbmRwb3NdID09ICc+JykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGVuZHBvcyAr
IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAodGFnICE9IHNjcmlwdFRhZyAmJiB0YWcgIT0gbm9zY3JpcHRUYWcgJiYgdGFnICE9IHN0
eWxlVGFnICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnICE9IGxpbmtUYWcg
JiYgdGFnICE9IG1ldGFUYWcgJiYgdGFnICE9IG9iamVjdFRhZyAmJgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhZyAhPSB0aXRsZVRhZyAmJiB0YWcgIT0gYmFzZVRhZyAmJiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kIHx8IHRhZyAhPSBodG1sVGFnKSAmJiAh
d2l0aGluVGl0bGUgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFnICE9IGhl
YWRUYWcpICYmIGlzYWxwaGEodG1wWzBdKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYm9k
eSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworICAgICAgICAg
ICAgICAgICAgICAgICAgcG9zID0gZW5kcG9zICsgMTsKICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnICE9IHNjcmlwdFRhZyAmJiB0YWcgIT0gbm9z
Y3JpcHRUYWcgJiYgdGFnICE9IHN0eWxlVGFnICYmCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0YWcgIT0gbGlua1RhZyAmJiB0YWcgIT0gbWV0YVRhZyAmJiB0YWcgIT0gb2JqZWN0VGFnICYm
CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcgIT0gdGl0bGVUYWcgJiYgdGFnICE9IGJh
c2VUYWcgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kIHx8IHRhZyAhPSBodG1s
VGFnKSAmJiAhd2l0aGluVGl0bGUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWcg
IT0gaGVhZFRhZykgJiYgaXNhbHBoYSh0bXBbMF0pKSB7CisgICAgICAgICAgICAgICAgICAgIG1f
cmVhY2hlZEJvZHkgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHB0cisrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWRTdHJp
bmc6Om51bGw7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHRyKys7CiAgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWRTdHJpbmc6Om51bGw7CiAgICAgfQogCiAg
Zm91bmQ6CiAgICAgLy8gRG8gdGhlIGF1dG8tZGV0ZWN0IGlmIG91ciBkZWZhdWx0IGVuY29kaW5n
IGlzIG9uZSBvZiB0aGUgSmFwYW5lc2Ugb25lcy4KLSAgICBpZiAobV90eXBlICE9IFVzZXJDaG9z
ZW5FbmNvZGluZyAmJiBtX3R5cGUgIT0gQXV0b0RldGVjdGVkRW5jb2RpbmcgJiYgbV9lbmNvZGlu
Zy5pc0phcGFuZXNlKCkpCi0gICAgeworICAgIGlmIChtX3R5cGUgIT0gVXNlckNob3NlbkVuY29k
aW5nICYmIG1fdHlwZSAhPSBBdXRvRGV0ZWN0ZWRFbmNvZGluZyAmJiBtX2VuY29kaW5nLmlzSmFw
YW5lc2UoKSkgewogICAgICAgICBjb25zdCBjaGFyICphdXRvRGV0ZWN0ZWRFbmNvZGluZzsKICAg
ICAgICAgc3dpdGNoIChLYW5qaUNvZGU6Omp1ZGdlKGRhdGEsIGxlbikpIHsKLSAgICAgICAgY2Fz
ZSBLYW5qaUNvZGU6OkpJUzoKLSAgICAgICAgICAgIGF1dG9EZXRlY3RlZEVuY29kaW5nID0gImpp
czciOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS2FuamlDb2RlOjpFVUM6Ci0g
ICAgICAgICAgICBhdXRvRGV0ZWN0ZWRFbmNvZGluZyA9ICJldWNqcCI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBLYW5qaUNvZGU6OlNKSVM6Ci0gICAgICAgICAgICBhdXRvRGV0
ZWN0ZWRFbmNvZGluZyA9ICJzamlzIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSBOVUxMOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEthbmppQ29kZTo6SklTOgorICAgICAgICAgICAg
ICAgIGF1dG9EZXRlY3RlZEVuY29kaW5nID0gImppczciOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBLYW5qaUNvZGU6OkVVQzoKKyAgICAgICAgICAgICAgICBhdXRv
RGV0ZWN0ZWRFbmNvZGluZyA9ICJldWNqcCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEthbmppQ29kZTo6U0pJUzoKKyAgICAgICAgICAgICAgICBhdXRvRGV0ZWN0
ZWRFbmNvZGluZyA9ICJzamlzIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSBOVUxMOwor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGlmIChhdXRvRGV0ZWN0
ZWRFbmNvZGluZyAhPSAwKSB7CisgICAgICAgIGlmIChhdXRvRGV0ZWN0ZWRFbmNvZGluZykKICAg
ICAgICAgICAgIHNldEVuY29kaW5nTmFtZShhdXRvRGV0ZWN0ZWRFbmNvZGluZywgQXV0b0RldGVj
dGVkRW5jb2RpbmcpOwotICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gaWYgd2Ugc3RpbGwgaGF2
ZW4ndCBmb3VuZCBhbiBlbmNvZGluZywgYXNzdW1lIGxhdGluMQotICAgIGlmICghbV9lbmNvZGlu
Zy5pc1ZhbGlkKCkpCi0gICAgewotICAgICAgICBpZiAoZW5jLmlzRW1wdHkoKSkgCi0gICAgICAg
ICAgICBlbmMgPSAiaXNvODg1OS0xIjsKLSAgICAgICAgbV9lbmNvZGluZyA9IFRleHRFbmNvZGlu
ZyhlbmMpOwotICAgICAgICAvLyBiZSBzdXJlIG5vdCB0byBjcmFzaAotICAgICAgICBpZiAoIW1f
ZW5jb2RpbmcuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBlbmMgPSAiaXNvODg1OS0xIjsKLSAg
ICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwotICAg
ICAgICB9Ci0gICAgICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0
ZShtX2VuY29kaW5nKSk7CisgICAgLy8gSWYgd2Ugc3RpbGwgaGF2ZW4ndCBmb3VuZCBhbiBlbmNv
ZGluZywgYXNzdW1lIGxhdGluMQorICAgIC8vICh0aGlzIGNhbiBoYXBwZW4gaWYgYW4gZW1wdHkg
bmFtZSBpcyBwYXNzZWQgZnJvbSBvdXRzaWRlKS4KKyAgICBpZiAobV9lbmNvZGluZ05hbWUuaXNF
bXB0eSgpIHx8ICFtX2VuY29kaW5nLmlzVmFsaWQoKSkgeworICAgICAgICBtX2VuY29kaW5nTmFt
ZSA9ICJpc284ODU5LTEiOworICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29kaW5nKExhdGlu
MUVuY29kaW5nKTsKICAgICB9CisgICAgbV9kZWNvZGVyLnNldChTdHJlYW1pbmdUZXh0RGVjb2Rl
cjo6Y3JlYXRlKG1fZW5jb2RpbmcpKTsKKwogICAgIERlcHJlY2F0ZWRTdHJpbmcgb3V0OwogCi0g
ICAgaWYgKCFidWZmZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICghbG9va0Zvck1ldGFUYWcp
Ci0gICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7Ci0gICAgICAgIG91dCA9IG1f
ZGVjb2Rlci0+dG9Vbmljb2RlKGJ1ZmZlci5sYXRpbjEoKSwgYnVmZmVyLmxlbmd0aCgpKTsKLSAg
ICAgICAgYnVmZmVyLnRydW5jYXRlKDApOwotICAgIH0gZWxzZSB7CisgICAgaWYgKCFtX2J1ZmZl
ci5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFjdXJyZW50Q2h1bmtJbkJ1ZmZlcikKKyAgICAg
ICAgICAgIG1fYnVmZmVyLmFwcGVuZChkYXRhLCBsZW4pOworICAgICAgICBvdXQgPSBtX2RlY29k
ZXItPnRvVW5pY29kZShtX2J1ZmZlci5sYXRpbjEoKSwgbV9idWZmZXIubGVuZ3RoKCkpOworICAg
ICAgICBtX2J1ZmZlci50cnVuY2F0ZSgwKTsKKyAgICB9IGVsc2UKICAgICAgICAgb3V0ID0gbV9k
ZWNvZGVyLT50b1VuaWNvZGUoZGF0YSwgbGVuKTsKLSAgICB9CiAKICAgICByZXR1cm4gb3V0Owog
fQogCiBEZXByZWNhdGVkU3RyaW5nIERlY29kZXI6OmZsdXNoKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9kZWNvZGVyLT50b1VuaWNvZGUoYnVmZmVyLmxhdGluMSgpLCBidWZmZXIubGVuZ3RoKCks
IHRydWUpOworICAgIHJldHVybiBtX2RlY29kZXItPnRvVW5pY29kZShtX2J1ZmZlci5sYXRpbjEo
KSwgbV9idWZmZXIubGVuZ3RoKCksIHRydWUpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL0RlY29kZXIuaAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xvYWRlci9EZWNv
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDExICs0MSwxMiBAQCBwdWJs
aWM6CiAgICAgICAgIEF1dG9EZXRlY3RlZEVuY29kaW5nLAogICAgICAgICBFbmNvZGluZ0Zyb21Y
TUxIZWFkZXIsCiAgICAgICAgIEVuY29kaW5nRnJvbU1ldGFUYWcsCisgICAgICAgIEVuY29kaW5n
RnJvbUNTU0NoYXJzZXQsCiAgICAgICAgIEVuY29kaW5nRnJvbUhUVFBIZWFkZXIsCiAgICAgICAg
IFVzZXJDaG9zZW5FbmNvZGluZwogICAgIH07CiAgICAgCi0gICAgRGVjb2RlcigpOworICAgIERl
Y29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0RW5jb2Rp
bmdOYW1lID0gU3RyaW5nKCkpOwogICAgIH5EZWNvZGVyKCk7CiAKICAgICB2b2lkIHNldEVuY29k
aW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGluZywgRW5jb2RpbmdTb3VyY2UgdHlwZSk7CkBAIC01
NiwxOSArNTgsMjggQEAgcHVibGljOgogICAgIERlcHJlY2F0ZWRTdHJpbmcgZGVjb2RlKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBsZW4pOwogICAgIERlcHJlY2F0ZWRTdHJpbmcgZmx1c2goKSBjb25z
dDsKIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKKyAgICBlbnVtIENvbnRlbnRUeXBlIHsKKyAgICAg
ICAgSFRNTCwKKyAgICAgICAgWE1MLAorICAgICAgICBDU1MsCisgICAgICAgIFBsYWluVGV4dCAv
LyBEbyBub3QgbG9vayBpbnNpZGUgdGhlIGRvY3VtZW50IChlcXVpdmFsZW50IHRvIGRpcmVjdGx5
IHVzaW5nIFN0cmVhbWluZ1RleHREZWNvZGVyKQorICAgIH07CisKICAgICAvLyBlbmNvZGluZyB1
c2VkIGZvciBkZWNvZGluZy4gZGVmYXVsdCBpcyBMYXRpbjEuCiAgICAgVGV4dEVuY29kaW5nIG1f
ZW5jb2Rpbmc7CisgICAgQ29udGVudFR5cGUgbV9jb250ZW50VHlwZTsKICAgICBPd25QdHI8U3Ry
ZWFtaW5nVGV4dERlY29kZXI+IG1fZGVjb2RlcjsKLSAgICBEZXByZWNhdGVkQ1N0cmluZyBlbmM7
CisgICAgRGVwcmVjYXRlZENTdHJpbmcgbV9lbmNvZGluZ05hbWU7CiAgICAgRW5jb2RpbmdTb3Vy
Y2UgbV90eXBlOwogCiAgICAgLy8gT3VyIHZlcnNpb24gb2YgRGVwcmVjYXRlZFN0cmluZyB3b3Jr
cyB3ZWxsIGZvciBhbGwtOC1iaXQgY2hhcmFjdGVycywgYW5kIGFsbG93cyBudWxsIGNoYXJhY3Rl
cnMuCiAgICAgLy8gVGhpcyB3b3JrcyBiZXR0ZXIgdGhhbiBEZXByZWNhdGVkQ1N0cmluZyB3aGVu
IHRoZXJlIGFyZSBudWxsIGNoYXJhY3RlcnMgaW52b2x2ZWQuCi0gICAgRGVwcmVjYXRlZFN0cmlu
ZyBidWZmZXI7CisgICAgRGVwcmVjYXRlZFN0cmluZyBtX2J1ZmZlcjsKIAotICAgIGJvb2wgYm9k
eTsKLSAgICBib29sIGJlZ2lubmluZzsKKyAgICBib29sIG1fcmVhY2hlZEJvZHk7CisgICAgYm9v
bCBtX2NoZWNrZWRGb3JDU1NDaGFyc2V0OworICAgIGJvb2wgbV9jaGVja2VkRm9yQk9NOwogfTsK
IAogfQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MiwxMiArNjQyLDEwIEBAIHZvaWQgRnJhbWU6OndyaXRl
KGNvbnN0IGNoYXIqIHN0ciwgaW50IGwKICAgICB9CiAgICAgCiAgICAgaWYgKCFkLT5tX2RlY29k
ZXIpIHsKLSAgICAgICAgZC0+bV9kZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgICAgIGQtPm1f
ZGVjb2RlciA9IG5ldyBEZWNvZGVyKGQtPm1fcmVxdWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUsIHNl
dHRpbmdzKCktPmVuY29kaW5nKCkubGF0aW4xKCkpOwogICAgICAgICBpZiAoIWQtPm1fZW5jb2Rp
bmcuaXNOdWxsKCkpCiAgICAgICAgICAgICBkLT5tX2RlY29kZXItPnNldEVuY29kaW5nTmFtZShk
LT5tX2VuY29kaW5nLmxhdGluMSgpLAogICAgICAgICAgICAgICAgIGQtPm1faGF2ZUVuY29kaW5n
ID8gRGVjb2Rlcjo6VXNlckNob3NlbkVuY29kaW5nIDogRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRU
UEhlYWRlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGQtPm1fZGVjb2Rlci0+c2V0RW5j
b2RpbmdOYW1lKHNldHRpbmdzKCktPmVuY29kaW5nKCkubGF0aW4xKCksIERlY29kZXI6OkRlZmF1
bHRFbmNvZGluZyk7CiAKICAgICAgICAgaWYgKGQtPm1fZG9jKQogICAgICAgICAgICAgZC0+bV9k
b2MtPnNldERlY29kZXIoZC0+bV9kZWNvZGVyLmdldCgpKTsKSW5kZXg6IFdlYkNvcmUveG1sL1hT
TFRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3Iu
Y3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDcgQEAgUmVmUHRyPERvY3VtZW50PiBYU0xUUHJv
Y2Vzc29yOjpjcmVhdGVEbwogICAgIH0KICAgICByZXN1bHQtPmRldGVybWluZVBhcnNlTW9kZShk
b2N1bWVudFNvdXJjZSk7IC8vIE1ha2Ugc3VyZSB3ZSBwYXJzZSBpbiB0aGUgY29ycmVjdCBtb2Rl
LgogICAgIAotICAgIFJlZlB0cjxEZWNvZGVyPiBkZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAg
UmVmUHRyPERlY29kZXI+IGRlY29kZXIgPSBuZXcgRGVjb2Rlcihzb3VyY2VNSU1FVHlwZSk7CiAg
ICAgZGVjb2Rlci0+c2V0RW5jb2RpbmdOYW1lKHNvdXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/ICJV
VEYtOCIgOiBzb3VyY2VFbmNvZGluZy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tWE1M
SGVhZGVyKTsKICAgICByZXN1bHQtPnNldERlY29kZXIoZGVjb2Rlci5nZXQoKSk7CiAgICAgCklu
ZGV4OiBXZWJDb3JlL3htbC94bWxodHRwcmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdlYkNvcmUveG1s
L3htbGh0dHByZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM5LDEyICs1MzksMTYgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6cmVjZWl2ZWREYXRhKFJlc291cgogICAgICAgICBpZiAobV9l
bmNvZGluZy5pc0VtcHR5KCkgJiYgbV9qb2IpCiAgICAgICAgICAgICBtX2VuY29kaW5nID0gbV9q
b2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJzZXQiKTsKICAgICAKLSAgICAgICAgbV9kZWNvZGVyID0g
bmV3IERlY29kZXI7Ci0gICAgICAgIGlmICghbV9lbmNvZGluZy5pc0VtcHR5KCkpCisgICAgICAg
IGlmICghbV9lbmNvZGluZy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fZGVjb2RlciA9IG5l
dyBEZWNvZGVyKCJ0ZXh0L3BsYWluIik7CiAgICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29k
aW5nTmFtZShtX2VuY29kaW5nLmRlcHJlY2F0ZWRTdHJpbmcoKS5sYXRpbjEoKSwgRGVjb2Rlcjo6
RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIC8vIG9u
bHkgYWxsb3cgRGVjb2RlciB0byBsb29rIGluc2lkZSB0aGUgbV9yZXNwb25zZSBpZiBpdCdzIFhN
TAotICAgICAgICAgICAgbV9kZWNvZGVyLT5zZXRFbmNvZGluZ05hbWUoIlVURi04IiwgcmVzcG9u
c2VJc1hNTCgpID8gRGVjb2Rlcjo6RGVmYXVsdEVuY29kaW5nIDogRGVjb2Rlcjo6RW5jb2RpbmdG
cm9tSFRUUEhlYWRlcik7CisgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VJc1hNTCgpKSB7Cisg
ICAgICAgICAgICAvLyBhbGxvdyBEZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSBtX3Jlc3BvbnNl
IGlmIGl0J3MgWE1MCisgICAgICAgICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcigiYXBwbGlj
YXRpb24veG1sIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2RlY29kZXIgPSBu
ZXcgRGVjb2RlcigidGV4dC9wbGFpbiIpOworICAgICAgICAgICAgbV9kZWNvZGVyLT5zZXRFbmNv
ZGluZ05hbWUoIlVURi04IiwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CisgICAg
ICAgIH0KICAgICB9CiAgICAgaWYgKGxlbiA9PSAwKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10279</attachid>
            <date>2006-08-28 11:16:15 -0700</date>
            <delta_ts>2006-08-31 21:36:37 -0700</delta_ts>
            <desc>same patch, ignoring whitespace</desc>
            <filename>5620r2_nowhitespace.txt</filename>
            <type>text/plain</type>
            <size>46098</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjA1MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjExLDIzICsxNjExLDYgQEAKIAkJRkFFMDQxOTAwOTc1OTZDOTAw
MDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGQUUwNDE4RTA5NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VMb2Fk
ZXIuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCi0vKiBCZWdpbiBQ
QlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KLQkJQkM1N0JGMTcwQUEwMjQzMDAwQTQzQ0YxIC8qIERl
dmVsb3BtZW50ICovID0gewotCQkJaXNhID0gUEJYQnVpbGRTdHlsZTsKLQkJCWJ1aWxkU2V0dGlu
Z3MgPSB7Ci0JCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POwotCQkJfTsKLQkJCW5hbWUgPSBEZXZl
bG9wbWVudDsKLQkJfTsKLQkJQkM1N0JGMTgwQUEwMjQzMDAwQTQzQ0YxIC8qIERlcGxveW1lbnQg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhCdWlsZFN0eWxlOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJ
CQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOwotCQkJfTsKLQkJCW5hbWUgPSBEZXBsb3ltZW50Owot
CQl9OwotLyogRW5kIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLwotCiAvKiBCZWdpbiBQQlhDb250
YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCQlERDA0MUZGMDA5RDlFMzI1MDAxMEFGMkEgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVBy
b3h5OwpAQCAtNjQ3OSwxMiArNjQ2Miw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQlidWlsZFNldHRp
bmdzID0gewotCQkJfTsKLQkJCWJ1aWxkU3R5bGVzID0gKAotCQkJCUJDNTdCRjE3MEFBMDI0MzAw
MEE0M0NGMSAvKiBEZXZlbG9wbWVudCAqLywKLQkJCQlCQzU3QkYxODBBQTAyNDMwMDBBNDNDRjEg
LyogRGVwbG95bWVudCAqLywKLQkJCSk7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsK
IAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDUxKQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAorMjAwNi0w
OC0yNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVu
ZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMAorICAgICAgICBTaG91bGQgb25seSBob25v
ciBlbmNvZGluZyBmcm9tIDxtZXRhPiBpbiBIVE1MCisKKyAgICAgICAgLSBodHRwOi8vYnVnemls
bGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMKKyAgICAgICAgQW4gWE1MIGRl
Y2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dl
cnMKKyAgICAgICAgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAorCisgICAgICAg
IC0gaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NQor
ICAgICAgICBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIAorICAgICAg
ICAqIGxvYWRlci9EZWNvZGVyLmNwcDoKKyAgICAgICAgKERlY29kZXI6OkRlY29kZXIpOiBEZWNv
ZGVyIG5vdyBrbm93cyB3aGF0IGtpbmQgb2YgY29udGVudCBpdCBpcyBkZWNvZGluZy4KKyAgICAg
ICAgQWxzbywgdGhlIGJyb3dzZXIgZGVmYXVsdCBlbmNvZGluZyBjYW4gbm93IGJlIHBhc3NlZCBk
aXJlY3RseSB0byB0aGUgY29uc3RydWN0b3IsCisgICAgICAgIHRvIHN0cmVhbWxpbmUgdGhlIGxv
Z2ljLgorICAgICAgICAoRGVjb2Rlcjo6ZGVjb2RlKTogQWRkIHN1cHBvcnQgZm9yIEBjaGFyc2V0
LCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gSFRNTCBhbmQgWE1MLgorICAgICAgICAoRGVjb2Rlcjo6
c2V0RW5jb2RpbmdOYW1lKTogU3R5bGUgY2xlYW51cC4KKyAgICAgICAgKERlY29kZXI6OmVuY29k
aW5nTmFtZSk6IERpdHRvLgorICAgICAgICAoRGVjb2Rlcjo6Zmx1c2gpOiBEaXR0by4KKyAgICAg
ICAgKiBsb2FkZXIvRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGVjb2Rlcjo6KToKKwor
ICAgICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZUVuY29kaW5ncy5tbTogUGFzcyBhIGNvbnRlbnQg
dHlwZSBvZiB0ZXh0L2h0bWwgdG8gRGVjb2Rlci4KKworICAgICAgICAqIGxvYWRlci9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6
OkNhY2hlZENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVT
aGVldDo6c2V0Q2hhcnNldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0
OjpkYXRhKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAg
ICBVc2UgRGVjb2RlciBpbnN0ZWFkIG9mIFRleHRFbmNvZGluZzo6dG9Vbmljb2RlKCkgdG8gZW5h
YmxlIEBjaGFyc2V0IHN1cHBvcnQuCisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWEJMRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1lbnQ6OkNhY2hlZFhCTERv
Y3VtZW50KTogUGFzcyBhIGNvbnRlbnQgdHlwZS4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHlsZVNoZWV0OjpD
YWNoZWRYU0xTdHlsZVNoZWV0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xT
dHlsZVNoZWV0OjpkYXRhKTogRmx1c2ggdGhlIGRlY29kZXIgdG8gYmUgc2FmZS4KKworICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OndyaXRlKTogUGFz
cyBhIGNvbnRlbnQgdHlwZSBhbmQgYSBkZWZhdWx0IGVuY29kaW5nIHRvIAorICAgICAgICB0aGUg
RGVjb2Rlci4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYU0xUUHJvY2Vzc29yOjpjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UpOiBQYXNzIHRoZSBv
dXRwdXQgZG9jdW1lbnQKKyAgICAgICAgTUlNRSB0eXBlLgorICAgICAgICAqIHhtbC94bWxodHRw
cmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVjZWl2ZWRE
YXRhKTogRGl0dG8uCisKIDIwMDYtMDgtMjYgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLgpJbmRleDogV2ViQ29yZS9i
cmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlk
Z2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHJldmlzaW9uIDE2MDUwKQorKysgV2ViQ29yZS9i
cmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAKICsgKE5TU3RyaW5nICopZGVjb2RlRGF0YTooTlNEYXRhICopZGF0YQogewogICAgIEhU
TUxOYW1lczo6aW5pdCgpOyAvLyB0aGlzIG1ldGhvZCBpcyB1c2VkIGZvciBpbXBvcnRpbmcgYm9v
a21hcmtzIGF0IHN0YXJ0dXAsIHNvIEhUTUxOYW1lcyBhcmUgbGlrZWx5IHRvIGJlIHVuaW5pdGlh
bGl6ZWQgeWV0Ci0gICAgRGVjb2RlciogZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgIERlY29k
ZXIqIGRlY29kZXIgPSBuZXcgRGVjb2RlcigidGV4dC9odG1sIik7IC8vIGJvb2ttYXJrIGZpbGVz
IGFyZSBIVE1MCiAgICAgRGVwcmVjYXRlZFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUo
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsK
ICAgICByZXN1bHQgKz0gZGVjb2Rlci0+Zmx1c2goKTsKICAgICBkZWNvZGVyLT5kZXJlZigpOwpJ
bmRleDogV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL3ht
bC94bWxodHRwcmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzOSwxMiArNTM5LDE2IEBA
CiAgICAgICAgIGlmIChtX2VuY29kaW5nLmlzRW1wdHkoKSAmJiBtX2pvYikKICAgICAgICAgICAg
IG1fZW5jb2RpbmcgPSBtX2pvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNldCIpOwogICAgIAotICAg
ICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcjsKLSAgICAgICAgaWYgKCFtX2VuY29kaW5nLmlz
RW1wdHkoKSkKKyAgICAgICAgaWYgKCFtX2VuY29kaW5nLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXIoInRleHQvcGxhaW4iKTsKICAgICAgICAgICAgIG1f
ZGVjb2Rlci0+c2V0RW5jb2RpbmdOYW1lKG1fZW5jb2RpbmcuZGVwcmVjYXRlZFN0cmluZygpLmxh
dGluMSgpLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgLy8gb25seSBhbGxvdyBEZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSBtX3Jl
c3BvbnNlIGlmIGl0J3MgWE1MCi0gICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nTmFt
ZSgiVVRGLTgiLCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpEZWZhdWx0RW5jb2RpbmcgOiBE
ZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXNw
b25zZUlzWE1MKCkpIHsKKyAgICAgICAgICAgIC8vIGFsbG93IERlY29kZXIgdG8gbG9vayBpbnNp
ZGUgdGhlIG1fcmVzcG9uc2UgaWYgaXQncyBYTUwKKyAgICAgICAgICAgIG1fZGVjb2RlciA9IG5l
dyBEZWNvZGVyKCJhcHBsaWNhdGlvbi94bWwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIG1fZGVjb2RlciA9IG5ldyBEZWNvZGVyKCJ0ZXh0L3BsYWluIik7CisgICAgICAgICAgICBt
X2RlY29kZXItPnNldEVuY29kaW5nTmFtZSgiVVRGLTgiLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21I
VFRQSGVhZGVyKTsKKyAgICAgICAgfQogICAgIH0KICAgICBpZiAobGVuID09IDApCiAgICAgICAg
IHJldHVybjsKSW5kZXg6IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCShyZXZpc2lvbiAxNjA1MCkKKysrIFdl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEy
LDcgQEAKICAgICB9CiAgICAgcmVzdWx0LT5kZXRlcm1pbmVQYXJzZU1vZGUoZG9jdW1lbnRTb3Vy
Y2UpOyAvLyBNYWtlIHN1cmUgd2UgcGFyc2UgaW4gdGhlIGNvcnJlY3QgbW9kZS4KICAgICAKLSAg
ICBSZWZQdHI8RGVjb2Rlcj4gZGVjb2RlciA9IG5ldyBEZWNvZGVyOworICAgIFJlZlB0cjxEZWNv
ZGVyPiBkZWNvZGVyID0gbmV3IERlY29kZXIoc291cmNlTUlNRVR5cGUpOwogICAgIGRlY29kZXIt
PnNldEVuY29kaW5nTmFtZShzb3VyY2VFbmNvZGluZy5pc0VtcHR5KCkgPyAiVVRGLTgiIDogc291
cmNlRW5jb2RpbmcubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbVhNTEhlYWRlcik7CiAg
ICAgcmVzdWx0LT5zZXREZWNvZGVyKGRlY29kZXIuZ2V0KCkpOwogICAgIApJbmRleDogV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL2xv
YWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CiAgICAgY2xhc3MgRG9jTG9hZGVyOworICAgIGNsYXNz
IERlY29kZXI7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IDogcHVibGljIENhY2hl
ZFJlc291cmNlCiAgICAgewpAQCAtNTgsNyArNTksNyBAQAogCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICBTdHJpbmcgbV9zaGVldDsKLSAgICAgICAgVGV4dEVuY29kaW5nIG1fZW5jb2Rpbmc7Cisg
ICAgICAgIFJlZlB0cjxEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRGVj
b2Rlci5jcHAJKHJldmlzaW9uIDE2MDUwKQorKysgV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw3IEBACiAKICAgICBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAbXBpLWhkLm1wZy5kZSkKICAgICBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogCiAgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNCw2ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGVjb2Rlci5oIgogCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJTdHJlYW1pbmdUZXh0RGVjb2Rlci5oIgogI2luY2x1
ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCkBAIC0yNDgsMzMgKzI1MCw0NyBAQAogICAgIHJldHVy
biAoY29kZSk7CiB9CiAKLURlY29kZXI6OkRlY29kZXIoKSAKLSAgOiBtX2VuY29kaW5nKExhdGlu
MUVuY29kaW5nKQotICAsIG1fZGVjb2RlcihTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1f
ZW5jb2RpbmcpKQotICAsIGVuYygwKQorRGVjb2Rlcjo6RGVjb2Rlcihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRFbmNvZGluZ05hbWUpCisgIDogbV9lbmNvZGlu
ZyhkZWZhdWx0RW5jb2RpbmdOYW1lLmlzTnVsbCgpID8gImlzbzg4NTktMSIgOiBkZWZhdWx0RW5j
b2RpbmdOYW1lLmFzY2lpKCkuZGF0YSgpKQorICAsIG1fZW5jb2RpbmdOYW1lKGRlZmF1bHRFbmNv
ZGluZ05hbWUuaXNOdWxsKCkgPyAiaXNvODg1OS0xIiA6IGRlZmF1bHRFbmNvZGluZ05hbWUuYXNj
aWkoKS5kYXRhKCkpCiAgICwgbV90eXBlKERlZmF1bHRFbmNvZGluZykKLSAgLCBib2R5KGZhbHNl
KQotICAsIGJlZ2lubmluZyh0cnVlKQoteworICAsIG1fcmVhY2hlZEJvZHkoZmFsc2UpCisgICwg
bV9jaGVja2VkRm9yQ1NTQ2hhcnNldChmYWxzZSkKKyAgLCBtX2NoZWNrZWRGb3JCT00oZmFsc2Up
Cit7CisgICAgaWYgKG1pbWVUeXBlID09ICJ0ZXh0L2NzcyIpCisgICAgICAgIG1fY29udGVudFR5
cGUgPSBDU1M7CisgICAgZWxzZSBpZiAobWltZVR5cGUgPT0gInRleHQvaHRtbCIpCisgICAgICAg
IG1fY29udGVudFR5cGUgPSBIVE1MOworICAgIGVsc2UgaWYgKERPTUltcGxlbWVudGF0aW9uOjpp
c1hNTE1JTUVUeXBlKG1pbWVUeXBlKSkgeworICAgICAgICBtX2NvbnRlbnRUeXBlID0gWE1MOwor
ICAgICAgICAvLyBEZXNwaXRlIDguNSAiVGV4dC94bWwgd2l0aCBPbWl0dGVkIENoYXJzZXQiIG9m
IFJGQyAzMDIzLCB3ZSBkbyBub3QgYXNzdW1lIHVzLWFzY2lpIAorICAgICAgICAvLyBmb3IgdGV4
dC94bWwsIHRvIG1hdGNoIEZpcmVmb3guCisgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2Rp
bmcoVVRGOEVuY29kaW5nKTsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSAiVVRGLTgiOworICAg
IH0gZWxzZQorICAgICAgICBtX2NvbnRlbnRUeXBlID0gUGxhaW5UZXh0OworCisgICAgbV9kZWNv
ZGVyLnNldChTdHJlYW1pbmdUZXh0RGVjb2Rlcjo6Y3JlYXRlKG1fZW5jb2RpbmcpKTsKIH0KIAog
RGVjb2Rlcjo6fkRlY29kZXIoKQogewogfQogCi12b2lkIERlY29kZXI6OnNldEVuY29kaW5nTmFt
ZShjb25zdCBjaGFyKiBfZW5jb2RpbmcsIEVuY29kaW5nU291cmNlIHR5cGUpCit2b2lkIERlY29k
ZXI6OnNldEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGluZ05hbWUsIEVuY29kaW5nU291
cmNlIHR5cGUpCiB7Ci0gICAgZW5jID0gX2VuY29kaW5nOwotICAgIGVuYyA9IGVuYy5sb3dlcigp
OworICAgIG1fZW5jb2RpbmdOYW1lID0gZW5jb2RpbmdOYW1lOworICAgIG1fZW5jb2RpbmdOYW1l
ID0gbV9lbmNvZGluZ05hbWUubG93ZXIoKTsKIAotICAgIGlmIChlbmMuaXNFbXB0eSgpKQorICAg
IGlmIChtX2VuY29kaW5nTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRl
eHRFbmNvZGluZyBlbmNvZGluZyA9IFRleHRFbmNvZGluZyhlbmMsIHR5cGUgPT0gRW5jb2RpbmdG
cm9tTWV0YVRhZyB8fCB0eXBlID09IEVuY29kaW5nRnJvbVhNTEhlYWRlcik7CisgICAgVGV4dEVu
Y29kaW5nIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKG1fZW5jb2RpbmdOYW1lLCB0eXBlID09IEVu
Y29kaW5nRnJvbU1ldGFUYWcgfHwgdHlwZSA9PSBFbmNvZGluZ0Zyb21YTUxIZWFkZXIgfHwgdHlw
ZSA9PSBFbmNvZGluZ0Zyb21DU1NDaGFyc2V0KTsKIAogICAgIC8vIGluIGNhc2UgdGhlIGVuY29k
aW5nIGRpZG4ndCBleGlzdCwgd2Uga2VlcCB0aGUgb2xkIG9uZSAoZml4ZXMgc29tZSBzaXRlcyBz
cGVjaWZ5aW5nIGludmFsaWQgZW5jb2RpbmdzKQogICAgIGlmIChlbmNvZGluZy5pc1ZhbGlkKCkp
IHsKLSAgICAgICAgZW5jID0gZW5jb2RpbmcubmFtZSgpOworICAgICAgICBtX2VuY29kaW5nTmFt
ZSA9IGVuY29kaW5nLm5hbWUoKTsKICAgICAgICAgbV9lbmNvZGluZyA9IGVuY29kaW5nOwogICAg
ICAgICBtX3R5cGUgPSB0eXBlOwogICAgICAgICBtX2RlY29kZXIuc2V0KFN0cmVhbWluZ1RleHRE
ZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOwpAQCAtMjgzLDcgKzI5OSw3IEBACiAKIGNvbnN0
IGNoYXIqIERlY29kZXI6OmVuY29kaW5nTmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVuYzsK
KyAgICByZXR1cm4gbV9lbmNvZGluZ05hbWU7CiB9CiAKIC8vIE90aGVyIGJyb3dzZXJzIGFsbG93
IGNvbW1lbnRzIGluIHRoZSBoZWFkIHNlY3Rpb24sIHNvIHdlIG5lZWQgdG8gYWxzby4KQEAgLTM1
OCwxNiArMzc0LDE2IEBACiBEZXByZWNhdGVkU3RyaW5nIERlY29kZXI6OmRlY29kZShjb25zdCBj
aGFyICpkYXRhLCBpbnQgbGVuKQogewogICAgIC8vIENoZWNrIGZvciBVVEYtMTYgb3IgVVRGLTgg
Qk9NIG1hcmsgYXQgdGhlIGJlZ2lubmluZywgd2hpY2ggaXMgYSBzdXJlIHNpZ24gb2YgYSBVbmlj
b2RlIGVuY29kaW5nLgotICAgIGludCBidWZmZXJMZW5ndGggPSBidWZmZXIubGVuZ3RoKCk7Cisg
ICAgaW50IGJ1ZmZlckxlbmd0aCA9IG1fYnVmZmVyLmxlbmd0aCgpOwogICAgIGNvbnN0IGludCBt
YXhpbXVtQk9NTGVuZ3RoID0gMzsKLSAgICBpZiAoYmVnaW5uaW5nICYmIGJ1ZmZlckxlbmd0aCAr
IGxlbiA+PSBtYXhpbXVtQk9NTGVuZ3RoKSB7CisgICAgaWYgKCFtX2NoZWNrZWRGb3JCT00gJiYg
YnVmZmVyTGVuZ3RoICsgbGVuID49IG1heGltdW1CT01MZW5ndGgpIHsKICAgICAgICAgaWYgKG1f
dHlwZSAhPSBVc2VyQ2hvc2VuRW5jb2RpbmcpIHsKICAgICAgICAgICAgIC8vIEV4dHJhY3QgdGhl
IGZpcnN0IHRocmVlIGJ5dGVzLgogICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJl
IHNvbWUgb2YgYnl0ZXMgYXJlIGFscmVhZHkgaW4gdGhlIGJ1ZmZlci4KICAgICAgICAgICAgIC8v
IFRoZSBsYXN0IGJ5dGUgaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gbm90IGJlIGluIHRoZSBidWZm
ZXIuCiAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp1ZGF0YSA9IChjb25zdCB1bnNp
Z25lZCBjaGFyICopZGF0YTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzEgPSBidWZmZXJM
ZW5ndGggPj0gMSA/IGJ1ZmZlclswXS51bmljb2RlKCkgOiAqdWRhdGErKzsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGNoYXIgYzIgPSBidWZmZXJMZW5ndGggPj0gMiA/IGJ1ZmZlclsxXS51bmljb2Rl
KCkgOiAqdWRhdGErKzsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzEgPSBidWZmZXJMZW5n
dGggPj0gMSA/IG1fYnVmZmVyWzBdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOworICAgICAgICAgICAg
dW5zaWduZWQgY2hhciBjMiA9IGJ1ZmZlckxlbmd0aCA+PSAyID8gbV9idWZmZXJbMV0udW5pY29k
ZSgpIDogKnVkYXRhKys7CiAgICAgICAgICAgICBBU1NFUlQoYnVmZmVyTGVuZ3RoIDwgMyk7CiAg
ICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMzID0gKnVkYXRhOwogCkBAIC0zODYsMjQgKzQwMiw2
NiBAQAogICAgICAgICAgICAgICAgIG1fdHlwZSA9IEF1dG9EZXRlY3RlZEVuY29kaW5nOwogICAg
ICAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoYXV0b0RldGVjdGVkRW5jb2Rp
bmcpOwogICAgICAgICAgICAgICAgIEFTU0VSVChtX2VuY29kaW5nLmlzVmFsaWQoKSk7Ci0gICAg
ICAgICAgICAgICAgZW5jID0gbV9lbmNvZGluZy5uYW1lKCk7CisgICAgICAgICAgICAgICAgbV9l
bmNvZGluZ05hbWUgPSBtX2VuY29kaW5nLm5hbWUoKTsKICAgICAgICAgICAgICAgICBtX2RlY29k
ZXIuc2V0KFN0cmVhbWluZ1RleHREZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGJlZ2lubmluZyA9IGZhbHNlOworICAgICAgICBt
X2NoZWNrZWRGb3JCT00gPSB0cnVlOworICAgIH0KKyAgICAKKyAgICBib29sIGN1cnJlbnRDaHVu
a0luQnVmZmVyID0gZmFsc2U7CisgICAgCisgICAgaWYgKG1fdHlwZSA9PSBEZWZhdWx0RW5jb2Rp
bmcgJiYgbV9jb250ZW50VHlwZSA9PSBDU1MgJiYgIW1fY2hlY2tlZEZvckNTU0NoYXJzZXQpIHsK
KyAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIGN1cnJlbnRDaHVu
a0luQnVmZmVyID0gdHJ1ZTsKKworICAgICAgICBpZiAobGVuID4gOCkgeyAvLyBzdHJsZW4oIkBj
aGFyc2V0IikgPT0gOAorICAgICAgICAgICAgY29uc3QgY2hhciAqcHRyID0gbV9idWZmZXIubGF0
aW4xKCk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpkYXRhRW5kID0gcHRyICsgbV9idWZmZXIu
bGVuZ3RoKCk7CisKKyAgICAgICAgICAgIGlmIChwdHJbMF0gPT0gJ0AnICYmIHB0clsxXSA9PSAn
YycgJiYgcHRyWzJdID09ICdoJyAmJiBwdHJbM10gPT0gJ2EnICYmIHB0cls0XSA9PSAncicgJiYg
CisgICAgICAgICAgICAgICAgcHRyWzVdID09ICdzJyAmJiBwdHJbNl0gPT0gJ2UnICYmIHB0cls3
XSA9PSAndCcpIHsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgcHRyICs9IDg7CisgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogcG9zID0gcHRyOworICAgICAgICAgICAgICAgIHdoaWxlIChw
b3MgPCBkYXRhRW5kICYmICgqcG9zID09ICdcdCcgfHwgKnBvcyA9PSAnICcpKQorICAgICAgICAg
ICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IGRhdGFFbmQpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBEZXByZWNhdGVkU3RyaW5nOjpudWxsOworCisgICAg
ICAgICAgICAgICAgaWYgKCpwb3MgPT0gJyInIHx8ICpwb3MgPT0gJ1wnJykgeworICAgICAgICAg
ICAgICAgICAgICBjaGFyIHF1b3RhdGlvbk1hcmsgPSAqcG9zOworICAgICAgICAgICAgICAgICAg
ICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgcHRyID0gcG9zOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgZGF0YUVuZCAmJiAqcG9zICE9IHF1
b3RhdGlvbk1hcmspCisgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHBvcyA9PSBkYXRhRW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIERlcHJlY2F0ZWRTdHJpbmc6Om51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgRGVwcmVj
YXRlZENTdHJpbmcgZW5jb2RpbmdOYW1lKHB0ciwgcG9zIC0gcHRyICsgMSk7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAg
ICAgd2hpbGUgKHBvcyA8IGRhdGFFbmQgJiYgKCpwb3MgPT0gJ1x0JyB8fCAqcG9zID09ICcgJykp
CisgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHBvcyA9PSBkYXRhRW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERlcHJlY2F0
ZWRTdHJpbmc6Om51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCpwb3MgPT0gJzsnKQor
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKGVuY29kaW5nTmFtZSwgRW5j
b2RpbmdGcm9tQ1NTQ2hhcnNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgbV9jaGVja2VkRm9yQ1NTQ2hhcnNldCA9IHRydWU7CiAgICAgfQorICAgICAg
ICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZzo6bnVsbDsKICAgICAKKyAgICB9IGVsc2UgaWYgKG1f
dHlwZSA9PSBEZWZhdWx0RW5jb2RpbmcgJiYgbV9jb250ZW50VHlwZSAhPSBQbGFpblRleHQgJiYg
IW1fcmVhY2hlZEJvZHkpIHsgLy8gSFRNTCBhbmQgWE1MCiAgICAgLy8gdGhpcyBpcyBub3QgY29t
cGxldGVseSBlZmZpY2llbnQsIHNpbmNlIHRoZSBmdW5jdGlvbiBtaWdodCBnbwogICAgIC8vIHRo
cm91Z2ggdGhlIGh0bWwgaGVhZCBzZXZlcmFsIHRpbWVzLi4uCiAKLSAgICBib29sIGxvb2tGb3JN
ZXRhVGFnID0gbV90eXBlID09IERlZmF1bHRFbmNvZGluZyAmJiAhYm9keTsKKyAgICAgICAgbV9i
dWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIGN1cnJlbnRDaHVua0luQnVmZmVyID0g
dHJ1ZTsKICAgICAKLSAgICBpZiAobG9va0Zvck1ldGFUYWcpIHsKLSNpZmRlZiBERUNPREVfREVC
VUcKLSAgICAgICAga2REZWJ1Zyg2MDA1KSA8PCAibG9va2luZyBmb3IgY2hhcnNldCBkZWZpbml0
aW9uIiA8PCBlbmRsOwotI2VuZGlmCi0gICAgICAgIHsgLy8gZXh0cmEgbGV2ZWwgb2YgYnJhY2Vz
IHRvIGtlZXAgaW5kZW50aW5nIG1hdGNoaW5nIG9yaWdpbmFsIGZvciBiZXR0ZXIgZGlmZidpbmcK
LSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKICAgICAgICAgICAgIC8vIHdl
IHN0aWxsIGRvbid0IGhhdmUgYW4gZW5jb2RpbmcsIGFuZCBhcmUgaW4gdGhlIGhlYWQKICAgICAg
ICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgdGFncyBhcmUgYWxsb3dlZCBpbiA8aGVhZD46CiAgICAg
ICAgICAgICAvLyBTQ1JJUFR8U1RZTEV8TUVUQXxMSU5LfE9CSkVDVHxUSVRMRXxCQVNFCkBAIC00
MTgsMTAgKzQ3Niw5IEBACiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJvb2wgd2l0aGluVGl0
bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgY29uc3QgY2hhciAqcHRyID0gYnVmZmVyLmxhdGlu
MSgpOwotICAgICAgICAgICAgY29uc3QgY2hhciAqcEVuZCA9IHB0ciArIGJ1ZmZlci5sZW5ndGgo
KTsKLSAgICAgICAgICAgIHdoaWxlKHB0ciAhPSBwRW5kKQotICAgICAgICAgICAgeworICAgICAg
ICBjb25zdCBjaGFyICpwdHIgPSBtX2J1ZmZlci5sYXRpbjEoKTsKKyAgICAgICAgY29uc3QgY2hh
ciAqcEVuZCA9IHB0ciArIG1fYnVmZmVyLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAocHRyICE9
IHBFbmQpIHsKICAgICAgICAgICAgICAgICBpZigqcHRyID09ICc8JykgewogICAgICAgICAgICAg
ICAgICAgICBib29sIGVuZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBwdHIrKzsKQEAg
LTQzMywxMCArNDkwLDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgLy8gSGFuZGxlIFhNTCBoZWFkZXIsIHdoaWNoIGNhbiBoYXZlIGVuY29kaW5nIGluIGl0
LgorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBYTUwgZGVjbGFyYXRpb24sIHdoaWNoIGNhbiBo
YXZlIGVuY29kaW5nIGluIGl0LgorICAgICAgICAgICAgICAgIC8vIFRoaXMgZW5jb2RpbmcgaXMg
aG9ub3JlZCBldmVuIGZvciBIVE1MIGRvY3VtZW50cy4KICAgICAgICAgICAgICAgICAgICAgaWYg
KHB0clswXSA9PSAnPycgJiYgcHRyWzFdID09ICd4JyAmJiBwdHJbMl0gPT0gJ20nICYmIHB0clsz
XSA9PSAnbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuZCA9IHB0
cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgqZW5kICE9ICc+JyAmJiAqZW5kICE9
ICdcMCcpIGVuZCsrOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKmVuZCAhPSAnPicgJiYg
KmVuZCAhPSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoKmVuZCA9PSAnXDAnKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRlZENTdHJpbmcgc3Ry
KHB0ciwgZW5kIC0gcHRyKTsKQEAgLTQ0NCwxNiArNTAzLDIyIEBACiAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgcG9zID0gZmluZFhNTEVuY29kaW5nKHN0ciwgbGVuKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwb3MgIT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RW5jb2RpbmdOYW1lKHN0ci5taWQocG9zLCBsZW4pLCBFbmNvZGluZ0Zyb21YTUxIZWFkZXIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdHlwZSAhPSBFbmNvZGluZ0Zyb21YTUxI
ZWFkZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKCJVVEYt
OCIsIEVuY29kaW5nRnJvbVhNTEhlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBj
b250aW51ZSBsb29raW5nIGZvciBhIGNoYXJzZXQgLSBpdCBtYXkgYmUgc3BlY2lmaWVkIGluIGFu
IEhUVFAtRXF1aXYgbWV0YQogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0clswXSA9
PSAwICYmIHB0clsxXSA9PSAnPycgJiYgcHRyWzJdID09IDAgJiYgcHRyWzNdID09ICd4JyAmJiBw
dHJbNF0gPT0gMCAmJiBwdHJbNV0gPT0gJ20nICYmIHB0cls2XSA9PSAwICYmIHB0cls3XSA9PSAn
bCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVURi0xNiB3aXRob3V0IEJPTQotICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKCgocHRyIC0gYnVmZmVyLmxhdGlu
MSgpKSAlIDIpID8gIlVURi0xNkxFIiA6ICJVVEYtMTZCRSIsIEF1dG9EZXRlY3RlZEVuY29kaW5n
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKCgocHRyIC0gbV9idWZmZXIu
bGF0aW4xKCkpICUgMikgPyAiVVRGLTE2TEUiIDogIlVURi0xNkJFIiwgQXV0b0RldGVjdGVkRW5j
b2RpbmcpOworICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0aGUgSFRUUC1FUVVJViBt
ZXRhIGhhcyBubyBlZmZlY3Qgb24gWEhUTUwKKyAgICAgICAgICAgICAgICBpZiAobV9jb250ZW50
VHlwZSA9PSBYTUwpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworCisgICAg
ICAgICAgICAgICAgaWYgKCpwdHIgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgICsrcHRy
OworICAgICAgICAgICAgICAgICAgICBlbmQ9dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgICAgIGlmKCpwdHIgPT0gJy8nKSBwdHIrKywgZW5kPXRydWU7CiAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgdG1wWzIwXTsKICAgICAgICAgICAgICAgICAgICAgaW50
IGxlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgKQEAgLTQ3NCwzMyArNTM5LDQy
IEBACiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZCAm
JiB0YWcgPT0gbWV0YVRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
IGVuZCA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCplbmQgIT0gJz4nICYm
ICplbmQgIT0gJ1wwJykgZW5kKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoICplbmQg
PT0gJ1wwJyApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKmVuZCAhPSAnPicg
JiYgKmVuZCAhPSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAgICAgZW5kKys7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgqZW5kID09ICdcMCcpCisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRDU3RyaW5nIHN0ciggcHRy
LCAoZW5kLXB0cikrMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIubG93ZXIo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSAwOwogICAgICAgICAgICAgICAg
ICAgICAgICAgd2hpbGUoIHBvcyA8ICggaW50ICkgc3RyLmxlbmd0aCgpICkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmKCAocG9zID0gc3RyLmZpbmQoImNoYXJzZXQiLCBwb3MsIGZh
bHNlKSkgPT0gLTEpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwb3MgPSBz
dHIuZmluZCgiY2hhcnNldCIsIHBvcywgZmFsc2UpKSA9PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKz0gNzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdoaXRlc3BhY2UuLgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCAgcG9zIDwgKGludClzdHIubGVuZ3RoKCkgJiYg
c3RyW3Bvc10gPD0gJyAnICkgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCBwb3MgPT0gKCBpbnQgKXN0ci5sZW5ndGgoKSkgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCBzdHJbcG9zKytdICE9ICc9JyApIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2hpbGUgKHBvcyA8IChpbnQpc3RyLmxlbmd0aCgpICYmIHN0cltwb3NdIDw9
ICcgJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyW3Bvcysr
XSAhPSAnPScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBwb3MgPCAoIGludCApc3RyLmxlbmd0aCgpICYm
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0cltwb3NdIDw9ICcgJyAp
IHx8IHN0cltwb3NdID09ICc9JyB8fCBzdHJbcG9zXSA9PSAnIicgfHwgc3RyW3Bvc10gPT0gJ1wn
JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBlbmQgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICggcG9zID09ICggaW50IClzdHIubGVuZ3RoKCkgKSBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZW5k
cG9zID0gcG9zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCBlbmRwb3MgPCBz
dHIubGVuZ3RoKCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cltl
bmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAhPSAnIicgJiYgc3RyW2VuZHBvc10gIT0gJ1wn
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3RyW2VuZHBvc10gIT0g
JzsnICYmIHN0cltlbmRwb3NdICE9ICc+JykgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAhPSAnIicgJiYgc3RyW2VuZHBv
c10gIT0gJ1wnJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltlbmRwb3Nd
ICE9ICc7JyAmJiBzdHJbZW5kcG9zXSAhPSAnPicpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZHBvcysrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuY29kaW5n
TmFtZShzdHIubWlkKHBvcywgZW5kcG9zLXBvcyksIEVuY29kaW5nRnJvbU1ldGFUYWcpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBtX3R5cGUgPT0gRW5jb2RpbmdGcm9tTWV0YVRh
ZyApIGdvdG8gZm91bmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV90eXBlID09IEVu
Y29kaW5nRnJvbU1ldGFUYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3Vu
ZDsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZW5kcG9zID49IHN0ci5sZW5n
dGgoKSB8fCBzdHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBvc10gPT0gJz4nICkgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kcG9zID49IHN0ci5sZW5ndGgoKSB8fCBz
dHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBvc10gPT0gJz4nKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
ZW5kcG9zICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTUwOSw3ICs1ODMsNyBA
QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyAhPSB0aXRsZVRhZyAmJiB0YWcg
IT0gYmFzZVRhZyAmJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kIHx8IHRh
ZyAhPSBodG1sVGFnKSAmJiAhd2l0aGluVGl0bGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodGFnICE9IGhlYWRUYWcpICYmIGlzYWxwaGEodG1wWzBdKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgYm9keSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIG1fcmVhY2hl
ZEJvZHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTUxOCwxMiArNTkyLDEwIEBA
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZzo6bnVs
bDsKICAgICAgICAgfQotICAgIH0KIAogIGZvdW5kOgogICAgIC8vIERvIHRoZSBhdXRvLWRldGVj
dCBpZiBvdXIgZGVmYXVsdCBlbmNvZGluZyBpcyBvbmUgb2YgdGhlIEphcGFuZXNlIG9uZXMuCi0g
ICAgaWYgKG1fdHlwZSAhPSBVc2VyQ2hvc2VuRW5jb2RpbmcgJiYgbV90eXBlICE9IEF1dG9EZXRl
Y3RlZEVuY29kaW5nICYmIG1fZW5jb2RpbmcuaXNKYXBhbmVzZSgpKQotICAgIHsKKyAgICBpZiAo
bV90eXBlICE9IFVzZXJDaG9zZW5FbmNvZGluZyAmJiBtX3R5cGUgIT0gQXV0b0RldGVjdGVkRW5j
b2RpbmcgJiYgbV9lbmNvZGluZy5pc0phcGFuZXNlKCkpIHsKICAgICAgICAgY29uc3QgY2hhciAq
YXV0b0RldGVjdGVkRW5jb2Rpbmc7CiAgICAgICAgIHN3aXRjaCAoS2FuamlDb2RlOjpqdWRnZShk
YXRhLCBsZW4pKSB7CiAgICAgICAgIGNhc2UgS2FuamlDb2RlOjpKSVM6CkBAIC01MzksNDEgKzYx
MSwzNCBAQAogICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSBOVUxMOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF1dG9EZXRlY3RlZEVuY29kaW5n
ICE9IDApIHsKKyAgICAgICAgaWYgKGF1dG9EZXRlY3RlZEVuY29kaW5nKQogICAgICAgICAgICAg
c2V0RW5jb2RpbmdOYW1lKGF1dG9EZXRlY3RlZEVuY29kaW5nLCBBdXRvRGV0ZWN0ZWRFbmNvZGlu
Zyk7CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICAvLyBpZiB3ZSBzdGlsbCBoYXZlbid0IGZvdW5k
IGFuIGVuY29kaW5nLCBhc3N1bWUgbGF0aW4xCi0gICAgaWYgKCFtX2VuY29kaW5nLmlzVmFsaWQo
KSkKLSAgICB7Ci0gICAgICAgIGlmIChlbmMuaXNFbXB0eSgpKSAKLSAgICAgICAgICAgIGVuYyA9
ICJpc284ODU5LTEiOwotICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29kaW5nKGVuYyk7Ci0g
ICAgICAgIC8vIGJlIHN1cmUgbm90IHRvIGNyYXNoCi0gICAgICAgIGlmICghbV9lbmNvZGluZy5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIGVuYyA9ICJpc284ODU5LTEiOworICAgIC8vIElmIHdl
IHN0aWxsIGhhdmVuJ3QgZm91bmQgYW4gZW5jb2RpbmcsIGFzc3VtZSBsYXRpbjEKKyAgICAvLyAo
dGhpcyBjYW4gaGFwcGVuIGlmIGFuIGVtcHR5IG5hbWUgaXMgcGFzc2VkIGZyb20gb3V0c2lkZSku
CisgICAgaWYgKG1fZW5jb2RpbmdOYW1lLmlzRW1wdHkoKSB8fCAhbV9lbmNvZGluZy5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSAiaXNvODg1OS0xIjsKICAgICAgICAgICAg
IG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwogICAgICAgICB9CiAg
ICAgICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29k
aW5nKSk7Ci0gICAgfQorCiAgICAgRGVwcmVjYXRlZFN0cmluZyBvdXQ7CiAKLSAgICBpZiAoIWJ1
ZmZlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFsb29rRm9yTWV0YVRhZykKLSAgICAgICAg
ICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKLSAgICAgICAgb3V0ID0gbV9kZWNvZGVyLT50
b1VuaWNvZGUoYnVmZmVyLmxhdGluMSgpLCBidWZmZXIubGVuZ3RoKCkpOwotICAgICAgICBidWZm
ZXIudHJ1bmNhdGUoMCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoIW1fYnVmZmVyLmlzRW1wdHko
KSkgeworICAgICAgICBpZiAoIWN1cnJlbnRDaHVua0luQnVmZmVyKQorICAgICAgICAgICAgbV9i
dWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIG91dCA9IG1fZGVjb2Rlci0+dG9Vbmlj
b2RlKG1fYnVmZmVyLmxhdGluMSgpLCBtX2J1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIG1fYnVm
ZmVyLnRydW5jYXRlKDApOworICAgIH0gZWxzZQogICAgICAgICBvdXQgPSBtX2RlY29kZXItPnRv
VW5pY29kZShkYXRhLCBsZW4pOwotICAgIH0KIAogICAgIHJldHVybiBvdXQ7CiB9CiAKIERlcHJl
Y2F0ZWRTdHJpbmcgRGVjb2Rlcjo6Zmx1c2goKSBjb25zdAogewotICAgIHJldHVybiBtX2RlY29k
ZXItPnRvVW5pY29kZShidWZmZXIubGF0aW4xKCksIGJ1ZmZlci5sZW5ndGgoKSwgdHJ1ZSk7Cisg
ICAgcmV0dXJuIG1fZGVjb2Rlci0+dG9Vbmljb2RlKG1fYnVmZmVyLmxhdGluMSgpLCBtX2J1ZmZl
ci5sZW5ndGgoKSwgdHJ1ZSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgorI2lu
Y2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJMb2FkZXJGdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJsb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00MCwyMCArNDEsMTcgQEAK
IAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldChEb2NMb2FkZXIqIGRs
LCBjb25zdCBTdHJpbmcgJnVybCwgQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3ksIHRpbWVfdCBfZXhw
aXJlRGF0ZSwgY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgY2hhcnNldCkKICAgICA6IENhY2hlZFJl
c291cmNlKHVybCwgQ1NTU3R5bGVTaGVldCwgY2FjaGVQb2xpY3ksIF9leHBpcmVEYXRlKQotICAg
ICwgbV9lbmNvZGluZyhjaGFyc2V0LmxhdGluMSgpKQorICAgICwgbV9kZWNvZGVyKG5ldyBEZWNv
ZGVyKCJ0ZXh0L2NzcyIpKQogewogICAgIC8vIEl0J3MgY3NzIHdlIHdhbnQuCiAgICAgc2V0QWNj
ZXB0KCJ0ZXh0L2NzcyIpOwogICAgIC8vIGxvYWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVy
KCktPmxvYWQoZGwsIHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIGlm
ICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpCi0gICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2Rp
bmcoTGF0aW4xRW5jb2RpbmcpOwogfQogCiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NT
dHlsZVNoZWV0KGNvbnN0IFN0cmluZyAmdXJsLCBjb25zdCBEZXByZWNhdGVkU3RyaW5nICZzdHls
ZXNoZWV0X2RhdGEpCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIENTU1N0eWxlU2hlZXQsIENh
Y2hlUG9saWN5VmVyaWZ5LCAwLCBzdHlsZXNoZWV0X2RhdGEubGVuZ3RoKCkpCi0gICAgLCBtX2Vu
Y29kaW5nKEludmFsaWRFbmNvZGluZykKIHsKICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKICAgICBt
X3N0YXR1cyA9IFBlcnNpc3RlbnQ7CkBAIC04MiwxMSArODAsOCBAQAogCiB2b2lkIENhY2hlZENT
U1N0eWxlU2hlZXQ6OnNldENoYXJzZXQoY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgY2hzKQogewot
ICAgIGlmICghY2hzLmlzRW1wdHkoKSkgewotICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2Rpbmcg
PSBUZXh0RW5jb2RpbmcoY2hzLmxhdGluMSgpKTsKLSAgICAgICAgaWYgKGVuY29kaW5nLmlzVmFs
aWQoKSkKLSAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBlbmNvZGluZzsKLSAgICB9CisgICAgaWYg
KCFjaHMuaXNFbXB0eSgpKQorICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nTmFtZShjaHMu
bGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFkZXIpOwogfQogCiB2b2lkIENh
Y2hlZENTU1N0eWxlU2hlZXQ6OmRhdGEoVmVjdG9yPGNoYXI+JiBkYXRhLCBib29sIGFsbERhdGFS
ZWNlaXZlZCkKQEAgLTk1LDcgKzkwLDggQEAKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0U2l6
ZShkYXRhLnNpemUoKSk7Ci0gICAgbV9zaGVldCA9IFN0cmluZyhtX2VuY29kaW5nLnRvVW5pY29k
ZShkYXRhLmRhdGEoKSwgc2l6ZSgpKSk7CisgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVjb2Rl
KGRhdGEuZGF0YSgpLCBzaXplKCkpOworICAgIG1fc2hlZXQgKz0gbV9kZWNvZGVyLT5mbHVzaCgp
OwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNrTm90aWZ5KCk7CiB9CkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDIsNiArNDIsNyBAQAogCiBDYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0
KERvY0xvYWRlciogZGwsIGNvbnN0IFN0cmluZyAmdXJsLCBDYWNoZVBvbGljeSBjYWNoZVBvbGlj
eSwgdGltZV90IF9leHBpcmVEYXRlKQogICAgIDogQ2FjaGVkUmVzb3VyY2UodXJsLCBYU0xTdHls
ZVNoZWV0LCBjYWNoZVBvbGljeSwgX2V4cGlyZURhdGUpCisgICAgLCBtX2RlY29kZXIobmV3IERl
Y29kZXIoInRleHQveHNsIikpCiB7CiAgICAgLy8gSXQncyBYTUwgd2Ugd2FudC4KICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYWNjZXB0IG1vcmUgZ2VuZXJhbCB4bWwgZm9ybWF0cyAqLyoreG1s
LCBpbWFnZS9zdmcreG1sIGZvciBleGFtcGxlLgpAQCAtNTAsNyArNTEsNiBAQAogICAgIC8vIGxv
YWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQoZGwsIHRoaXMsIGZhbHNlKTsK
ICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIG1fZGVjb2RlciA9IG5ldyBEZWNvZGVyOwogfQog
CiB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OnJlZihDYWNoZWRSZXNvdXJjZUNsaWVudCAqYykK
QEAgLTgyLDYgKzgyLDcgQEAKIAogICAgIHNldFNpemUoZGF0YS5zaXplKCkpOwogICAgIG1fc2hl
ZXQgPSBTdHJpbmcobV9kZWNvZGVyLT5kZWNvZGUoZGF0YS5kYXRhKCksIHNpemUoKSkpOworICAg
IG1fc2hlZXQgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwog
ICAgIGNoZWNrTm90aWZ5KCk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9EZWNvZGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5oCShyZXZpc2lvbiAxNjA1MCkKKysr
IFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBA
QAogCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDAsMTEgKzQxLDEyIEBACiAgICAgICAgIEF1dG9EZXRlY3RlZEVuY29kaW5nLAogICAgICAgICBF
bmNvZGluZ0Zyb21YTUxIZWFkZXIsCiAgICAgICAgIEVuY29kaW5nRnJvbU1ldGFUYWcsCisgICAg
ICAgIEVuY29kaW5nRnJvbUNTU0NoYXJzZXQsCiAgICAgICAgIEVuY29kaW5nRnJvbUhUVFBIZWFk
ZXIsCiAgICAgICAgIFVzZXJDaG9zZW5FbmNvZGluZwogICAgIH07CiAgICAgCi0gICAgRGVjb2Rl
cigpOworICAgIERlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBk
ZWZhdWx0RW5jb2RpbmdOYW1lID0gU3RyaW5nKCkpOwogICAgIH5EZWNvZGVyKCk7CiAKICAgICB2
b2lkIHNldEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGluZywgRW5jb2RpbmdTb3VyY2Ug
dHlwZSk7CkBAIC01NiwxOSArNTgsMjggQEAKICAgICBEZXByZWNhdGVkU3RyaW5nIGRlY29kZShj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKTsKICAgICBEZXByZWNhdGVkU3RyaW5nIGZsdXNoKCkg
Y29uc3Q7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CisgICAgZW51bSBDb250ZW50VHlwZSB7Cisg
ICAgICAgIEhUTUwsCisgICAgICAgIFhNTCwKKyAgICAgICAgQ1NTLAorICAgICAgICBQbGFpblRl
eHQgLy8gRG8gbm90IGxvb2sgaW5zaWRlIHRoZSBkb2N1bWVudCAoZXF1aXZhbGVudCB0byBkaXJl
Y3RseSB1c2luZyBTdHJlYW1pbmdUZXh0RGVjb2RlcikKKyAgICB9OworCiAgICAgLy8gZW5jb2Rp
bmcgdXNlZCBmb3IgZGVjb2RpbmcuIGRlZmF1bHQgaXMgTGF0aW4xLgogICAgIFRleHRFbmNvZGlu
ZyBtX2VuY29kaW5nOworICAgIENvbnRlbnRUeXBlIG1fY29udGVudFR5cGU7CiAgICAgT3duUHRy
PFN0cmVhbWluZ1RleHREZWNvZGVyPiBtX2RlY29kZXI7Ci0gICAgRGVwcmVjYXRlZENTdHJpbmcg
ZW5jOworICAgIERlcHJlY2F0ZWRDU3RyaW5nIG1fZW5jb2RpbmdOYW1lOwogICAgIEVuY29kaW5n
U291cmNlIG1fdHlwZTsKIAogICAgIC8vIE91ciB2ZXJzaW9uIG9mIERlcHJlY2F0ZWRTdHJpbmcg
d29ya3Mgd2VsbCBmb3IgYWxsLTgtYml0IGNoYXJhY3RlcnMsIGFuZCBhbGxvd3MgbnVsbCBjaGFy
YWN0ZXJzLgogICAgIC8vIFRoaXMgd29ya3MgYmV0dGVyIHRoYW4gRGVwcmVjYXRlZENTdHJpbmcg
d2hlbiB0aGVyZSBhcmUgbnVsbCBjaGFyYWN0ZXJzIGludm9sdmVkLgotICAgIERlcHJlY2F0ZWRT
dHJpbmcgYnVmZmVyOworICAgIERlcHJlY2F0ZWRTdHJpbmcgbV9idWZmZXI7CiAKLSAgICBib29s
IGJvZHk7Ci0gICAgYm9vbCBiZWdpbm5pbmc7CisgICAgYm9vbCBtX3JlYWNoZWRCb2R5OworICAg
IGJvb2wgbV9jaGVja2VkRm9yQ1NTQ2hhcnNldDsKKyAgICBib29sIG1fY2hlY2tlZEZvckJPTTsK
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5jcHAJKHJldmlzaW9u
IDE2MDUwKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSw3IEBACiAgICAgLy8gTG9hZCB0aGUgZmlsZQogICAgIENhY2hl
Ojpsb2FkZXIoKS0+bG9hZChkbCwgdGhpcywgZmFsc2UpOwogICAgIG1fbG9hZGluZyA9IHRydWU7
Ci0gICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgbV9kZWNvZGVyID0gbmV3IERlY29k
ZXIoImFwcGxpY2F0aW9uL3htbCIpOwogfQogCiBDYWNoZWRYQkxEb2N1bWVudDo6fkNhY2hlZFhC
TERvY3VtZW50KCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTYwNTApCisrKyBXZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsMTIgKzY0MiwxMCBAQAogICAgIH0KICAg
ICAKICAgICBpZiAoIWQtPm1fZGVjb2RlcikgewotICAgICAgICBkLT5tX2RlY29kZXIgPSBuZXcg
RGVjb2RlcjsKKyAgICAgICAgZC0+bV9kZWNvZGVyID0gbmV3IERlY29kZXIoZC0+bV9yZXF1ZXN0
Lm1fcmVzcG9uc2VNSU1FVHlwZSwgc2V0dGluZ3MoKS0+ZW5jb2RpbmcoKS5sYXRpbjEoKSk7CiAg
ICAgICAgIGlmICghZC0+bV9lbmNvZGluZy5pc051bGwoKSkKICAgICAgICAgICAgIGQtPm1fZGVj
b2Rlci0+c2V0RW5jb2RpbmdOYW1lKGQtPm1fZW5jb2RpbmcubGF0aW4xKCksCiAgICAgICAgICAg
ICAgICAgZC0+bV9oYXZlRW5jb2RpbmcgPyBEZWNvZGVyOjpVc2VyQ2hvc2VuRW5jb2RpbmcgOiBE
ZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZC0+bV9kZWNvZGVyLT5zZXRFbmNvZGluZ05hbWUoc2V0dGluZ3MoKS0+ZW5jb2RpbmcoKS5s
YXRpbjEoKSwgRGVjb2Rlcjo6RGVmYXVsdEVuY29kaW5nKTsKIAogICAgICAgICBpZiAoZC0+bV9k
b2MpCiAgICAgICAgICAgICBkLT5tX2RvYy0+c2V0RGVjb2RlcihkLT5tX2RlY29kZXIuZ2V0KCkp
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzNyBAQAorMjAwNi0wOC0yOCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0cyBmb3I6CisgICAgICAgIC0gaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01NjIwCisgICAgICAgIFNob3VsZCBvbmx5IGhvbm9y
IGVuY29kaW5nIGZyb20gPG1ldGE+IGluIEhUTUwKKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxs
YS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MworICAgICAgICBBbiBYTUwgZGVj
bGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2Vy
cworICAgICAgICBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKKyAgICAgICAg
LSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU1Cisg
ICAgICAgIENTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQKKworICAgICAgICAqIGZhc3Qv
ZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzczogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy9jc3MtY2hhcnNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2Nzcy1j
aGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L2Nzcy1jaGFyc2V0LWV2aWwuY3NzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL2Nz
cy1jaGFyc2V0LWV2aWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9kZWZh
dWx0LXhodG1sLWVuY29kaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC5odG1sOiBBZGRlZC4KKwogMjAwNi0wOC0yNyAgUm9iIEJ1aXMgIDxidWlzQGtk
ZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmcueGh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5j
b2RpbmcueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorPHA+VGVzdCBkZWZhdWx0IFhI
VE1MIGVuY29kaW5nIChpbiB0aGUgYWJzZW5jZSBvZiBhbiBYTUwgZGVjbGFyYXRpb24pLjwvcD4K
KworPHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAK
KyAgICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFy
YWN0ZXJTZXQpICsgIiAoc2hvdWxkIGJlIFVURi04KSI7Cis8L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9k
ZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIHRleHQveG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8t
eG1sLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVk
by14bWwtNC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0iS09JOC1SIiA/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvVFIveGh0bWwxL0RURC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIi8+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVu
ZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+OgorQW4gWE1MIGRl
Y2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dl
cnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKworPHAgaWQ9InJlc3Vs
dCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQu
Y2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAo
c2hvdWxkIGJlIHdpbmRvd3MtMTI1MSkiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC00Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyIEBACitAY2hhcnNldCAidXRmLTgiOworI2R1bW15OmJlZm9yZSB7
IGNvbnRlbnQ6ICJTVdCh0KHQlVNTIjsgfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgdGV4dC9jc3MKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21l
dGEtaW4teGh0bWwueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9tZXRhLWluLXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9tZXRhLWluLXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBA
Cis8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9U
Ui94aHRtbDEvRFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9d2luZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiLz4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4u
b3JnL3Nob3dfYnVnLmNnaT9pZD01NjIwIj5idWcgNTYyMDwvYT46CitTaG91bGQgb25seSBob25v
ciBlbmNvZGluZyBmcm9tICZsdDttZXRhPiBpbiBIVE1MPC9wPgorCis8cCBpZD0icmVzdWx0IiAv
PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFy
c2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91
bGQgYmUgVVRGLTgpIjsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC94bWwKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1j
aGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1Rl
c3QgZm9yIGJ1ZyAxMDE1NTogQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBvcnRlZAorCitDU1Mg
Mi4xIHNheXMgdGhhdCBAY2hhcnNldCAiIG11c3QgYmUgd3JpdHRlbiBsaXRlcmFsbHksIGJ1dCBG
aXJlZm94IGFuZCBJRSBhbGxvdyBleHRyYSBzcGFjZXMgYW5kIHNpbmdsZSBxdW90ZXMuCisKK1NV
0KHQodCVU1MKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3Mt
Y2hhcnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGVzdCBm
b3IgYnVnIDEwMTU1OiBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkCisKK1Rlc3QgdGhh
dCBAY2hhcnNldCB3b3JrcyBhbmQgdGhhdCBpbmRleGVkIHJ1bGUgYWNjZXNzIHZpYSBhbiBJRS1z
cGVjaWZpYyBydWxlcyBwcm9wZXJ0eSBkb2VzIG5vdCB0YWtlIGl0IGludG8gYWNjb3VudC4KKwor
U1VDQ0VTUworCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1p
bi14aHRtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGVzdCBm
b3IgYnVnIDU2MjA6IFNob3VsZCBvbmx5IGhvbm9yIGVuY29kaW5nIGZyb20gPG1ldGE+IGluIEhU
TUwKKworQ2hhcnNldDogVVRGLTggKHNob3VsZCBiZSBVVEYtOCkKKworCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTog
c3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGVzdCBmb3IgYnVnIDk3ODM6IEFuIFhNTCBkZWNsYXJh
dGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVU
Ri04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQKKworVGVzdCB0aGF0IGFuIFhNTCBkZWNs
YXJhdGlvbiB3aXRoIGFuIGV4cGxpY2l0IGVuY29kaW5nIGlzIHN0aWxsIGhvbm9yZWQuIFRoaXMg
aXMgd2hhdCBGaXJlZm94IDEuNSBhbmQgU2FmYXJpIDIuMCBkbywgdW5saWtlIFdpbklFIDYuCisK
K0NoYXJzZXQ6IEtPSTgtUiAoc2hvdWxkIGJlIEtPSTgtUikKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wt
c3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1j
aGFyc2V0LWV2aWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2Nzcy1jaGFyc2V0LWV2aWwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMx
IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgorICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy1jaGFyc2V0LWV2aWwuY3Nz
Ij4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTUiPmJ1
ZyAxMDE1NTwvYT46CitDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkPC9wPgorCis8cD5D
U1MgMi4xIHNheXMgdGhhdCA8Y29kZT5AY2hhcnNldCAiPC9jb2RlPiBtdXN0IGJlIHdyaXR0ZW4g
bGl0ZXJhbGx5LCAKK2J1dCBGaXJlZm94IGFuZCBJRSBhbGxvdyBleHRyYSBzcGFjZXMgYW5kIHNp
bmdsZSBxdW90ZXMuPC9wPgorCis8cCBpZD0icmVzdWx0Ij48L3A+CisKKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgdHJ5IHsKKyAgICB0ZXh0ID0gZG9j
dW1lbnQuc3R5bGVTaGVldHNbMF0ucnVsZXNbMF0uc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiY29u
dGVudCIpOworICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyIvZywgIiIpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS50ZXh0Q29udGVudCA9IHRleHQ7CisgIH0gY2F0Y2gg
KGV4KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50
ID0gZXgudG9TdHJpbmcoKTsKKyAgfQorfQorPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJz
ZXQtZXZpbC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRt
bAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iY3NzLWNoYXJzZXQuY3NzIiBjaGFyc2V0PSJ3aW5kb3dzLTEyNTEiPgorICAgIDwhLS0g
VGhlIGRvY3VtZW50IGNoYXJzZXQgYW5kIGxpbmsgY2hhcnNldCBoYXZlIGxvd2VyIHByaW9yaXR5
IHRoYW4gCisgICAgICAgICBAY2hhcnNldCwgc28gdGhleSBzaG91bGRuJ3QgYWZmZWN0IGFueXRo
aW5nLiAtLT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NTUiPmJ1ZyAxMDE1NTwvYT46CitDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkPC9wPgor
PHA+VGVzdCB0aGF0IDxjb2RlPkBjaGFyc2V0PC9jb2RlPiB3b3JrcyBhbmQgdGhhdCBpbmRleGVk
IHJ1bGUgYWNjZXNzIHZpYSAKK2FuIElFLXNwZWNpZmljIDxjb2RlPnJ1bGVzPC9jb2RlPiBwcm9w
ZXJ0eSBkb2VzIG5vdCB0YWtlIGl0IGludG8gYWNjb3VudC48L3A+CisKKzxwIGlkPSJyZXN1bHQi
PjwvcD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiB0ZXN0KCkgewor
ICB0cnkgeworICAgIHRleHQgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5ydWxlc1swXS5zdHls
ZS5jc3NUZXh0OworICAgIGlmICh0ZXh0Lm1hdGNoKCcuKlNV0dHFU1MuKicpKQorICAgICAgcmVz
dWx0LmlubmVySFRNTCA9ICJTVUNDRVNTIjsKKyAgICBlbHNlCisgICAgICByZXN1bHQuaW5uZXJI
VE1MID0gIkZBSUxVUkU6ICIgKyB0ZXh0OworICB9IGNhdGNoIChleCkgeworICAgIHJlc3VsdC5p
bm5lckhUTUwgPSAiRkFJTFVSRTogIiArIGV4OworICB9Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5
PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9jc3MtY2hhcnNldC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRl
eHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTIu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9ImtvaTgtciIgPz4KKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMi
PmJ1ZyA5NzgzPC9hPjoKK0FuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVu
Y29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9j
dW1lbnQ8L3A+Cis8cD5UZXN0IHRoYXQgYW4gWE1MIGRlY2xhcmF0aW9uIDxiPndpdGg8L2I+IGFu
IGV4cGxpY2l0IGVuY29kaW5nIGlzIHN0aWxsIGhvbm9yZWQuIFRoaXMgaXMgd2hhdCBGaXJlZm94
IDEuNSBhbmQgU2FmYXJpIDIuMCBkbywgdW5saWtlIFdpbklFIDYuPC9wPgorPHAgaWQ9InJlc3Vs
dCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQu
Y2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAo
c2hvdWxkIGJlIEtPSTgtUikiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLmh0
bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0IGZvciBi
dWcgOTc4MzogQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2Rpbmcg
aW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudAor
CitDaGFyc2V0OiBLT0k4LVIgKHNob3VsZCBiZSBLT0k4LVIpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy1leHBlY3RlZC50eHQKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9s
LXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1
ZG8teG1sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzIEBACitUZXN0IGZvciBidWcgOTc4MzogQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQg
YW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2Rpbmcg
aW4gYW4gSFRNTCBkb2N1bWVudAorCitDaGFyc2V0OiBJU08tODg1OS0xIChzaG91bGQgYmUgeW91
ciBicm93c2VyIGRlZmF1bHQgb25lKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRp
dmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2Rp
bmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
ZGVmYXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Rlc3QgZGVmYXVsdCBYSFRNTCBlbmNvZGlu
ZyAoaW4gdGhlIGFic2VuY2Ugb2YgYW4gWE1MIGRlY2xhcmF0aW9uKS4KKworQ2hhcnNldDogVVRG
LTggKHNob3VsZCBiZSBVVEYtOCkKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0Cl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1z
dHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRv
LXhtbC0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1
ZG8teG1sLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cHNldWRvLXhtbC0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RU
RC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUtPSTgt
UiIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIi8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTc4MyI+YnVnIDk3ODM8L2E+OgorQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhw
bGljaXQgZW5jb2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4g
SFRNTCBkb2N1bWVudDwvcD4KKworPHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ID0gIkNoYXJzZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJz
ZXQgOiBkb2N1bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAoc2hvdWxkIGJlIEtPSTgtUikiOworPC9z
Y3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLmh0bWwKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wc2V1ZG8teG1sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wc2V1ZG8teG1sLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BzZXVkby14bWwuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv
RFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEu
b3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODMiPmJ1ZyA5NzgzPC9hPjoKK0FuIFhN
TCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRy
aWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQ8L3A+CisKKzxwIGlkPSJy
ZXN1bHQiIC8+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJDaGFyc2V0OiAiICsgCisgICAgKGRvY3Vt
ZW50LmNoYXJzZXQgPyBkb2N1bWVudC5jaGFyc2V0IDogZG9jdW1lbnQuY2hhcmFjdGVyU2V0KSAr
ICIgKHNob3VsZCBiZSB5b3VyIGJyb3dzZXIgZGVmYXVsdCBvbmUpIjsKKzwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BzZXVkby14bWwuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0
LWV2aWwuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNo
YXJzZXQtZXZpbC5jc3MJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2Nzcy1jaGFyc2V0LWV2aWwuY3NzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0BjaGFy
c2V0CSAgJ3V0Zi04JyAJOworI2R1bW15OmJlZm9yZSB7IGNvbnRlbnQ6ICJTVdCh0KHQlVNTIjsg
fQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hh
cnNldC1ldmlsLmNzcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2Nz
cwoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC00LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
NC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAor
VGVzdCBmb3IgYnVnIDk3ODM6IEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0
IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwg
ZG9jdW1lbnQKKworQ2hhcnNldDogd2luZG93cy0xMjUxIChzaG91bGQgYmUgd2luZG93cy0xMjUx
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8t
eG1sLTQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRl
eHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10345</attachid>
            <date>2006-08-31 21:36:37 -0700</date>
            <delta_ts>2006-09-01 12:29:42 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>5620r3_patch.txt</filename>
            <type>text/plain</type>
            <size>44742</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjE0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMDYtMDgtMjcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBueXBv
cC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjAKKyAg
ICAgICAgU2hvdWxkIG9ubHkgaG9ub3IgZW5jb2RpbmcgZnJvbSA8bWV0YT4gaW4gSFRNTAorCisg
ICAgICAgIC0gaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzgzCisgICAgICAgIEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29k
aW5nIGluY29ycmVjdGx5IHRyaWdnZXJzCisgICAgICAgIFVURi04IGVuY29kaW5nIGluIGFuIEhU
TUwgZG9jdW1lbnQKKworICAgICAgICAtIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAxNTUKKyAgICAgICAgQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBv
cnRlZAorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRGVjb2Rlci5jcHA6CisgICAgICAgIChE
ZWNvZGVyOjpEZWNvZGVyKTogRGVjb2RlciBub3cga25vd3Mgd2hhdCBraW5kIG9mIGNvbnRlbnQg
aXQgaXMgZGVjb2RpbmcuCisgICAgICAgIEFsc28sIHRoZSBicm93c2VyIGRlZmF1bHQgZW5jb2Rp
bmcgY2FuIG5vdyBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIGNvbnN0cnVjdG9yLAorICAgICAg
ICB0byBzdHJlYW1saW5lIHRoZSBsb2dpYy4KKyAgICAgICAgKERlY29kZXI6OmRlY29kZSk6IEFk
ZCBzdXBwb3J0IGZvciBAY2hhcnNldCwgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEhUTUwgYW5kIFhN
TC4KKyAgICAgICAgKERlY29kZXI6OnNldEVuY29kaW5nTmFtZSk6IFN0eWxlIGNsZWFudXAuCisg
ICAgICAgIChEZWNvZGVyOjplbmNvZGluZ05hbWUpOiBEaXR0by4KKyAgICAgICAgKERlY29kZXI6
OmZsdXNoKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0RlY29kZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlY29kZXI6Oik6CisKKyAgICAgICAgKiBicmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGlu
Z3MubW06IFBhc3MgYSBjb250ZW50IHR5cGUgb2YgdGV4dC9odG1sIHRvIERlY29kZXIuCisKKyAg
ICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnNldENoYXJzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZENT
U1N0eWxlU2hlZXQuaDoKKyAgICAgICAgVXNlIERlY29kZXIgaW5zdGVhZCBvZiBUZXh0RW5jb2Rp
bmc6OnRvVW5pY29kZSgpIHRvIGVuYWJsZSBAY2hhcnNldCBzdXBwb3J0LgorCisgICAgICAgICog
bG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhC
TERvY3VtZW50OjpDYWNoZWRYQkxEb2N1bWVudCk6IFBhc3MgYSBjb250ZW50IHR5cGUuCisgICAg
ICAgICogbG9hZGVyL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6IEZsdXNoIHRoZSBkZWNvZGVy
IHRvIGJlIHNhZmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjp3cml0ZSk6IFBhc3MgYSBjb250ZW50IHR5cGUgYW5kIGEgZGVmYXVsdCBlbmNv
ZGluZyB0byAKKyAgICAgICAgdGhlIERlY29kZXIuCisgICAgICAgICogeG1sL1hTTFRQcm9jZXNz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG9jdW1lbnRG
cm9tU291cmNlKTogUGFzcyB0aGUgb3V0cHV0IGRvY3VtZW50CisgICAgICAgIE1JTUUgdHlwZS4K
KyAgICAgICAgKiB4bWwveG1saHR0cHJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OnJlY2VpdmVkRGF0YSk6IERpdHRvLgorCiAyMDA2LTA4LTMxICBBZGVsZSBQ
ZXRlcnNvbiAgPGFkZWxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1
bGxpdmFuLgpJbmRleDogV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHJldmlz
aW9uIDE2MTQ1KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVFbmNvZGluZ3MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICsgKE5TU3RyaW5nICopZGVjb2RlRGF0YToo
TlNEYXRhICopZGF0YQogewogICAgIEhUTUxOYW1lczo6aW5pdCgpOyAvLyB0aGlzIG1ldGhvZCBp
cyB1c2VkIGZvciBpbXBvcnRpbmcgYm9va21hcmtzIGF0IHN0YXJ0dXAsIHNvIEhUTUxOYW1lcyBh
cmUgbGlrZWx5IHRvIGJlIHVuaW5pdGlhbGl6ZWQgeWV0Ci0gICAgRGVjb2RlciogZGVjb2RlciA9
IG5ldyBEZWNvZGVyOworICAgIERlY29kZXIqIGRlY29kZXIgPSBuZXcgRGVjb2RlcigidGV4dC9o
dG1sIik7IC8vIGJvb2ttYXJrIGZpbGVzIGFyZSBIVE1MCiAgICAgRGVwcmVjYXRlZFN0cmluZyBy
ZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihbZGF0YSBi
eXRlc10pLCBbZGF0YSBsZW5ndGhdKTsKICAgICByZXN1bHQgKz0gZGVjb2Rlci0+Zmx1c2goKTsK
ICAgICBkZWNvZGVyLT5kZXJlZigpOwpJbmRleDogV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAkocmV2aXNp
b24gMTYxNDUpCisrKyBXZWJDb3JlL3htbC94bWxodHRwcmVxdWVzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUzOSwxMiArNTM5LDEzIEBACiAgICAgICAgIGlmIChtX2VuY29kaW5nLmlzRW1wdHko
KSAmJiBtX2pvYikKICAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBtX2pvYi0+cXVlcnlNZXRhRGF0
YSgiY2hhcnNldCIpOwogICAgIAotICAgICAgICBtX2RlY29kZXIgPSBuZXcgRGVjb2RlcjsKICAg
ICAgICAgaWYgKCFtX2VuY29kaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fZGVjb2Rlci0+
c2V0RW5jb2RpbmdOYW1lKG1fZW5jb2RpbmcuZGVwcmVjYXRlZFN0cmluZygpLmxhdGluMSgpLCBE
ZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKKyAgICAgICAgICAgIG1fZGVjb2RlciA9
IG5ldyBEZWNvZGVyKCJ0ZXh0L3BsYWluIiwgbV9lbmNvZGluZyk7CisgICAgICAgIGVsc2UgaWYg
KHJlc3BvbnNlSXNYTUwoKSkKKyAgICAgICAgICAgIC8vIGFsbG93IERlY29kZXIgdG8gbG9vayBp
bnNpZGUgdGhlIG1fcmVzcG9uc2UgaWYgaXQncyBYTUwKKyAgICAgICAgICAgIG1fZGVjb2RlciA9
IG5ldyBEZWNvZGVyKCJhcHBsaWNhdGlvbi94bWwiKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgLy8gb25seSBhbGxvdyBEZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSBtX3Jlc3BvbnNlIGlm
IGl0J3MgWE1MCi0gICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nTmFtZSgiVVRGLTgi
LCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpEZWZhdWx0RW5jb2RpbmcgOiBEZWNvZGVyOjpF
bmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKKyAgICAgICAgICAgIG1fZGVjb2RlciA9IG5ldyBEZWNv
ZGVyKCJ0ZXh0L3BsYWluIiwgIlVURi04Iik7CiAgICAgfQogICAgIGlmIChsZW4gPT0gMCkKICAg
ICAgICAgcmV0dXJuOwpJbmRleDogV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAJKHJldmlzaW9uIDE2MTQ1KQor
KysgV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMiw3
ICsyMTIsNyBAQAogICAgIH0KICAgICByZXN1bHQtPmRldGVybWluZVBhcnNlTW9kZShkb2N1bWVu
dFNvdXJjZSk7IC8vIE1ha2Ugc3VyZSB3ZSBwYXJzZSBpbiB0aGUgY29ycmVjdCBtb2RlLgogICAg
IAotICAgIFJlZlB0cjxEZWNvZGVyPiBkZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgUmVmUHRy
PERlY29kZXI+IGRlY29kZXIgPSBuZXcgRGVjb2Rlcihzb3VyY2VNSU1FVHlwZSk7CiAgICAgZGVj
b2Rlci0+c2V0RW5jb2RpbmdOYW1lKHNvdXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/ICJVVEYtOCIg
OiBzb3VyY2VFbmNvZGluZy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tWE1MSGVhZGVy
KTsKICAgICByZXN1bHQtPnNldERlY29kZXIoZGVjb2Rlci5nZXQoKSk7CiAgICAgCkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCShyZXZpc2lvbiAxNjE0NSkKKysrIFdlYkNv
cmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBEb2NMb2FkZXI7CisgICAg
Y2xhc3MgRGVjb2RlcjsKIAogICAgIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQgOiBwdWJsaWMg
Q2FjaGVkUmVzb3VyY2UKICAgICB7CkBAIC01OCw3ICs1OSw3IEBACiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIFN0cmluZyBtX3NoZWV0OwotICAgICAgICBUZXh0RW5jb2RpbmcgbV9lbmNvZGlu
ZzsKKyAgICAgICAgUmVmUHRyPERlY29kZXI+IG1fZGVjb2RlcjsKICAgICB9OwogCiB9CkluZGV4
OiBXZWJDb3JlL2xvYWRlci9EZWNvZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRl
ci9EZWNvZGVyLmNwcAkocmV2aXNpb24gMTYxNDUpCisrKyBXZWJDb3JlL2xvYWRlci9EZWNvZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAKIAogICAgIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQogICAgIENvcHlyaWdodCAoQykg
MjAwMywgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICAgIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAKICAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZWNvZGVyLmgiCiAKKyNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlN0cmVhbWluZ1RleHREZWNvZGVyLmgiCiAj
aW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKQEAgLTI0OCwzMyArMjUwLDQ4IEBACiAgICAg
cmV0dXJuIChjb2RlKTsKIH0KIAotRGVjb2Rlcjo6RGVjb2RlcigpIAotICA6IG1fZW5jb2Rpbmco
TGF0aW4xRW5jb2RpbmcpCi0gICwgbV9kZWNvZGVyKFN0cmVhbWluZ1RleHREZWNvZGVyOjpjcmVh
dGUobV9lbmNvZGluZykpCi0gICwgZW5jKDApCitEZWNvZGVyOjpEZWNvZGVyKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZGVmYXVsdEVuY29kaW5nTmFtZSkKKyAgOiBtX2Vu
Y29kaW5nKGRlZmF1bHRFbmNvZGluZ05hbWUuaXNOdWxsKCkgPyAiaXNvODg1OS0xIiA6IGRlZmF1
bHRFbmNvZGluZ05hbWUuYXNjaWkoKS5kYXRhKCkpCisgICwgbV9lbmNvZGluZ05hbWUoZGVmYXVs
dEVuY29kaW5nTmFtZS5pc051bGwoKSA/ICJpc284ODU5LTEiIDogZGVmYXVsdEVuY29kaW5nTmFt
ZS5hc2NpaSgpLmRhdGEoKSkKICAgLCBtX3R5cGUoRGVmYXVsdEVuY29kaW5nKQotICAsIGJvZHko
ZmFsc2UpCi0gICwgYmVnaW5uaW5nKHRydWUpCi17CisgICwgbV9yZWFjaGVkQm9keShmYWxzZSkK
KyAgLCBtX2NoZWNrZWRGb3JDU1NDaGFyc2V0KGZhbHNlKQorICAsIG1fY2hlY2tlZEZvckJPTShm
YWxzZSkKK3sKKyAgICBpZiAobWltZVR5cGUgPT0gInRleHQvY3NzIikKKyAgICAgICAgbV9jb250
ZW50VHlwZSA9IENTUzsKKyAgICBlbHNlIGlmIChtaW1lVHlwZSA9PSAidGV4dC9odG1sIikKKyAg
ICAgICAgbV9jb250ZW50VHlwZSA9IEhUTUw7CisgICAgZWxzZSBpZiAoRE9NSW1wbGVtZW50YXRp
b246OmlzWE1MTUlNRVR5cGUobWltZVR5cGUpKSB7CisgICAgICAgIG1fY29udGVudFR5cGUgPSBY
TUw7CisgICAgICAgIC8vIERlc3BpdGUgOC41ICJUZXh0L3htbCB3aXRoIE9taXR0ZWQgQ2hhcnNl
dCIgb2YgUkZDIDMwMjMsIHdlIGRvIG5vdCBhc3N1bWUgdXMtYXNjaWkgCisgICAgICAgIC8vIGZv
ciB0ZXh0L3htbCwgdG8gbWF0Y2ggRmlyZWZveC4KKyAgICAgICAgbV9lbmNvZGluZyA9IFRleHRF
bmNvZGluZyhVVEY4RW5jb2RpbmcpOworICAgICAgICBtX2VuY29kaW5nTmFtZSA9ICJVVEYtOCI7
CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudFR5cGUgPSBQbGFpblRleHQ7CisKKyAgICBt
X2RlY29kZXIuc2V0KFN0cmVhbWluZ1RleHREZWNvZGVyOjpjcmVhdGUobV9lbmNvZGluZykpOwog
fQogCiBEZWNvZGVyOjp+RGVjb2RlcigpCiB7CiB9CiAKLXZvaWQgRGVjb2Rlcjo6c2V0RW5jb2Rp
bmdOYW1lKGNvbnN0IGNoYXIqIF9lbmNvZGluZywgRW5jb2RpbmdTb3VyY2UgdHlwZSkKK3ZvaWQg
RGVjb2Rlcjo6c2V0RW5jb2RpbmdOYW1lKGNvbnN0IGNoYXIqIGVuY29kaW5nTmFtZSwgRW5jb2Rp
bmdTb3VyY2UgdHlwZSkKIHsKLSAgICBlbmMgPSBfZW5jb2Rpbmc7Ci0gICAgZW5jID0gZW5jLmxv
d2VyKCk7CisgICAgbV9lbmNvZGluZ05hbWUgPSBlbmNvZGluZ05hbWU7CisgICAgbV9lbmNvZGlu
Z05hbWUgPSBtX2VuY29kaW5nTmFtZS5sb3dlcigpOwogCi0gICAgaWYgKGVuYy5pc0VtcHR5KCkp
CisgICAgaWYgKG1fZW5jb2RpbmdOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVGV4dEVuY29kaW5nIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKGVuYywgdHlwZSA9PSBFbmNv
ZGluZ0Zyb21NZXRhVGFnIHx8IHR5cGUgPT0gRW5jb2RpbmdGcm9tWE1MSGVhZGVyKTsKKyAgICBi
b29sIGVpZ2h0Qml0T25seSA9IHR5cGUgPT0gRW5jb2RpbmdGcm9tTWV0YVRhZyB8fCB0eXBlID09
IEVuY29kaW5nRnJvbVhNTEhlYWRlciB8fCB0eXBlID09IEVuY29kaW5nRnJvbUNTU0NoYXJzZXQ7
CisgICAgVGV4dEVuY29kaW5nIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKG1fZW5jb2RpbmdOYW1l
LCBlaWdodEJpdE9ubHkpOwogCiAgICAgLy8gaW4gY2FzZSB0aGUgZW5jb2RpbmcgZGlkbid0IGV4
aXN0LCB3ZSBrZWVwIHRoZSBvbGQgb25lIChmaXhlcyBzb21lIHNpdGVzIHNwZWNpZnlpbmcgaW52
YWxpZCBlbmNvZGluZ3MpCiAgICAgaWYgKGVuY29kaW5nLmlzVmFsaWQoKSkgewotICAgICAgICBl
bmMgPSBlbmNvZGluZy5uYW1lKCk7CisgICAgICAgIG1fZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmcu
bmFtZSgpOwogICAgICAgICBtX2VuY29kaW5nID0gZW5jb2Rpbmc7CiAgICAgICAgIG1fdHlwZSA9
IHR5cGU7CiAgICAgICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0
ZShtX2VuY29kaW5nKSk7CkBAIC0yODMsNyArMzAwLDcgQEAKIAogY29uc3QgY2hhciogRGVjb2Rl
cjo6ZW5jb2RpbmdOYW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZW5jOworICAgIHJldHVybiBt
X2VuY29kaW5nTmFtZTsKIH0KIAogLy8gT3RoZXIgYnJvd3NlcnMgYWxsb3cgY29tbWVudHMgaW4g
dGhlIGhlYWQgc2VjdGlvbiwgc28gd2UgbmVlZCB0byBhbHNvLgpAQCAtMzU1LDE5ICszNzIsMjcg
QEAKICAgICByZXR1cm4gcG9zOwogfQogCisvLyB0cnVlIGlmIHRoZXJlIGlzIG1vcmUgdG8gcGFy
c2UKK3N0YXRpYyBpbmxpbmUgYm9vbCBza2lwV2hpdGVzcGFjZShjb25zdCBjaGFyKiYgcG9zLCBj
b25zdCBjaGFyKiBkYXRhRW5kKQoreworICAgIHdoaWxlIChwb3MgPCBkYXRhRW5kICYmICgqcG9z
ID09ICdcdCcgfHwgKnBvcyA9PSAnICcpKQorICAgICAgICArK3BvczsKKyAgICByZXR1cm4gcG9z
ICE9IGRhdGFFbmQ7Cit9CisKIERlcHJlY2F0ZWRTdHJpbmcgRGVjb2Rlcjo6ZGVjb2RlKGNvbnN0
IGNoYXIgKmRhdGEsIGludCBsZW4pCiB7CiAgICAgLy8gQ2hlY2sgZm9yIFVURi0xNiBvciBVVEYt
OCBCT00gbWFyayBhdCB0aGUgYmVnaW5uaW5nLCB3aGljaCBpcyBhIHN1cmUgc2lnbiBvZiBhIFVu
aWNvZGUgZW5jb2RpbmcuCi0gICAgaW50IGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgoKTsK
KyAgICBpbnQgYnVmZmVyTGVuZ3RoID0gbV9idWZmZXIubGVuZ3RoKCk7CiAgICAgY29uc3QgaW50
IG1heGltdW1CT01MZW5ndGggPSAzOwotICAgIGlmIChiZWdpbm5pbmcgJiYgYnVmZmVyTGVuZ3Ro
ICsgbGVuID49IG1heGltdW1CT01MZW5ndGgpIHsKKyAgICBpZiAoIW1fY2hlY2tlZEZvckJPTSAm
JiBidWZmZXJMZW5ndGggKyBsZW4gPj0gbWF4aW11bUJPTUxlbmd0aCkgewogICAgICAgICBpZiAo
bV90eXBlICE9IFVzZXJDaG9zZW5FbmNvZGluZykgewogICAgICAgICAgICAgLy8gRXh0cmFjdCB0
aGUgZmlyc3QgdGhyZWUgYnl0ZXMuCiAgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hl
cmUgc29tZSBvZiBieXRlcyBhcmUgYWxyZWFkeSBpbiB0aGUgYnVmZmVyLgogICAgICAgICAgICAg
Ly8gVGhlIGxhc3QgYnl0ZSBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBub3QgYmUgaW4gdGhlIGJ1
ZmZlci4KICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnVkYXRhID0gKGNvbnN0IHVu
c2lnbmVkIGNoYXIgKilkYXRhOwotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMSA9IGJ1ZmZl
ckxlbmd0aCA+PSAxID8gYnVmZmVyWzBdLnVuaWNvZGUoKSA6ICp1ZGF0YSsrOwotICAgICAgICAg
ICAgdW5zaWduZWQgY2hhciBjMiA9IGJ1ZmZlckxlbmd0aCA+PSAyID8gYnVmZmVyWzFdLnVuaWNv
ZGUoKSA6ICp1ZGF0YSsrOworICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMSA9IGJ1ZmZlckxl
bmd0aCA+PSAxID8gbV9idWZmZXJbMF0udW5pY29kZSgpIDogKnVkYXRhKys7CisgICAgICAgICAg
ICB1bnNpZ25lZCBjaGFyIGMyID0gYnVmZmVyTGVuZ3RoID49IDIgPyBtX2J1ZmZlclsxXS51bmlj
b2RlKCkgOiAqdWRhdGErKzsKICAgICAgICAgICAgIEFTU0VSVChidWZmZXJMZW5ndGggPCAzKTsK
ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzMgPSAqdWRhdGE7CiAKQEAgLTM4NiwyNCArNDEx
LDYyIEBACiAgICAgICAgICAgICAgICAgbV90eXBlID0gQXV0b0RldGVjdGVkRW5jb2Rpbmc7CiAg
ICAgICAgICAgICAgICAgbV9lbmNvZGluZyA9IFRleHRFbmNvZGluZyhhdXRvRGV0ZWN0ZWRFbmNv
ZGluZyk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG1fZW5jb2RpbmcuaXNWYWxpZCgpKTsKLSAg
ICAgICAgICAgICAgICBlbmMgPSBtX2VuY29kaW5nLm5hbWUoKTsKKyAgICAgICAgICAgICAgICBt
X2VuY29kaW5nTmFtZSA9IG1fZW5jb2RpbmcubmFtZSgpOwogICAgICAgICAgICAgICAgIG1fZGVj
b2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNyZWF0ZShtX2VuY29kaW5nKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYmVnaW5uaW5nID0gZmFsc2U7CisgICAgICAg
IG1fY2hlY2tlZEZvckJPTSA9IHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2wgY3VycmVudENo
dW5rSW5CdWZmZXIgPSBmYWxzZTsKKyAgICAKKyAgICBpZiAobV90eXBlID09IERlZmF1bHRFbmNv
ZGluZyAmJiBtX2NvbnRlbnRUeXBlID09IENTUyAmJiAhbV9jaGVja2VkRm9yQ1NTQ2hhcnNldCkg
eworICAgICAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKKyAgICAgICAgY3VycmVudENo
dW5rSW5CdWZmZXIgPSB0cnVlOworCisgICAgICAgIGlmIChsZW4gPiA4KSB7IC8vIHN0cmxlbigi
QGNoYXJzZXQiKSA9PSA4CisgICAgICAgICAgICBjb25zdCBjaGFyKiBkYXRhU3RhcnQgPSBtX2J1
ZmZlci5sYXRpbjEoKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGFFbmQgPSBkYXRhU3Rh
cnQgKyBtX2J1ZmZlci5sZW5ndGgoKTsKKworICAgICAgICAgICAgaWYgKGRhdGFTdGFydFswXSA9
PSAnQCcgJiYgZGF0YVN0YXJ0WzFdID09ICdjJyAmJiBkYXRhU3RhcnRbMl0gPT0gJ2gnICYmIGRh
dGFTdGFydFszXSA9PSAnYScgJiYgZGF0YVN0YXJ0WzRdID09ICdyJyAmJiAKKyAgICAgICAgICAg
ICAgICBkYXRhU3RhcnRbNV0gPT0gJ3MnICYmIGRhdGFTdGFydFs2XSA9PSAnZScgJiYgZGF0YVN0
YXJ0WzddID09ICd0JykgeworICAgICAgICAKKyAgICAgICAgICAgICAgICBkYXRhU3RhcnQgKz0g
ODsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwb3MgPSBkYXRhU3RhcnQ7CisgICAgICAg
ICAgICAgICAgaWYgKCFza2lwV2hpdGVzcGFjZShwb3MsIGRhdGFFbmQpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZzo6bnVsbDsKKworICAgICAgICAgICAgICAg
IGlmICgqcG9zID09ICciJyB8fCAqcG9zID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2hhciBxdW90YXRpb25NYXJrID0gKnBvczsKKyAgICAgICAgICAgICAgICAgICAgKytwb3M7Cisg
ICAgICAgICAgICAgICAgICAgIGRhdGFTdGFydCA9IHBvczsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGRhdGFFbmQgJiYgKnBvcyAhPSBxdW90YXRp
b25NYXJrKQorICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChwb3MgPT0gZGF0YUVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBE
ZXByZWNhdGVkU3RyaW5nOjpudWxsOworCisgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRD
U3RyaW5nIGVuY29kaW5nTmFtZShkYXRhU3RhcnQsIHBvcyAtIGRhdGFTdGFydCArIDEpOworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghc2tpcFdoaXRlc3BhY2UocG9zLCBkYXRhRW5kKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBEZXByZWNhdGVkU3RyaW5nOjpudWxsOworCisgICAgICAgICAg
ICAgICAgICAgIGlmICgqcG9zID09ICc7JykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
Y29kaW5nTmFtZShlbmNvZGluZ05hbWUsIEVuY29kaW5nRnJvbUNTU0NoYXJzZXQpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY2hlY2tlZEZvckNTU0No
YXJzZXQgPSB0cnVlOwogICAgIH0KKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWRTdHJpbmc6Om51
bGw7CiAgICAgCisgICAgfSBlbHNlIGlmIChtX3R5cGUgPT0gRGVmYXVsdEVuY29kaW5nICYmIG1f
Y29udGVudFR5cGUgIT0gUGxhaW5UZXh0ICYmICFtX3JlYWNoZWRCb2R5KSB7IC8vIEhUTUwgYW5k
IFhNTAogICAgIC8vIHRoaXMgaXMgbm90IGNvbXBsZXRlbHkgZWZmaWNpZW50LCBzaW5jZSB0aGUg
ZnVuY3Rpb24gbWlnaHQgZ28KICAgICAvLyB0aHJvdWdoIHRoZSBodG1sIGhlYWQgc2V2ZXJhbCB0
aW1lcy4uLgogCi0gICAgYm9vbCBsb29rRm9yTWV0YVRhZyA9IG1fdHlwZSA9PSBEZWZhdWx0RW5j
b2RpbmcgJiYgIWJvZHk7CisgICAgICAgIG1fYnVmZmVyLmFwcGVuZChkYXRhLCBsZW4pOworICAg
ICAgICBjdXJyZW50Q2h1bmtJbkJ1ZmZlciA9IHRydWU7CiAgICAgCi0gICAgaWYgKGxvb2tGb3JN
ZXRhVGFnKSB7Ci0jaWZkZWYgREVDT0RFX0RFQlVHCi0gICAgICAgIGtkRGVidWcoNjAwNSkgPDwg
Imxvb2tpbmcgZm9yIGNoYXJzZXQgZGVmaW5pdGlvbiIgPDwgZW5kbDsKLSNlbmRpZgotICAgICAg
ICB7IC8vIGV4dHJhIGxldmVsIG9mIGJyYWNlcyB0byBrZWVwIGluZGVudGluZyBtYXRjaGluZyBv
cmlnaW5hbCBmb3IgYmV0dGVyIGRpZmYnaW5nCi0gICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRh
dGEsIGxlbik7CiAgICAgICAgICAgICAvLyB3ZSBzdGlsbCBkb24ndCBoYXZlIGFuIGVuY29kaW5n
LCBhbmQgYXJlIGluIHRoZSBoZWFkCiAgICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHRhZ3Mg
YXJlIGFsbG93ZWQgaW4gPGhlYWQ+OgogICAgICAgICAgICAgLy8gU0NSSVBUfFNUWUxFfE1FVEF8
TElOS3xPQkpFQ1R8VElUTEV8QkFTRQpAQCAtNDE4LDEwICs0ODEsOSBAQAogICAgICAgICAgICAg
CiAgICAgICAgICAgICBib29sIHdpdGhpblRpdGxlID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGNv
bnN0IGNoYXIgKnB0ciA9IGJ1ZmZlci5sYXRpbjEoKTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIg
KnBFbmQgPSBwdHIgKyBidWZmZXIubGVuZ3RoKCk7Ci0gICAgICAgICAgICB3aGlsZShwdHIgIT0g
cEVuZCkKLSAgICAgICAgICAgIHsKKyAgICAgICAgY29uc3QgY2hhciAqcHRyID0gbV9idWZmZXIu
bGF0aW4xKCk7CisgICAgICAgIGNvbnN0IGNoYXIgKnBFbmQgPSBwdHIgKyBtX2J1ZmZlci5sZW5n
dGgoKTsKKyAgICAgICAgd2hpbGUgKHB0ciAhPSBwRW5kKSB7CiAgICAgICAgICAgICAgICAgaWYo
KnB0ciA9PSAnPCcpIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICAgICAgcHRyKys7CkBAIC00MzMsMTAgKzQ5NSwxMiBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBYTUwgaGVhZGVyLCB3
aGljaCBjYW4gaGF2ZSBlbmNvZGluZyBpbiBpdC4KKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUg
WE1MIGRlY2xhcmF0aW9uLCB3aGljaCBjYW4gaGF2ZSBlbmNvZGluZyBpbiBpdC4KKyAgICAgICAg
ICAgICAgICAvLyBUaGlzIGVuY29kaW5nIGlzIGhvbm9yZWQgZXZlbiBmb3IgSFRNTCBkb2N1bWVu
dHMuCiAgICAgICAgICAgICAgICAgICAgIGlmIChwdHJbMF0gPT0gJz8nICYmIHB0clsxXSA9PSAn
eCcgJiYgcHRyWzJdID09ICdtJyAmJiBwdHJbM10gPT0gJ2wnKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICplbmQgPSBwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3
aGlsZSAoKmVuZCAhPSAnPicgJiYgKmVuZCAhPSAnXDAnKSBlbmQrKzsKKyAgICAgICAgICAgICAg
ICAgICAgd2hpbGUgKCplbmQgIT0gJz4nICYmICplbmQgIT0gJ1wwJykKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCplbmQgPT0gJ1ww
JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAg
ICAgICAgIERlcHJlY2F0ZWRDU3RyaW5nIHN0cihwdHIsIGVuZCAtIHB0cik7CkBAIC00NDQsMTYg
KzUwOCwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGZpbmRYTUxFbmNv
ZGluZyhzdHIsIGxlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuY29kaW5nTmFtZShzdHIubWlkKHBvcywg
bGVuKSwgRW5jb2RpbmdGcm9tWE1MSGVhZGVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3R5cGUgIT0gRW5jb2RpbmdGcm9tWE1MSGVhZGVyKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuY29kaW5nTmFtZSgiVVRGLTgiLCBFbmNvZGluZ0Zyb21YTUxIZWFkZXIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgbG9va2luZyBmb3IgYSBjaGFyc2V0
IC0gaXQgbWF5IGJlIHNwZWNpZmllZCBpbiBhbiBIVFRQLUVxdWl2IG1ldGEKICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChwdHJbMF0gPT0gMCAmJiBwdHJbMV0gPT0gJz8nICYmIHB0clsy
XSA9PSAwICYmIHB0clszXSA9PSAneCcgJiYgcHRyWzRdID09IDAgJiYgcHRyWzVdID09ICdtJyAm
JiBwdHJbNl0gPT0gMCAmJiBwdHJbN10gPT0gJ2wnKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBVVEYtMTYgd2l0aG91dCBCT00KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuY29k
aW5nTmFtZSgoKHB0ciAtIGJ1ZmZlci5sYXRpbjEoKSkgJSAyKSA/ICJVVEYtMTZMRSIgOiAiVVRG
LTE2QkUiLCBBdXRvRGV0ZWN0ZWRFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgIHNldEVu
Y29kaW5nTmFtZSgoKHB0ciAtIG1fYnVmZmVyLmxhdGluMSgpKSAlIDIpID8gIlVURi0xNkxFIiA6
ICJVVEYtMTZCRSIsIEF1dG9EZXRlY3RlZEVuY29kaW5nKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGdvdG8gZm91bmQ7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICBpZigqcHRyID09ICcvJykgcHRyKyssIGVuZD10cnVlOworICAgICAgICAgICAgICAgIC8v
IHRoZSBIVFRQLUVRVUlWIG1ldGEgaGFzIG5vIGVmZmVjdCBvbiBYSFRNTAorICAgICAgICAgICAg
ICAgIGlmIChtX2NvbnRlbnRUeXBlID09IFhNTCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBm
b3VuZDsKKworICAgICAgICAgICAgICAgIGlmICgqcHRyID09ICcvJykgeworICAgICAgICAgICAg
ICAgICAgICArK3B0cjsKKyAgICAgICAgICAgICAgICAgICAgZW5kPXRydWU7CisgICAgICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAgIGNoYXIgdG1wWzIwXTsKICAgICAgICAgICAg
ICAgICAgICAgaW50IGxlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgKQEAgLTQ3
NCwzMyArNTQ0LDQyIEBACiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICBpZiAoIWVuZCAmJiB0YWcgPT0gbWV0YVRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqIGVuZCA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCpl
bmQgIT0gJz4nICYmICplbmQgIT0gJ1wwJykgZW5kKys7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoICplbmQgPT0gJ1wwJyApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAo
KmVuZCAhPSAnPicgJiYgKmVuZCAhPSAnXDAnKQorICAgICAgICAgICAgICAgICAgICAgICAgZW5k
Kys7CisgICAgICAgICAgICAgICAgICAgIGlmICgqZW5kID09ICdcMCcpCisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRDU3Ry
aW5nIHN0ciggcHRyLCAoZW5kLXB0cikrMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdHIg
PSBzdHIubG93ZXIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSAwOwogICAg
ICAgICAgICAgICAgICAgICAgICAgd2hpbGUoIHBvcyA8ICggaW50ICkgc3RyLmxlbmd0aCgpICkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAocG9zID0gc3RyLmZpbmQoImNoYXJz
ZXQiLCBwb3MsIGZhbHNlKSkgPT0gLTEpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKChwb3MgPSBzdHIuZmluZCgiY2hhcnNldCIsIHBvcywgZmFsc2UpKSA9PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb3MgKz0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHdoaXRlc3Bh
Y2UuLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCAgcG9zIDwgKGludClzdHIu
bGVuZ3RoKCkgJiYgc3RyW3Bvc10gPD0gJyAnICkgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCBwb3MgPT0gKCBpbnQgKXN0ci5sZW5ndGgoKSkgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCBzdHJbcG9zKytdICE9ICc9JyApIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IChpbnQpc3RyLmxlbmd0aCgpICYm
IHN0cltwb3NdIDw9ICcgJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RyW3BvcysrXSAhPSAnPScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBwb3MgPCAoIGludCApc3Ry
Lmxlbmd0aCgpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0cltw
b3NdIDw9ICcgJyApIHx8IHN0cltwb3NdID09ICc9JyB8fCBzdHJbcG9zXSA9PSAnIicgfHwgc3Ry
W3Bvc10gPT0gJ1wnJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmQgPwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICggcG9zID09ICggaW50IClzdHIubGVuZ3RoKCkgKSBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gKGludClzdHIubGVuZ3RoKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgZW5kcG9zID0gcG9zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxl
KCBlbmRwb3MgPCBzdHIubGVuZ3RoKCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAhPSAnIicgJiYgc3RyW2Vu
ZHBvc10gIT0gJ1wnJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3Ry
W2VuZHBvc10gIT0gJzsnICYmIHN0cltlbmRwb3NdICE9ICc+JykgKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cltlbmRwb3NdICE9ICcgJyAmJiBzdHJbZW5kcG9zXSAhPSAnIicg
JiYgc3RyW2VuZHBvc10gIT0gJ1wnJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cltlbmRwb3NdICE9ICc7JyAmJiBzdHJbZW5kcG9zXSAhPSAnPicpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuZHBvcysrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldEVuY29kaW5nTmFtZShzdHIubWlkKHBvcywgZW5kcG9zLXBvcyksIEVuY29kaW5nRnJvbU1l
dGFUYWcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBtX3R5cGUgPT0gRW5jb2Rp
bmdGcm9tTWV0YVRhZyApIGdvdG8gZm91bmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bV90eXBlID09IEVuY29kaW5nRnJvbU1ldGFUYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ290byBmb3VuZDsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZW5kcG9z
ID49IHN0ci5sZW5ndGgoKSB8fCBzdHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBvc10gPT0g
Jz4nICkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kcG9zID49IHN0ci5s
ZW5ndGgoKSB8fCBzdHJbZW5kcG9zXSA9PSAnLycgfHwgc3RyW2VuZHBvc10gPT0gJz4nKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9zID0gZW5kcG9zICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTUw
OSw3ICs1ODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyAhPSB0aXRs
ZVRhZyAmJiB0YWcgIT0gYmFzZVRhZyAmJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZW5kIHx8IHRhZyAhPSBodG1sVGFnKSAmJiAhd2l0aGluVGl0bGUgJiYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodGFnICE9IGhlYWRUYWcpICYmIGlzYWxwaGEodG1wWzBdKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIG1fcmVhY2hlZEJvZHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBm
b3VuZDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTUxOCwx
MiArNTk3LDEwIEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gRGVwcmVjYXRl
ZFN0cmluZzo6bnVsbDsKICAgICAgICAgfQotICAgIH0KIAogIGZvdW5kOgogICAgIC8vIERvIHRo
ZSBhdXRvLWRldGVjdCBpZiBvdXIgZGVmYXVsdCBlbmNvZGluZyBpcyBvbmUgb2YgdGhlIEphcGFu
ZXNlIG9uZXMuCi0gICAgaWYgKG1fdHlwZSAhPSBVc2VyQ2hvc2VuRW5jb2RpbmcgJiYgbV90eXBl
ICE9IEF1dG9EZXRlY3RlZEVuY29kaW5nICYmIG1fZW5jb2RpbmcuaXNKYXBhbmVzZSgpKQotICAg
IHsKKyAgICBpZiAobV90eXBlICE9IFVzZXJDaG9zZW5FbmNvZGluZyAmJiBtX3R5cGUgIT0gQXV0
b0RldGVjdGVkRW5jb2RpbmcgJiYgbV9lbmNvZGluZy5pc0phcGFuZXNlKCkpIHsKICAgICAgICAg
Y29uc3QgY2hhciAqYXV0b0RldGVjdGVkRW5jb2Rpbmc7CiAgICAgICAgIHN3aXRjaCAoS2FuamlD
b2RlOjpqdWRnZShkYXRhLCBsZW4pKSB7CiAgICAgICAgIGNhc2UgS2FuamlDb2RlOjpKSVM6CkBA
IC01MzksNDEgKzYxNiwzNCBAQAogICAgICAgICAgICAgYXV0b0RldGVjdGVkRW5jb2RpbmcgPSBO
VUxMOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF1dG9EZXRl
Y3RlZEVuY29kaW5nICE9IDApIHsKKyAgICAgICAgaWYgKGF1dG9EZXRlY3RlZEVuY29kaW5nKQog
ICAgICAgICAgICAgc2V0RW5jb2RpbmdOYW1lKGF1dG9EZXRlY3RlZEVuY29kaW5nLCBBdXRvRGV0
ZWN0ZWRFbmNvZGluZyk7CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICAvLyBpZiB3ZSBzdGlsbCBo
YXZlbid0IGZvdW5kIGFuIGVuY29kaW5nLCBhc3N1bWUgbGF0aW4xCi0gICAgaWYgKCFtX2VuY29k
aW5nLmlzVmFsaWQoKSkKLSAgICB7Ci0gICAgICAgIGlmIChlbmMuaXNFbXB0eSgpKSAKLSAgICAg
ICAgICAgIGVuYyA9ICJpc284ODU5LTEiOwotICAgICAgICBtX2VuY29kaW5nID0gVGV4dEVuY29k
aW5nKGVuYyk7Ci0gICAgICAgIC8vIGJlIHN1cmUgbm90IHRvIGNyYXNoCi0gICAgICAgIGlmICgh
bV9lbmNvZGluZy5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIGVuYyA9ICJpc284ODU5LTEiOwor
ICAgIC8vIElmIHdlIHN0aWxsIGhhdmVuJ3QgZm91bmQgYW4gZW5jb2RpbmcsIGFzc3VtZSBsYXRp
bjEKKyAgICAvLyAodGhpcyBjYW4gaGFwcGVuIGlmIGFuIGVtcHR5IG5hbWUgaXMgcGFzc2VkIGZy
b20gb3V0c2lkZSkuCisgICAgaWYgKG1fZW5jb2RpbmdOYW1lLmlzRW1wdHkoKSB8fCAhbV9lbmNv
ZGluZy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgbV9lbmNvZGluZ05hbWUgPSAiaXNvODg1OS0xIjsK
ICAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwog
ICAgICAgICB9CiAgICAgICAgIG1fZGVjb2Rlci5zZXQoU3RyZWFtaW5nVGV4dERlY29kZXI6OmNy
ZWF0ZShtX2VuY29kaW5nKSk7Ci0gICAgfQorCiAgICAgRGVwcmVjYXRlZFN0cmluZyBvdXQ7CiAK
LSAgICBpZiAoIWJ1ZmZlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFsb29rRm9yTWV0YVRh
ZykKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YSwgbGVuKTsKLSAgICAgICAgb3V0ID0g
bV9kZWNvZGVyLT50b1VuaWNvZGUoYnVmZmVyLmxhdGluMSgpLCBidWZmZXIubGVuZ3RoKCkpOwot
ICAgICAgICBidWZmZXIudHJ1bmNhdGUoMCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoIW1fYnVm
ZmVyLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWN1cnJlbnRDaHVua0luQnVmZmVyKQorICAg
ICAgICAgICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIGxlbik7CisgICAgICAgIG91dCA9IG1fZGVj
b2Rlci0+dG9Vbmljb2RlKG1fYnVmZmVyLmxhdGluMSgpLCBtX2J1ZmZlci5sZW5ndGgoKSk7Cisg
ICAgICAgIG1fYnVmZmVyLnRydW5jYXRlKDApOworICAgIH0gZWxzZQogICAgICAgICBvdXQgPSBt
X2RlY29kZXItPnRvVW5pY29kZShkYXRhLCBsZW4pOwotICAgIH0KIAogICAgIHJldHVybiBvdXQ7
CiB9CiAKIERlcHJlY2F0ZWRTdHJpbmcgRGVjb2Rlcjo6Zmx1c2goKSBjb25zdAogewotICAgIHJl
dHVybiBtX2RlY29kZXItPnRvVW5pY29kZShidWZmZXIubGF0aW4xKCksIGJ1ZmZlci5sZW5ndGgo
KSwgdHJ1ZSk7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+dG9Vbmljb2RlKG1fYnVmZmVyLmxhdGlu
MSgpLCBtX2J1ZmZlci5sZW5ndGgoKSwgdHJ1ZSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24g
MTYxNDUpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdh
bGtlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJMb2FkZXJGdW5jdGlvbnMu
aCIKICNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00MCwy
MCArNDEsMTcgQEAKIAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldChE
b2NMb2FkZXIqIGRsLCBjb25zdCBTdHJpbmcgJnVybCwgQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3ks
IHRpbWVfdCBfZXhwaXJlRGF0ZSwgY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgY2hhcnNldCkKICAg
ICA6IENhY2hlZFJlc291cmNlKHVybCwgQ1NTU3R5bGVTaGVldCwgY2FjaGVQb2xpY3ksIF9leHBp
cmVEYXRlKQotICAgICwgbV9lbmNvZGluZyhjaGFyc2V0LmxhdGluMSgpKQorICAgICwgbV9kZWNv
ZGVyKG5ldyBEZWNvZGVyKCJ0ZXh0L2NzcyIpKQogewogICAgIC8vIEl0J3MgY3NzIHdlIHdhbnQu
CiAgICAgc2V0QWNjZXB0KCJ0ZXh0L2NzcyIpOwogICAgIC8vIGxvYWQgdGhlIGZpbGUKICAgICBD
YWNoZTo6bG9hZGVyKCktPmxvYWQoZGwsIHRoaXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0
cnVlOwotICAgIGlmICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpCi0gICAgICAgIG1fZW5jb2Rpbmcg
PSBUZXh0RW5jb2RpbmcoTGF0aW4xRW5jb2RpbmcpOwogfQogCiBDYWNoZWRDU1NTdHlsZVNoZWV0
OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyAmdXJsLCBjb25zdCBEZXByZWNhdGVk
U3RyaW5nICZzdHlsZXNoZWV0X2RhdGEpCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIENTU1N0
eWxlU2hlZXQsIENhY2hlUG9saWN5VmVyaWZ5LCAwLCBzdHlsZXNoZWV0X2RhdGEubGVuZ3RoKCkp
Ci0gICAgLCBtX2VuY29kaW5nKEludmFsaWRFbmNvZGluZykKIHsKICAgICBtX2xvYWRpbmcgPSBm
YWxzZTsKICAgICBtX3N0YXR1cyA9IFBlcnNpc3RlbnQ7CkBAIC04MiwxMSArODAsOCBAQAogCiB2
b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OnNldENoYXJzZXQoY29uc3QgRGVwcmVjYXRlZFN0cmlu
ZyYgY2hzKQogewotICAgIGlmICghY2hzLmlzRW1wdHkoKSkgewotICAgICAgICBUZXh0RW5jb2Rp
bmcgZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoY2hzLmxhdGluMSgpKTsKLSAgICAgICAgaWYgKGVu
Y29kaW5nLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBlbmNvZGluZzsKLSAg
ICB9CisgICAgaWYgKCFjaHMuaXNFbXB0eSgpKQorICAgICAgICBtX2RlY29kZXItPnNldEVuY29k
aW5nTmFtZShjaHMubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFkZXIpOwog
fQogCiB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRhdGEoVmVjdG9yPGNoYXI+JiBkYXRhLCBi
b29sIGFsbERhdGFSZWNlaXZlZCkKQEAgLTk1LDcgKzkwLDggQEAKICAgICAgICAgcmV0dXJuOwog
CiAgICAgc2V0U2l6ZShkYXRhLnNpemUoKSk7Ci0gICAgbV9zaGVldCA9IFN0cmluZyhtX2VuY29k
aW5nLnRvVW5pY29kZShkYXRhLmRhdGEoKSwgc2l6ZSgpKSk7CisgICAgbV9zaGVldCA9IG1fZGVj
b2Rlci0+ZGVjb2RlKGRhdGEuZGF0YSgpLCBzaXplKCkpOworICAgIG1fc2hlZXQgKz0gbV9kZWNv
ZGVyLT5mbHVzaCgpOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwogICAgIGNoZWNrTm90aWZ5KCk7
CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24g
MTYxNDUpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogCiBDYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRY
U0xTdHlsZVNoZWV0KERvY0xvYWRlciogZGwsIGNvbnN0IFN0cmluZyAmdXJsLCBDYWNoZVBvbGlj
eSBjYWNoZVBvbGljeSwgdGltZV90IF9leHBpcmVEYXRlKQogICAgIDogQ2FjaGVkUmVzb3VyY2Uo
dXJsLCBYU0xTdHlsZVNoZWV0LCBjYWNoZVBvbGljeSwgX2V4cGlyZURhdGUpCisgICAgLCBtX2Rl
Y29kZXIobmV3IERlY29kZXIoInRleHQveHNsIikpCiB7CiAgICAgLy8gSXQncyBYTUwgd2Ugd2Fu
dC4KICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWNjZXB0IG1vcmUgZ2VuZXJhbCB4bWwgZm9y
bWF0cyAqLyoreG1sLCBpbWFnZS9zdmcreG1sIGZvciBleGFtcGxlLgpAQCAtNTAsNyArNTEsNiBA
QAogICAgIC8vIGxvYWQgdGhlIGZpbGUKICAgICBDYWNoZTo6bG9hZGVyKCktPmxvYWQoZGwsIHRo
aXMsIGZhbHNlKTsKICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgIG1fZGVjb2RlciA9IG5ldyBE
ZWNvZGVyOwogfQogCiB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OnJlZihDYWNoZWRSZXNvdXJj
ZUNsaWVudCAqYykKQEAgLTgyLDYgKzgyLDcgQEAKIAogICAgIHNldFNpemUoZGF0YS5zaXplKCkp
OwogICAgIG1fc2hlZXQgPSBTdHJpbmcobV9kZWNvZGVyLT5kZWNvZGUoZGF0YS5kYXRhKCksIHNp
emUoKSkpOworICAgIG1fc2hlZXQgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogICAgIG1fbG9hZGlu
ZyA9IGZhbHNlOwogICAgIGNoZWNrTm90aWZ5KCk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9E
ZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRGVjb2Rlci5oCShyZXZpc2lv
biAxNjE0NSkKKysrIFdlYkNvcmUvbG9hZGVyL0RlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlRleHRF
bmNvZGluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDAsMTEgKzQxLDEyIEBACiAgICAgICAgIEF1dG9EZXRlY3RlZEVuY29kaW5n
LAogICAgICAgICBFbmNvZGluZ0Zyb21YTUxIZWFkZXIsCiAgICAgICAgIEVuY29kaW5nRnJvbU1l
dGFUYWcsCisgICAgICAgIEVuY29kaW5nRnJvbUNTU0NoYXJzZXQsCiAgICAgICAgIEVuY29kaW5n
RnJvbUhUVFBIZWFkZXIsCiAgICAgICAgIFVzZXJDaG9zZW5FbmNvZGluZwogICAgIH07CiAgICAg
Ci0gICAgRGVjb2RlcigpOworICAgIERlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0RW5jb2RpbmdOYW1lID0gU3RyaW5nKCkpOwogICAgIH5EZWNvZGVy
KCk7CiAKICAgICB2b2lkIHNldEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBlbmNvZGluZywgRW5j
b2RpbmdTb3VyY2UgdHlwZSk7CkBAIC01NiwxOSArNTgsMjggQEAKICAgICBEZXByZWNhdGVkU3Ry
aW5nIGRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKTsKICAgICBEZXByZWNhdGVkU3Ry
aW5nIGZsdXNoKCkgY29uc3Q7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CisgICAgZW51bSBDb250
ZW50VHlwZSB7CisgICAgICAgIEhUTUwsCisgICAgICAgIFhNTCwKKyAgICAgICAgQ1NTLAorICAg
ICAgICBQbGFpblRleHQgLy8gRG8gbm90IGxvb2sgaW5zaWRlIHRoZSBkb2N1bWVudCAoZXF1aXZh
bGVudCB0byBkaXJlY3RseSB1c2luZyBTdHJlYW1pbmdUZXh0RGVjb2RlcikKKyAgICB9OworCiAg
ICAgLy8gZW5jb2RpbmcgdXNlZCBmb3IgZGVjb2RpbmcuIGRlZmF1bHQgaXMgTGF0aW4xLgogICAg
IFRleHRFbmNvZGluZyBtX2VuY29kaW5nOworICAgIENvbnRlbnRUeXBlIG1fY29udGVudFR5cGU7
CiAgICAgT3duUHRyPFN0cmVhbWluZ1RleHREZWNvZGVyPiBtX2RlY29kZXI7Ci0gICAgRGVwcmVj
YXRlZENTdHJpbmcgZW5jOworICAgIERlcHJlY2F0ZWRDU3RyaW5nIG1fZW5jb2RpbmdOYW1lOwog
ICAgIEVuY29kaW5nU291cmNlIG1fdHlwZTsKIAogICAgIC8vIE91ciB2ZXJzaW9uIG9mIERlcHJl
Y2F0ZWRTdHJpbmcgd29ya3Mgd2VsbCBmb3IgYWxsLTgtYml0IGNoYXJhY3RlcnMsIGFuZCBhbGxv
d3MgbnVsbCBjaGFyYWN0ZXJzLgogICAgIC8vIFRoaXMgd29ya3MgYmV0dGVyIHRoYW4gRGVwcmVj
YXRlZENTdHJpbmcgd2hlbiB0aGVyZSBhcmUgbnVsbCBjaGFyYWN0ZXJzIGludm9sdmVkLgotICAg
IERlcHJlY2F0ZWRTdHJpbmcgYnVmZmVyOworICAgIERlcHJlY2F0ZWRTdHJpbmcgbV9idWZmZXI7
CiAKLSAgICBib29sIGJvZHk7Ci0gICAgYm9vbCBiZWdpbm5pbmc7CisgICAgYm9vbCBtX3JlYWNo
ZWRCb2R5OworICAgIGJvb2wgbV9jaGVja2VkRm9yQ1NTQ2hhcnNldDsKKyAgICBib29sIG1fY2hl
Y2tlZEZvckJPTTsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3Vt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5j
cHAJKHJldmlzaW9uIDE2MTQ1KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBACiAgICAgLy8gTG9hZCB0aGUgZmls
ZQogICAgIENhY2hlOjpsb2FkZXIoKS0+bG9hZChkbCwgdGhpcywgZmFsc2UpOwogICAgIG1fbG9h
ZGluZyA9IHRydWU7Ci0gICAgbV9kZWNvZGVyID0gbmV3IERlY29kZXI7CisgICAgbV9kZWNvZGVy
ID0gbmV3IERlY29kZXIoImFwcGxpY2F0aW9uL3htbCIpOwogfQogCiBDYWNoZWRYQkxEb2N1bWVu
dDo6fkNhY2hlZFhCTERvY3VtZW50KCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTYxNDUpCisrKyBX
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsMTIgKzY0MywxMCBA
QAogICAgIH0KICAgICAKICAgICBpZiAoIWQtPm1fZGVjb2RlcikgewotICAgICAgICBkLT5tX2Rl
Y29kZXIgPSBuZXcgRGVjb2RlcjsKKyAgICAgICAgZC0+bV9kZWNvZGVyID0gbmV3IERlY29kZXIo
ZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSwgc2V0dGluZ3MoKS0+ZW5jb2RpbmcoKS5s
YXRpbjEoKSk7CiAgICAgICAgIGlmICghZC0+bV9lbmNvZGluZy5pc051bGwoKSkKICAgICAgICAg
ICAgIGQtPm1fZGVjb2Rlci0+c2V0RW5jb2RpbmdOYW1lKGQtPm1fZW5jb2RpbmcubGF0aW4xKCks
CiAgICAgICAgICAgICAgICAgZC0+bV9oYXZlRW5jb2RpbmcgPyBEZWNvZGVyOjpVc2VyQ2hvc2Vu
RW5jb2RpbmcgOiBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgZC0+bV9kZWNvZGVyLT5zZXRFbmNvZGluZ05hbWUoc2V0dGluZ3MoKS0+
ZW5jb2RpbmcoKS5sYXRpbjEoKSwgRGVjb2Rlcjo6RGVmYXVsdEVuY29kaW5nKTsKIAogICAgICAg
ICBpZiAoZC0+bV9kb2MpCiAgICAgICAgICAgICBkLT5tX2RvYy0+c2V0RGVjb2RlcihkLT5tX2Rl
Y29kZXIuZ2V0KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNDUpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNyBAQAorMjAwNi0wOC0yOCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3I6CisgICAgICAgIC0gaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01NjIwCisgICAgICAgIFNob3Vs
ZCBvbmx5IGhvbm9yIGVuY29kaW5nIGZyb20gPG1ldGE+IGluIEhUTUwKKworICAgICAgICAtIGh0
dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MworICAgICAg
ICBBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJl
Y3RseSB0cmlnZ2VycworICAgICAgICBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50
CisKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTU1CisgICAgICAgIENTUzI6IEBjaGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQKKworICAg
ICAgICAqIGZhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LmNzczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuY3NzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2VuY29kaW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZW5jb2RpbmcvcHNldWRvLXhtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZW5jb2RpbmcvcHNldWRvLXhtbC5odG1sOiBBZGRlZC4KKwogMjAwNi0wOC0zMCAgUm9iIEJ1
aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy54aHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2Rp
bmcueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1
bHQteGh0bWwtZW5jb2RpbmcueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorPHA+VGVz
dCBkZWZhdWx0IFhIVE1MIGVuY29kaW5nIChpbiB0aGUgYWJzZW5jZSBvZiBhbiBYTUwgZGVjbGFy
YXRpb24pLjwvcD4KKworPHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNo
YXJzZXQ6ICIgKyAKKyAgICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBk
b2N1bWVudC5jaGFyYWN0ZXJTZXQpICsgIiAoc2hvdWxkIGJlIFVURi04KSI7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9kZWZhdWx0LXhodG1sLWVuY29kaW5nLnhodG1sCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTog
c3ZuOm1pbWUtdHlwZQogICArIHRleHQveG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wc2V1ZG8teG1sLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BzZXVkby14bWwtNC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iS09JOC1SIiA/PgorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSIgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIi8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MyI+YnVnIDk3ODM8L2E+
OgorQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5jb2RpbmcgaW5jb3Jy
ZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1bWVudDwvcD4KKwor
PHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAg
ICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0
ZXJTZXQpICsgIiAoc2hvdWxkIGJlIHdpbmRvd3MtMTI1MSkiOworPC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcHNldWRvLXhtbC00Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
dGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5j
c3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5j
c3MJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0
LmNzcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitAY2hhcnNldCAidXRmLTgiOworI2R1
bW15OmJlZm9yZSB7IGNvbnRlbnQ6ICJTVdCh0KHQlVNTIjsgfQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5jc3MKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9jc3MKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL21ldGEtaW4teGh0bWwueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWluLXhodG1sLnhodG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
Lz4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01NjIwIj5idWcgNTYyMDwvYT46CitTaG91
bGQgb25seSBob25vciBlbmNvZGluZyBmcm9tICZsdDttZXRhPiBpbiBIVE1MPC9wPgorCis8cCBp
ZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChk
b2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNl
dCkgKyAiIChzaG91bGQgYmUgVVRGLTgpIjsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4t
eGh0bWwueGh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC94bWwK
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJz
ZXQtZXZpbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyAxMDE1NTogQ1NTMjogQGNoYXJzZXQgaXMgbm90IHN1cHBv
cnRlZAorCitDU1MgMi4xIHNheXMgdGhhdCBAY2hhcnNldCAiIG11c3QgYmUgd3JpdHRlbiBsaXRl
cmFsbHksIGJ1dCBGaXJlZm94IGFuZCBJRSBhbGxvdyBleHRyYSBzcGFjZXMgYW5kIHNpbmdsZSBx
dW90ZXMuCisKK1NV0KHQodCVU1MKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQog
ICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3Nz
LWNoYXJzZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9jc3MtY2hhcnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NyBAQAorVGVzdCBmb3IgYnVnIDEwMTU1OiBDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVk
CisKK1Rlc3QgdGhhdCBAY2hhcnNldCB3b3JrcyBhbmQgdGhhdCBpbmRleGVkIHJ1bGUgYWNjZXNz
IHZpYSBhbiBJRS1zcGVjaWZpYyBydWxlcyBwcm9wZXJ0eSBkb2VzIG5vdCB0YWtlIGl0IGludG8g
YWNjb3VudC4KKworU1VDQ0VTUworCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTog
c3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5h
dGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvbWV0YS1pbi14aHRtbC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9tZXRhLWlu
LXhodG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvbWV0YS1pbi14aHRtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NSBAQAorVGVzdCBmb3IgYnVnIDU2MjA6IFNob3VsZCBvbmx5IGhvbm9yIGVuY29kaW5nIGZyb20g
PG1ldGE+IGluIEhUTUwKKworQ2hhcnNldDogVVRGLTggKHNob3VsZCBiZSBVVEYtOCkKKworCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL21ldGEtaW4teGh0
bWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQv
cGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGVzdCBmb3IgYnVnIDk3ODM6IEFu
IFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5
IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGluIGFuIEhUTUwgZG9jdW1lbnQKKworVGVzdCB0aGF0
IGFuIFhNTCBkZWNsYXJhdGlvbiB3aXRoIGFuIGV4cGxpY2l0IGVuY29kaW5nIGlzIHN0aWxsIGhv
bm9yZWQuIFRoaXMgaXMgd2hhdCBGaXJlZm94IDEuNSBhbmQgU2FmYXJpIDIuMCBkbywgdW5saWtl
IFdpbklFIDYuCisKK0NoYXJzZXQ6IEtPSTgtUiAoc2hvdWxkIGJlIEtPSTgtUikKClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0yLWV4cGVj
dGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5h
bWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJzZXQtZXZpbC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIvPgor
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy1jaGFy
c2V0LWV2aWwuY3NzIj4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxNTUiPmJ1ZyAxMDE1NTwvYT46CitDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVk
PC9wPgorCis8cD5DU1MgMi4xIHNheXMgdGhhdCA8Y29kZT5AY2hhcnNldCAiPC9jb2RlPiBtdXN0
IGJlIHdyaXR0ZW4gbGl0ZXJhbGx5LCAKK2J1dCBGaXJlZm94IGFuZCBJRSBhbGxvdyBleHRyYSBz
cGFjZXMgYW5kIHNpbmdsZSBxdW90ZXMuPC9wPgorCis8cCBpZD0icmVzdWx0Ij48L3A+CisKKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgdHJ5IHsKKyAg
ICB0ZXh0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0ucnVsZXNbMF0uc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgiY29udGVudCIpOworICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyIvZywgIiIpOwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS50ZXh0Q29udGVudCA9IHRleHQ7
CisgIH0gY2F0Y2ggKGV4KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIp
LnRleHRDb250ZW50ID0gZXgudG9TdHJpbmcoKTsKKyAgfQorfQorPC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY3NzLWNoYXJzZXQtZXZpbC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY3NzLWNoYXJz
ZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1jaGFy
c2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2Nzcy1j
aGFyc2V0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKzxodG1sPgorPGhlYWQ+
CisgICAgPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSIgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iY3NzLWNoYXJzZXQuY3NzIiBjaGFyc2V0PSJ3aW5kb3dzLTEyNTEi
PgorICAgIDwhLS0gVGhlIGRvY3VtZW50IGNoYXJzZXQgYW5kIGxpbmsgY2hhcnNldCBoYXZlIGxv
d2VyIHByaW9yaXR5IHRoYW4gCisgICAgICAgICBAY2hhcnNldCwgc28gdGhleSBzaG91bGRuJ3Qg
YWZmZWN0IGFueXRoaW5nLiAtLT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxNTUiPmJ1ZyAxMDE1NTwvYT46CitDU1MyOiBAY2hhcnNldCBpcyBub3Qgc3Vw
cG9ydGVkPC9wPgorPHA+VGVzdCB0aGF0IDxjb2RlPkBjaGFyc2V0PC9jb2RlPiB3b3JrcyBhbmQg
dGhhdCBpbmRleGVkIHJ1bGUgYWNjZXNzIHZpYSAKK2FuIElFLXNwZWNpZmljIDxjb2RlPnJ1bGVz
PC9jb2RlPiBwcm9wZXJ0eSBkb2VzIG5vdCB0YWtlIGl0IGludG8gYWNjb3VudC48L3A+CisKKzxw
IGlkPSJyZXN1bHQiPjwvcD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlv
biB0ZXN0KCkgeworICB0cnkgeworICAgIHRleHQgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5y
dWxlc1swXS5zdHlsZS5jc3NUZXh0OworICAgIGlmICh0ZXh0Lm1hdGNoKCcuKlNV0dHFU1MuKicp
KQorICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJTVUNDRVNTIjsKKyAgICBlbHNlCisgICAgICBy
ZXN1bHQuaW5uZXJIVE1MID0gIkZBSUxVUkU6ICIgKyB0ZXh0OworICB9IGNhdGNoIChleCkgewor
ICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiRkFJTFVSRTogIiArIGV4OworICB9Cit9Cis8L3Njcmlw
dD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9jc3MtY2hhcnNldC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUt
dHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNl
dWRvLXhtbC0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcHNldWRvLXhtbC0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9ImtvaTgtciIgPz4KKzxodG1sPgorPGJvZHk+Cis8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3ODMiPmJ1ZyA5NzgzPC9hPjoKK0FuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0IGFu
IGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5nIGlu
IGFuIEhUTUwgZG9jdW1lbnQ8L3A+Cis8cD5UZXN0IHRoYXQgYW4gWE1MIGRlY2xhcmF0aW9uIDxi
PndpdGg8L2I+IGFuIGV4cGxpY2l0IGVuY29kaW5nIGlzIHN0aWxsIGhvbm9yZWQuIFRoaXMgaXMg
d2hhdCBGaXJlZm94IDEuNSBhbmQgU2FmYXJpIDIuMCBkbywgdW5saWtlIFdpbklFIDYuPC9wPgor
PHAgaWQ9InJlc3VsdCIgLz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIkNoYXJzZXQ6ICIgKyAKKyAg
ICAoZG9jdW1lbnQuY2hhcnNldCA/IGRvY3VtZW50LmNoYXJzZXQgOiBkb2N1bWVudC5jaGFyYWN0
ZXJTZXQpICsgIiAoc2hvdWxkIGJlIEtPSTgtUikiOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwv
aHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNl
dWRvLXhtbC0yLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9o
dG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0
IGZvciBidWcgOTc4MzogQW4gWE1MIGRlY2xhcmF0aW9uIHdpdGhvdXQgYW4gZXhwbGljaXQgZW5j
b2RpbmcgaW5jb3JyZWN0bHkgdHJpZ2dlcnMgVVRGLTggZW5jb2RpbmcgaW4gYW4gSFRNTCBkb2N1
bWVudAorCitDaGFyc2V0OiBJU08tODg1OS0xIChzaG91bGQgYmUgeW91ciBicm93c2VyIGRlZmF1
bHQgb25lKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVkby14bWwtMy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1Rlc3QgZm9yIGJ1ZyA5
NzgzOiBBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNv
cnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50CisKK0No
YXJzZXQ6IEtPSTgtUiAoc2hvdWxkIGJlIEtPSTgtUikKClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXhtbC0zLWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5
bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQt
eGh0bWwtZW5jb2RpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvZGVmYXVsdC14aHRtbC1lbmNvZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2Rpbmct
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Rlc3QgZGVmYXVsdCBY
SFRNTCBlbmNvZGluZyAoaW4gdGhlIGFic2VuY2Ugb2YgYW4gWE1MIGRlY2xhcmF0aW9uKS4KKwor
Q2hhcnNldDogVVRGLTggKHNob3VsZCBiZSBVVEYtOCkKKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2RlZmF1bHQteGh0bWwtZW5jb2RpbmctZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFt
ZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcHNldWRvLXhtbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wc2V1ZG8teG1sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzw/
eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0
bWwxL0RURC90cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIj4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3pp
bGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05NzgzIj5idWcgOTc4MzwvYT46CitB
biBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBsaWNpdCBlbmNvZGluZyBpbmNvcnJlY3Rs
eSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBIVE1MIGRvY3VtZW50PC9wPgorCis8cCBp
ZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiQ2hhcnNldDogIiArIAorICAgIChk
b2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNldCA6IGRvY3VtZW50LmNoYXJhY3RlclNl
dCkgKyAiIChzaG91bGQgYmUgeW91ciBicm93c2VyIGRlZmF1bHQgb25lKSI7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wc2V1ZG8teG1sLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBl
CiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8t
eG1sLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BzZXVk
by14bWwtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
c2V1ZG8teG1sLTMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFRE
L3RyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9S09JOC1S
IiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiLz4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzgzIj5idWcgOTc4MzwvYT46CitBbiBYTUwgZGVjbGFyYXRpb24gd2l0aG91dCBhbiBleHBs
aWNpdCBlbmNvZGluZyBpbmNvcnJlY3RseSB0cmlnZ2VycyBVVEYtOCBlbmNvZGluZyBpbiBhbiBI
VE1MIGRvY3VtZW50PC9wPgorCis8cCBpZD0icmVzdWx0IiAvPgorCis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwg
PSAiQ2hhcnNldDogIiArIAorICAgIChkb2N1bWVudC5jaGFyc2V0ID8gZG9jdW1lbnQuY2hhcnNl
dCA6IGRvY3VtZW50LmNoYXJhY3RlclNldCkgKyAiIChzaG91bGQgYmUgS09JOC1SKSI7Cis8L3Nj
cmlwdD4KKworPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9wc2V1ZG8teG1sLTMuaHRtbApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpt
aW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2Nzcy1jaGFyc2V0LWV2aWwuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvY3NzLWNoYXJzZXQtZXZpbC5jc3MJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL2Nzcy1jaGFyc2V0LWV2aWwuY3NzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDIgQEAKK0BjaGFyc2V0CSAgJ3V0Zi04JyAJOworI2R1bW15OmJlZm9yZSB7IGNvbnRlbnQ6ICJT
VdCh0KHQlVNTIjsgfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9jc3MtY2hhcnNldC1ldmlsLmNzcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUK
ICAgKyB0ZXh0L2NzcwoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcHNldWRvLXht
bC00LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BzZXVkby14bWwtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMyBAQAorVGVzdCBmb3IgYnVnIDk3ODM6IEFuIFhNTCBkZWNsYXJhdGlvbiB3aXRob3V0
IGFuIGV4cGxpY2l0IGVuY29kaW5nIGluY29ycmVjdGx5IHRyaWdnZXJzIFVURi04IGVuY29kaW5n
IGluIGFuIEhUTUwgZG9jdW1lbnQKKworQ2hhcnNldDogd2luZG93cy0xMjUxIChzaG91bGQgYmUg
d2luZG93cy0xMjUxKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wc2V1ZG8teG1sLTQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUt
dHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>