<?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>43015</bug_id>
          
          <creation_ts>2010-07-26 16:01:12 -0700</creation_ts>
          <short_desc>dump-as-markup should have better output</short_desc>
          <delta_ts>2010-07-29 13:34:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>james</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256313</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-26 16:01:12 -0700</bug_when>
    <thetext>Feedback from the webkit-dev thread.

1. Selection markers should be # prefixed
2. nodenames should be lowercase (use localName instead of nodeName)
3. Text nodes should be delimited by quotes, not &lt;#text&gt;
4. Should indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256323</commentid>
    <comment_count>1</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-26 16:28:08 -0700</bug_when>
    <thetext>Also, there are some things that LayoutTests/html5lib/resources/dom2string.js does that dump-as-markup should do as well:
-prints doctype,
-deals with misnested DOMs
-comments nodes
-namespaced nodes/attributes (e.g. svg/math)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256953</commentid>
    <comment_count>2</comment_count>
      <attachid>62778</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-27 17:33:50 -0700</bug_when>
    <thetext>Created attachment 62778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256996</commentid>
    <comment_count>3</comment_count>
      <attachid>62778</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-27 19:29:17 -0700</bug_when>
    <thetext>Comment on attachment 62778
Patch

Very cool.  Thanks for doing this.  Unfortunately, we can&apos;t change the format of the html5lib test expectations.  These data files are just a copy of the &quot;official&quot; ones at &lt;http://code.google.com/p/html5lib/source/browse/#hg/testdata/tree-construction&gt;.  The data format in them is chosen to work with a number of different HTML5 parsers in a bunch of different languages (including many that don&apos;t execute JavaScript).

Can we keep the new dump-as-markup but leave the HTML5lib test suite using the &quot;old and busted&quot; dom2string?  Alternatively, we could dump-as-markup produce identical dumps for the HTML5lib test suite, but that might constrain our ability to make dom-as-markup more awesome in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257005</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-07-27 19:41:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Can we keep the new dump-as-markup but leave the HTML5lib test suite using the &quot;old and busted&quot; dom2string?  Alternatively, we could dump-as-markup produce identical dumps for the HTML5lib test suite, but that might constrain our ability to make dom-as-markup more awesome in the future.

We could pass some flag. e.g. In the .js file loaded for HTML5lib tests, we set Markup.html5lib = true.  I don&apos;t know... maybe it&apos;s not worth combining the code if we have two modes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257009</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-27 19:57:13 -0700</bug_when>
    <thetext>The flag sounds like a good idea.  I don&apos;t quite understand where the differences are coming from, so I&apos;m not sure if they&apos;re bugs.  Maybe they dump document fragments differently?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257400</commentid>
    <comment_count>6</comment_count>
      <attachid>62888</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-28 15:37:44 -0700</bug_when>
    <thetext>Created attachment 62888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257404</commentid>
    <comment_count>7</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-28 15:44:51 -0700</bug_when>
    <thetext>I&apos;ve made the output match. The only difference before was whether we print the DOM root node passed in.

Having as few testing frameworks as possible is a good thing for keeping our tests easy to work with. If we run into something we want to add to dump-as-markup that doesn&apos;t work for the html5lib tests, then we can add a flag then. For now, we can have the same output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257683</commentid>
    <comment_count>8</comment_count>
      <attachid>62888</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-29 08:10:53 -0700</bug_when>
    <thetext>Comment on attachment 62888
Patch

Fantastic.  Thanks Ojan.

LayoutTests/html5lib/runner.html:94
 +          layoutTestController.notifyDone();
I&apos;m curious why you added this.  DRT waits until after the load event before finishing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257801</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-29 11:54:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt;  +          layoutTestController.notifyDone();
&gt; I&apos;m curious why you added this.  DRT waits until after the load event before finishing.

This is just the dump-as-markup API being dumb. Instead, I added Markup.noAutoDump, replaced the call to Markup.waitUntilDone, and got rid of the notifyDone call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257833</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-29 13:17:05 -0700</bug_when>
    <thetext>Committed r64303: &lt;http://trac.webkit.org/changeset/64303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257838</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-29 13:34:24 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64303 might have broken Qt Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62778</attachid>
            <date>2010-07-27 17:33:50 -0700</date>
            <delta_ts>2010-07-28 15:37:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43015-20100727173349.patch</filename>
            <type>text/plain</type>
            <size>67690</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxOWIzOTI4NWVkYWI5Mjg0Y2I4NzYwYTYyMzFjZWE0MGYwNmVlMzlkLi4zYTY4YTZm
MjcxZWQ4ODBhZDYxMGNlOTJhNmZkOTg2NmYwODNkNGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAK
KzIwMTAtMDctMjcgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkdW1wLWFzLW1hcmt1cCBzaG91
bGQgaGF2ZSBiZXR0ZXIgb3V0cHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MzAxNQorCisgICAgICAgIC1NZXJnZSBkb20yc3RyaW5nIGludG8gZHVt
cC1hcy1tYXJrdXAgYW5kIHB1bGwgb3ZlciBhbGwgZG9tMnN0cmluZyBmZWF0dXJlcyAoZS5nLiBp
bmRlbnQpLgorICAgICAgICAtIy1wcmVmaXggc2VsZWN0aW9uIG1hcmtlcnMKKworICAgICAgICBU
aGUgb25seSBkaWZmZXJlbmNlIGZyb20gdGhlIG9sZCBkb20yc3RyaW5nIG91dHB1dCBpcyB0aGF0
IHdoZW4gcHJpbnRpbmcKKyAgICAgICAganVzdCBwYXJ0IG9mIHRoZSBET00sIHdlIG5vdyBwcmlu
dCB0aGUgcm9vdCBub2RlIHBhc3NlZCBpbiBhcyB3ZWxsLgorCisgICAgICAgICogZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtYnItaW4tbGFzdC10YWJsZS1jZWxsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0tZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtb24tZW50ZXItaW4t
Y29udGVudEVkaXRhYmxlLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvY3JlYXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaGlsaXRlY29sb3ItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdC1lbXB0eS1kaXYtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2R1bXAtYXMtbWFya3VwLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kdW1wLWFzLW1hcmt1cC5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2hvbWUtaW5zaWRlLW5vbmVkaXRhYmxlLXRh
YmxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3JlbW92ZS11bmRlcmxp
bmUtZnJvbS1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxl
L3N0eWxlLXRleHQtbm9kZS13aXRob3V0LWVkaXRhYmxlLXBhcmVudC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZWRpdGluZy91bmRvL3JlZG8tc3BsaXQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBlZGl0aW5nL3VuZG8vcmVkby1zcGxpdC10ZXh0LXdpdGgtcmVtb3ZhbC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL2RvbTJzdHJpbmcuanM6IFJl
bW92ZWQuCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3Rlc3RzNC5kYXQ6CisgICAgICAg
ICogaHRtbDVsaWIvcmVzb3VyY2VzL3Rlc3RzNi5kYXQ6CisgICAgICAgICogaHRtbDVsaWIvcnVu
bmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXIuaHRtbDoKKyAgICAg
ICAgKiBodG1sNWxpYi93ZWJraXQtcmVzdW1lci5odG1sOgorICAgICAgICAqIHJlc291cmNlcy9k
dW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5ub3RpZnlEb25lKToKKyAgICAgICAg
KE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5fbmFtZXNwYWNlKToKKyAgICAgICAgKE1h
cmt1cC5fZHVtcENhbGxzLjAuTWFya3VwLl9pbmRlbnQpOgorICAgICAgICAoTWFya3VwLl90b0Fz
Y2lpTG93ZXJDYXNlKToKKyAgICAgICAgKE1hcmt1cC5fZ2V0TWFya3VwRm9yVGV4dE5vZGUpOgor
ICAgICAgICAoTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIpOgorCiAyMDEwLTA3LTI3ICBDaHJp
cyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGF2aWQgS2lsemVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtYnItaW4tbGFzdC10YWJsZS1jZWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJyLWluLWxhc3QtdGFibGUtY2VsbC1leHBlY3RlZC50eHQK
aW5kZXggZGE2MWQwOWE5OGNlNDQ1ODZiYWYzOGNmNTc1YWU4Y2YwMmVjZWExYi4uZDRkNjhmMzRh
ZTYxODhlYTI0MTFmMjNjOGY0OGRjZTU2ZDNmYWI5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9kZWxldGUtYnItaW4tbGFzdC10YWJsZS1jZWxsLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1ici1pbi1sYXN0LXRh
YmxlLWNlbGwtZXhwZWN0ZWQudHh0CkBAIC0xLDgzICsxLDc5IEBACi0KLTxIVE1MPgotPEhFQUQ+
Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFNDUklQVCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcyIgdHlwZT0idGV4dC9KYXZhU2NyaXB0Ij48L1NDUklQVD4KLTwjdGV4dD4KLTwv
I3RleHQ+Ci08U0NSSVBUIHNyYz0iLi4vZWRpdGluZy5qcyIgdHlwZT0idGV4dC9KYXZhU2NyaXB0
Ij48L1NDUklQVD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUPgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIGxhbmd1YWdlPSJKYXZh
U2NyaXB0IgorfCAgICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIK
K3wgICAgICAgdHlwZT0idGV4dC9KYXZhU2NyaXB0IgorfCAgICAgIgorIgorfCAgICAgPHNjcmlw
dD4KK3wgICAgICAgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiCit8ICAgICAgIHNyYz0iLi4vZWRpdGlu
Zy5qcyIKK3wgICAgICAgdHlwZT0idGV4dC9KYXZhU2NyaXB0IgorfCAgICAgIgorIgorfCAgICAg
PHNjcmlwdD4KK3wgICAgICAgIgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci1iciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsYXN0QlIiKTsKLXNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsK
LXNlbC5zZXRCYXNlQW5kRXh0ZW50KGJyLCAwLCBiciwgMCk7Ci1kZWxldGVDb21tYW5kKCk7Cisg
ICAgYnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGFzdEJSIik7CisgICAgc2VsID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOworICAgIHNlbC5zZXRCYXNlQW5kRXh0ZW50KGJyLCAwLCBiciwg
MCk7CisgICAgZGVsZXRlQ29tbWFuZCgpOwogfQotPC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0ZXh0
PgotPC9IRUFEPgotPCN0ZXh0PgorIgorfCAgICAgIgorIgorfCAgICIKIAotPC8jdGV4dD4KLTxC
T0RZPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxQPgotPEEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzY5Ij4KLTwjdGV4dD5CdWcgMzUzNjk8LyN0ZXh0Pgot
PC9BPgotPCN0ZXh0PiBhbmQgPC8jdGV4dD4KLTxBIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTYzMiI+Ci08I3RleHQ+QnVnIDM1NjMyPC8jdGV4dD4KLTwv
QT4KLTwvUD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08UD4KLTwjdGV4dD5FeGVjdXRpbmcgYSBkZWxl
dGUgY29tbWFuZCB3aGVuIHBvc2l0aW9uZWQgYmVmb3JlIGEgQlIgaW4gYSB0YWJsZSBjZWxsIChl
c3AuIHRoZSBsYXN0KTwvI3RleHQ+Ci08L1A+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPERJViBjb250
ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFRBQkxFIGlkPSJ0YWJsZSI+Ci08
VEJPRFk+Ci08VFI+Ci08VEQ+Ci08I3RleHQ+MTwvI3RleHQ+Ci08L1REPgotPFREPgotPCN0ZXh0
PjI8LyN0ZXh0PgotPC9URD4KLTwvVFI+Ci08VFI+Ci08VEQ+Ci08I3RleHQ+MzwvI3RleHQ+Ci08
L1REPgotPFREPgotPCN0ZXh0PjQ8c2VsZWN0aW9uLWNhcmV0PjwvI3RleHQ+Ci08QlIgaWQ9Imxh
c3RCUiI+Ci08L1REPgotPC9UUj4KLTwvVEJPRFk+Ci08L1RBQkxFPgotPCN0ZXh0PgotPC8jdGV4
dD4KLTwvRElWPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxTQ1JJUFQ+CisiCit8ICAgPGJvZHk+Cit8
ICAgICAiCisiCit8ICAgICA8cD4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzY5IgorfCAgICAgICAgICJCdWcg
MzUzNjkiCit8ICAgICAgICIgYW5kICIKK3wgICAgICAgPGE+Cit8ICAgICAgICAgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NjMyIgorfCAgICAgICAgICJC
dWcgMzU2MzIiCit8ICAgICAiCisiCit8ICAgICA8cD4KK3wgICAgICAgIkV4ZWN1dGluZyBhIGRl
bGV0ZSBjb21tYW5kIHdoZW4gcG9zaXRpb25lZCBiZWZvcmUgYSBCUiBpbiBhIHRhYmxlIGNlbGwg
KGVzcC4gdGhlIGxhc3QpIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgY29udGVu
dGVkaXRhYmxlPSIiCit8ICAgICAgICIKKyIKK3wgICAgICAgPHRhYmxlPgorfCAgICAgICAgIGlk
PSJ0YWJsZSIKK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAg
ICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAiMSIKK3wgICAgICAgICAgICAgPHRkPgorfCAgICAg
ICAgICAgICAgICIyIgorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGQ+Cit8ICAg
ICAgICAgICAgICAgIjMiCit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAiNDwj
c2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgICAgICAgICAgICA8YnI+Cit8ICAgICAgICAgICAgICAg
ICBpZD0ibGFzdEJSIgorfCAgICAgICAiCisiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0Pgor
fCAgICAgICAiCiBydW5UZXN0KCk7Ci08L1NDUklQVD4KLTwjdGV4dD4KKyIKK3wgICAgICIKIAog
Ci08LyN0ZXh0PgotPC9CT0RZPgotPC9IVE1MPgorIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9jcmFzaC1pbmRlbnRpbmctbGlzdC1pdGVtLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtaW5kZW50aW5nLWxpc3Qt
aXRlbS1leHBlY3RlZC50eHQKaW5kZXggZDM0OWQ1N2NiZjNiYTliZmIzZGE5OGYxMjYxZTEwZTkx
YTk2ZmYxNy4uZjVlNzg4MjFlYmRkNjQzZTdlZjM3ZTg2MjcwZTJiMjc4MGM3YzA0YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmFzaC1pbmRlbnRpbmctbGlz
dC1pdGVtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0xLDI5ICsxLDI1IEBA
Ci0KLTxIVE1MPgotPEhFQUQ+Ci08L0hFQUQ+Ci08Qk9EWT4KLTxESVYgY29udGVudEVkaXRhYmxl
PSIiPgotPFVMPgotPFVMPgotPExJIGlkPSJmb28iPgotPCN0ZXh0PlBBU1NFRDwvI3RleHQ+Ci08
L0xJPgotPC9VTD4KLTwvVUw+Ci08L0RJVj4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L1NDUklQVD4KLTwjdGV4dD4K
LTwvI3RleHQ+Ci08U0NSSVBUPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxkaXY+Cit8ICAgICAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgICAgICA8dWw+Cit8ICAg
ICAgICAgPHVsPgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0iZm9vIgorfCAg
ICAgICAgICAgICAiUEFTU0VEIgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAiCisiCit8ICAg
ICA8c2NyaXB0PgorfCAgICAgICAiCiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChmb28sIDAsIGZvbywgMCk7CiAvLyBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90
IGNyYXNoLgogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luZGVudCcsIGZhbHNlLCBudWxsKTsKIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKLTwvU0NS
SVBUPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwvQk9EWT4KLTwvSFRNTD4KKyIKK3wgICAgICIKKyIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtb24tZW50
ZXItaW4tY29udGVudEVkaXRhYmxlLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9jcmFzaC1vbi1lbnRlci1pbi1jb250ZW50RWRpdGFibGUtbGlzdC1l
eHBlY3RlZC50eHQKaW5kZXggZDZjMDZlNjNmYjBmNWQ4ODUzOGNmODI2ZDM0MzE1ODI3YjcyMmFl
My4uNGE5YmYxNWRiYzY0ZDRmMWEwZDBkYWJjMDk1ZjE3OWFiMDFjNzQzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmFzaC1vbi1lbnRlci1pbi1jb250ZW50
RWRpdGFibGUtbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9jcmFzaC1vbi1lbnRlci1pbi1jb250ZW50RWRpdGFibGUtbGlzdC1leHBlY3RlZC50
eHQKQEAgLTEsMzQgKzEsMzIgQEAKLQotPEhUTUw+Ci08SEVBRD4KLTxTQ1JJUFQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4
dD4KLTwvSEVBRD4KLTxCT0RZPgotPERJVj4KLTwjdGV4dD5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0
IGRvZXNuJ3QgY3Jhc2guPC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxVTCBj
b250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPExJIGlkPSJmb28iPgotPC9M
ST4KLTxMSSBpZD0iZm9vIj48c2VsZWN0aW9uLWNhcmV0PgotPEJSPgotPC9MST4KLTwjdGV4dD4K
LTwvI3RleHQ+Ci08L1VMPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxTQ1JJUFQ+Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
ZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAiCisiCit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2Pgor
fCAgICAgICAiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLiIKK3wgICAgICIK
KyIKK3wgICAgIDx1bD4KK3wgICAgICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgICAgICIKKyAg
ICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0iZm9vIgorfCAgICAgICA8bGk+Cit8ICAg
ICAgICAgaWQ9ImZvbyIKK3wgICAgICAgICA8I3NlbGVjdGlvbi1jYXJldD4KK3wgICAgICAgICA8
YnI+Cit8ICAgICAgICIKKyIKK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIK
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb28pOwogZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ2luc2VydFBhcmFncmFwaCcpOwotPC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0
ZXh0PgotPC9CT0RZPgotPC9IVE1MPgorIgorfCAgICAgIgorIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmVhdGUtbGlzdC1mcm9tLXJhbmdlLXNlbGVjdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1s
aXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA0ZmM1ZTM2MmM4MzQ2
ODc3N2JlNTQ2MzE0MzczZTI1OTA3Zjg1NTRjLi42ZmQ5NWJjM2ExNzBiZjEwMTI5NmM4OTgzNGY4
M2NmYzUyNmM3Y2ZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMSwyNiArMSwxOSBAQAotCi08RElWIGlkPSJ0ZXN0IiBjb250
ZW50RWRpdGFibGU9InRydWUiPgotPE9MPgotPExJPgotPCN0ZXh0PmFzZDwvI3RleHQ+Ci08U1BB
TiBpZD0ic3RhcnQiPgotPCN0ZXh0PmZvPHNlbGVjdGlvbi1hbmNob3I+bzwvI3RleHQ+Ci08L1NQ
QU4+Ci08L0xJPgotPExJPgotPCN0ZXh0PmJhcjwvI3RleHQ+Ci08L0xJPgotPExJPgotPCN0ZXh0
PmJhejwvI3RleHQ+Ci08L0xJPgotPExJPgotPCN0ZXh0PmZvbzwvI3RleHQ+Ci08L0xJPgotPExJ
PgotPCN0ZXh0PmJhcjwvI3RleHQ+Ci08L0xJPgotPExJPgotPCN0ZXh0PmJhPHNlbGVjdGlvbi1m
b2N1cz56PC8jdGV4dD4KLTwvTEk+Ci08L09MPgotPC9ESVY+Cit8IDxkaXY+Cit8ICAgY29udGVu
dGVkaXRhYmxlPSJ0cnVlIgorfCAgIGlkPSJ0ZXN0IgorfCAgIDxvbD4KK3wgICAgIDxsaT4KK3wg
ICAgICAgImFzZCIKK3wgICAgICAgPHNwYW4+Cit8ICAgICAgICAgaWQ9InN0YXJ0IgorfCAgICAg
ICAgICJmbzwjc2VsZWN0aW9uLWFuY2hvcj5vIgorfCAgICAgPGxpPgorfCAgICAgICAiYmFyIgor
fCAgICAgPGxpPgorfCAgICAgICAiYmF6IgorfCAgICAgPGxpPgorfCAgICAgICAiZm9vIgorfCAg
ICAgPGxpPgorfCAgICAgICAiYmFyIgorfCAgICAgPGxpPgorfCAgICAgICAiYmE8I3NlbGVjdGlv
bi1mb2N1cz56IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9o
aWxpdGVjb2xvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2hpbGl0ZWNvbG9yLWV4cGVjdGVkLnR4dAppbmRleCBkMWFhZGYxNjQ5OTg5YmVmY2IyNTE3ZDQ4
OTU2YzFlNTc2OTBjZjkwLi4xNGUwZDU4MmYwN2EzODE4NzI3NjlmZjVhMjkzZWY4ZGYzMzY3YmVh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2hpbGl0ZWNvbG9y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2hpbGl0
ZWNvbG9yLWV4cGVjdGVkLnR4dApAQCAtMTAsMTEgKzEwLDEyIEBAIEVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9u
Ci0KLTxESVYgaWQ9InRlc3QiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+Ci08I3RleHQ+PHNlbGVj
dGlvbi1jYXJldD5UaGUgPC8jdGV4dD4KLTxTUEFOIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiI+Ci08I3RleHQ+c2Vjb25kPC8jdGV4dD4KLTwv
U1BBTj4KLTwjdGV4dD4gd29yZCwgYW5kIG9ubHkgdGhlIHNlY29uZCB3b3JkIG9mIHRoaXMgc2Vu
dGVuY2Ugc2hvdWxkIGhhdmUgYSByZWQgYmFja2dyb3VuZCBjb2xvci48LyN0ZXh0PgotPC9ESVY+
Cit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgorfCAgIGlkPSJ0ZXN0IgorfCAg
ICI8I3NlbGVjdGlvbi1jYXJldD5UaGUgIgorfCAgIDxzcGFuPgorfCAgICAgY2xhc3M9IkFwcGxl
LXN0eWxlLXNwYW4iCit8ICAgICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyIKK3wgICAg
ICJzZWNvbmQiCit8ICAgIiB3b3JkLCBhbmQgb25seSB0aGUgc2Vjb25kIHdvcmQgb2YgdGhpcyBz
ZW50ZW5jZSBzaG91bGQgaGF2ZSBhIHJlZCBiYWNrZ3JvdW5kIGNvbG9yLiIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0
CmluZGV4IDU4MDUyODk5YzJjZjAwNzUwZDM4YTBmNjc1NmJmYWQ4ZTRmOGM1NDkuLmEwZGY4MmJm
YWJmNjRiNzk2MGU4NzUwNTVmMTI2MTk4NTJhMWMyNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dApAQCAtMSwx
MzYgKzEsMTMzIEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDQ6IFdyb25nIG5vZGUgc2VsZWN0
ZWQuCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDY6IFdyb25nIGFuY2hvciBvZmZzZXQ6IDggaW5z
dGVhZCBvZiAwCit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8
ICAgICAgICJUaGlzIHRlc3QgdHJpZXMgdG8gaW5kZW50IGxpbmVzIHdpdGhpbiBwcmUgdGFncy4g
IFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQKK2RvZXMgbm90IGNyYXNoLiIKK3wgICAgICIKKyIKK3wg
ICAgIDxkaXY+Cit8ICAgICAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgICAgICAiCisiCit8ICAg
ICAgIDxibG9ja3F1b3RlPgorfCAgICAgICAgIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVv
dGUiCit8ICAgICAgICAgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBw
YWRkaW5nOiAwcHg7IgorfCAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICBpZD0icHJlLWJhc2lj
IgorfCAgICAgICAgICAgImxpbmUgb25lCisiCit8ICAgICAgIDxwcmU+Cit8ICAgICAgICAgaWQ9
InByZS1iYXNpYyIKK3wgICAgICAgICAibGluZSB0d28KKyIKK3wgICAgICAgPGJsb2NrcXVvdGU+
Cit8ICAgICAgICAgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIKK3wgICAgICAgICBz
dHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiCit8
ICAgICAgICAgPHByZT4KK3wgICAgICAgICAgIGlkPSJwcmUtYmFzaWMiCit8ICAgICAgICAgICAi
bGluZSB0aHJlZQorIgorfCAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICBpZD0icHJlLWJhc2lj
IgorfCAgICAgICAgICAgImxpbmUgZm91ciIKK3wgICAgICAgIgogCi08SFRNTD4KLTxIRUFEPgot
PC9IRUFEPgotPEJPRFk+Ci08UD4KLTwjdGV4dD5UaGlzIHRlc3QgdHJpZXMgdG8gaW5kZW50IGxp
bmVzIHdpdGhpbiBwcmUgdGFncy4gVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdAotZG9lcyBub3QgY3Jh
c2guPC8jdGV4dD4KLTwvUD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08RElWIGNvbnRlbnRFZGl0YWJs
ZT0iIj4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08QkxPQ0tRVU9URSBzdHlsZT0ibWFyZ2luOiAwIDAg
MCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiIGNsYXNzPSJ3ZWJraXQtaW5kZW50
LWJsb2NrcXVvdGUiPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4dD5saW5lIG9uZQotPC8j
dGV4dD4KLTwvUFJFPgotPC9CTE9DS1FVT1RFPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4
dD5saW5lIHR3bwotPC8jdGV4dD4KLTwvUFJFPgotPEJMT0NLUVVPVEUgc3R5bGU9Im1hcmdpbjog
MCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7IiBjbGFzcz0id2Via2l0LWlu
ZGVudC1ibG9ja3F1b3RlIj4KLTxQUkUgaWQ9InByZS1iYXNpYyI+Ci08I3RleHQ+bGluZSB0aHJl
ZQotPC8jdGV4dD4KLTwvUFJFPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4dD5saW5lIGZv
dXI8LyN0ZXh0PgotPC9QUkU+Ci08L0JMT0NLUVVPVEU+Ci08I3RleHQ+CisiCit8ICAgICAgIDx1
bD4KK3wgICAgICAgICA8bGk+Cit8ICAgICAgICAgICA8cHJlPgorfCAgICAgICAgICAgICBpZD0i
cHJlLWxpc3QiCit8ICAgICAgICAgICAgICJsaXN0IG9uZQorIgorfCAgICAgICAgICAgICA8Ymxv
Y2txdW90ZT4KK3wgICAgICAgICAgICAgICBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3Rl
IgorfCAgICAgICAgICAgICAgIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9u
ZTsgcGFkZGluZzogMHB4OyIKK3wgICAgICAgICAgICAgICAibGlzdCB0d28KKyIKK3wgICAgICAg
ICAgICAgICAibGlzdCB0aHJlZQorIgorfCAgICAgICAgICAgICAibGlzdCBmb3VyCisiCit8ICAg
ICAgICIKIAotPC8jdGV4dD4KLTxVTD4KLTxMST4KLTxQUkUgaWQ9InByZS1saXN0Ij4KLTwjdGV4
dD5saXN0IG9uZQotPC8jdGV4dD4KLTxCTE9DS1FVT1RFIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQw
cHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyIgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxv
Y2txdW90ZSI+Ci08I3RleHQ+bGlzdCB0d28KLTwvI3RleHQ+Ci08I3RleHQ+bGlzdCB0aHJlZQot
PC8jdGV4dD4KLTwvQkxPQ0tRVU9URT4KLTwjdGV4dD5saXN0IGZvdXIKLTwvI3RleHQ+Ci08L1BS
RT4KLTwvTEk+Ci08L1VMPgotPCN0ZXh0PgorIgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAg
IgorIgorfCAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAg
PHRkPgorfCAgICAgICAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICAgICAgICBpZD0icHJlLXRh
YmxlIgorfCAgICAgICAgICAgICAgICAgInRhYmxlIG9uZTwjc2VsZWN0aW9uLWFuY2hvcj4KKyIK
K3wgICAgICAgICAgICAgICA8YmxvY2txdW90ZT4KK3wgICAgICAgICAgICAgICAgIGNsYXNzPSJ3
ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiCit8ICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2lu
OiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiCit8ICAgICAgICAgICAg
ICAgICA8cHJlPgorfCAgICAgICAgICAgICAgICAgICBpZD0icHJlLXRhYmxlIgorfCAgICAgICAg
ICAgICAgICAgICAidGFibGUgdHdvCisiCit8ICAgICAgICAgICAgICAgICA8cHJlPgorfCAgICAg
ICAgICAgICAgICAgICBpZD0icHJlLXRhYmxlIgorfCAgICAgICAgICAgICAgICAgICAidGFibGUg
dGhyZWU8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAg
ICAgICAicmlnaHQgY2VsbCIKK3wgICAgICAgIgogCi08LyN0ZXh0PgotPFRBQkxFPgotPCN0ZXh0
PgotPC8jdGV4dD4KLTxUQk9EWT4KLTxUUj4KLTxURD4KLTxQUkUgaWQ9InByZS10YWJsZSI+Ci08
I3RleHQ+dGFibGUgb25lPHNlbGVjdGlvbi1hbmNob3I+Ci08LyN0ZXh0PgotPC9QUkU+Ci08QkxP
Q0tRVU9URSBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6
IDBweDsiIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiPgotPFBSRSBpZD0icHJlLXRh
YmxlIj4KLTwjdGV4dD50YWJsZSB0d28KLTwvI3RleHQ+Ci08L1BSRT4KLTxQUkUgaWQ9InByZS10
YWJsZSI+Ci08I3RleHQ+dGFibGUgdGhyZWU8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1BS
RT4KLTwvQkxPQ0tRVU9URT4KLTwvVEQ+Ci08VEQ+Ci08I3RleHQ+cmlnaHQgY2VsbDwvI3RleHQ+
Ci08L1REPgotPC9UUj4KLTwvVEJPRFk+Ci08L1RBQkxFPgotPCN0ZXh0PgorIgorfCAgICAgICA8
ZGl2PgorfCAgICAgICAgIGlkPSJyZXN1bHRzIgorfCAgICAgICAgICJQQVNTRUQgKGRpZCBub3Qg
Y3Jhc2gpIgorfCAgICAgICAiCisiCit8ICAgICAiCiAKLTwvI3RleHQ+Ci08RElWIGlkPSJyZXN1
bHRzIj4KLTwjdGV4dD5QQVNTRUQgKGRpZCBub3QgY3Jhc2gpPC8jdGV4dD4KLTwvRElWPgotPCN0
ZXh0PgotPC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotCi08LyN0ZXh0PgotPEEgaHJlZj0iamF2
YXNjcmlwdDpkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5kZW50JykiPgotPCN0ZXh0PmluZGVudDwv
I3RleHQ+Ci08L0E+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPEEgaHJlZj0iamF2YXNjcmlwdDpkb2N1
bWVudC5leGVjQ29tbWFuZCgnb3V0ZGVudCcpIj4KLTwjdGV4dD5vdXRkZW50PC8jdGV4dD4KLTwv
QT4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIj48L1NDUklQVD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNyYz0i
Li4vZWRpdGluZy5qcyI+PC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFNDUklQVD4KKyIK
K3wgICAgIDxhPgorfCAgICAgICBocmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmV4ZWNDb21tYW5k
KCdpbmRlbnQnKSIKK3wgICAgICAgImluZGVudCIKK3wgICAgICIKKyIKK3wgICAgIDxhPgorfCAg
ICAgICBocmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmV4ZWNDb21tYW5kKCdvdXRkZW50JykiCit8
ICAgICAgICJvdXRkZW50IgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAiCisiCit8ICAgICA8
c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uL2VkaXRpbmcuanMiCit8ICAgICAiCisiCit8ICAgICA8
c2NyaXB0PgorfCAgICAgICAiCiBmdW5jdGlvbiBzZXRTZWxlY3Rpb24obm9kZSkKIHsKLXZhciB0
ZXh0Tm9kZSA9IG5vZGUuZmlyc3RDaGlsZDsKLWlmICh0ZXh0Tm9kZS5ub2RlVHlwZSAhPSBOb2Rl
LlRFWFRfTk9ERSkKLXRocm93ICJXcm9uZyBub2RlIHR5cGU6ICIgKyB0ZXh0Tm9kZTsKLWV4ZWNT
ZXRTZWxlY3Rpb25Db21tYW5kKHRleHROb2RlLCAwLCAwKTsKKyAgICB2YXIgdGV4dE5vZGUgPSBu
b2RlLmZpcnN0Q2hpbGQ7CisgICAgaWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9O
T0RFKQorICAgICAgICB0aHJvdyAiV3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7CisgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dE5vZGUsIDAsIDApOwogfQogCiBmdW5jdGlvbiB2
ZXJpZnlUZXh0U2VsZWN0aW9uKHN0YXJ0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE5vZGUsIGVuZE9m
ZnNldCkKIHsKLWlmIChzdGFydE5vZGUubm9kZVR5cGUgIT0gTm9kZS5URVhUX05PREUpCi1jb25z
b2xlLmxvZygiV3Jvbmcgc3RhcnQgbm9kZSB0eXBlOiAiICsgc3RhcnROb2RlKTsKLWlmIChlbmRO
b2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQotY29uc29sZS5sb2coIldyb25nIGVuZCBu
b2RlIHR5cGU6ICIgKyBlbmROb2RlKTsKLXZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7
Ci1pZiAoc2VsLmFuY2hvck5vZGUgIT0gc3RhcnROb2RlIHx8IHNlbC5mb2N1c05vZGUgIT0gZW5k
Tm9kZSkKLWNvbnNvbGUubG9nKCJXcm9uZyBub2RlIHNlbGVjdGVkLiIpOwotaWYgKHNlbC5hbmNo
b3JPZmZzZXQgIT0gc3RhcnRPZmZzZXQpCi1jb25zb2xlLmxvZygiV3JvbmcgYW5jaG9yIG9mZnNl
dDogIiArIHNlbC5hbmNob3JPZmZzZXQgKyAiIGluc3RlYWQgb2YgIiArIHN0YXJ0T2Zmc2V0KTsK
LWlmIChzZWwuZm9jdXNPZmZzZXQgIT0gZW5kT2Zmc2V0KQotY29uc29sZS5sb2coIldyb25nIGZv
Y3VzIG9mZnNldDogIiArIHNlbC5mb2N1c09mZnNldCArICIgaW5zdGVhZCBvZiAiICsgZW5kT2Zm
c2V0KTsKKyAgICBpZiAoc3RhcnROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQorICAg
ICAgICBjb25zb2xlLmxvZygiV3Jvbmcgc3RhcnQgbm9kZSB0eXBlOiAiICsgc3RhcnROb2RlKTsK
KyAgICBpZiAoZW5kTm9kZS5ub2RlVHlwZSAhPSBOb2RlLlRFWFRfTk9ERSkKKyAgICAgICAgY29u
c29sZS5sb2coIldyb25nIGVuZCBub2RlIHR5cGU6ICIgKyBlbmROb2RlKTsKKyAgICB2YXIgc2Vs
ID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIGlmIChzZWwuYW5jaG9yTm9kZSAhPSBzdGFy
dE5vZGUgfHwgc2VsLmZvY3VzTm9kZSAhPSBlbmROb2RlKQorICAgICAgICBjb25zb2xlLmxvZygi
V3Jvbmcgbm9kZSBzZWxlY3RlZC4iKTsKKyAgICBpZiAoc2VsLmFuY2hvck9mZnNldCAhPSBzdGFy
dE9mZnNldCkKKyAgICAgICAgY29uc29sZS5sb2coIldyb25nIGFuY2hvciBvZmZzZXQ6ICIgKyBz
ZWwuYW5jaG9yT2Zmc2V0ICsgIiBpbnN0ZWFkIG9mICIgKyBzdGFydE9mZnNldCk7CisgICAgaWYg
KHNlbC5mb2N1c09mZnNldCAhPSBlbmRPZmZzZXQpCisgICAgICAgIGNvbnNvbGUubG9nKCJXcm9u
ZyBmb2N1cyBvZmZzZXQ6ICIgKyBzZWwuZm9jdXNPZmZzZXQgKyAiIGluc3RlYWQgb2YgIiArIGVu
ZE9mZnNldCk7CiB9CiAKIC8vIEluZGVudCBhIHNpbmdsZSBsaW5lIGluIGEgcHJlIGFuZCBtYWtl
IHN1cmUgdGhlIHNlbGVjdGlvbiBpcyBjb3JyZWN0bHkgcHJlc2VydmVkLgpAQCAtMTQwLDcgKzEz
Nyw3IEBAIGV4ZWNNb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOwogZXhl
Y0V4dGVuZFNlbGVjdGlvbkZvcndhcmRCeVdvcmRDb21tYW5kKCk7CiBkb2N1bWVudC5leGVjQ29t
bWFuZCgiaW5kZW50Iik7CiB2ZXJpZnlUZXh0U2VsZWN0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJwcmUiKVswXS5maXJzdENoaWxkLCAxLAotZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInByZSIpWzBdLmZpcnN0Q2hpbGQsIDQpOworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicHJlIilbMF0uZmlyc3RDaGlsZCwgNCk7CiAK
IC8vIEluZGVudCAyIGxpbmVzLgogc2V0U2VsZWN0aW9uKHByZSk7CkBAIC0xNDksMTIgKzE0Niwx
MiBAQCBleGVjRXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1hbmQoKTsKIGV4ZWNFeHRl
bmRTZWxlY3Rpb25Gb3J3YXJkQnlXb3JkQ29tbWFuZCgpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQo
ImluZGVudCIpOwogaWYgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKS5sZW5n
dGggPiAzKSB7Ci0vLyBGSVhNRTogVGhlIHNlbGVjdGlvbiBmb3IgdGhlIGFuY2hvck5vZGUgaXMg
d3JvbmcuIEl0IHNob3VsZCBzdGF5IGF0Ci0vLyB0aGUgYmVnaW5uaW5nIG9mICJsaW5lIHRocmVl
IiwgYnV0IGl0IG1vdmVzIHRvIHRoZSBlbmQgb2YgImxpbmUgMiIuCi12ZXJpZnlUZXh0U2VsZWN0
aW9uKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKVsyXS5maXJzdENoaWxkLCAw
LAotZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZSIpWzNdLmZpcnN0Q2hpbGQsIDQp
OworICAgIC8vIEZJWE1FOiBUaGUgc2VsZWN0aW9uIGZvciB0aGUgYW5jaG9yTm9kZSBpcyB3cm9u
Zy4gIEl0IHNob3VsZCBzdGF5IGF0CisgICAgLy8gdGhlIGJlZ2lubmluZyBvZiAibGluZSB0aHJl
ZSIsIGJ1dCBpdCBtb3ZlcyB0byB0aGUgZW5kIG9mICJsaW5lIDIiLgorICAgIHZlcmlmeVRleHRT
ZWxlY3Rpb24oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZSIpWzJdLmZpcnN0Q2hp
bGQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgicHJlIilbM10uZmlyc3RDaGlsZCwgNCk7CiB9IGVsc2UgewotY29uc29sZS5sb2coIldy
b25nIG51bWJlciBvZiBwcmUgbm9kZXMuIik7CisgICAgY29uc29sZS5sb2coIldyb25nIG51bWJl
ciBvZiBwcmUgbm9kZXMuIik7CiB9CiAKIC8vIEluZGVudCA8cHJlPiBsaW5lcyBpbiBhIGxpc3Qu
CkBAIC0xNjUsMTkgKzE2MiwxNyBAQCBleGVjRXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNv
bW1hbmQoKTsKIGV4ZWNFeHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlMaW5lQ29tbWFuZCgpOwogZG9j
dW1lbnQuZXhlY0NvbW1hbmQoImluZGVudCIpOwogdmVyaWZ5VGV4dFNlbGVjdGlvbihkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYmxvY2txdW90ZSIpWzJdLmZpcnN0Q2hpbGQsIDAsCi1k
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYmxvY2txdW90ZSIpWzJdLmZpcnN0Q2hpbGQu
bmV4dFNpYmxpbmcsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImJsb2NrcXVvdGUiKVsyXS5maXJzdENoaWxkLm5leHRTaWJsaW5nLCAxMCk7
CiAvLyBJbmRlbnRpbmcgPHByZT4gbGluZXMgaW4gYSB0YWJsZS4KIHByZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwcmUtdGFibGUiKTsKIHNldFNlbGVjdGlvbihwcmUpOwogZXhlY01vdmVT
ZWxlY3Rpb25Gb3J3YXJkQnlMaW5lQ29tbWFuZCgpOwogZXhlY0V4dGVuZFNlbGVjdGlvbkZvcndh
cmRCeUxpbmVDb21tYW5kKCk7CiBleGVjRXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1h
bmQoKTsKLS8vIEZJWE1FOiBUaGlzIGlzIHdyb25nLiBUaGUgcHJlIHRhZ3MgZ2V0IGNvcGllZCB3
aGVuIHRoZXkgc2hvdWxkbid0IGJlLiAKKy8vIEZJWE1FOiBUaGlzIGlzIHdyb25nLiAgVGhlIHBy
ZSB0YWdzIGdldCBjb3BpZWQgd2hlbiB0aGV5IHNob3VsZG4ndCBiZS4gCiAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDA5CiBkb2N1bWVudC5leGVjQ29t
bWFuZCgiaW5kZW50Iik7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpLmlubmVy
VGV4dCA9ICJQQVNTRUQgKGRpZCBub3QgY3Jhc2gpIjsKLTwvU0NSSVBUPgotPCN0ZXh0PgotPC8j
dGV4dD4KLTwvQk9EWT4KLTwvSFRNTD4KKyIKK3wgICAgICIKKyIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtZW1wdHktZGl2LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtZW1wdHkt
ZGl2LWV4cGVjdGVkLnR4dAppbmRleCBhZWYyYWU5MDk1YThhMWQ4ODljMDc2Y2ZhODBjYTFjZWNk
ZDBhNmZiLi42MTFhMTEzMjEzNzc5NjZkNDQwN2Q4MzY4MjliNWExMjE4N2I1NjkzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0LWVtcHR5LWRp
di1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNl
cnQtbGlzdC1lbXB0eS1kaXYtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNyBAQAotCi08RElWIGlk
PSJkaXYiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+Ci08VUw+Ci08TEk+PHNlbGVjdGlvbi1jYXJl
dD4KLTxCUj4KLTwvTEk+Ci08L1VMPgotPC9ESVY+Cit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRh
YmxlPSJ0cnVlIgorfCAgIGlkPSJkaXYiCit8ICAgPHVsPgorfCAgICAgPGxpPgorfCAgICAgICA8
I3NlbGVjdGlvbi1jYXJldD4KK3wgICAgICAgPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZHVtcC1hcy1tYXJrdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZHVtcC1hcy1tYXJrdXAtZXhwZWN0ZWQudHh0CmluZGV4IDQz
ZDE4ZTI1YjIyZGYzNjUxNTI0NzhiNDkzOGUxZDdhMzc0Y2FkYzEuLjE0ZjY1ZWVkNDcyMTNmZTBi
MTQwZWE5M2YxOWI3ZDlkZThkY2RiODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2R1bXAtYXMtbWFya3VwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kdW1wLWFzLW1hcmt1cC1leHBlY3RlZC50eHQKQEAgLTEsOTMgKzEs
ODggQEAKIFRlc3RzIGJhc2ljIGR1bXAtYXMtbWFya3VwIGZ1bmN0aW9uYWxpdHkuCit8IDwhRE9D
VFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAg
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgogCi08SFRN
TD4KLTxIRUFEPgotPFNDUklQVCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5q
cyI+PC9TQ1JJUFQ+Ci08I3RleHQ+CisiCit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAg
ICBpZD0iYmFyIgorfCAgICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmZvbyIKK3wgICAgICAgPGhy
PgorfCAgICAgICA8I3NlbGVjdGlvbi1mb2N1cz4KK3wgICAgICIKKyIKK3wgICAgIDxpbnB1dD4K
K3wgICAgICAgdHlwZT0idGV4dCIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgIGNv
bnRlbnRlZGl0YWJsZT0iIgorfCAgICAgICBpZD0iZm9vIgorfCAgICAgICAiCisgIGZvbyIKK3wg
ICAgICAgIiAgIGJhcgorIgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImZv
by5maXJzdENoaWxkLnNwbGl0VGV4dCg2KTsiCit8ICAgICAiCisiCit8ICAgICA8c3Bhbj4KK3wg
ICAgICAgImZvbyIKK3wgICAgIDxzcGFuPgorfCAgICAgICAiYmFyIgorfCAgICAgIgorIgorfCAg
ICAgPGRpdj4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgICJzZGYi
Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAic2RmIgorfCAgICAgICAgICJzZGYiCit8ICAg
ICAiCisiCit8ICAgICA8aWZyYW1lPgorfCAgICAgICBzcmM9ImRhdGE6dGV4dC9odG1sO2NoYXJz
ZXQ9dXRmLTgsPCFET0NUWVBFJTIwSFRNTCUyMFBVQkxJQyUyMCItLy9XM0MvL0RURCUyMEhUTUwl
MjA0LjAvL0VOIj4lMEQlMEE8aHRtbCUyMGxhbmclM0QiZW4iPiUwRCUwQSUyMDxoZWFkPiUwRCUw
QSUyMCUyMDx0aXRsZT5UZXN0PC90aXRsZT4lMEQlMEElMjAlMjA8c3R5bGUlMjB0eXBlJTNEInRl
eHQvY3NzIj4lMEQlMEElMjAlMjA8L3N0eWxlPiUwRCUwQSUyMDwvaGVhZD4lMEQlMEElMjA8Ym9k
eT4lMEQlMEElMjAlMjA8cD48L3A+JTBEJTBBJTIwPC9ib2R5PiUwRCUwQTwvaHRtbD4lMEQlMEEi
Cit8ICAgICAiCiAKLTwvI3RleHQ+Ci08L0hFQUQ+Ci08Qk9EWT4KLTxESVYgaWQ9ImJhciI+Ci08
I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+Zm9vPC8jdGV4dD4KLTxIUj48c2VsZWN0aW9uLWZvY3Vz
PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPElOUFVUIHR5cGU9InRleHQiPgotPCN0ZXh0
PgotPC8jdGV4dD4KLTxESVYgaWQ9ImZvbyIgY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0Pgot
Zm9vPC8jdGV4dD4KLTwjdGV4dD4gYmFyCi08LyN0ZXh0PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0
ZXh0PgotPFNDUklQVD5mb28uZmlyc3RDaGlsZC5zcGxpdFRleHQoNik7PC9TQ1JJUFQ+Ci08I3Rl
eHQ+Ci08LyN0ZXh0PgotPFNQQU4+Ci08I3RleHQ+Zm9vPC8jdGV4dD4KLTwvU1BBTj4KLTxTUEFO
PgotPCN0ZXh0PmJhcjwvI3RleHQ+Ci08L1NQQU4+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPERJVj4K
LTxESVY+Ci08Qj4KLTwjdGV4dD5zZGY8LyN0ZXh0PgotPC9CPgotPEk+Ci08I3RleHQ+c2RmPC8j
dGV4dD4KLTwvST4KLTwjdGV4dD5zZGY8LyN0ZXh0PgotPC9ESVY+Ci08L0RJVj4KLTwjdGV4dD4K
LTwvI3RleHQ+Ci08SUZSQU1FIHNyYz0iZGF0YTp0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCw8IURP
Q1RZUEUlMjBIVE1MJTIwUFVCTElDJTIwIi0vL1czQy8vRFREJTIwSFRNTCUyMDQuMC8vRU4iPiUw
RCUwQTxodG1sJTIwbGFuZyUzRCJlbiI+JTBEJTBBJTIwPGhlYWQ+JTBEJTBBJTIwJTIwPHRpdGxl
PlRlc3Q8L3RpdGxlPiUwRCUwQSUyMCUyMDxzdHlsZSUyMHR5cGUlM0QidGV4dC9jc3MiPiUwRCUw
QSUyMCUyMDwvc3R5bGU+JTBEJTBBJTIwPC9oZWFkPiUwRCUwQSUyMDxib2R5PiUwRCUwQSUyMCUy
MDxwPjwvcD4lMEQlMEElMjA8L2JvZHk+JTBEJTBBPC9odG1sPiUwRCUwQSI+PC9JRlJBTUU+Ci08
I3RleHQ+Ci0KLTwvI3RleHQ+Ci08U0NSSVBUPgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAg
IgogTWFya3VwLmRlc2NyaXB0aW9uKCJUZXN0cyBiYXNpYyBkdW1wLWFzLW1hcmt1cCBmdW5jdGlv
bmFsaXR5LiIpOwogd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGJhcikK
LTwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwvQk9EWT4KLTwvSFRNTD4KKyIKK3wgICAg
ICIKKyIKIAogRlJBTUUgMDoKK3wgPGh0bWw+Cit8ICAgbGFuZz0iZW4iCit8ICAgPGhlYWQ+Cit8
ICAgICAiCisgICIKK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIlRlc3QiCit8ICAgICAiCisgICIK
K3wgICAgIDxzdHlsZT4KK3wgICAgICAgdHlwZT0idGV4dC9jc3MiCit8ICAgICAgICIKKyAgIgor
fCAgICAgIgorICIKK3wgICAiCisgIgorfCAgIDxib2R5PgorfCAgICAgIgorICAiCit8ICAgICA8
cD4KK3wgICAgICIKKyAKIAotPEhUTUw+Ci08SEVBRD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08VElU
TEU+Ci08I3RleHQ+VGVzdDwvI3RleHQ+Ci08L1RJVExFPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxT
VFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci08L1NUWUxFPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwvSEVB
RD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08Qk9EWT4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08UD4KLTwv
UD4KLTwjdGV4dD4KLQotCi08LyN0ZXh0PgotPC9CT0RZPgotPC9IVE1MPgorIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHVtcC1hcy1tYXJrdXAuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2R1bXAtYXMtbWFya3VwLmh0bWwKaW5kZXggMjhi
ZDgzNzVjZWZjYTYwMzUwODIzYWM1MWU1ZjUwZWJhMDI0Yzc4YS4uYWQzOTBlYzBkMzk4NDM1NjVh
NmZhODJkMWZlMmE2ZjkyZTI2YzYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZHVtcC1hcy1tYXJrdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kdW1wLWFzLW1hcmt1cC5odG1sCkBAIC0xLDMgKzEsNCBAQAorPCFEb2NUeXBlIGh0
bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KIAogPGRpdiBpZD0iYmFyIj5mb288aHI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ob21lLWluc2lkZS1ub25lZGl0YWJsZS10YWJsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ob21lLWluc2lkZS1ub25l
ZGl0YWJsZS10YWJsZS1leHBlY3RlZC50eHQKaW5kZXggOWEwYTRmMjU4OWNhNzlkODA5MjU1NTE3
NGY1NDE5YzU1N2M5NjBhMy4uMzQ0Y2FmZjNjNWUyNzI5ODY5NjY0YTIzMDVkNzk3MTVkOWNkYjI5
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaG9tZS1pbnNpZGUt
bm9uZWRpdGFibGUtdGFibGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2hvbWUtaW5zaWRlLW5vbmVkaXRhYmxlLXRhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MSwzMyArMSwzMyBAQAogVGVzdHMgd2hldGhlciBob21lIG1vdmVzIHRoZSBjYXJldCB0byB0aGUg
YmVnaW5uaW5nIG9mIGxpbmUgaW5zaWRlIGEgY29udGVudC1lZGl0YWJsZSBpbiBhbiB1bmVkaXRh
YmxlIHRhYmxlLgogCiBEdW1wIG9mIG1hcmt1cCAxOgotPERJViBpZD0idGVzdCIgY29udGVudEVk
aXRhYmxlPSJ0cnVlIj4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08RElWIGlkPSJsMSI+Ci08I3RleHQ+
VGhlIGNhcmV0IGlzIGluaXRpYWxseSA8c2VsZWN0aW9uLWNhcmV0PmhlcmUgYnV0IHNob3VsZCBt
b3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuPC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0
PgotPC8jdGV4dD4KLTxESVY+Ci08I3RleHQ+ZHVtbXkgdGV4dDwvI3RleHQ+Ci08L0RJVj4KLTwj
dGV4dD4KLTwvI3RleHQ+Ci08L0RJVj4KK3wgPGRpdj4KK3wgICBjb250ZW50ZWRpdGFibGU9InRy
dWUiCit8ICAgaWQ9InRlc3QiCit8ICAgIgorICAgICAgIgorfCAgIDxkaXY+Cit8ICAgICBpZD0i
bDEiCit8ICAgICAiVGhlIGNhcmV0IGlzIGluaXRpYWxseSA8I3NlbGVjdGlvbi1jYXJldD5oZXJl
IGJ1dCBzaG91bGQgbW92ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLiIKK3wgICAiCisg
ICAgICAiCit8ICAgPGRpdj4KK3wgICAgICJkdW1teSB0ZXh0IgorfCAgICIKKyAgICAiCiAKIER1
bXAgb2YgbWFya3VwIDI6Ci08RElWIGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9InRydWUiPgot
PCN0ZXh0PgotPC8jdGV4dD4KLTxESVYgaWQ9ImwxIj4KLTwjdGV4dD48c2VsZWN0aW9uLWNhcmV0
PlRoZSBjYXJldCBpcyBpbml0aWFsbHkgaGVyZSBidXQgc2hvdWxkIG1vdmUgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgbGluZS48LyN0ZXh0PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPERJ
Vj4KLTwjdGV4dD5kdW1teSB0ZXh0PC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotPC8jdGV4dD4K
LTwvRElWPgorfCA8ZGl2PgorfCAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKK3wgICBpZD0idGVz
dCIKK3wgICAiCisgICAgICAiCit8ICAgPGRpdj4KK3wgICAgIGlkPSJsMSIKK3wgICAgICI8I3Nl
bGVjdGlvbi1jYXJldD5UaGUgY2FyZXQgaXMgaW5pdGlhbGx5IGhlcmUgYnV0IHNob3VsZCBtb3Zl
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuIgorfCAgICIKKyAgICAgICIKK3wgICA8ZGl2
PgorfCAgICAgImR1bW15IHRleHQiCit8ICAgIgorICAgICIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxlc2hlZXQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9yZW1vdmUtdW5kZXJsaW5lLWZyb20t
c3R5bGVzaGVldC1leHBlY3RlZC50eHQKaW5kZXggODI2ZmZiNjE0ZGVkZjkxNWFhNzg2MDEyNDIw
ZTIzY2ZmNThmYWUyZi4uMGZjMjg4YjFiYjQwYWM5OGNlYjhhZGYyNjMzZTIzODcyZDBkMzU3MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9yZW1vdmUtdW5kZXJsaW5lLWZy
b20tc3R5bGVzaGVldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9yZW1vdmUtdW5kZXJsaW5lLWZyb20tc3R5bGVzaGVldC1leHBlY3RlZC50eHQKQEAgLTcwLDEx
ICs3MCwxMiBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRp
b24KIFRoaXMgdGVzdHMgcmVtb3ZpbmcgdW5kZXJsaW5lIGZyb20gc3R5bGVzaGVldCAoLmVkaXRp
bmcgaGFzIHVuZGVybGluZSkuIEJlY2F1c2UgdGV4dC1kZWNvcmF0aW9uIHRoYXQgY29tZXMgZnJv
bSBhIHN0eWxlIHJ1bGUgY2Fubm90IGJlIHB1c2hlZCBkb3duLCB0aGUgdW5kZXJsaW5lIHNob3Vs
ZCBzdGF5LiAoc2VlIGJ1ZyAyNzgwOSkuCi0KLTxESVYgY2xhc3M9ImVkaXRpbmciIGlkPSJyb290
IiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+eHh4eHh4IDwvI3RleHQ+Ci08I3RleHQ+PHNl
bGVjdGlvbi1hbmNob3I+eHh4eHh4PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPCN0ZXh0PiB4
eHh4eHg8LyN0ZXh0PgotPFNQQU4gaWQ9InRlc3QiPgotPC9TUEFOPgotPC9ESVY+Cit8IDxkaXY+
Cit8ICAgY2xhc3M9ImVkaXRpbmciCit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgaWQ9InJv
b3QiCit8ICAgInh4eHh4eCAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj54eHh4eHg8I3NlbGVj
dGlvbi1mb2N1cz4iCit8ICAgIiB4eHh4eHgiCit8ICAgPHNwYW4+Cit8ICAgICBpZD0idGVzdCIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc3R5bGUtdGV4dC1ub2RlLXdp
dGhvdXQtZWRpdGFibGUtcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvc3R5bGUtdGV4dC1ub2RlLXdpdGhvdXQtZWRpdGFibGUtcGFyZW50LWV4cGVjdGVkLnR4
dAppbmRleCAyMTY1NzA0NmVlNTUzMWM0ZDE1ODU0NTRkMDU5YWRhMmIyZTFiYzBhLi45MjQ3YTVm
MjMyNDUzYzAyYTlkMDQwOTZmMTBlM2RlZWRiMDE4NWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3N0eWxlL3N0eWxlLXRleHQtbm9kZS13aXRob3V0LWVkaXRhYmxlLXBhcmVudC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zdHlsZS10ZXh0LW5v
ZGUtd2l0aG91dC1lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDI4OSArMSwyNzMg
QEAKIFRoaXMgdGVzdHMgYXBwbHlpbmcgaW5saW5lIHN0eWxlIHRvIGEgdGV4dCBub2RlLCB3aGlj
aCBpcyBhIGNoaWxkIG9mIHRoZSBlZGl0YWJsZSByb290LiBTdHlsZSBzaG91bGQgYmUgYXBwbGll
ZCBwcm9wZXJseSBhbmQgdGhlIHRlc3Qgc2hvdWxkIG5vdCBjcmFzaC4gKFNlZSB0aGUgYnVnIDM5
OTg5KS4KIAogYm9sZCBmaXJzdDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxCPgotPCN0
ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08
L0I+Ci08I3RleHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAg
Y29udGVudGVkaXRhYmxlPSIiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhl
bGxvLCA8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgIndvcmxkIFdlYktpdCIKIAogYm9sZCBtaWRk
bGU6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIDwvI3RleHQ+Ci08
Qj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj53b3JsZDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4
dD4KLTwvQj4KLTwjdGV4dD4gV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAg
Y29udGVudGVkaXRhYmxlPSIiCit8ICAgImhlbGxvLCAiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxl
Y3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAgICIgV2ViS2l0IgogCiBi
b2xkIGxhc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIHdvcmxk
PC8jdGV4dD4KLTxCPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8c2VsZWN0aW9u
LWZvY3VzPjwvI3RleHQ+Ci08L0I+Ci08L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0
YWJsZT0iIgorfCAgICJoZWxsbywgd29ybGQiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxlY3Rpb24t
YW5jaG9yPiBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIGJvbGQgYWxsOgotPFNQQU4gY29u
dGVudEVkaXRhYmxlPSIiPgotPEI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdv
cmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQj4KLTwvU1BBTj4KK3wgPHNw
YW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxlY3Rpb24t
YW5jaG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIGl0YWxpYyBm
aXJzdDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxJPgotPCN0ZXh0PjxzZWxlY3Rpb24t
YW5jaG9yPmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0k+Ci08I3RleHQ+d29y
bGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxl
PSIiCit8ICAgPGk+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8I3NlbGVjdGlv
bi1mb2N1cz4iCit8ICAgIndvcmxkIFdlYktpdCIKIAogaXRhbGljIG1pZGRsZToKLTxTUEFOIGNv
bnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4KLTxJPgotPCN0ZXh0Pjxz
ZWxlY3Rpb24tYW5jaG9yPndvcmxkPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9JPgotPCN0
ZXh0PiBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFi
bGU9IiIKK3wgICAiaGVsbG8sICIKK3wgICA8aT4KK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+
d29ybGQ8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgIiBXZWJLaXQiCiAKIGl0YWxpYyBsYXN0Ogot
PFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3b3JsZDwvI3RleHQ+Ci08
ST4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0
ZXh0PgotPC9JPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wg
ICAiaGVsbG8sIHdvcmxkIgorfCAgIDxpPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj4gV2Vi
S2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBpdGFsaWMgYWxsOgotPFNQQU4gY29udGVudEVkaXRh
YmxlPSIiPgotPEk+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktp
dDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvST4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAg
Y29udGVudGVkaXRhYmxlPSIiCit8ICAgPGk+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhl
bGxvLCB3b3JsZCBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIHVuZGVybGluZSBmaXJzdDoK
LTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxVPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9y
PmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1U+Ci08I3RleHQ+d29ybGQgV2Vi
S2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8
ICAgPHU+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8I3NlbGVjdGlvbi1mb2N1
cz4iCit8ICAgIndvcmxkIFdlYktpdCIKIAogdW5kZXJsaW5lIG1pZGRsZToKLTxTUEFOIGNvbnRl
bnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4KLTxVPgotPCN0ZXh0PjxzZWxl
Y3Rpb24tYW5jaG9yPndvcmxkPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9VPgotPCN0ZXh0
PiBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9
IiIKK3wgICAiaGVsbG8sICIKK3wgICA8dT4KK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+d29y
bGQ8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgIiBXZWJLaXQiCiAKIHVuZGVybGluZSBsYXN0Ogot
PFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3b3JsZDwvI3RleHQ+Ci08
VT4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0
ZXh0PgotPC9VPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wg
ICAiaGVsbG8sIHdvcmxkIgorfCAgIDx1PgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj4gV2Vi
S2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiB1bmRlcmxpbmUgYWxsOgotPFNQQU4gY29udGVudEVk
aXRhYmxlPSIiPgotPFU+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdl
YktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvVT4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8
ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgPHU+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PmhlbGxvLCB3b3JsZCBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIHN0cmlrZVRocm91Z2gg
Zmlyc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08Uz4KLTwjdGV4dD48c2VsZWN0aW9u
LWFuY2hvcj5oZWxsbywgPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9TPgotPCN0ZXh0Pndv
cmxkIFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0YWJs
ZT0iIgorfCAgIDxzPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAgICJ3b3JsZCBXZWJLaXQiCiAKIHN0cmlrZVRocm91Z2ggbWlkZGxlOgot
PFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCA8LyN0ZXh0PgotPFM+Ci08
I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+d29ybGQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08
L1M+Ci08I3RleHQ+IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRl
bnRlZGl0YWJsZT0iIgorfCAgICJoZWxsbywgIgorfCAgIDxzPgorfCAgICAgIjwjc2VsZWN0aW9u
LWFuY2hvcj53b3JsZDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgICAiIFdlYktpdCIKIAogc3RyaWtl
VGhyb3VnaCBsYXN0OgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3
b3JsZDwvI3RleHQ+Ci08Uz4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVj
dGlvbi1mb2N1cz48LyN0ZXh0PgotPC9TPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50
ZWRpdGFibGU9IiIKK3wgICAiaGVsbG8sIHdvcmxkIgorfCAgIDxzPgorfCAgICAgIjwjc2VsZWN0
aW9uLWFuY2hvcj4gV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBzdHJpa2VUaHJvdWdoIGFs
bDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxTPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5j
aG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1M+Ci08
L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgIDxzPgorfCAgICAg
Ijwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgd29ybGQgV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+
IgogCiBmb3JlQ29sb3IgZmlyc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08Rk9OVCBj
bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDAwRkYiPgotPCN0ZXh0PjxzZWxlY3Rp
b24tYW5jaG9yPmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0ZPTlQ+Ci08I3Rl
eHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVk
aXRhYmxlPSIiCit8ICAgPGZvbnQ+Cit8ICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wg
ICAgIGNvbG9yPSIjMDAwMEZGIgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNz
ZWxlY3Rpb24tZm9jdXM+IgorfCAgICJ3b3JsZCBXZWJLaXQiCiAKIGZvcmVDb2xvciBtaWRkbGU6
Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIDwvI3RleHQ+Ci08Rk9O
VCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDAwRkYiPgotPCN0ZXh0PjxzZWxl
Y3Rpb24tYW5jaG9yPndvcmxkPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9GT05UPgotPCN0
ZXh0PiBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFi
bGU9IiIKK3wgICAiaGVsbG8sICIKK3wgICA8Zm9udD4KK3wgICAgIGNsYXNzPSJBcHBsZS1zdHls
ZS1zcGFuIgorfCAgICAgY29sb3I9IiMwMDAwRkYiCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAgICIgV2ViS2l0IgogCiBmb3JlQ29sb3IgbGFz
dDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgd29ybGQ8LyN0ZXh0
PgotPEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDAwMEZGIj4KLTwjdGV4
dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9G
T05UPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICAiaGVs
bG8sIHdvcmxkIgorfCAgIDxmb250PgorfCAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8
ICAgICBjb2xvcj0iIzAwMDBGRiIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+IFdlYktpdDwj
c2VsZWN0aW9uLWZvY3VzPiIKIAogZm9yZUNvbG9yIGFsbDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJs
ZT0iIj4KLTxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwMDBGRiI+Ci08
I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9j
dXM+PC8jdGV4dD4KLTwvRk9OVD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRh
YmxlPSIiCit8ICAgPGZvbnQ+Cit8ICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICAg
IGNvbG9yPSIjMDAwMEZGIgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgd29ybGQg
V2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBoaWxpdGVDb2xvciBmaXJzdDoKLTxTUEFOIGNv
bnRlbnRFZGl0YWJsZT0iIj4KLTxTUEFOIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyIg
Y2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxv
LCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1NQQU4+Ci08I3RleHQ+d29ybGQgV2ViS2l0
PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAg
PHNwYW4+Cit8ICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICAgIHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOyIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIDwj
c2VsZWN0aW9uLWZvY3VzPiIKK3wgICAid29ybGQgV2ViS2l0IgogCiBoaWxpdGVDb2xvciBtaWRk
bGU6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIDwvI3RleHQ+Ci08
U1BBTiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiIGNsYXNzPSJBcHBsZS1zdHlsZS1z
cGFuIj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj53b3JsZDxzZWxlY3Rpb24tZm9jdXM+PC8j
dGV4dD4KLTwvU1BBTj4KLTwjdGV4dD4gV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+
Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgImhlbGxvLCAiCit8ICAgPHNwYW4+Cit8ICAg
ICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOyIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+d29ybGQ8I3NlbGVjdGlvbi1mb2N1
cz4iCit8ICAgIiBXZWJLaXQiCiAKIGhpbGl0ZUNvbG9yIGxhc3Q6Ci08U1BBTiBjb250ZW50RWRp
dGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIHdvcmxkPC8jdGV4dD4KLTxTUEFOIHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOyIgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iPgotPCN0ZXh0Pjxz
ZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1NQQU4+
Ci08L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgICJoZWxsbywg
d29ybGQiCit8ICAgPHNwYW4+Cit8ICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICAg
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNo
b3I+IFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogaGlsaXRlQ29sb3IgYWxsOgotPFNQQU4g
Y29udGVudEVkaXRhYmxlPSIiPgotPFNQQU4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7
IiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVs
bG8sIHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvU1BBTj4KLTwvU1BB
Tj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgPHNwYW4+Cit8ICAgICBj
bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOyIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDwjc2Vs
ZWN0aW9uLWZvY3VzPiIKIAogc3Vic2NyaXB0IGZpcnN0OgotPFNQQU4gY29udGVudEVkaXRhYmxl
PSIiPgotPFNVQj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPHNlbGVjdGlvbi1m
b2N1cz48LyN0ZXh0PgotPC9TVUI+Ci08I3RleHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BB
Tj4KK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgPHN1Yj4KK3wgICAgICI8
I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgICAid29ybGQg
V2ViS2l0IgogCiBzdWJzY3JpcHQgbWlkZGxlOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgot
PCN0ZXh0PmhlbGxvLCA8LyN0ZXh0PgotPFNVQj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj53
b3JsZDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvU1VCPgotPCN0ZXh0PiBXZWJLaXQ8LyN0
ZXh0PgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICAiaGVs
bG8sICIKK3wgICA8c3ViPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwjc2VsZWN0
aW9uLWZvY3VzPiIKK3wgICAiIFdlYktpdCIKIAogc3Vic2NyaXB0IGxhc3Q6Ci08U1BBTiBjb250
ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIHdvcmxkPC8jdGV4dD4KLTxTVUI+Ci08I3Rl
eHQ+PHNlbGVjdGlvbi1hbmNob3I+IFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwv
U1VCPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICAiaGVs
bG8sIHdvcmxkIgorfCAgIDxzdWI+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8
I3NlbGVjdGlvbi1mb2N1cz4iCiAKIHN1YnNjcmlwdCBhbGw6Ci08U1BBTiBjb250ZW50RWRpdGFi
bGU9IiI+Ci08U1VCPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCB3b3JsZCBXZWJL
aXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1NVQj4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8
ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgPHN1Yj4KK3wgICAgICI8I3NlbGVjdGlvbi1hbmNo
b3I+aGVsbG8sIHdvcmxkIFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogc3VwZXJzY3JpcHQg
Zmlyc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08U1VQPgotPCN0ZXh0PjxzZWxlY3Rp
b24tYW5jaG9yPmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1NVUD4KLTwjdGV4
dD53b3JsZCBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRp
dGFibGU9IiIKK3wgICA8c3VwPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNz
ZWxlY3Rpb24tZm9jdXM+IgorfCAgICJ3b3JsZCBXZWJLaXQiCiAKIHN1cGVyc2NyaXB0IG1pZGRs
ZToKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4KLTxT
VVA+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+d29ybGQ8c2VsZWN0aW9uLWZvY3VzPjwvI3Rl
eHQ+Ci08L1NVUD4KLTwjdGV4dD4gV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8
ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgImhlbGxvLCAiCit8ICAgPHN1cD4KK3wgICAgICI8
I3NlbGVjdGlvbi1hbmNob3I+d29ybGQ8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgIiBXZWJLaXQi
CiAKIHN1cGVyc2NyaXB0IGxhc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+
aGVsbG8sIHdvcmxkPC8jdGV4dD4KLTxTVVA+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+IFdl
YktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvU1VQPgotPC9TUEFOPgorfCA8c3Bhbj4K
K3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICAiaGVsbG8sIHdvcmxkIgorfCAgIDxzdXA+Cit8
ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIHN1
cGVyc2NyaXB0IGFsbDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxTVVA+Ci08I3RleHQ+
PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8j
dGV4dD4KLTwvU1VQPgotPC9TUEFOPgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIK
K3wgICA8c3VwPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgd29ybGQgV2ViS2l0
PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBjcmVhdGVMaW5rIGZpcnN0OgotPFNQQU4gY29udGVudEVk
aXRhYmxlPSIiPgotPEEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj4KLTwjdGV4dD48c2VsZWN0
aW9uLWFuY2hvcj5oZWxsbywgPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9BPgotPCN0ZXh0
PndvcmxkIFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0
YWJsZT0iIgorfCAgIDxhPgorfCAgICAgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIgorfCAgICAg
Ijwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAgICJ3b3Js
ZCBXZWJLaXQiCiAKIGNyZWF0ZUxpbmsgbWlkZGxlOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIi
PgotPCN0ZXh0PmhlbGxvLCA8LyN0ZXh0PgotPEEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj4K
LTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj53b3JsZDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4K
LTwvQT4KLTwjdGV4dD4gV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29u
dGVudGVkaXRhYmxlPSIiCit8ICAgImhlbGxvLCAiCit8ICAgPGE+Cit8ICAgICBocmVmPSJodHRw
Oi8vd2Via2l0Lm9yZy8iCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAgICIgV2ViS2l0IgogCiBjcmVhdGVMaW5rIGxhc3Q6Ci08U1BBTiBjb250
ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIHdvcmxkPC8jdGV4dD4KLTxBIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnLyI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+IFdlYktpdDxzZWxl
Y3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQT4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY29udGVu
dGVkaXRhYmxlPSIiCit8ICAgImhlbGxvLCB3b3JsZCIKK3wgICA8YT4KK3wgICAgIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnLyIKK3wgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+IFdlYktpdDwjc2Vs
ZWN0aW9uLWZvY3VzPiIKIAogY3JlYXRlTGluayBhbGw6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9
IiI+Ci08QSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy8iPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5j
aG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0E+Ci08
L1NQQU4+Cit8IDxzcGFuPgorfCAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgIDxhPgorfCAgICAg
aHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxs
bywgd29ybGQgV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy91bmRvL3JlZG8tc3BsaXQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtbm9kZS1leHBlY3RlZC50eHQKaW5k
ZXggNzNhN2JmYjgxYThhMmRmYWRiMGNjOTMwOGM5ZWM5N2Y4NDJkNWZiNC4uY2FlZWJlMjgxYzQx
MzkwYjU1Y2Q3OGY5MzgzYTIzMmE2MzdhNDNlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy91bmRvL3JlZG8tc3BsaXQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zcGxpdC10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0CkBAIC0y
LDI2ICsyLDI1IEBAIFRoaXMgdGVzdCBzcGxpdHMgYSB0ZXh0IG5vZGUgYnkgaW5zZXJ0aW5nIGEg
bmV3IHBhcmFncmFwaCBhbmQgYm9sZHMgdGhlIHRoZSBmaXJzCiBJZiBzcGxpdFRleHROb2RlIGNv
cnJlY3RseSByZWFwcGxpZWQgdGhlIHNwbGl0LCB1bmRvIGFuZCByZWRvIHNob3VsZCBwcmVzZXJ2
ZSB0aGUgc3R5bGUuIChTZWUgYnVnIDQyOTQxKS4KIAogYmVmb3JlIHVuZG86Ci08RElWIGlkPSJ0
ZXN0IiBjb250ZW50RWRpdGFibGU9IiI+Ci08Qj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj5o
ZTxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQj4KLTxESVY+Ci08I3RleHQ+bGxvPC8jdGV4
dD4KLTwvRElWPgotPC9ESVY+Cit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAg
aWQ9InRlc3QiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAgIDxkaXY+Cit8ICAgICAibGxvIgogCiBhZnRlciB1bmRvOgotPERJViBp
ZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlPHNlbGVjdGlvbi1jYXJldD5s
bG88LyN0ZXh0PgotPC9ESVY+Cit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAg
aWQ9InRlc3QiCit8ICAgImhlPCNzZWxlY3Rpb24tY2FyZXQ+bGxvIgogCiBhZnRlciByZWRvOgot
PERJViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPEI+Ci08I3RleHQ+PHNlbGVjdGlv
bi1hbmNob3I+aGU8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0I+Ci08RElWPgotPCN0ZXh0
PmxsbzwvI3RleHQ+Ci08L0RJVj4KLTwvRElWPgorfCA8ZGl2PgorfCAgIGNvbnRlbnRlZGl0YWJs
ZT0iIgorfCAgIGlkPSJ0ZXN0IgorfCAgIDxiPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5o
ZTwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgICA8ZGl2PgorfCAgICAgImxsbyIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtd2l0aC1yZW1vdmFsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtd2l0
aC1yZW1vdmFsLWV4cGVjdGVkLnR4dAppbmRleCA5NmM0MTY0YjE3ZWM4M2FkYTc4ZjNiZWMyMzZi
NTkzNWJjN2U4MTZmLi4yNmYwYTRkMTk5MjczZWQ2N2QwODhjODRiNWNlODg2MGIwY2VjZDFkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zcGxpdC10ZXh0LXdpdGgt
cmVtb3ZhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlZG8t
c3BsaXQtdGV4dC13aXRoLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0yLDI3ICsyLDI4IEBAIFRo
aXMgdGVzdCBzcGxpdHMgYSB0ZXh0IG5vZGUgYnkgaW5zZXJ0aW5nIGEgbmV3IHBhcmFncmFwaCBh
bmQgYm9sZHMgdGhlIHRoZSBmaXJzCiBBZnRlciB1bmRvaW5nIHRoZXNlIHR3byBzdGVwcywgaXQg
cmVtb3ZlcyB0aGUgdGV4dCBub2RlLCBhbmQgdGhlbiByZWRvLiBUaGUgdGVzdCBzaG91bGQgbm90
IGNyYXNoLiAoU2VlIGJ1ZyA0Mjk0MSkuCiAKIGJlZm9yZSB1bmRvOgotPERJViBpZD0idGVzdCIg
Y29udGVudEVkaXRhYmxlPSIiPgotPEI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGU8c2Vs
ZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0I+Ci08RElWPgotPCN0ZXh0PmxsbzwvI3RleHQ+Ci08
L0RJVj4KLTwvRElWPgorfCA8ZGl2PgorfCAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgIGlkPSJ0
ZXN0IgorfCAgIDxiPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZTwjc2VsZWN0aW9uLWZv
Y3VzPiIKK3wgICA8ZGl2PgorfCAgICAgImxsbyIKIAogYWZ0ZXIgdW5kbzoKLTxESVYgaWQ9InRl
c3QiIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZTxzZWxlY3Rpb24tY2FyZXQ+bGxvPC8j
dGV4dD4KLTwvRElWPgorfCA8ZGl2PgorfCAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgIGlkPSJ0
ZXN0IgorfCAgICJoZTwjc2VsZWN0aW9uLWNhcmV0PmxsbyIKIAogYWZ0ZXIgbm9kZSByZW1vdmFs
OgotPERJViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPC9ESVY+Cit8IDxkaXY+Cit8
ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAgaWQ9InRlc3QiCiAKIGFmdGVyIHJlZG86Ci08RElW
IGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9IiI+Ci08RElWPgotPCN0ZXh0PmhlbGxvPC8jdGV4
dD4KLTwvRElWPgotPC9ESVY+Cit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAg
aWQ9InRlc3QiCit8ICAgPGRpdj4KK3wgICAgICJoZWxsbyIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3Jlc291cmNlcy9kb20yc3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcmVzb3VyY2VzL2RvbTJzdHJpbmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNkZWI2NTgyMTMwYmVmZjEwMzkzZTBjZTRiYTQ3MWQ0ZTE5NDUwMGEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVz
b3VyY2VzL2RvbTJzdHJpbmcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotU3Ry
aW5nLnByb3RvdHlwZS50b0FzY2lpTG93ZXJDYXNlID0gZnVuY3Rpb24gKCkgewotICB2YXIgb3V0
cHV0ID0gIiI7Ci0gIGZvciAodmFyIGkgPSAwLCBsZW4gPSB0aGlzLmxlbmd0aDsgaSA8IGxlbjsg
KytpKSB7Ci0gICAgaWYgKHRoaXMuY2hhckNvZGVBdChpKSA+PSAweDQxICYmIHRoaXMuY2hhckNv
ZGVBdChpKSA8PSAweDVBKSB7Ci0gICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh0
aGlzLmNoYXJDb2RlQXQoaSkgKyAweDIwKQotICAgIH0gZWxzZSB7Ci0gICAgICBvdXRwdXQgKz0g
dGhpcy5jaGFyQXQoaSk7Ci0gICAgfQotICB9Ci0gIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0
aW9uIGluZGVudChhbmNlc3RvcnMpIHsKLSAgdmFyIHN0ciA9ICIiOwotICBpZiAoYW5jZXN0b3Jz
ID4gMCkgewotICAgIHdoaWxlIChhbmNlc3RvcnMtLSkKLSAgICAgIHN0ciArPSAiICAiOwotICB9
Ci0gIHJldHVybiBzdHI7Ci19Ci0KLWZ1bmN0aW9uIGRvbTJzdHJpbmcobm9kZSwgYW5jZXN0b3Jz
KSB7Ci0gIHZhciBzdHIgPSAiIjsKLSAgaWYgKHR5cGVvZiBhbmNlc3RvcnMgPT0gInVuZGVmaW5l
ZCIpCi0gICAgdmFyIGFuY2VzdG9ycyA9IDA7Ci0gIGlmICghbm9kZS5maXJzdENoaWxkKQotICAg
IHJldHVybiAifCAiOwotICB2YXIgcGFyZW50ID0gbm9kZTsKLSAgdmFyIGN1cnJlbnQgPSBub2Rl
LmZpcnN0Q2hpbGQ7Ci0gIHZhciBuZXh0ID0gbnVsbDsKLSAgdmFyIG1pc25lc3RlZCA9IG51bGw7
Ci0gIGZvciAoOzspIHsKLSAgICBzdHIgKz0gIlxufCAiICsgaW5kZW50KGFuY2VzdG9ycyk7Ci0g
ICAgc3dpdGNoIChjdXJyZW50Lm5vZGVUeXBlKSB7Ci0gICAgICBjYXNlIDEwOgotICAgICAgICBz
dHIgKz0gJzwhRE9DVFlQRSAnICsgY3VycmVudC5ub2RlTmFtZTsKLSAgICAgICAgaWYgKGN1cnJl
bnQucHVibGljSWQgfHwgY3VycmVudC5zeXN0ZW1JZCkgewotICAgICAgICAgICAgc3RyICs9ICcg
IicgKyBjdXJyZW50LnB1YmxpY0lkICsgJyInOwotICAgICAgICAgICAgc3RyICs9ICcgIicgKyBj
dXJyZW50LnN5c3RlbUlkICsgJyInOwotICAgICAgICB9Ci0gICAgICAgIHN0ciArPSAnPic7Ci0g
ICAgICAgIGJyZWFrOwotICAgICAgY2FzZSA4OgotICAgICAgICB0cnkgewotICAgICAgICAgIHN0
ciArPSAnPCEtLSAnICsgY3VycmVudC5ub2RlVmFsdWUgKyAnIC0tPic7Ci0gICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICBzdHIgKz0gJzwhLS0gIC0tPic7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHBhcmVudCAhPSBjdXJyZW50LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICByZXR1cm4g
c3RyICs9ICcgKG1pc25lc3RlZC4uLiBhYm9ydGluZyknOwotICAgICAgICB9Ci0gICAgICAgIGJy
ZWFrOwotICAgICAgY2FzZSA3OgotICAgICAgICBzdHIgKz0gJzw/JyArIGN1cnJlbnQubm9kZU5h
bWUgKyBjdXJyZW50Lm5vZGVWYWx1ZSArICc+JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNl
IDQ6Ci0gICAgICAgIHN0ciArPSAnPCFbQ0RBVEFbICcgKyBjdXJyZW50Lm5vZGVWYWx1ZSArICcg
XV0+JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDM6Ci0gICAgICAgIHN0ciArPSAnIicg
KyBjdXJyZW50Lm5vZGVWYWx1ZSArICciJzsKLSAgICAgICAgaWYgKHBhcmVudCAhPSBjdXJyZW50
LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICByZXR1cm4gc3RyICs9ICcgKG1pc25lc3RlZC4uLiBh
Ym9ydGluZyknOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAxOgotICAg
ICAgICBzdHIgKz0gIjwiOwotICAgICAgICBzd2l0Y2ggKGN1cnJlbnQubmFtZXNwYWNlVVJJKSB7
Ci0gICAgICAgICAgY2FzZSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOgotICAgICAgICAg
ICAgc3RyICs9ICJzdmcgIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgImh0
dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiOgotICAgICAgICAgICAgc3RyICs9ICJt
YXRoICI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVu
dC5sb2NhbE5hbWUgJiYgY3VycmVudC5uYW1lc3BhY2VVUkkgJiYgY3VycmVudC5uYW1lc3BhY2VV
UkkgIT0gbnVsbCkgewotICAgICAgICAgIHN0ciArPSBjdXJyZW50LmxvY2FsTmFtZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBzdHIgKz0gY3VycmVudC5ub2RlTmFtZS50b0FzY2lpTG93
ZXJDYXNlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RyICs9ICc+JzsKLSAgICAgICAgaWYgKHBh
cmVudCAhPSBjdXJyZW50LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICByZXR1cm4gc3RyICs9ICcg
KG1pc25lc3RlZC4uLiBhYm9ydGluZyknOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlm
IChjdXJyZW50LmF0dHJpYnV0ZXMpIHsKLSAgICAgICAgICAgIHZhciBhdHRyTmFtZXMgPSBbXTsK
LSAgICAgICAgICAgIHZhciBhdHRyUG9zID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGN1cnJlbnQuYXR0cmlidXRlcy5sZW5ndGg7IGogKz0gMSkgewotICAgICAgICAgICAg
ICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzW2pdLnNwZWNpZmllZCkgewotICAgICAgICAgICAgICAg
IHZhciBuYW1lID0gIiI7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50LmF0dHJpYnV0
ZXNbal0ubmFtZXNwYWNlVVJJKSB7Ci0gICAgICAgICAgICAgICAgICBjYXNlICJodHRwOi8vd3d3
LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiOgotICAgICAgICAgICAgICAgICAgICBuYW1lICs9
ICJ4bWwgIjsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICBj
YXNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyI6Ci0gICAgICAgICAgICAgICAgICAg
IG5hbWUgKz0gInhtbG5zICI7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgY2FzZSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI6Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWUgKz0gInhsaW5rICI7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVz
W2pdLmxvY2FsTmFtZSkgewotICAgICAgICAgICAgICAgICAgbmFtZSArPSBjdXJyZW50LmF0dHJp
YnV0ZXNbal0ubG9jYWxOYW1lOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICBuYW1lICs9IGN1cnJlbnQuYXR0cmlidXRlc1tqXS5ub2RlTmFtZTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXR0ck5hbWVzLnB1c2gobmFtZSk7Ci0gICAgICAg
ICAgICAgICAgYXR0clBvc1tuYW1lXSA9IGo7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChhdHRyTmFtZXMubGVuZ3RoID4gMCkgewotICAgICAgICAgICAg
ICBhdHRyTmFtZXMuc29ydCgpOwotICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0
dHJOYW1lcy5sZW5ndGg7IGogKz0gMSkgewotICAgICAgICAgICAgICAgIHN0ciArPSAiXG58ICIg
KyBpbmRlbnQoMSArIGFuY2VzdG9ycykgKyBhdHRyTmFtZXNbal07Ci0gICAgICAgICAgICAgICAg
c3RyICs9ICc9IicgKyBjdXJyZW50LmF0dHJpYnV0ZXNbYXR0clBvc1thdHRyTmFtZXNbal1dXS5u
b2RlVmFsdWUgKyAnIic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICB9Ci0gICAgICAgICAgaWYgKG5leHQgPSBjdXJyZW50LmZpcnN0Q2hpbGQpIHsKLSAgICAgICAg
ICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgICAgICBjdXJyZW50ID0gbmV4dDsKLSAgICAg
ICAgICAgIGFuY2VzdG9ycysrOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICBp
ZiAobmV4dCA9IGN1cnJlbnQubmV4dFNpYmxpbmcpIHsKLSAgICAgICAgY3VycmVudCA9IG5leHQ7
Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50
Tm9kZTsKLSAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlOwotICAgICAgYW5jZXN0b3Jz
LS07Ci0gICAgICBpZiAoY3VycmVudCA9PSBub2RlKSB7Ci0gICAgICAgIHJldHVybiBzdHIuc3Vi
c3RyaW5nKDEpOwotICAgICAgfQotICAgIH0KLSAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcmVzb3VyY2VzL3Rlc3RzNC5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
ZXNvdXJjZXMvdGVzdHM0LmRhdAppbmRleCAzYzUwNjMyNmQxZjEzMThlMTk1NWUwYTYwYTViYjk2
ODUxM2Q0MjJhLi40MjFjOThlZDZmNTBkMGM3ODI1NjE0NTUzZDFmZjY2YzYwMTczNWJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVzdHM0LmRhdAorKysgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVzdHM0LmRhdApAQCAtNCw3ICs0LDggQEAg
ZGlyZWN0IGRpdiBjb250ZW50CiAjZG9jdW1lbnQtZnJhZ21lbnQKIGRpdgogI2RvY3VtZW50Ci18
ICJkaXJlY3QgZGl2IGNvbnRlbnQiCit8IDxkaXY+Cit8ICAgImRpcmVjdCBkaXYgY29udGVudCIK
IAogI2RhdGEKIGRpcmVjdCB0ZXh0YXJlYSBjb250ZW50CkBAIC0xMiw3ICsxMyw4IEBAIGRpcmVj
dCB0ZXh0YXJlYSBjb250ZW50CiAjZG9jdW1lbnQtZnJhZ21lbnQKIHRleHRhcmVhCiAjZG9jdW1l
bnQKLXwgImRpcmVjdCB0ZXh0YXJlYSBjb250ZW50IgorfCA8dGV4dGFyZWE+Cit8ICAgImRpcmVj
dCB0ZXh0YXJlYSBjb250ZW50IgogCiAjZGF0YQogdGV4dGFyZWEgY29udGVudCB3aXRoIDxlbT5w
c2V1ZG88L2VtPiA8Zm9vPm1hcmt1cApAQCAtMjAsNyArMjIsOCBAQCB0ZXh0YXJlYSBjb250ZW50
IHdpdGggPGVtPnBzZXVkbzwvZW0+IDxmb28+bWFya3VwCiAjZG9jdW1lbnQtZnJhZ21lbnQKIHRl
eHRhcmVhCiAjZG9jdW1lbnQKLXwgInRleHRhcmVhIGNvbnRlbnQgd2l0aCA8ZW0+cHNldWRvPC9l
bT4gPGZvbz5tYXJrdXAiCit8IDx0ZXh0YXJlYT4KK3wgICAidGV4dGFyZWEgY29udGVudCB3aXRo
IDxlbT5wc2V1ZG88L2VtPiA8Zm9vPm1hcmt1cCIKIAogI2RhdGEKIHRoaXMgaXMgJiN4MDA0MztE
QVRBIGluc2lkZSBhIDxzdHlsZT4gZWxlbWVudApAQCAtMjgsNyArMzEsOCBAQCB0aGlzIGlzICYj
eDAwNDM7REFUQSBpbnNpZGUgYSA8c3R5bGU+IGVsZW1lbnQKICNkb2N1bWVudC1mcmFnbWVudAog
c3R5bGUKICNkb2N1bWVudAotfCAidGhpcyBpcyAmI3gwMDQzO0RBVEEgaW5zaWRlIGEgPHN0eWxl
PiBlbGVtZW50IgorfCA8c3R5bGU+Cit8ICAgInRoaXMgaXMgJiN4MDA0MztEQVRBIGluc2lkZSBh
IDxzdHlsZT4gZWxlbWVudCIKIAogI2RhdGEKIDwvcGxhaW50ZXh0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3Rlc3RzNi5kYXQgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9yZXNvdXJjZXMvdGVzdHM2LmRhdAppbmRleCAyZmI3OTk2N2YxZTljZGE0Y2ZiYmUwMDgx
MTMwMDNiNGViZGYwNWIzLi5kYzk5NmVlMDJmMWQ0YTQxZDkzNTI4ZDAzZTNmYzQxYWU0NWZlMTkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVzdHM2LmRhdAor
KysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVzdHM2LmRhdApAQCAtNzcsOSAr
NzcsMTAgQEAgTGluZTogMiBDb2w6IDUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQg
ZW5kIG9mIGZpbGUuCiAjZG9jdW1lbnQtZnJhZ21lbnQKIGRpdgogI2RvY3VtZW50Ci18ICIKLSIK
IHwgPGRpdj4KK3wgICAiCisiCit8ICAgPGRpdj4KIAogI2RhdGEKIDxmcmFtZXNldD48L2ZyYW1l
c2V0PgpAQCAtMjI0LDcgKzIyNSw4IEBAIExpbmU6IDEgQ29sOiAxNSBFeHBlY3RlZCBjbG9zaW5n
IHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KICNkb2N1bWVudC1mcmFnbWVudAogY2FwdGlv
bgogI2RvY3VtZW50Ci18IDxkaXY+Cit8IDxjYXB0aW9uPgorfCAgIDxkaXY+CiAKICNkYXRhCiA8
dGFibGU+PGNhcHRpb24+PGRpdj48L2NhcHRpb24+CkBAIC0yNjEsNyArMjYzLDggQEAgTGluZTog
MSBDb2w6IDEzIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgog
I2RvY3VtZW50LWZyYWdtZW50CiBjYXB0aW9uCiAjZG9jdW1lbnQKLXwgPGRpdj4KK3wgPGNhcHRp
b24+Cit8ICAgPGRpdj4KIAogI2RhdGEKIDx0YWJsZT48Y2FwdGlvbj48L2JvZHk+PC9jb2w+PC9j
b2xncm91cD48L2h0bWw+PC90Ym9keT48L3RkPjwvdGZvb3Q+PC90aD48L3RoZWFkPjwvdHI+CkBA
IC0zMjksNyArMzMyLDggQEAgTGluZTogMSBDb2w6IDQyIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBV
bmV4cGVjdGVkIGVuZCBvZiBmaWxlLgogI2RvY3VtZW50LWZyYWdtZW50CiB0ZAogI2RvY3VtZW50
Ci18IDxkaXY+Cit8IDx0ZD4KK3wgICA8ZGl2PgogCiAjZGF0YQogPHRhYmxlPjxjb2xncm91cD5m
b28KQEAgLTQwNiw3ICs0MTAsOCBAQCBMaW5lOiAxIENvbDogMTIgRXhwZWN0ZWQgY2xvc2luZyB0
YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCiAjZG9jdW1lbnQtZnJhZ21lbnQKIGJvZHkKICNk
b2N1bWVudAotfCA8ZGl2PgorfCA8Ym9keT4KK3wgICA8ZGl2PgogCiAjZGF0YQogPHRhYmxlPjx0
cj48ZGl2PgpAQCAtNDMwLDcgKzQzNSw4IEBAIExpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgZW5k
IHRhZyAodHIpLiBJZ25vcmVkLgogI2RvY3VtZW50LWZyYWdtZW50CiB0cgogI2RvY3VtZW50Ci18
IDx0ZD4KK3wgPHRyPgorfCAgIDx0ZD4KIAogI2RhdGEKIDwvdGJvZHk+PC90Zm9vdD48L3RoZWFk
Pjx0ZD4KQEAgLTQ0MSw3ICs0NDcsOCBAQCBMaW5lOiAxIENvbDogMjQgVW5leHBlY3RlZCBlbmQg
dGFnICh0aGVhZCkuIElnbm9yZWQuCiAjZG9jdW1lbnQtZnJhZ21lbnQKIHRyCiAjZG9jdW1lbnQK
LXwgPHRkPgorfCA8dHI+Cit8ICAgPHRkPgogCiAjZGF0YQogPHRhYmxlPjx0cj48ZGl2Pjx0ZD4K
QEAgLTQ5Niw3ICs1MDMsOCBAQCBMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBlbmQgb2YgZmls
ZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KICNkb2N1bWVudC1mcmFnbWVudAogdGJvZHkKICNk
b2N1bWVudAotfCA8dHI+Cit8IDx0Ym9keT4KK3wgICA8dHI+CiAKICNkYXRhCiA8dGFibGU+PHRi
b2R5PjwvYm9keT48L2NhcHRpb24+PC9jb2w+PC9jb2xncm91cD48L2h0bWw+PC90ZD48L3RoPjwv
dHI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCAyZDY4Y2Qx
OWQxMjUzZTU5ODJhYmVjYzRjYzBlOGVkZjI0OWFiYmM3Li5hYTk4ZTc3MDUwYzMwZDZiY2ZhNjNh
NGE2YjMyNzY5ODE0YzI1Yjk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5u
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC50eHQKQEAgLTEwOTgsMjYgKzEwOTgsMjkgQEAgcmVzb3VyY2VzL3Rlc3RzNC5kYXQ6CiBUZXN0
IDMgb2YgNyBpbiByZXNvdXJjZXMvdGVzdHM0LmRhdCBmYWlsZWQuIElucHV0OgogdGV4dGFyZWEg
Y29udGVudCB3aXRoIDxlbT5wc2V1ZG88L2VtPiA8Zm9vPm1hcmt1cAogR290OgotfCAidGV4dGFy
ZWEgY29udGVudCB3aXRoICIKLXwgPGVtPgotfCAgICJwc2V1ZG8iCi18ICIgIgotfCA8Zm9vPgot
fCAgICJtYXJrdXAiCit8IDx0ZXh0YXJlYT4KK3wgICAidGV4dGFyZWEgY29udGVudCB3aXRoICIK
K3wgICA8ZW0+Cit8ICAgICAicHNldWRvIgorfCAgICIgIgorfCAgIDxmb28+Cit8ICAgICAibWFy
a3VwIgogRXhwZWN0ZWQ6Ci18ICJ0ZXh0YXJlYSBjb250ZW50IHdpdGggPGVtPnBzZXVkbzwvZW0+
IDxmb28+bWFya3VwIgorfCA8dGV4dGFyZWE+Cit8ICAgInRleHRhcmVhIGNvbnRlbnQgd2l0aCA8
ZW0+cHNldWRvPC9lbT4gPGZvbz5tYXJrdXAiCiAKIFRlc3QgNSBvZiA3IGluIHJlc291cmNlcy90
ZXN0czQuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8L3BsYWludGV4dD4KIEdvdDoKLXwgCit8IDxwbGFp
bnRleHQ+CiBFeHBlY3RlZDoKIHwgIjwvcGxhaW50ZXh0PiIKIAogVGVzdCA2IG9mIDcgaW4gcmVz
b3VyY2VzL3Rlc3RzNC5kYXQgZmFpbGVkLiBJbnB1dDoKIHNldHRpbmcgaHRtbCdzIGlubmVySFRN
TAogR290OgotfCAic2V0dGluZyBodG1sJ3MgaW5uZXJIVE1MIgorfCA8aHRtbD4KK3wgICAic2V0
dGluZyBodG1sJ3MgaW5uZXJIVE1MIgogRXhwZWN0ZWQ6CiB8IDxoZWFkPgogfCA8Ym9keT4KQEAg
LTExMjYsNyArMTEyOSw3IEBAIEV4cGVjdGVkOgogVGVzdCA3IG9mIDcgaW4gcmVzb3VyY2VzL3Rl
c3RzNC5kYXQgZmFpbGVkLiBJbnB1dDoKIDx0aXRsZT5zZXR0aW5nIGhlYWQncyBpbm5lckhUTUw8
L3RpdGxlPgogR290OgotfCAKK3wgPGhlYWQ+CiBFeHBlY3RlZDoKIHwgPHRpdGxlPgogfCAgICJz
ZXR0aW5nIGhlYWQncyBpbm5lckhUTUwiCkBAIC0xMzA5LDcgKzEzMTIsNyBAQCBFeHBlY3RlZDoK
IFRlc3QgMjcgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVkLiBJbnB1dDoKIGZv
bzxjb2w+CiBHb3Q6Ci18IAorfCA8Y29sZ3JvdXA+CiBFeHBlY3RlZDoKIHwgPGNvbD4KIApAQCAt
MTMyNiw3ICsxMzI5LDcgQEAgRXhwZWN0ZWQ6CiBUZXN0IDMwIG9mIDUxIGluIHJlc291cmNlcy90
ZXN0czYuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8L2ZyYW1lc2V0PjxmcmFtZT4KIEdvdDoKLXwgCit8
IDxmcmFtZXNldD4KIEV4cGVjdGVkOgogfCA8ZnJhbWU+CiAKQEAgLTEzNDMsMTkgKzEzNDYsMjEg
QEAgRXhwZWN0ZWQ6CiBUZXN0IDM3IG9mIDUxIGluIHJlc291cmNlcy90ZXN0czYuZGF0IGZhaWxl
ZC4gSW5wdXQ6CiA8Y2FwdGlvbj48Y29sPjxjb2xncm91cD48dGJvZHk+PHRmb290Pjx0aGVhZD48
dHI+CiBHb3Q6Ci18IDxjYXB0aW9uPgotfCA8Y29sZ3JvdXA+CiB8IDx0Ym9keT4KLXwgPHRmb290
PgotfCA8dGhlYWQ+Ci18ICAgPHRyPgorfCAgIDxjYXB0aW9uPgorfCAgIDxjb2xncm91cD4KK3wg
ICA8dGJvZHk+Cit8ICAgPHRmb290PgorfCAgIDx0aGVhZD4KK3wgICAgIDx0cj4KIEV4cGVjdGVk
OgogfCA8dHI+CiAKIFRlc3QgNDQgb2YgNTEgaW4gcmVzb3VyY2VzL3Rlc3RzNi5kYXQgZmFpbGVk
LiBJbnB1dDoKIDwvdGFibGU+PHRyPgogR290OgotfCA8dHI+Cit8IDx0YWJsZT4KK3wgICA8dHI+
CiBFeHBlY3RlZDoKIHwgPHRib2R5PgogfCAgIDx0cj4KQEAgLTEzNjMsNyArMTM2OCw3IEBAIEV4
cGVjdGVkOgogVGVzdCA0NSBvZiA1MSBpbiByZXNvdXJjZXMvdGVzdHM2LmRhdCBmYWlsZWQuIElu
cHV0OgogPGJvZHk+PC9ib2R5PjwvaHRtbD4KIEdvdDoKLXwgCit8IDxodG1sPgogRXhwZWN0ZWQ6
CiB8IDxoZWFkPgogfCA8Ym9keT4KQEAgLTE2NzUsNyArMTY4MCw4IEBAIEV4cGVjdGVkOgogVGVz
dCAyNCBvZiAzMCBpbiByZXNvdXJjZXMvdGVzdHM3LmRhdCBmYWlsZWQuIElucHV0OgogPGJvZHk+
WDwvYm9keT48L2JvZHk+CiBHb3Q6Ci18ICJYIgorfCA8aHRtbD4KK3wgICAiWCIKIEV4cGVjdGVk
OgogfCA8aGVhZD4KIHwgPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci5odG1sCmluZGV4IDA1YTQ5
M2ZmMjAxODc1MGUyNTMxODhjODFlYWVhZWMyYTRlM2U1NGQuLjA0NTdlZDRjOGM2ZDgyOGNkYzU1
MzE1YWM5MDdmZWYwMTgwN2U2ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci5odG1sCkBAIC0yMSwx
MSArMjEsNyBAQCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiBUSEUgU09GVFdBUkUuCiAtLT4KIDx0aXRsZT5o
dG1sNWxpYiB0ZXN0IHJ1bm5lcjwvdGl0bGU+Ci08c2NyaXB0IHNyYz1yZXNvdXJjZXMvZG9tMnN0
cmluZy5qcz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Li4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzPjwvc2NyaXB0PgogPHN0
eWxlPgogLm92ZXJ2aWV3OmhvdmVyIHsKIGJhY2tncm91bmQ6ICNjY2M7CkBAIC0zNyw2ICszMyw4
IEBAIGRpc3BsYXk6IG5vbmU7CiA8cD5TY3JpcHQgZGlkIG5vdCBydW48L3A+CiA8aWZyYW1lPjwv
aWZyYW1lPgogPHNjcmlwdD4KK01hcmt1cC53YWl0VW50aWxEb25lKCk7CisKIHZhciB0ZXN0X2Zp
bGVzID0gWwogICAgICAgICAncmVzb3VyY2VzL3Rlc3RzMS5kYXQnLAogICAgICAgICAncmVzb3Vy
Y2VzL3Rlc3RzMi5kYXQnLApAQCAtOTIsNiArOTAsOCBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKQogewogICAgIHN0YXQuZGF0YSA9ICJSdW5uaW5nIjsKICAgICBydW4oKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1bigpCkBAIC0yMjgsNyArMjI4LDcgQEAg
ZnVuY3Rpb24gcnVuX3Rlc3QoaW5wdXQsIGNvbnRleHRFbGVtZW50LCBleHBlY3RlZCkKIAogZnVu
Y3Rpb24gcHJvY2Vzc19yZXN1bHQoaW5wdXQsIHJlc3VsdCwgZXhwZWN0ZWQpCiB7Ci0gICAgcmVz
dWx0ID0gZG9tMnN0cmluZyhyZXN1bHQpOworICAgIHJlc3VsdCA9IE1hcmt1cC5nZXQocmVzdWx0
KTsKICAgICBpZiAocmVzdWx0ICE9PSBleHBlY3RlZCkKICAgICB7CiAgICAgICAgIGZhaWxfbGlz
dC5wdXNoKHRlc3RfbnVtYmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3dl
YmtpdC1yZXN1bWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJraXQtcmVzdW1lci5o
dG1sCmluZGV4IDJkM2EwMTcxNmI1NGE2NTk0ZTNlMzUwNzNmYjM0MjFjODAzNGY4NjguLjA5NzQ4
ZTQxZWQwNGJlZDc4YWQ1YmU4NzVjMDkzZmVlMjcyYmRmMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3dlYmtpdC1yZXN1bWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvd2Via2l0LXJlc3VtZXIuaHRtbApAQCAtMjAsMTQ3ICsyMCw3IEBACiAvLyBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOCiAvLyBUSEUgU09GVFdBUkUuCiA8L3NjcmlwdD4KLTxzY3JpcHQ+Ci1TdHJpbmcucHJv
dG90eXBlLnRvQXNjaWlMb3dlckNhc2UgPSBmdW5jdGlvbiAoKSB7Ci0gIHZhciBvdXRwdXQgPSAi
IjsKLSAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsK
LSAgICBpZiAodGhpcy5jaGFyQ29kZUF0KGkpID49IDB4NDEgJiYgdGhpcy5jaGFyQ29kZUF0KGkp
IDw9IDB4NUEpIHsKLSAgICAgIG91dHB1dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuY2hh
ckNvZGVBdChpKSArIDB4MjApCi0gICAgfSBlbHNlIHsKLSAgICAgIG91dHB1dCArPSB0aGlzLmNo
YXJBdChpKTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gaW5k
ZW50KGFuY2VzdG9ycykgewotICB2YXIgc3RyID0gIiI7Ci0gIGlmIChhbmNlc3RvcnMgPiAwKSB7
Ci0gICAgd2hpbGUgKGFuY2VzdG9ycy0tKQotICAgICAgc3RyICs9ICIgICI7Ci0gIH0KLSAgcmV0
dXJuIHN0cjsKLX0KLQotZnVuY3Rpb24gZG9tMnN0cmluZyhub2RlLCBhbmNlc3RvcnMpIHsKLSAg
dmFyIHN0ciA9ICIiOwotICBpZiAodHlwZW9mIGFuY2VzdG9ycyA9PSAidW5kZWZpbmVkIikKLSAg
ICB2YXIgYW5jZXN0b3JzID0gMDsKLSAgaWYgKCFub2RlLmZpcnN0Q2hpbGQpCi0gICAgcmV0dXJu
ICJ8ICI7Ci0gIHZhciBwYXJlbnQgPSBub2RlOwotICB2YXIgY3VycmVudCA9IG5vZGUuZmlyc3RD
aGlsZDsKLSAgdmFyIG5leHQgPSBudWxsOwotICB2YXIgbWlzbmVzdGVkID0gbnVsbDsKLSAgZm9y
ICg7OykgewotICAgIHN0ciArPSAiXG58ICIgKyBpbmRlbnQoYW5jZXN0b3JzKTsKLSAgICBzd2l0
Y2ggKGN1cnJlbnQubm9kZVR5cGUpIHsKLSAgICAgIGNhc2UgMTA6Ci0gICAgICAgIHN0ciArPSAn
PCFET0NUWVBFICcgKyBjdXJyZW50Lm5vZGVOYW1lICsgJz4nOwotICAgICAgICBicmVhazsKLSAg
ICAgIGNhc2UgODoKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBzdHIgKz0gJzwhLS0gJyArIGN1
cnJlbnQubm9kZVZhbHVlICsgJyAtLT4nOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgc3RyICs9ICc8IS0tICAtLT4nOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwYXJlbnQgIT0g
Y3VycmVudC5wYXJlbnROb2RlKSB7Ci0gICAgICAgICAgcmV0dXJuIHN0ciArPSAnIChtaXNuZXN0
ZWQuLi4gYWJvcnRpbmcpJzsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICAgIGNhc2Ug
NzoKLSAgICAgICAgc3RyICs9ICc8PycgKyBjdXJyZW50Lm5vZGVOYW1lICsgY3VycmVudC5ub2Rl
VmFsdWUgKyAnPic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSA0OgotICAgICAgICBzdHIg
Kz0gJzwhW0NEQVRBWyAnICsgY3VycmVudC5ub2RlVmFsdWUgKyAnIF1dPic7Ci0gICAgICAgIGJy
ZWFrOwotICAgICAgY2FzZSAzOgotICAgICAgICBzdHIgKz0gJyInICsgY3VycmVudC5ub2RlVmFs
dWUgKyAnIic7Ci0gICAgICAgIGlmIChwYXJlbnQgIT0gY3VycmVudC5wYXJlbnROb2RlKSB7Ci0g
ICAgICAgICAgcmV0dXJuIHN0ciArPSAnIChtaXNuZXN0ZWQuLi4gYWJvcnRpbmcpJzsKLSAgICAg
ICAgfQotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgMToKLSAgICAgICAgc3RyICs9ICI8IjsK
LSAgICAgICAgc3dpdGNoIChjdXJyZW50Lm5hbWVzcGFjZVVSSSkgewotICAgICAgICAgIGNhc2Ug
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjoKLSAgICAgICAgICAgIHN0ciArPSAic3ZnICI7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNlICJodHRwOi8vd3d3LnczLm9yZy8x
OTk4L01hdGgvTWF0aE1MIjoKLSAgICAgICAgICAgIHN0ciArPSAibWF0aCAiOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGN1cnJlbnQubG9jYWxOYW1lICYmIGN1
cnJlbnQubmFtZXNwYWNlVVJJICYmIGN1cnJlbnQubmFtZXNwYWNlVVJJICE9IG51bGwpIHsKLSAg
ICAgICAgICBzdHIgKz0gY3VycmVudC5sb2NhbE5hbWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgc3RyICs9IGN1cnJlbnQubm9kZU5hbWUudG9Bc2NpaUxvd2VyQ2FzZSgpOwotICAgICAg
ICB9Ci0gICAgICAgIHN0ciArPSAnPic7Ci0gICAgICAgIGlmIChwYXJlbnQgIT0gY3VycmVudC5w
YXJlbnROb2RlKSB7Ci0gICAgICAgICAgcmV0dXJuIHN0ciArPSAnIChtaXNuZXN0ZWQuLi4gYWJv
cnRpbmcpJzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1
dGVzKSB7Ci0gICAgICAgICAgICB2YXIgYXR0ck5hbWVzID0gW107Ci0gICAgICAgICAgICB2YXIg
YXR0clBvcyA9IHt9OwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjdXJyZW50LmF0
dHJpYnV0ZXMubGVuZ3RoOyBqICs9IDEpIHsKLSAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuYXR0
cmlidXRlc1tqXS5zcGVjaWZpZWQpIHsKLSAgICAgICAgICAgICAgICB2YXIgbmFtZSA9ICIiOwot
ICAgICAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudC5hdHRyaWJ1dGVzW2pdLm5hbWVzcGFjZVVS
SSkgewotICAgICAgICAgICAgICAgICAgY2FzZSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIjoKLSAgICAgICAgICAgICAgICAgICAgbmFtZSArPSAieG1sICI7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgY2FzZSAiaHR0cDovL3d3dy53
My5vcmcvMjAwMC94bWxucy8iOgotICAgICAgICAgICAgICAgICAgICBuYW1lICs9ICJ4bWxucyAi
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgIGNhc2UgImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiOgotICAgICAgICAgICAgICAgICAgICBuYW1lICs9
ICJ4bGluayAiOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc1tqXS5sb2NhbE5hbWUpIHsK
LSAgICAgICAgICAgICAgICAgIG5hbWUgKz0gY3VycmVudC5hdHRyaWJ1dGVzW2pdLmxvY2FsTmFt
ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgbmFtZSArPSBj
dXJyZW50LmF0dHJpYnV0ZXNbal0ubm9kZU5hbWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGF0dHJOYW1lcy5wdXNoKG5hbWUpOwotICAgICAgICAgICAgICAgIGF0dHJQb3Nb
bmFtZV0gPSBqOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoYXR0ck5hbWVzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgICAgYXR0ck5hbWVzLnNvcnQo
KTsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyTmFtZXMubGVuZ3RoOyBq
ICs9IDEpIHsKLSAgICAgICAgICAgICAgICBzdHIgKz0gIlxufCAiICsgaW5kZW50KDEgKyBhbmNl
c3RvcnMpICsgYXR0ck5hbWVzW2pdOwotICAgICAgICAgICAgICAgIHN0ciArPSAnPSInICsgY3Vy
cmVudC5hdHRyaWJ1dGVzW2F0dHJQb3NbYXR0ck5hbWVzW2pdXV0ubm9kZVZhbHVlICsgJyInOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlm
IChuZXh0ID0gY3VycmVudC5maXJzdENoaWxkKSB7Ci0gICAgICAgICAgICBwYXJlbnQgPSBjdXJy
ZW50OwotICAgICAgICAgICAgY3VycmVudCA9IG5leHQ7Ci0gICAgICAgICAgICBhbmNlc3RvcnMr
KzsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgZm9yICg7OykgewotICAgICAgaWYgKG5leHQgPSBjdXJyZW50
Lm5leHRTaWJsaW5nKSB7Ci0gICAgICAgIGN1cnJlbnQgPSBuZXh0OwotICAgICAgICBicmVhazsK
LSAgICAgIH0KLSAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7Ci0gICAgICBwYXJl
bnQgPSBwYXJlbnQucGFyZW50Tm9kZTsKLSAgICAgIGFuY2VzdG9ycy0tOwotICAgICAgaWYgKGN1
cnJlbnQgPT0gbm9kZSkgewotICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZygxKTsKLSAgICAg
IH0KLSAgICB9Ci0gIH0KLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM+PC9z
Y3JpcHQ+CiA8c3R5bGU+CiAub3ZlcnZpZXc6aG92ZXIgewogYmFja2dyb3VuZDogI2NjYzsKQEAg
LTE3Miw2ICszMiw4IEBAIGRpc3BsYXk6IG5vbmU7CiA8cD5TY3JpcHQgZGlkIG5vdCBydW48L3A+
CiA8aWZyYW1lPjwvaWZyYW1lPgogPHNjcmlwdD4KK01hcmt1cC53YWl0VW50aWxEb25lKCk7CisK
IHZhciB0ZXN0X2ZpbGVzID0gWwogICAgICAgICAvLyAncmVzb3VyY2VzL3Rlc3RzMS5kYXQnLAog
ICAgICAgICAvLyAncmVzb3VyY2VzL3Rlc3RzMi5kYXQnLApAQCAtMjEzLDYgKzc1LDggQEAgd2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKIHsKICAgICBzdGF0LmRhdGEgPSAiUnVubmluZyI7CiAg
ICAgcnVuKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBydW4oKQpA
QCAtMzU3LDcgKzIyMSw3IEBAIGZ1bmN0aW9uIHJ1bl90ZXN0KGlucHV0LCBjb250ZXh0RWxlbWVu
dCwgZXhwZWN0ZWQpCiAKIGZ1bmN0aW9uIHByb2Nlc3NfcmVzdWx0KGlucHV0LCByZXN1bHQsIGV4
cGVjdGVkLCBhc3luYykKIHsKLSAgICByZXN1bHQgPSBkb20yc3RyaW5nKHJlc3VsdCk7CisgICAg
cmVzdWx0ID0gTWFya3VwLmdldChyZXN1bHQpOwogICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVk
KQogICAgIHsKICAgICAgICAgZmFpbF9saXN0LnB1c2godGVzdF9udW1iZXIgKyAiLiIgKyBzdWJ0
ZXN0X251bWJlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKaW5kZXgg
ZWVhZmNlODhkNjI0OGJiYTY4ZTJiNWU0NThjM2U3MmEwZDAxZmQ4OS4uYjQ2NzJmY2VkMzNiZWEx
OTRhMDFhZGIwNTVkNjc4MDgyM2VmMWFjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcwpAQCAtMjAsNiArMjAsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CiB9CiAKIC8vIE5hbWVzcGFjZQorLy8gRklYTUU6IFJlbmFtZSBkdW1wLWFzLW1hcmt1
cC5qcyB0byBkdW1wLWRvbS5qcyBhbmQgTWFya3VwIHRvIERPTS4KIHZhciBNYXJrdXAgPSB7fTsK
IAogLy8gVGhlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyB0ZXN0IGlzIHRlc3RpbmcuIEdldHMg
cHJlcGVuZGVkIHRvIHRoZSBkdW1wZWQgbWFya3VwLgpAQCAtMzYsNyArMzcsNyBAQCBNYXJrdXAu
ZHVtcCA9IGZ1bmN0aW9uKG9wdF9ub2RlLCBvcHRfZGVzY3JpcHRpb24pCiAgICAgaWYgKHR5cGVv
ZiBvcHRfbm9kZSA9PSAnc3RyaW5nJykKICAgICAgICAgb3B0X25vZGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChvcHRfbm9kZSk7CiAKLSAgICB2YXIgbm9kZSA9IG9wdF9ub2RlIHx8IE1hcmt1
cC5fbm9kZSB8fCBkb2N1bWVudC5ib2R5LnBhcmVudEVsZW1lbnQKKyAgICB2YXIgbm9kZSA9IG9w
dF9ub2RlIHx8IE1hcmt1cC5fbm9kZSB8fCBkb2N1bWVudAogICAgIHZhciBtYXJrdXAgPSAiIjsK
IAogICAgIGlmIChNYXJrdXAuX3Rlc3RfZGVzY3JpcHRpb24gJiYgIU1hcmt1cC5fZHVtcENhbGxz
KQpAQCAtNTEsNyArNTIsNyBAQCBNYXJrdXAuZHVtcCA9IGZ1bmN0aW9uKG9wdF9ub2RlLCBvcHRf
ZGVzY3JpcHRpb24pCiAgICAgICAgICAgICBvcHRfZGVzY3JpcHRpb24gPSAiRHVtcCBvZiBtYXJr
dXAgIiArIE1hcmt1cC5fZHVtcENhbGxzCiAgICAgICAgIGlmIChNYXJrdXAuX2R1bXBDYWxscyA+
IDEpCiAgICAgICAgICAgICBtYXJrdXAgKz0gJ1xuJzsKLSAgICAgICAgbWFya3VwICs9ICdcbicg
KyBvcHRfZGVzY3JpcHRpb24gKyAnOic7CisgICAgICAgIG1hcmt1cCArPSAnXG4nICsgb3B0X2Rl
c2NyaXB0aW9uICsgJzpcbic7CiAgICAgfQogCiAgICAgbWFya3VwICs9IE1hcmt1cC5nZXQobm9k
ZSk7CkBAIC05Myw4ICs5NCwxMCBAQCBNYXJrdXAubm90aWZ5RG9uZSA9IGZ1bmN0aW9uKCkKICAg
ICAvLyBJbiBub24tbGF5b3V0IHRlc3QgbW9kZSwgYXBwZW5kIHRoZSByZXN1bHRzIGluIGEgcHJl
IHNvIHRoYXQgd2UgZG9uJ3QKICAgICAvLyBjbG9iYmVyIHRoZSB0ZXN0IGl0c2VsZi4gQnV0IHdo
ZW4gaW4gbGF5b3V0IHRlc3QgbW9kZSwgd2UgZG9uJ3Qgd2FudAogICAgIC8vIHNpZGUgZWZmZWN0
cyBmcm9tIHRoZSB0ZXN0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRzLgotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJU
ZXh0ID0gTWFya3VwLl9jb250YWluZXIuaW5uZXJUZXh0OworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiIjsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChNYXJrdXAuX2NvbnRhaW5lcik7Cisg
ICAgfQogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwpAQCAtMTA3LDk4ICsxMTAsMTMxIEBAIE1h
cmt1cC5zZXROb2RlVG9EdW1wID0gZnVuY3Rpb24obm9kZSkKICAgICBNYXJrdXAuX25vZGUgPSBu
b2RlCiB9CiAKK01hcmt1cC5nZXQgPSBmdW5jdGlvbihub2RlKQoreworICAgIHJldHVybiBNYXJr
dXAuX2dldChub2RlLCAwKS5zdWJzdHJpbmcoMSk7Cit9CisKIC8vIFJldHVybnMgdGhlIG1hcmt1
cCBmb3IgdGhlIGdpdmVuIG5vZGUuIFRvIGJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIGEgdGVzdCBu
ZWVkcwogLy8gdG8gZ2V0IHRoZSBtYXJrdXAgYnV0IG5vdCBjbG9iYmVyIHRoZSB3aG9sZSBwYWdl
LgotTWFya3VwLmdldCA9IGZ1bmN0aW9uKG5vZGUsIG9wdF9kZXB0aCkKK01hcmt1cC5fZ2V0ID0g
ZnVuY3Rpb24obm9kZSwgZGVwdGgpCiB7Ci0gICAgdmFyIGRlcHRoID0gb3B0X2RlcHRoIHx8IDA7
Ci0KLSAgICB2YXIgYXR0cnMgPSBNYXJrdXAuX2dldEF0dHJpYnV0ZXMobm9kZSk7Ci0gICAgdmFy
IGF0dHJzU3RyaW5nID0gYXR0cnMubGVuZ3RoID8gJyAnICsgYXR0cnMuam9pbignICcpIDogJyc7
Ci0KLSAgICB2YXIgbm9kZU5hbWUgPSBub2RlLm5vZGVOYW1lOwotICAgIHZhciBtYXJrdXAgPSAn
PCcgKyBub2RlTmFtZSArIGF0dHJzU3RyaW5nICsgJz4nOwotCi0gICAgdmFyIGlzU3BlY2lhbE5v
ZGUgPSBNYXJrdXAuX0ZPUkJJRFNfRU5EX1RBR1tub2RlTmFtZV07Ci0gICAgdmFyIGlubmVyTWFy
a3VwID0gJyc7Ci0gICAgc3dpdGNoIChub2RlTmFtZSkgewotICAgICAgICBjYXNlICcjdGV4dCc6
Ci0gICAgICAgIGNhc2UgJ1NUWUxFJzoKLSAgICAgICAgY2FzZSAnU0NSSVBUJzoKLSAgICAgICAg
Y2FzZSAnSUZSQU1FJzoKLSAgICAgICAgY2FzZSAnVEVYVEFSRUEnOgotICAgICAgICBjYXNlICdY
TVAnOgotICAgICAgICAgICAgaW5uZXJNYXJrdXAgPSBub2RlTmFtZSA9PSAnI3RleHQnID8gTWFy
a3VwLl9nZXRNYXJrdXBGb3JUZXh0Tm9kZShub2RlKSA6IG5vZGUuaW5uZXJUZXh0OwotICAgICAg
ICAgICAgaW5uZXJNYXJrdXAgPSBpbm5lck1hcmt1cC5yZXBsYWNlKC9cbi9nLCAnXG4nICsgTWFy
a3VwLl9zcGFjZXMoZGVwdGgpKQotICAgICAgICAgICAgaXNTcGVjaWFsTm9kZSA9IHRydWU7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsg
aSsrKSB7Ci0gICAgICAgICAgICAgICAgaW5uZXJNYXJrdXAgKz0gTWFya3VwLl9nZXRTZWxlY3Rp
b25NYXJrZXIobm9kZSwgaSk7Ci0gICAgICAgICAgICAgICAgaW5uZXJNYXJrdXAgKz0gTWFya3Vw
LmdldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgLy8gU2tpcCBvdmVyIGRv
Y3VtZW50IG5vZGVzLgorICAgIHZhciBzdHIgPSAnJzsKKyAgICBpZiAobm9kZS5ub2RlVHlwZSA9
PSA5KQorICAgICAgICBkZXB0aC0tOworICAgIGVsc2UKKyAgICAgICAgc3RyICs9IE1hcmt1cC5f
aW5kZW50KGRlcHRoKTsKKworICAgIHN3aXRjaCAobm9kZS5ub2RlVHlwZSkgeworICAgIGNhc2Ug
MTA6CisgICAgICAgIHN0ciArPSAnPCFET0NUWVBFICcgKyBub2RlLm5vZGVOYW1lOworICAgICAg
ICBpZiAobm9kZS5wdWJsaWNJZCB8fCBub2RlLnN5c3RlbUlkKSB7CisgICAgICAgICAgICBzdHIg
Kz0gJyAiJyArIG5vZGUucHVibGljSWQgKyAnIic7CisgICAgICAgICAgICBzdHIgKz0gJyAiJyAr
IG5vZGUuc3lzdGVtSWQgKyAnIic7CisgICAgICAgIH0KKyAgICAgICAgc3RyICs9ICc+JzsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIDg6CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBz
dHIgKz0gJzwhLS0gJyArIG5vZGUubm9kZVZhbHVlICsgJyAtLT4nOworICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICBzdHIgKz0gJzwhLS0gIC0tPic7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIDc6CisgICAgICAgIHN0ciArPSAnPD8nICsgbm9kZS5ub2Rl
TmFtZSArIG5vZGUubm9kZVZhbHVlICsgJz4nOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
NDoKKyAgICAgICAgc3RyICs9ICc8IVtDREFUQVsgJyArIG5vZGUubm9kZVZhbHVlICsgJyBdXT4n
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgMzoKKyAgICAgICAgc3RyICs9ICciJyArIE1h
cmt1cC5fZ2V0TWFya3VwRm9yVGV4dE5vZGUobm9kZSkgKyAnIic7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSAxOgorICAgICAgICBzdHIgKz0gIjwiOworICAgICAgICBzdHIgKz0gTWFya3Vw
Ll9uYW1lc3BhY2Uobm9kZSkKKworICAgICAgICBpZiAobm9kZS5sb2NhbE5hbWUgJiYgbm9kZS5u
YW1lc3BhY2VVUkkgJiYgbm9kZS5uYW1lc3BhY2VVUkkgIT0gbnVsbCkKKyAgICAgICAgICAgIHN0
ciArPSBub2RlLmxvY2FsTmFtZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RyICs9IE1h
cmt1cC5fdG9Bc2NpaUxvd2VyQ2FzZShub2RlLm5vZGVOYW1lKTsKKworICAgICAgICBzdHIgKz0g
Jz4nOworCisgICAgICAgIGlmIChub2RlLmF0dHJpYnV0ZXMpIHsKKyAgICAgICAgICAgIHZhciBh
dHRyTmFtZXMgPSBbXTsKKyAgICAgICAgICAgIHZhciBhdHRyUG9zID0ge307CisgICAgICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IG5vZGUuYXR0cmlidXRlcy5sZW5ndGg7IGogKz0gMSkgewor
ICAgICAgICAgICAgICAgIGlmIChub2RlLmF0dHJpYnV0ZXNbal0uc3BlY2lmaWVkKSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBuYW1lID0gTWFya3VwLl9uYW1lc3BhY2Uobm9kZS5hdHRyaWJ1
dGVzW2pdKQorICAgICAgICAgICAgICAgICAgICBuYW1lICs9IG5vZGUuYXR0cmlidXRlc1tqXS5s
b2NhbE5hbWUgfHwgbm9kZS5hdHRyaWJ1dGVzW2pdLm5vZGVOYW1lOworICAgICAgICAgICAgICAg
ICAgICBhdHRyTmFtZXMucHVzaChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYXR0clBvc1tu
YW1lXSA9IGo7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aW5uZXJNYXJrdXAgKz0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAg
ICAgICAgICBpZiAoYXR0ck5hbWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgYXR0ck5h
bWVzLnNvcnQoKTsKKyAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyTmFtZXMu
bGVuZ3RoOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQo
ZGVwdGggKyAxKSArIGF0dHJOYW1lc1tqXTsKKyAgICAgICAgICAgICAgICBzdHIgKz0gJz0iJyAr
IG5vZGUuYXR0cmlidXRlc1thdHRyUG9zW2F0dHJOYW1lc1tqXV1dLm5vZGVWYWx1ZSArICciJzsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIG1hcmt1cCA9ICdcbicgKyBNYXJrdXAuX3NwYWNlcyhkZXB0aCkgKyBt
YXJrdXAgCi0gICAgaWYgKCFpc1NwZWNpYWxOb2RlKQotICAgICAgICBpbm5lck1hcmt1cCArPSAn
XG4nICsgTWFya3VwLl9zcGFjZXMoZGVwdGgpOworICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBu
b2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgdmFyIHNlbGVj
dGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOworICAgICAgICBpZiAo
c2VsZWN0aW9uKQorICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkg
KyBzZWxlY3Rpb247CiAKLSAgICBtYXJrdXAgKz0gaW5uZXJNYXJrdXA7CisgICAgICAgIHN0ciAr
PSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgfQogICAg
IAotICAgIGlmICghTWFya3VwLl9GT1JCSURTX0VORF9UQUdbbm9kZU5hbWVdKQotICAgICAgICBt
YXJrdXAgKz0gJzwvJyArIG5vZGVOYW1lICsgJz4nOworICAgIHZhciBzZWxlY3Rpb24gPSBNYXJr
dXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICBpZiAoc2VsZWN0aW9uKQorICAg
ICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKIAotICAg
IHJldHVybiBtYXJrdXA7CisgICAgcmV0dXJuIHN0cjsKIH0KIAotTWFya3VwLl9kdW1wQ2FsbHMg
PSAwCi0KLU1hcmt1cC5fc3BhY2VzID0gZnVuY3Rpb24obXVsdGlwbGllcikKK01hcmt1cC5fbmFt
ZXNwYWNlID0gZnVuY3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbmV3IEFycmF5KG11bHRpcGxp
ZXIgKiA0ICsgMSkuam9pbignICcpOworICAgIGlmIChNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQ
W25vZGUubmFtZXNwYWNlVVJJXSkKKyAgICAgICAgcmV0dXJuIE1hcmt1cC5fTkFNRVNQQUNFX1VS
SV9NQVBbbm9kZS5uYW1lc3BhY2VVUkldICsgJyAnOworICAgIHJldHVybiAnJzsKIH0KIAotLy8g
RklYTUU6IElzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRoYW4gYSBoYXJkIGNvZGVk
IGxpc3Q/Ci1NYXJrdXAuX0RVTVBfQVNfTUFSS1VQX1BST1BFUlRJRVMgPSBbJ3NyYycsICd0eXBl
JywgJ2hyZWYnLCAnc3R5bGUnLCAnY2xhc3MnLCAnaWQnLCAnY29sb3InLCAnYmdjb2xvcicsICdj
b250ZW50RWRpdGFibGUnXTsKK01hcmt1cC5fZHVtcENhbGxzID0gMAogCi1NYXJrdXAuX2dldEF0
dHJpYnV0ZXMgPSBmdW5jdGlvbihub2RlKQorTWFya3VwLl9pbmRlbnQgPSBmdW5jdGlvbihkZXB0
aCkKIHsKLSAgICB2YXIgcHJvcHMgPSBbXTsKLSAgICBpZiAoIW5vZGUuaGFzQXR0cmlidXRlKQot
ICAgICAgICByZXR1cm4gcHJvcHM7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IE1hcmt1cC5f
RFVNUF9BU19NQVJLVVBfUFJPUEVSVElFUy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgYXR0
ciA9IE1hcmt1cC5fRFVNUF9BU19NQVJLVVBfUFJPUEVSVElFU1tpXTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQXR0cmlidXRlKGF0dHIpKSB7Ci0gICAgICAgICAgICBwcm9wcy5wdXNoKGF0dHIgKyAn
PSInICsgbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cikgKyAnIicpOwotICAgICAgICB9Ci0gICAgfQot
ICAgIHJldHVybiBwcm9wczsKKyAgICByZXR1cm4gIlxufCAiICsgbmV3IEFycmF5KGRlcHRoICog
MiArIDEpLmpvaW4oJyAnKTsKIH0KIAotLy8gVGhpcyBsaXN0IHNob3VsZCBtYXRjaCBhbGwgSFRN
TCBlbGVtZW50cyB0aGF0IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW4gZm9yIGVuZFRhZ1JlcXVp
cmVtZW50KCkuCi1NYXJrdXAuX0ZPUkJJRFNfRU5EX1RBRyA9IHsKLSAgICAnTUVUQSc6IDEsCi0g
ICAgJ0hSJzogMSwKLSAgICAnQVJFQSc6IDEsCi0gICAgJ0xJTksnOiAxLAotICAgICdXQlInOiAx
LAotICAgICdCUic6IDEsCi0gICAgJ0JBU0UnOiAxLAotICAgICdUQUJMRUNPTCc6IDEsCi0gICAg
J1NPVVJDRSc6IDEsCi0gICAgJ0lOUFVUJzogMSwKLSAgICAnUEFSQU0nOiAxLAotICAgICdFTUJF
RCc6IDEsCi0gICAgJ0ZSQU1FJzogMSwKLSAgICAnQ0FOVkFTJzogMSwKLSAgICAnSU1HJzogMSwK
LSAgICAnSVNJTkRFWCc6IDEsCi0gICAgJ0JBU0VGT05UJzogMSwKLSAgICAnREFUQUdSSURDRUxM
JzogMSwKLSAgICAnREFUQUdSSURDT0wnOiAxCitNYXJrdXAuX3RvQXNjaWlMb3dlckNhc2UgPSBm
dW5jdGlvbiAoc3RyKSB7CisgIHZhciBvdXRwdXQgPSAiIjsKKyAgZm9yICh2YXIgaSA9IDAsIGxl
biA9IHRoaXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKKyAgICBpZiAoc3RyLmNoYXJDb2RlQXQo
aSkgPj0gMHg0MSAmJiBzdHIuY2hhckNvZGVBdChpKSA8PSAweDVBKQorICAgICAgb3V0cHV0ICs9
IFN0cmluZy5mcm9tQ2hhckNvZGUoc3RyLmNoYXJDb2RlQXQoaSkgKyAweDIwKQorICAgIGVsc2UK
KyAgICAgIG91dHB1dCArPSBzdHIuY2hhckF0KGkpOworICB9CisgIHJldHVybiBvdXRwdXQ7Cit9
CisKK01hcmt1cC5fTkFNRVNQQUNFX1VSSV9NQVAgPSB7CisgICAgImh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIjogInN2ZyIsCisgICAgImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRo
TUwiOiAibWF0aCIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSI6
ICJ4bWwiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyI6ICJ4bWxucyIsCisg
ICAgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiOiAieGxpbmsiCiB9CiAKIE1hcmt1cC5f
Z2V0U2VsZWN0aW9uRnJvbU5vZGUgPSBmdW5jdGlvbihub2RlKQpAQCAtMjA2LDYgKzI0MiwxMCBA
QCBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKICAgICByZXR1
cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpOwogfQogCitN
YXJrdXAuX1NFTEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOworTWFya3VwLl9T
RUxFQ1RJT05fQU5DSE9SID0gJzwjc2VsZWN0aW9uLWFuY2hvcj4nOworTWFya3VwLl9TRUxFQ1RJ
T05fQ0FSRVQgPSAnPCNzZWxlY3Rpb24tY2FyZXQ+JzsKKwogTWFya3VwLl9nZXRNYXJrdXBGb3JU
ZXh0Tm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7CiAgICAgaW5uZXJNYXJrdXAgPSBub2RlLm5vZGVW
YWx1ZTsKQEAgLTIxNSwyNiArMjU1LDI2IEBAIE1hcmt1cC5fZ2V0TWFya3VwRm9yVGV4dE5vZGUg
PSBmdW5jdGlvbihub2RlKQogICAgIGlmIChub2RlID09IHNlbC5hbmNob3JOb2RlICYmIG5vZGUg
PT0gc2VsLmZvY3VzTm9kZSkgewogICAgICAgICBpZiAoc2VsLmlzQ29sbGFwc2VkKSB7CiAgICAg
ICAgICAgICBzdGFydE9mZnNldCA9IHNlbC5hbmNob3JPZmZzZXQ7Ci0gICAgICAgICAgICBzdGFy
dFRleHQgPSAnPHNlbGVjdGlvbi1jYXJldD4nOworICAgICAgICAgICAgc3RhcnRUZXh0ID0gTWFy
a3VwLl9TRUxFQ1RJT05fQ0FSRVQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAo
c2VsLmZvY3VzT2Zmc2V0ID4gc2VsLmFuY2hvck9mZnNldCkgewogICAgICAgICAgICAgICAgIHN0
YXJ0T2Zmc2V0ID0gc2VsLmFuY2hvck9mZnNldDsKICAgICAgICAgICAgICAgICBlbmRPZmZzZXQg
PSBzZWwuZm9jdXNPZmZzZXQ7Ci0gICAgICAgICAgICAgICAgc3RhcnRUZXh0ID0gJzxzZWxlY3Rp
b24tYW5jaG9yPic7Ci0gICAgICAgICAgICAgICAgZW5kVGV4dCA9ICc8c2VsZWN0aW9uLWZvY3Vz
Pic7CisgICAgICAgICAgICAgICAgc3RhcnRUZXh0ID0gTWFya3VwLl9TRUxFQ1RJT05fQU5DSE9S
OworICAgICAgICAgICAgICAgIGVuZFRleHQgPSBNYXJrdXAuX1NFTEVDVElPTl9GT0NVUzsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgc3RhcnRPZmZzZXQgPSBzZWwuZm9j
dXNPZmZzZXQ7CiAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0ID0gc2VsLmFuY2hvck9mZnNldDsK
LSAgICAgICAgICAgICAgICBzdGFydFRleHQgPSAnPHNlbGVjdGlvbi1mb2N1cz4nOwotICAgICAg
ICAgICAgICAgIGVuZFRleHQgPSAnPHNlbGVjdGlvbi1hbmNob3I+JzsgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBzdGFydFRleHQgPSBNYXJrdXAuX1NFTEVDVElPTl9G
T0NVUzsKKyAgICAgICAgICAgICAgICBlbmRUZXh0ID0gTWFya3VwLl9TRUxFQ1RJT05fQU5DSE9S
OyAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChub2RlID09IHNlbC5mb2N1c05vZGUpIHsKICAgICAgICAgc3RhcnRPZmZzZXQg
PSBzZWwuZm9jdXNPZmZzZXQ7Ci0gICAgICAgIHN0YXJ0VGV4dCA9ICc8c2VsZWN0aW9uLWZvY3Vz
Pic7CisgICAgICAgIHN0YXJ0VGV4dCA9IE1hcmt1cC5fU0VMRUNUSU9OX0ZPQ1VTOwogICAgIH0g
ZWxzZSBpZiAobm9kZSA9PSBzZWwuYW5jaG9yTm9kZSkgewogICAgICAgICBzdGFydE9mZnNldCA9
IHNlbC5hbmNob3JPZmZzZXQ7Ci0gICAgICAgIHN0YXJ0VGV4dCA9ICc8c2VsZWN0aW9uLWFuY2hv
cj4nOworICAgICAgICBzdGFydFRleHQgPSBNYXJrdXAuX1NFTEVDVElPTl9BTkNIT1I7CiAgICAg
fQogICAgIAogICAgIGlmIChzdGFydFRleHQgJiYgZW5kVGV4dCkKQEAgLTI0NywxNCArMjg3LDE3
IEBAIE1hcmt1cC5fZ2V0TWFya3VwRm9yVGV4dE5vZGUgPSBmdW5jdGlvbihub2RlKQogCiBNYXJr
dXAuX2dldFNlbGVjdGlvbk1hcmtlciA9IGZ1bmN0aW9uKG5vZGUsIGluZGV4KQogeworICAgIGlm
IChub2RlLm5vZGVUeXBlICE9IDEpCisgICAgICAgIHJldHVybiAnJzsKKwogICAgIHZhciBzZWwg
PSBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlKG5vZGUpOzsKICAgICBpZiAoaW5kZXggPT0g
c2VsLmFuY2hvck9mZnNldCAmJiBub2RlID09IHNlbC5hbmNob3JOb2RlKSB7CiAgICAgICAgIGlm
IChzZWwuaXNDb2xsYXBzZWQpCi0gICAgICAgICAgICByZXR1cm4gJzxzZWxlY3Rpb24tY2FyZXQ+
JzsKKyAgICAgICAgICAgIHJldHVybiBNYXJrdXAuX1NFTEVDVElPTl9DQVJFVDsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmV0dXJuICc8c2VsZWN0aW9uLWFuY2hvcj4nOworICAgICAgICAg
ICAgcmV0dXJuIE1hcmt1cC5fU0VMRUNUSU9OX0FOQ0hPUjsKICAgICB9IGVsc2UgaWYgKGluZGV4
ID09IHNlbC5mb2N1c09mZnNldCAmJiBub2RlID09IHNlbC5mb2N1c05vZGUpCi0gICAgICAgIHJl
dHVybiAnPHNlbGVjdGlvbi1mb2N1cz4nOworICAgICAgICByZXR1cm4gTWFya3VwLl9TRUxFQ1RJ
T05fRk9DVVM7CiAKICAgICByZXR1cm4gJyc7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62888</attachid>
            <date>2010-07-28 15:37:44 -0700</date>
            <delta_ts>2010-07-29 08:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43015-20100728153742.patch</filename>
            <type>text/plain</type>
            <size>59949</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Y2NjNDhhMmMzYmRjOGRkMGEyMjY2NGM1ZTUyMWQxMmRhNzEzZTc4Li4wY2FlM2Rh
NWU5YTRlN2E1NjBlNTNkOTFjZTBjZWE1OTMyZGRlY2Q3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMTAtMDctMjcgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkdW1wLWFzLW1hcmt1cCBzaG91
bGQgaGF2ZSBiZXR0ZXIgb3V0cHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MzAxNQorCisgICAgICAgIC1NZXJnZSBkb20yc3RyaW5nIGludG8gZHVt
cC1hcy1tYXJrdXAgYW5kIHB1bGwgb3ZlciBhbGwgZG9tMnN0cmluZyBmZWF0dXJlcyAoZS5nLiBp
bmRlbnQpLgorICAgICAgICAtIy1wcmVmaXggc2VsZWN0aW9uIG1hcmtlcnMKKworICAgICAgICAq
IGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJyLWluLWxhc3QtdGFibGUtY2VsbC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9jcmFzaC1pbmRlbnRpbmctbGlzdC1p
dGVtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLW9u
LWVudGVyLWluLWNvbnRlbnRFZGl0YWJsZS1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2hpbGl0ZWNvbG9yLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtZW1wdHkt
ZGl2LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kdW1wLWFzLW1h
cmt1cC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZHVtcC1hcy1t
YXJrdXAuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9ob21lLWluc2lkZS1ub25l
ZGl0YWJsZS10YWJsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9yZW1v
dmUtdW5kZXJsaW5lLWZyb20tc3R5bGVzaGVldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRp
dGluZy9zdHlsZS9zdHlsZS10ZXh0LW5vZGUtd2l0aG91dC1lZGl0YWJsZS1wYXJlbnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtbm9kZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy91bmRvL3JlZG8tc3BsaXQtdGV4dC13aXRoLXJl
bW92YWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy9kb20yc3Ry
aW5nLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZXN0czQuZGF0
OgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZXN0czYuZGF0OgorICAgICAgICAqIGh0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLmh0
bWw6CisgICAgICAgICogaHRtbDVsaWIvd2Via2l0LXJlc3VtZXIuaHRtbDoKKyAgICAgICAgKiBy
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM6CisgICAgICAgIChNYXJrdXAubm90aWZ5RG9uZSk6
CisgICAgICAgIChNYXJrdXAuX2dldCk6CisgICAgICAgIChNYXJrdXAuX25hbWVzcGFjZSk6Cisg
ICAgICAgIChNYXJrdXAuX2R1bXBDYWxscy4wLk1hcmt1cC5faW5kZW50KToKKyAgICAgICAgKE1h
cmt1cC5fdG9Bc2NpaUxvd2VyQ2FzZSk6CisgICAgICAgIChNYXJrdXAuX2dldE1hcmt1cEZvclRl
eHROb2RlKToKKyAgICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKToKKwogMjAxMC0w
Ny0yOCAgVmljdG9yIFdhbmcgIDx2aWN0b3J3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLiBGaXggY2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnM6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1ici1pbi1sYXN0LXRhYmxlLWNlbGwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtYnItaW4tbGFz
dC10YWJsZS1jZWxsLWV4cGVjdGVkLnR4dAppbmRleCBkYTYxZDA5YTk4Y2U0NDU4NmJhZjM4Y2Y1
NzVhZThjZjAyZWNlYTFiLi5kNGQ2OGYzNGFlNjE4OGVhMjQxMWYyM2M4ZjQ4ZGNlNTZkM2ZhYjlk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1ici1pbi1s
YXN0LXRhYmxlLWNlbGwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWJyLWluLWxhc3QtdGFibGUtY2VsbC1leHBlY3RlZC50eHQKQEAgLTEsODMg
KzEsNzkgQEAKLQotPEhUTUw+Ci08SEVBRD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIiB0eXBlPSJ0ZXh0L0phdmFTY3Jp
cHQiPjwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxTQ1JJUFQgc3JjPSIuLi9lZGl0aW5n
LmpzIiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPjwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4dD4K
LTxTQ1JJUFQ+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgIgorIgorfCAgICAgPHNjcmlw
dD4KK3wgICAgICAgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiCit8ICAgICAgIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgICB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQi
Cit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIKK3wgICAgICAgc3JjPSIuLi9lZGl0aW5nLmpzIgorfCAgICAgICB0eXBlPSJ0ZXh0L0phdmFT
Y3JpcHQiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiCiBmdW5jdGlvbiBy
dW5UZXN0KCkKIHsKLWJyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhc3RCUiIpOwotc2Vs
ID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotc2VsLnNldEJhc2VBbmRFeHRlbnQoYnIsIDAsIGJy
LCAwKTsKLWRlbGV0ZUNvbW1hbmQoKTsKKyAgICBiciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJsYXN0QlIiKTsKKyAgICBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgc2VsLnNl
dEJhc2VBbmRFeHRlbnQoYnIsIDAsIGJyLCAwKTsKKyAgICBkZWxldGVDb21tYW5kKCk7CiB9Ci08
L1NDUklQVD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08L0hFQUQ+Ci08I3RleHQ+CisiCit8ICAgICAi
CisiCit8ICAgIgogCi08LyN0ZXh0PgotPEJPRFk+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFA+Ci08
QSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjkiPgot
PCN0ZXh0PkJ1ZyAzNTM2OTwvI3RleHQ+Ci08L0E+Ci08I3RleHQ+IGFuZCA8LyN0ZXh0PgotPEEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NjMyIj4KLTwj
dGV4dD5CdWcgMzU2MzI8LyN0ZXh0PgotPC9BPgotPC9QPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxQ
PgotPCN0ZXh0PkV4ZWN1dGluZyBhIGRlbGV0ZSBjb21tYW5kIHdoZW4gcG9zaXRpb25lZCBiZWZv
cmUgYSBCUiBpbiBhIHRhYmxlIGNlbGwgKGVzcC4gdGhlIGxhc3QpPC8jdGV4dD4KLTwvUD4KLTwj
dGV4dD4KLTwvI3RleHQ+Ci08RElWIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD4KLTwvI3Rl
eHQ+Ci08VEFCTEUgaWQ9InRhYmxlIj4KLTxUQk9EWT4KLTxUUj4KLTxURD4KLTwjdGV4dD4xPC8j
dGV4dD4KLTwvVEQ+Ci08VEQ+Ci08I3RleHQ+MjwvI3RleHQ+Ci08L1REPgotPC9UUj4KLTxUUj4K
LTxURD4KLTwjdGV4dD4zPC8jdGV4dD4KLTwvVEQ+Ci08VEQ+Ci08I3RleHQ+NDxzZWxlY3Rpb24t
Y2FyZXQ+PC8jdGV4dD4KLTxCUiBpZD0ibGFzdEJSIj4KLTwvVEQ+Ci08L1RSPgotPC9UQk9EWT4K
LTwvVEFCTEU+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0ZXh0Pgot
PFNDUklQVD4KKyIKK3wgICA8Ym9keT4KK3wgICAgICIKKyIKK3wgICAgIDxwPgorfCAgICAgICA8
YT4KK3wgICAgICAgICBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzUzNjkiCit8ICAgICAgICAgIkJ1ZyAzNTM2OSIKK3wgICAgICAgIiBhbmQgIgorfCAgICAg
ICA8YT4KK3wgICAgICAgICBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzU2MzIiCit8ICAgICAgICAgIkJ1ZyAzNTYzMiIKK3wgICAgICIKKyIKK3wgICAgIDxw
PgorfCAgICAgICAiRXhlY3V0aW5nIGEgZGVsZXRlIGNvbW1hbmQgd2hlbiBwb3NpdGlvbmVkIGJl
Zm9yZSBhIEJSIGluIGEgdGFibGUgY2VsbCAoZXNwLiB0aGUgbGFzdCkiCit8ICAgICAiCisiCit8
ICAgICA8ZGl2PgorfCAgICAgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICAgICAgIgorIgorfCAg
ICAgICA8dGFibGU+Cit8ICAgICAgICAgaWQ9InRhYmxlIgorfCAgICAgICAgIDx0Ym9keT4KK3wg
ICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAgICIxIgor
fCAgICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICAgIjIiCit8ICAgICAgICAgICA8dHI+
Cit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAiMyIKK3wgICAgICAgICAgICAg
PHRkPgorfCAgICAgICAgICAgICAgICI0PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgICAgICAgICAg
ICAgIDxicj4KK3wgICAgICAgICAgICAgICAgIGlkPSJsYXN0QlIiCit8ICAgICAgICIKKyIKK3wg
ICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKIHJ1blRlc3QoKTsKLTwvU0NSSVBU
PgotPCN0ZXh0PgorIgorfCAgICAgIgogCiAKLTwvI3RleHQ+Ci08L0JPRFk+Ci08L0hUTUw+Cisi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLWluZGVu
dGluZy1saXN0LWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9jcmFzaC1pbmRlbnRpbmctbGlzdC1pdGVtLWV4cGVjdGVkLnR4dAppbmRleCBkMzQ5ZDU3
Y2JmM2JhOWJmYjNkYTk4ZjEyNjFlMTBlOTFhOTZmZjE3Li5mNWU3ODgyMWViZGQ2NDNlN2VmMzdl
ODYyNzBlMmIyNzgwYzdjMDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtaW5kZW50aW5nLWxpc3QtaXRlbS1leHBl
Y3RlZC50eHQKQEAgLTEsMjkgKzEsMjUgQEAKLQotPEhUTUw+Ci08SEVBRD4KLTwvSEVBRD4KLTxC
T0RZPgotPERJViBjb250ZW50RWRpdGFibGU9IiI+Ci08VUw+Ci08VUw+Ci08TEkgaWQ9ImZvbyI+
Ci08I3RleHQ+UEFTU0VEPC8jdGV4dD4KLTwvTEk+Ci08L1VMPgotPC9VTD4KLTwvRElWPgotPCN0
ZXh0PgotPC8jdGV4dD4KLTxTQ1JJUFQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJr
dXAuanMiPjwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxTQ1JJUFQ+Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgY29udGVudGVkaXRh
YmxlPSIiCit8ICAgICAgIDx1bD4KK3wgICAgICAgICA8dWw+Cit8ICAgICAgICAgICA8bGk+Cit8
ICAgICAgICAgICAgIGlkPSJmb28iCit8ICAgICAgICAgICAgICJQQVNTRUQiCit8ICAgICAiCisi
Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1h
cmt1cC5qcyIKK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKIHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGZvbywgMCwgZm9vLCAwKTsKIC8vIFRoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCiBkb2N1bWVudC5leGVjQ29tbWFuZCgn
aW5kZW50JywgZmFsc2UsIG51bGwpOwogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLmlu
bmVyVGV4dCA9ICJQQVNTRUQiOwotPC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPC9CT0RZ
PgotPC9IVE1MPgorIgorfCAgICAgIgorIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9jcmFzaC1vbi1lbnRlci1pbi1jb250ZW50RWRpdGFibGUtbGlzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLW9uLWVudGVy
LWluLWNvbnRlbnRFZGl0YWJsZS1saXN0LWV4cGVjdGVkLnR4dAppbmRleCBkNmMwNmU2M2ZiMGY1
ZDg4NTM4Y2Y4MjZkMzQzMTU4MjdiNzIyYWUzLi40YTliZjE1ZGJjNjRkNGYxYTBkMGRhYmMwOTVm
MTc5YWIwMWM3NDMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2NyYXNoLW9uLWVudGVyLWluLWNvbnRlbnRFZGl0YWJsZS1saXN0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLW9uLWVudGVyLWluLWNvbnRl
bnRFZGl0YWJsZS1saXN0LWV4cGVjdGVkLnR4dApAQCAtMSwzNCArMSwzMiBAQAotCi08SFRNTD4K
LTxIRUFEPgotPFNDUklQVCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+
PC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPC9IRUFEPgotPEJPRFk+Ci08RElWPgotPCN0
ZXh0PlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC48LyN0ZXh0PgotPC9ESVY+
Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFVMIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD4KLTwv
I3RleHQ+Ci08TEkgaWQ9ImZvbyI+Ci08L0xJPgotPExJIGlkPSJmb28iPjxzZWxlY3Rpb24tY2Fy
ZXQ+Ci08QlI+Ci08L0xJPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwvVUw+Ci08I3RleHQ+Ci08LyN0
ZXh0PgotPFNDUklQVD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAg
ICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wgICAgICIKKyIK
K3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJUaGlzIHRlc3QgcGFzc2VzIGlmIGl0
IGRvZXNuJ3QgY3Jhc2guIgorfCAgICAgIgorIgorfCAgICAgPHVsPgorfCAgICAgICBjb250ZW50
ZWRpdGFibGU9IiIKK3wgICAgICAgIgorICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlk
PSJmb28iCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0iZm9vIgorfCAgICAgICAgIDwjc2Vs
ZWN0aW9uLWNhcmV0PgorfCAgICAgICAgIDxicj4KK3wgICAgICAgIgorIgorfCAgICAgIgorIgor
fCAgICAgPHNjcmlwdD4KK3wgICAgICAgIgogd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKGZvbyk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0UGFyYWdyYXBoJyk7
Ci08L1NDUklQVD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08L0JPRFk+Ci08L0hUTUw+CisiCit8ICAg
ICAiCisiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0
ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rpb24tZXhwZWN0
ZWQudHh0CmluZGV4IDRmYzVlMzYyYzgzNDY4Nzc3YmU1NDYzMTQzNzNlMjU5MDdmODU1NGMuLjQ3
MmNhMTA4YTEyMjc1NzJlM2U2Yzc3ZTE1MTI3YWUyZGZmY2I5MzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rp
b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jl
YXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDI2ICsxLDE2
IEBACi0KLTxESVYgaWQ9InRlc3QiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+Ci08T0w+Ci08TEk+
Ci08I3RleHQ+YXNkPC8jdGV4dD4KLTxTUEFOIGlkPSJzdGFydCI+Ci08I3RleHQ+Zm88c2VsZWN0
aW9uLWFuY2hvcj5vPC8jdGV4dD4KLTwvU1BBTj4KLTwvTEk+Ci08TEk+Ci08I3RleHQ+YmFyPC8j
dGV4dD4KLTwvTEk+Ci08TEk+Ci08I3RleHQ+YmF6PC8jdGV4dD4KLTwvTEk+Ci08TEk+Ci08I3Rl
eHQ+Zm9vPC8jdGV4dD4KLTwvTEk+Ci08TEk+Ci08I3RleHQ+YmFyPC8jdGV4dD4KLTwvTEk+Ci08
TEk+Ci08I3RleHQ+YmE8c2VsZWN0aW9uLWZvY3VzPno8LyN0ZXh0PgotPC9MST4KLTwvT0w+Ci08
L0RJVj4KK3wgPG9sPgorfCAgIDxsaT4KK3wgICAgICJhc2QiCit8ICAgICA8c3Bhbj4KK3wgICAg
ICAgaWQ9InN0YXJ0IgorfCAgICAgICAiZm88I3NlbGVjdGlvbi1hbmNob3I+byIKK3wgICA8bGk+
Cit8ICAgICAiYmFyIgorfCAgIDxsaT4KK3wgICAgICJiYXoiCit8ICAgPGxpPgorfCAgICAgImZv
byIKK3wgICA8bGk+Cit8ICAgICAiYmFyIgorfCAgIDxsaT4KK3wgICAgICJiYTwjc2VsZWN0aW9u
LWZvY3VzPnoiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2hp
bGl0ZWNvbG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aGlsaXRlY29sb3ItZXhwZWN0ZWQudHh0CmluZGV4IGQxYWFkZjE2NDk5ODliZWZjYjI1MTdkNDg5
NTZjMWU1NzY5MGNmOTAuLmQ4NGYyYTFlMmM5NDY3NTI2ODZlN2U2ZDQ2YTNiOTU5ZTYxZWUwM2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaGlsaXRlY29sb3It
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaGlsaXRl
Y29sb3ItZXhwZWN0ZWQudHh0CkBAIC0xMCwxMSArMTAsOSBAQCBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNhdGlvbgot
Ci08RElWIGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9InRydWUiPgotPCN0ZXh0PjxzZWxlY3Rp
b24tY2FyZXQ+VGhlIDwvI3RleHQ+Ci08U1BBTiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVk
OyIgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iPgotPCN0ZXh0PnNlY29uZDwvI3RleHQ+Ci08L1NQ
QU4+Ci08I3RleHQ+IHdvcmQsIGFuZCBvbmx5IHRoZSBzZWNvbmQgd29yZCBvZiB0aGlzIHNlbnRl
bmNlIHNob3VsZCBoYXZlIGEgcmVkIGJhY2tncm91bmQgY29sb3IuPC8jdGV4dD4KLTwvRElWPgor
fCAiPCNzZWxlY3Rpb24tY2FyZXQ+VGhlICIKK3wgPHNwYW4+Cit8ICAgY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iCit8ICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsiCit8ICAgInNlY29u
ZCIKK3wgIiB3b3JkLCBhbmQgb25seSB0aGUgc2Vjb25kIHdvcmQgb2YgdGhpcyBzZW50ZW5jZSBz
aG91bGQgaGF2ZSBhIHJlZCBiYWNrZ3JvdW5kIGNvbG9yLiIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0CmluZGV4IDU4
MDUyODk5YzJjZjAwNzUwZDM4YTBmNjc1NmJmYWQ4ZTRmOGM1NDkuLmEwZGY4MmJmYWJmNjRiNzk2
MGU4NzUwNTVmMTI2MTk4NTJhMWMyNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dApAQCAtMSwxMzYgKzEsMTMz
IEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDQ6IFdyb25nIG5vZGUgc2VsZWN0ZWQuCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDY6IFdyb25nIGFuY2hvciBvZmZzZXQ6IDggaW5zdGVhZCBvZiAw
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgICJU
aGlzIHRlc3QgdHJpZXMgdG8gaW5kZW50IGxpbmVzIHdpdGhpbiBwcmUgdGFncy4gIFRoaXMgdGVz
dCBwYXNzZXMgaWYgaXQKK2RvZXMgbm90IGNyYXNoLiIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+
Cit8ICAgICAgIGNvbnRlbnRlZGl0YWJsZT0iIgorfCAgICAgICAiCisiCit8ICAgICAgIDxibG9j
a3F1b3RlPgorfCAgICAgICAgIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiCit8ICAg
ICAgICAgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAw
cHg7IgorfCAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICBpZD0icHJlLWJhc2ljIgorfCAgICAg
ICAgICAgImxpbmUgb25lCisiCit8ICAgICAgIDxwcmU+Cit8ICAgICAgICAgaWQ9InByZS1iYXNp
YyIKK3wgICAgICAgICAibGluZSB0d28KKyIKK3wgICAgICAgPGJsb2NrcXVvdGU+Cit8ICAgICAg
ICAgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIKK3wgICAgICAgICBzdHlsZT0ibWFy
Z2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiCit8ICAgICAgICAg
PHByZT4KK3wgICAgICAgICAgIGlkPSJwcmUtYmFzaWMiCit8ICAgICAgICAgICAibGluZSB0aHJl
ZQorIgorfCAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICBpZD0icHJlLWJhc2ljIgorfCAgICAg
ICAgICAgImxpbmUgZm91ciIKK3wgICAgICAgIgogCi08SFRNTD4KLTxIRUFEPgotPC9IRUFEPgot
PEJPRFk+Ci08UD4KLTwjdGV4dD5UaGlzIHRlc3QgdHJpZXMgdG8gaW5kZW50IGxpbmVzIHdpdGhp
biBwcmUgdGFncy4gVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdAotZG9lcyBub3QgY3Jhc2guPC8jdGV4
dD4KLTwvUD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08RElWIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwj
dGV4dD4KLTwvI3RleHQ+Ci08QkxPQ0tRVU9URSBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBi
b3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVv
dGUiPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4dD5saW5lIG9uZQotPC8jdGV4dD4KLTwv
UFJFPgotPC9CTE9DS1FVT1RFPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4dD5saW5lIHR3
bwotPC8jdGV4dD4KLTwvUFJFPgotPEJMT0NLUVVPVEUgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBw
eDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7IiBjbGFzcz0id2Via2l0LWluZGVudC1ibG9j
a3F1b3RlIj4KLTxQUkUgaWQ9InByZS1iYXNpYyI+Ci08I3RleHQ+bGluZSB0aHJlZQotPC8jdGV4
dD4KLTwvUFJFPgotPFBSRSBpZD0icHJlLWJhc2ljIj4KLTwjdGV4dD5saW5lIGZvdXI8LyN0ZXh0
PgotPC9QUkU+Ci08L0JMT0NLUVVPVEU+Ci08I3RleHQ+CisiCit8ICAgICAgIDx1bD4KK3wgICAg
ICAgICA8bGk+Cit8ICAgICAgICAgICA8cHJlPgorfCAgICAgICAgICAgICBpZD0icHJlLWxpc3Qi
Cit8ICAgICAgICAgICAgICJsaXN0IG9uZQorIgorfCAgICAgICAgICAgICA8YmxvY2txdW90ZT4K
K3wgICAgICAgICAgICAgICBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIgorfCAgICAg
ICAgICAgICAgIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGlu
ZzogMHB4OyIKK3wgICAgICAgICAgICAgICAibGlzdCB0d28KKyIKK3wgICAgICAgICAgICAgICAi
bGlzdCB0aHJlZQorIgorfCAgICAgICAgICAgICAibGlzdCBmb3VyCisiCit8ICAgICAgICIKIAot
PC8jdGV4dD4KLTxVTD4KLTxMST4KLTxQUkUgaWQ9InByZS1saXN0Ij4KLTwjdGV4dD5saXN0IG9u
ZQotPC8jdGV4dD4KLTxCTE9DS1FVT1RFIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRl
cjogbm9uZTsgcGFkZGluZzogMHB4OyIgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSI+
Ci08I3RleHQ+bGlzdCB0d28KLTwvI3RleHQ+Ci08I3RleHQ+bGlzdCB0aHJlZQotPC8jdGV4dD4K
LTwvQkxPQ0tRVU9URT4KLTwjdGV4dD5saXN0IGZvdXIKLTwvI3RleHQ+Ci08L1BSRT4KLTwvTEk+
Ci08L1VMPgotPCN0ZXh0PgorIgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgIgorIgorfCAg
ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRkPgorfCAg
ICAgICAgICAgICAgIDxwcmU+Cit8ICAgICAgICAgICAgICAgICBpZD0icHJlLXRhYmxlIgorfCAg
ICAgICAgICAgICAgICAgInRhYmxlIG9uZTwjc2VsZWN0aW9uLWFuY2hvcj4KKyIKK3wgICAgICAg
ICAgICAgICA8YmxvY2txdW90ZT4KK3wgICAgICAgICAgICAgICAgIGNsYXNzPSJ3ZWJraXQtaW5k
ZW50LWJsb2NrcXVvdGUiCit8ICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0
MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiCit8ICAgICAgICAgICAgICAgICA8cHJl
PgorfCAgICAgICAgICAgICAgICAgICBpZD0icHJlLXRhYmxlIgorfCAgICAgICAgICAgICAgICAg
ICAidGFibGUgdHdvCisiCit8ICAgICAgICAgICAgICAgICA8cHJlPgorfCAgICAgICAgICAgICAg
ICAgICBpZD0icHJlLXRhYmxlIgorfCAgICAgICAgICAgICAgICAgICAidGFibGUgdGhyZWU8I3Nl
bGVjdGlvbi1mb2N1cz4iCit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAicmln
aHQgY2VsbCIKK3wgICAgICAgIgogCi08LyN0ZXh0PgotPFRBQkxFPgotPCN0ZXh0PgotPC8jdGV4
dD4KLTxUQk9EWT4KLTxUUj4KLTxURD4KLTxQUkUgaWQ9InByZS10YWJsZSI+Ci08I3RleHQ+dGFi
bGUgb25lPHNlbGVjdGlvbi1hbmNob3I+Ci08LyN0ZXh0PgotPC9QUkU+Ci08QkxPQ0tRVU9URSBz
dHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiIGNs
YXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiPgotPFBSRSBpZD0icHJlLXRhYmxlIj4KLTwj
dGV4dD50YWJsZSB0d28KLTwvI3RleHQ+Ci08L1BSRT4KLTxQUkUgaWQ9InByZS10YWJsZSI+Ci08
I3RleHQ+dGFibGUgdGhyZWU8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1BSRT4KLTwvQkxP
Q0tRVU9URT4KLTwvVEQ+Ci08VEQ+Ci08I3RleHQ+cmlnaHQgY2VsbDwvI3RleHQ+Ci08L1REPgot
PC9UUj4KLTwvVEJPRFk+Ci08L1RBQkxFPgotPCN0ZXh0PgorIgorfCAgICAgICA8ZGl2PgorfCAg
ICAgICAgIGlkPSJyZXN1bHRzIgorfCAgICAgICAgICJQQVNTRUQgKGRpZCBub3QgY3Jhc2gpIgor
fCAgICAgICAiCisiCit8ICAgICAiCiAKLTwvI3RleHQ+Ci08RElWIGlkPSJyZXN1bHRzIj4KLTwj
dGV4dD5QQVNTRUQgKGRpZCBub3QgY3Jhc2gpPC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotPC8j
dGV4dD4KLTwvRElWPgotPCN0ZXh0PgotCi08LyN0ZXh0PgotPEEgaHJlZj0iamF2YXNjcmlwdDpk
b2N1bWVudC5leGVjQ29tbWFuZCgnaW5kZW50JykiPgotPCN0ZXh0PmluZGVudDwvI3RleHQ+Ci08
L0E+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPEEgaHJlZj0iamF2YXNjcmlwdDpkb2N1bWVudC5leGVj
Q29tbWFuZCgnb3V0ZGVudCcpIj4KLTwjdGV4dD5vdXRkZW50PC8jdGV4dD4KLTwvQT4KLTwjdGV4
dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzIj48L1NDUklQVD4KLTwjdGV4dD4KLTwvI3RleHQ+Ci08U0NSSVBUIHNyYz0iLi4vZWRpdGlu
Zy5qcyI+PC9TQ1JJUFQ+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFNDUklQVD4KKyIKK3wgICAgIDxh
PgorfCAgICAgICBocmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbmRlbnQn
KSIKK3wgICAgICAgImluZGVudCIKK3wgICAgICIKKyIKK3wgICAgIDxhPgorfCAgICAgICBocmVm
PSJqYXZhc2NyaXB0OmRvY3VtZW50LmV4ZWNDb21tYW5kKCdvdXRkZW50JykiCit8ICAgICAgICJv
dXRkZW50IgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0Pgor
fCAgICAgICBzcmM9Ii4uL2VkaXRpbmcuanMiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0Pgor
fCAgICAgICAiCiBmdW5jdGlvbiBzZXRTZWxlY3Rpb24obm9kZSkKIHsKLXZhciB0ZXh0Tm9kZSA9
IG5vZGUuZmlyc3RDaGlsZDsKLWlmICh0ZXh0Tm9kZS5ub2RlVHlwZSAhPSBOb2RlLlRFWFRfTk9E
RSkKLXRocm93ICJXcm9uZyBub2RlIHR5cGU6ICIgKyB0ZXh0Tm9kZTsKLWV4ZWNTZXRTZWxlY3Rp
b25Db21tYW5kKHRleHROb2RlLCAwLCAwKTsKKyAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0
Q2hpbGQ7CisgICAgaWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQorICAg
ICAgICB0aHJvdyAiV3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7CisgICAgZXhlY1NldFNl
bGVjdGlvbkNvbW1hbmQodGV4dE5vZGUsIDAsIDApOwogfQogCiBmdW5jdGlvbiB2ZXJpZnlUZXh0
U2VsZWN0aW9uKHN0YXJ0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE5vZGUsIGVuZE9mZnNldCkKIHsK
LWlmIChzdGFydE5vZGUubm9kZVR5cGUgIT0gTm9kZS5URVhUX05PREUpCi1jb25zb2xlLmxvZygi
V3Jvbmcgc3RhcnQgbm9kZSB0eXBlOiAiICsgc3RhcnROb2RlKTsKLWlmIChlbmROb2RlLm5vZGVU
eXBlICE9IE5vZGUuVEVYVF9OT0RFKQotY29uc29sZS5sb2coIldyb25nIGVuZCBub2RlIHR5cGU6
ICIgKyBlbmROb2RlKTsKLXZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci1pZiAoc2Vs
LmFuY2hvck5vZGUgIT0gc3RhcnROb2RlIHx8IHNlbC5mb2N1c05vZGUgIT0gZW5kTm9kZSkKLWNv
bnNvbGUubG9nKCJXcm9uZyBub2RlIHNlbGVjdGVkLiIpOwotaWYgKHNlbC5hbmNob3JPZmZzZXQg
IT0gc3RhcnRPZmZzZXQpCi1jb25zb2xlLmxvZygiV3JvbmcgYW5jaG9yIG9mZnNldDogIiArIHNl
bC5hbmNob3JPZmZzZXQgKyAiIGluc3RlYWQgb2YgIiArIHN0YXJ0T2Zmc2V0KTsKLWlmIChzZWwu
Zm9jdXNPZmZzZXQgIT0gZW5kT2Zmc2V0KQotY29uc29sZS5sb2coIldyb25nIGZvY3VzIG9mZnNl
dDogIiArIHNlbC5mb2N1c09mZnNldCArICIgaW5zdGVhZCBvZiAiICsgZW5kT2Zmc2V0KTsKKyAg
ICBpZiAoc3RhcnROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQorICAgICAgICBjb25z
b2xlLmxvZygiV3Jvbmcgc3RhcnQgbm9kZSB0eXBlOiAiICsgc3RhcnROb2RlKTsKKyAgICBpZiAo
ZW5kTm9kZS5ub2RlVHlwZSAhPSBOb2RlLlRFWFRfTk9ERSkKKyAgICAgICAgY29uc29sZS5sb2co
Ildyb25nIGVuZCBub2RlIHR5cGU6ICIgKyBlbmROb2RlKTsKKyAgICB2YXIgc2VsID0gd2luZG93
LmdldFNlbGVjdGlvbigpOworICAgIGlmIChzZWwuYW5jaG9yTm9kZSAhPSBzdGFydE5vZGUgfHwg
c2VsLmZvY3VzTm9kZSAhPSBlbmROb2RlKQorICAgICAgICBjb25zb2xlLmxvZygiV3Jvbmcgbm9k
ZSBzZWxlY3RlZC4iKTsKKyAgICBpZiAoc2VsLmFuY2hvck9mZnNldCAhPSBzdGFydE9mZnNldCkK
KyAgICAgICAgY29uc29sZS5sb2coIldyb25nIGFuY2hvciBvZmZzZXQ6ICIgKyBzZWwuYW5jaG9y
T2Zmc2V0ICsgIiBpbnN0ZWFkIG9mICIgKyBzdGFydE9mZnNldCk7CisgICAgaWYgKHNlbC5mb2N1
c09mZnNldCAhPSBlbmRPZmZzZXQpCisgICAgICAgIGNvbnNvbGUubG9nKCJXcm9uZyBmb2N1cyBv
ZmZzZXQ6ICIgKyBzZWwuZm9jdXNPZmZzZXQgKyAiIGluc3RlYWQgb2YgIiArIGVuZE9mZnNldCk7
CiB9CiAKIC8vIEluZGVudCBhIHNpbmdsZSBsaW5lIGluIGEgcHJlIGFuZCBtYWtlIHN1cmUgdGhl
IHNlbGVjdGlvbiBpcyBjb3JyZWN0bHkgcHJlc2VydmVkLgpAQCAtMTQwLDcgKzEzNyw3IEBAIGV4
ZWNNb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOwogZXhlY0V4dGVuZFNl
bGVjdGlvbkZvcndhcmRCeVdvcmRDb21tYW5kKCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5k
ZW50Iik7CiB2ZXJpZnlUZXh0U2VsZWN0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJwcmUiKVswXS5maXJzdENoaWxkLCAxLAotZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InByZSIpWzBdLmZpcnN0Q2hpbGQsIDQpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgicHJlIilbMF0uZmlyc3RDaGlsZCwgNCk7CiAKIC8vIEluZGVu
dCAyIGxpbmVzLgogc2V0U2VsZWN0aW9uKHByZSk7CkBAIC0xNDksMTIgKzE0NiwxMiBAQCBleGVj
RXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1hbmQoKTsKIGV4ZWNFeHRlbmRTZWxlY3Rp
b25Gb3J3YXJkQnlXb3JkQ29tbWFuZCgpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoImluZGVudCIp
OwogaWYgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKS5sZW5ndGggPiAzKSB7
Ci0vLyBGSVhNRTogVGhlIHNlbGVjdGlvbiBmb3IgdGhlIGFuY2hvck5vZGUgaXMgd3JvbmcuIEl0
IHNob3VsZCBzdGF5IGF0Ci0vLyB0aGUgYmVnaW5uaW5nIG9mICJsaW5lIHRocmVlIiwgYnV0IGl0
IG1vdmVzIHRvIHRoZSBlbmQgb2YgImxpbmUgMiIuCi12ZXJpZnlUZXh0U2VsZWN0aW9uKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKVsyXS5maXJzdENoaWxkLCAwLAotZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZSIpWzNdLmZpcnN0Q2hpbGQsIDQpOworICAgIC8v
IEZJWE1FOiBUaGUgc2VsZWN0aW9uIGZvciB0aGUgYW5jaG9yTm9kZSBpcyB3cm9uZy4gIEl0IHNo
b3VsZCBzdGF5IGF0CisgICAgLy8gdGhlIGJlZ2lubmluZyBvZiAibGluZSB0aHJlZSIsIGJ1dCBp
dCBtb3ZlcyB0byB0aGUgZW5kIG9mICJsaW5lIDIiLgorICAgIHZlcmlmeVRleHRTZWxlY3Rpb24o
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZSIpWzJdLmZpcnN0Q2hpbGQsIDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicHJl
IilbM10uZmlyc3RDaGlsZCwgNCk7CiB9IGVsc2UgewotY29uc29sZS5sb2coIldyb25nIG51bWJl
ciBvZiBwcmUgbm9kZXMuIik7CisgICAgY29uc29sZS5sb2coIldyb25nIG51bWJlciBvZiBwcmUg
bm9kZXMuIik7CiB9CiAKIC8vIEluZGVudCA8cHJlPiBsaW5lcyBpbiBhIGxpc3QuCkBAIC0xNjUs
MTkgKzE2MiwxNyBAQCBleGVjRXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1hbmQoKTsK
IGV4ZWNFeHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlMaW5lQ29tbWFuZCgpOwogZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoImluZGVudCIpOwogdmVyaWZ5VGV4dFNlbGVjdGlvbihkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiYmxvY2txdW90ZSIpWzJdLmZpcnN0Q2hpbGQsIDAsCi1kb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiYmxvY2txdW90ZSIpWzJdLmZpcnN0Q2hpbGQubmV4dFNpYmxp
bmcsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImJsb2NrcXVvdGUiKVsyXS5maXJzdENoaWxkLm5leHRTaWJsaW5nLCAxMCk7CiAvLyBJbmRl
bnRpbmcgPHByZT4gbGluZXMgaW4gYSB0YWJsZS4KIHByZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwcmUtdGFibGUiKTsKIHNldFNlbGVjdGlvbihwcmUpOwogZXhlY01vdmVTZWxlY3Rpb25G
b3J3YXJkQnlMaW5lQ29tbWFuZCgpOwogZXhlY0V4dGVuZFNlbGVjdGlvbkZvcndhcmRCeUxpbmVD
b21tYW5kKCk7CiBleGVjRXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1hbmQoKTsKLS8v
IEZJWE1FOiBUaGlzIGlzIHdyb25nLiBUaGUgcHJlIHRhZ3MgZ2V0IGNvcGllZCB3aGVuIHRoZXkg
c2hvdWxkbid0IGJlLiAKKy8vIEZJWE1FOiBUaGlzIGlzIHdyb25nLiAgVGhlIHByZSB0YWdzIGdl
dCBjb3BpZWQgd2hlbiB0aGV5IHNob3VsZG4ndCBiZS4gCiAvLyBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDA5CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5k
ZW50Iik7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpLmlubmVyVGV4dCA9ICJQ
QVNTRUQgKGRpZCBub3QgY3Jhc2gpIjsKLTwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwv
Qk9EWT4KLTwvSFRNTD4KKyIKK3wgICAgICIKKyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtZW1wdHktZGl2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtZW1wdHktZGl2LWV4cGVj
dGVkLnR4dAppbmRleCBhZWYyYWU5MDk1YThhMWQ4ODljMDc2Y2ZhODBjYTFjZWNkZDBhNmZiLi5k
MDcyNDVjZjBjNTg0NjIxYWRlZmQ4OTZjOTgwZDdkOGFiMTQzN2QxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0LWVtcHR5LWRpdi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdC1l
bXB0eS1kaXYtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNCBAQAotCi08RElWIGlkPSJkaXYiIGNv
bnRlbnRFZGl0YWJsZT0idHJ1ZSI+Ci08VUw+Ci08TEk+PHNlbGVjdGlvbi1jYXJldD4KLTxCUj4K
LTwvTEk+Ci08L1VMPgotPC9ESVY+Cit8IDx1bD4KK3wgICA8bGk+Cit8ICAgICA8I3NlbGVjdGlv
bi1jYXJldD4KK3wgICAgIDxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2R1bXAtYXMtbWFya3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2R1bXAtYXMtbWFya3VwLWV4cGVjdGVkLnR4dAppbmRleCA0M2QxOGUyNWIyMmRm
MzY1MTUyNDc4YjQ5MzhlMWQ3YTM3NGNhZGMxLi5iODE2OTAxODJjOTQyZjhmYmNiODc2NDUwNjI4
NzBmMmQwYTBlZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
dW1wLWFzLW1hcmt1cC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZHVtcC1hcy1tYXJrdXAtZXhwZWN0ZWQudHh0CkBAIC0xLDkzICsxLDg2IEBACiBUZXN0
cyBiYXNpYyBkdW1wLWFzLW1hcmt1cCBmdW5jdGlvbmFsaXR5LgorfCA8IURPQ1RZUEUgaHRtbD4K
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wgICAgICIKIAotPEhUTUw+Ci08SEVBRD4K
LTxTQ1JJUFQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvU0NSSVBU
PgotPCN0ZXh0PgorIgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgaWQ9ImJhciIK
K3wgICAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5mb28iCit8ICAgICAgIDxocj4KK3wgICAgICAg
PCNzZWxlY3Rpb24tZm9jdXM+Cit8ICAgICAiCisiCit8ICAgICA8aW5wdXQ+Cit8ICAgICAgIHR5
cGU9InRleHQiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICBjb250ZW50ZWRpdGFi
bGU9IiIKK3wgICAgICAgaWQ9ImZvbyIKK3wgICAgICAgIgorICBmb28iCit8ICAgICAgICIgICBi
YXIKKyIKK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICJmb28uZmlyc3RDaGls
ZC5zcGxpdFRleHQoNik7IgorfCAgICAgIgorIgorfCAgICAgPHNwYW4+Cit8ICAgICAgICJmb28i
Cit8ICAgICA8c3Bhbj4KK3wgICAgICAgImJhciIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8
ICAgICAgIDxkaXY+Cit8ICAgICAgICAgPGI+Cit8ICAgICAgICAgICAic2RmIgorfCAgICAgICAg
IDxpPgorfCAgICAgICAgICAgInNkZiIKK3wgICAgICAgICAic2RmIgorfCAgICAgIgorIgorfCAg
ICAgPGlmcmFtZT4KK3wgICAgICAgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LDwh
RE9DVFlQRSUyMEhUTUwlMjBQVUJMSUMlMjAiLS8vVzNDLy9EVEQlMjBIVE1MJTIwNC4wLy9FTiI+
JTBEJTBBPGh0bWwlMjBsYW5nJTNEImVuIj4lMEQlMEElMjA8aGVhZD4lMEQlMEElMjAlMjA8dGl0
bGU+VGVzdDwvdGl0bGU+JTBEJTBBJTIwJTIwPHN0eWxlJTIwdHlwZSUzRCJ0ZXh0L2NzcyI+JTBE
JTBBJTIwJTIwPC9zdHlsZT4lMEQlMEElMjA8L2hlYWQ+JTBEJTBBJTIwPGJvZHk+JTBEJTBBJTIw
JTIwPHA+PC9wPiUwRCUwQSUyMDwvYm9keT4lMEQlMEE8L2h0bWw+JTBEJTBBIgorfCAgICAgIgog
Ci08LyN0ZXh0PgotPC9IRUFEPgotPEJPRFk+Ci08RElWIGlkPSJiYXIiPgotPCN0ZXh0PjxzZWxl
Y3Rpb24tYW5jaG9yPmZvbzwvI3RleHQ+Ci08SFI+PHNlbGVjdGlvbi1mb2N1cz4KLTwvRElWPgot
PCN0ZXh0PgotPC8jdGV4dD4KLTxJTlBVVCB0eXBlPSJ0ZXh0Ij4KLTwjdGV4dD4KLTwvI3RleHQ+
Ci08RElWIGlkPSJmb28iIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD4KLWZvbzwvI3RleHQ+
Ci08I3RleHQ+IGJhcgotPC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxTQ1JJ
UFQ+Zm9vLmZpcnN0Q2hpbGQuc3BsaXRUZXh0KDYpOzwvU0NSSVBUPgotPCN0ZXh0PgotPC8jdGV4
dD4KLTxTUEFOPgotPCN0ZXh0PmZvbzwvI3RleHQ+Ci08L1NQQU4+Ci08U1BBTj4KLTwjdGV4dD5i
YXI8LyN0ZXh0PgotPC9TUEFOPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxESVY+Ci08RElWPgotPEI+
Ci08I3RleHQ+c2RmPC8jdGV4dD4KLTwvQj4KLTxJPgotPCN0ZXh0PnNkZjwvI3RleHQ+Ci08L0k+
Ci08I3RleHQ+c2RmPC8jdGV4dD4KLTwvRElWPgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0ZXh0Pgot
PElGUkFNRSBzcmM9ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPCFET0NUWVBFJTIwSFRN
TCUyMFBVQkxJQyUyMCItLy9XM0MvL0RURCUyMEhUTUwlMjA0LjAvL0VOIj4lMEQlMEE8aHRtbCUy
MGxhbmclM0QiZW4iPiUwRCUwQSUyMDxoZWFkPiUwRCUwQSUyMCUyMDx0aXRsZT5UZXN0PC90aXRs
ZT4lMEQlMEElMjAlMjA8c3R5bGUlMjB0eXBlJTNEInRleHQvY3NzIj4lMEQlMEElMjAlMjA8L3N0
eWxlPiUwRCUwQSUyMDwvaGVhZD4lMEQlMEElMjA8Ym9keT4lMEQlMEElMjAlMjA8cD48L3A+JTBE
JTBBJTIwPC9ib2R5PiUwRCUwQTwvaHRtbD4lMEQlMEEiPjwvSUZSQU1FPgotPCN0ZXh0PgotCi08
LyN0ZXh0PgotPFNDUklQVD4KKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKIE1hcmt1cC5k
ZXNjcmlwdGlvbigiVGVzdHMgYmFzaWMgZHVtcC1hcy1tYXJrdXAgZnVuY3Rpb25hbGl0eS4iKTsK
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihiYXIpCi08L1NDUklQVD4K
LTwjdGV4dD4KLTwvI3RleHQ+Ci08L0JPRFk+Ci08L0hUTUw+CisiCit8ICAgICAiCisiCiAKIEZS
QU1FIDA6Cit8IDxoZWFkPgorfCAgICIKKyAgIgorfCAgIDx0aXRsZT4KK3wgICAgICJUZXN0Igor
fCAgICIKKyAgIgorfCAgIDxzdHlsZT4KK3wgICAgIHR5cGU9InRleHQvY3NzIgorfCAgICAgIgor
ICAiCit8ICAgIgorICIKK3wgIgorICIKK3wgPGJvZHk+Cit8ICAgIgorICAiCit8ICAgPHA+Cit8
ICAgIgorIAogCi08SFRNTD4KLTxIRUFEPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxUSVRMRT4KLTwj
dGV4dD5UZXN0PC8jdGV4dD4KLTwvVElUTEU+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPFNUWUxFIHR5
cGU9InRleHQvY3NzIj4KLTwvU1RZTEU+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPC9IRUFEPgotPCN0
ZXh0PgotPC8jdGV4dD4KLTxCT0RZPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxQPgotPC9QPgotPCN0
ZXh0PgotCi0KLTwvI3RleHQ+Ci08L0JPRFk+Ci08L0hUTUw+CisiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kdW1wLWFzLW1hcmt1cC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZHVtcC1hcy1tYXJrdXAuaHRtbAppbmRleCAyOGJkODM3NWNl
ZmNhNjAzNTA4MjNhYzUxZTVmNTBlYmEwMjRjNzhhLi5hZDM5MGVjMGQzOTg0MzU2NWE2ZmE4MmQx
ZmUyYTZmOTJlMjZjNjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kdW1wLWFzLW1hcmt1cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2R1bXAtYXMtbWFya3VwLmh0bWwKQEAgLTEsMyArMSw0IEBACis8IURvY1R5cGUgaHRtbD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0Pgog
CiA8ZGl2IGlkPSJiYXIiPmZvbzxocj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2hvbWUtaW5zaWRlLW5vbmVkaXRhYmxlLXRhYmxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2hvbWUtaW5zaWRlLW5vbmVkaXRhYmxl
LXRhYmxlLWV4cGVjdGVkLnR4dAppbmRleCA5YTBhNGYyNTg5Y2E3OWQ4MDkyNTU1MTc0ZjU0MTlj
NTU3Yzk2MGEzLi5jYTJlY2FjMzVkNWEwNmU4NmM5NjliNDQzYjQ1NWY3NTU3MTI2OTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ob21lLWluc2lkZS1ub25lZGl0
YWJsZS10YWJsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaG9tZS1pbnNpZGUtbm9uZWRpdGFibGUtdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0xLDMzICsx
LDI3IEBACiBUZXN0cyB3aGV0aGVyIGhvbWUgbW92ZXMgdGhlIGNhcmV0IHRvIHRoZSBiZWdpbm5p
bmcgb2YgbGluZSBpbnNpZGUgYSBjb250ZW50LWVkaXRhYmxlIGluIGFuIHVuZWRpdGFibGUgdGFi
bGUuCiAKIER1bXAgb2YgbWFya3VwIDE6Ci08RElWIGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9
InRydWUiPgotPCN0ZXh0PgotPC8jdGV4dD4KLTxESVYgaWQ9ImwxIj4KLTwjdGV4dD5UaGUgY2Fy
ZXQgaXMgaW5pdGlhbGx5IDxzZWxlY3Rpb24tY2FyZXQ+aGVyZSBidXQgc2hvdWxkIG1vdmUgdG8g
dGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS48LyN0ZXh0PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0
ZXh0PgotPERJVj4KLTwjdGV4dD5kdW1teSB0ZXh0PC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0Pgot
PC8jdGV4dD4KLTwvRElWPgorfCAiCisgICAgICAiCit8IDxkaXY+Cit8ICAgaWQ9ImwxIgorfCAg
ICJUaGUgY2FyZXQgaXMgaW5pdGlhbGx5IDwjc2VsZWN0aW9uLWNhcmV0PmhlcmUgYnV0IHNob3Vs
ZCBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuIgorfCAiCisgICAgICAiCit8IDxk
aXY+Cit8ICAgImR1bW15IHRleHQiCit8ICIKKyAgICAiCiAKIER1bXAgb2YgbWFya3VwIDI6Ci08
RElWIGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9InRydWUiPgotPCN0ZXh0PgotPC8jdGV4dD4K
LTxESVYgaWQ9ImwxIj4KLTwjdGV4dD48c2VsZWN0aW9uLWNhcmV0PlRoZSBjYXJldCBpcyBpbml0
aWFsbHkgaGVyZSBidXQgc2hvdWxkIG1vdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS48
LyN0ZXh0PgotPC9ESVY+Ci08I3RleHQ+Ci08LyN0ZXh0PgotPERJVj4KLTwjdGV4dD5kdW1teSB0
ZXh0PC8jdGV4dD4KLTwvRElWPgotPCN0ZXh0PgotPC8jdGV4dD4KLTwvRElWPgorfCAiCisgICAg
ICAiCit8IDxkaXY+Cit8ICAgaWQ9ImwxIgorfCAgICI8I3NlbGVjdGlvbi1jYXJldD5UaGUgY2Fy
ZXQgaXMgaW5pdGlhbGx5IGhlcmUgYnV0IHNob3VsZCBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIGxpbmUuIgorfCAiCisgICAgICAiCit8IDxkaXY+Cit8ICAgImR1bW15IHRleHQiCit8ICIK
KyAgICAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3JlbW92ZS11bmRl
cmxpbmUtZnJvbS1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CmluZGV4
IDgyNmZmYjYxNGRlZGY5MTVhYTc4NjAxMjQyMGUyM2NmZjU4ZmFlMmYuLmFlNWU1ODc2Mjc3YTkw
YjRlMzAxZWIyOGMyNmRhYTA2NGQ2MTQwMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxl
c2hlZXQtZXhwZWN0ZWQudHh0CkBAIC03MCwxMSArNzAsOCBAQCBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2Vi
Vmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMgcmVtb3ZpbmcgdW5kZXJs
aW5lIGZyb20gc3R5bGVzaGVldCAoLmVkaXRpbmcgaGFzIHVuZGVybGluZSkuIEJlY2F1c2UgdGV4
dC1kZWNvcmF0aW9uIHRoYXQgY29tZXMgZnJvbSBhIHN0eWxlIHJ1bGUgY2Fubm90IGJlIHB1c2hl
ZCBkb3duLCB0aGUgdW5kZXJsaW5lIHNob3VsZCBzdGF5LiAoc2VlIGJ1ZyAyNzgwOSkuCi0KLTxE
SVYgY2xhc3M9ImVkaXRpbmciIGlkPSJyb290IiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+
eHh4eHh4IDwvI3RleHQ+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+eHh4eHh4PHNlbGVjdGlv
bi1mb2N1cz48LyN0ZXh0PgotPCN0ZXh0PiB4eHh4eHg8LyN0ZXh0PgotPFNQQU4gaWQ9InRlc3Qi
PgotPC9TUEFOPgotPC9ESVY+Cit8ICJ4eHh4eHggIgorfCAiPCNzZWxlY3Rpb24tYW5jaG9yPnh4
eHh4eDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgIiB4eHh4eHgiCit8IDxzcGFuPgorfCAgIGlkPSJ0
ZXN0IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zdHlsZS10ZXh0LW5v
ZGUtd2l0aG91dC1lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9zdHlsZS10ZXh0LW5vZGUtd2l0aG91dC1lZGl0YWJsZS1wYXJlbnQtZXhwZWN0
ZWQudHh0CmluZGV4IDIxNjU3MDQ2ZWU1NTMxYzRkMTU4NTQ1NGQwNTlhZGEyYjJlMWJjMGEuLmQ1
MjgxNGM0ZjJmODA4NjMyZGJjOTQzNGYyZTFiZmU0ZDU4OTZkNjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvc3R5bGUtdGV4dC1ub2RlLXdpdGhvdXQtZWRpdGFibGUtcGFy
ZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3N0eWxlLXRl
eHQtbm9kZS13aXRob3V0LWVkaXRhYmxlLXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTEsMjg5ICsx
LDIwMSBAQAogVGhpcyB0ZXN0cyBhcHBseWluZyBpbmxpbmUgc3R5bGUgdG8gYSB0ZXh0IG5vZGUs
IHdoaWNoIGlzIGEgY2hpbGQgb2YgdGhlIGVkaXRhYmxlIHJvb3QuIFN0eWxlIHNob3VsZCBiZSBh
cHBsaWVkIHByb3Blcmx5IGFuZCB0aGUgdGVzdCBzaG91bGQgbm90IGNyYXNoLiAoU2VlIHRoZSBi
dWcgMzk5ODkpLgogCiBib2xkIGZpcnN0OgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPEI+
Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4
dD4KLTwvQj4KLTwjdGV4dD53b3JsZCBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8Yj4KK3wg
ICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICJ3b3Js
ZCBXZWJLaXQiCiAKIGJvbGQgbWlkZGxlOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPCN0
ZXh0PmhlbGxvLCA8LyN0ZXh0PgotPEI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+d29ybGQ8
c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0I+Ci08I3RleHQ+IFdlYktpdDwvI3RleHQ+Ci08
L1NQQU4+Cit8ICJoZWxsbywgIgorfCA8Yj4KK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxk
PCNzZWxlY3Rpb24tZm9jdXM+IgorfCAiIFdlYktpdCIKIAogYm9sZCBsYXN0OgotPFNQQU4gY29u
dGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3b3JsZDwvI3RleHQ+Ci08Qj4KLTwjdGV4
dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9C
PgotPC9TUEFOPgorfCAiaGVsbG8sIHdvcmxkIgorfCA8Yj4KK3wgICAiPCNzZWxlY3Rpb24tYW5j
aG9yPiBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIGJvbGQgYWxsOgotPFNQQU4gY29udGVu
dEVkaXRhYmxlPSIiPgotPEI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxk
IFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQj4KLTwvU1BBTj4KK3wgPGI+Cit8
ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgd29ybGQgV2ViS2l0PCNzZWxlY3Rpb24tZm9j
dXM+IgogCiBpdGFsaWMgZmlyc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08ST4KLTwj
dGV4dD48c2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0Pgot
PC9JPgotPCN0ZXh0PndvcmxkIFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxpPgorfCAgICI8
I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgIndvcmxkIFdl
YktpdCIKIAogaXRhbGljIG1pZGRsZToKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4
dD5oZWxsbywgPC8jdGV4dD4KLTxJPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPndvcmxkPHNl
bGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9JPgotPCN0ZXh0PiBXZWJLaXQ8LyN0ZXh0PgotPC9T
UEFOPgorfCAiaGVsbG8sICIKK3wgPGk+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwj
c2VsZWN0aW9uLWZvY3VzPiIKK3wgIiBXZWJLaXQiCiAKIGl0YWxpYyBsYXN0OgotPFNQQU4gY29u
dGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3b3JsZDwvI3RleHQ+Ci08ST4KLTwjdGV4
dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9J
PgotPC9TUEFOPgorfCAiaGVsbG8sIHdvcmxkIgorfCA8aT4KK3wgICAiPCNzZWxlY3Rpb24tYW5j
aG9yPiBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIGl0YWxpYyBhbGw6Ci08U1BBTiBjb250
ZW50RWRpdGFibGU9IiI+Ci08ST4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgd29y
bGQgV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9JPgotPC9TUEFOPgorfCA8aT4K
K3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8I3NlbGVjdGlvbi1m
b2N1cz4iCiAKIHVuZGVybGluZSBmaXJzdDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxV
PgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8c2VsZWN0aW9uLWZvY3VzPjwvI3Rl
eHQ+Ci08L1U+Ci08I3RleHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHU+Cit8
ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAid29y
bGQgV2ViS2l0IgogCiB1bmRlcmxpbmUgbWlkZGxlOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIi
PgotPCN0ZXh0PmhlbGxvLCA8LyN0ZXh0PgotPFU+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+
d29ybGQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1U+Ci08I3RleHQ+IFdlYktpdDwvI3Rl
eHQ+Ci08L1NQQU4+Cit8ICJoZWxsbywgIgorfCA8dT4KK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAiIFdlYktpdCIKIAogdW5kZXJsaW5lIGxhc3Q6
Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIHdvcmxkPC8jdGV4dD4K
LTxVPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwv
I3RleHQ+Ci08L1U+Ci08L1NQQU4+Cit8ICJoZWxsbywgd29ybGQiCit8IDx1PgorfCAgICI8I3Nl
bGVjdGlvbi1hbmNob3I+IFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogdW5kZXJsaW5lIGFs
bDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxVPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5j
aG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1U+Ci08
L1NQQU4+Cit8IDx1PgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktp
dDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogc3RyaWtlVGhyb3VnaCBmaXJzdDoKLTxTUEFOIGNvbnRl
bnRFZGl0YWJsZT0iIj4KLTxTPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8c2Vs
ZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1M+Ci08I3RleHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4K
LTwvU1BBTj4KK3wgPHM+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAid29ybGQgV2ViS2l0IgogCiBzdHJpa2VUaHJvdWdoIG1pZGRsZToKLTxT
UEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4KLTxTPgotPCN0
ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPndvcmxkPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9T
PgotPCN0ZXh0PiBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCAiaGVsbG8sICIKK3wgPHM+Cit8
ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgIiBXZWJL
aXQiCiAKIHN0cmlrZVRocm91Z2ggbGFzdDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwj
dGV4dD5oZWxsbywgd29ybGQ8LyN0ZXh0PgotPFM+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+
IFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvUz4KLTwvU1BBTj4KK3wgImhlbGxv
LCB3b3JsZCIKK3wgPHM+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PCNzZWxlY3Rp
b24tZm9jdXM+IgogCiBzdHJpa2VUaHJvdWdoIGFsbDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0i
Ij4KLTxTPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8c2Vs
ZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L1M+Ci08L1NQQU4+Cit8IDxzPgorfCAgICI8I3NlbGVj
dGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogZm9y
ZUNvbG9yIGZpcnN0OgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPEZPTlQgY2xhc3M9IkFw
cGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDAwMEZGIj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hv
cj5oZWxsbywgPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9GT05UPgotPCN0ZXh0Pndvcmxk
IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxmb250PgorfCAgIGNsYXNzPSJBcHBsZS1zdHls
ZS1zcGFuIgorfCAgIGNvbG9yPSIjMDAwMEZGIgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+aGVs
bG8sIDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgIndvcmxkIFdlYktpdCIKIAogZm9yZUNvbG9yIG1p
ZGRsZToKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4K
LTxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwMDBGRiI+Ci08I3RleHQ+
PHNlbGVjdGlvbi1hbmNob3I+d29ybGQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0ZPTlQ+
Ci08I3RleHQ+IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8ICJoZWxsbywgIgorfCA8Zm9udD4K
K3wgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICBjb2xvcj0iIzAwMDBGRiIKK3wgICAi
PCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAiIFdlYktpdCIK
IAogZm9yZUNvbG9yIGxhc3Q6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVs
bG8sIHdvcmxkPC8jdGV4dD4KLTxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0i
IzAwMDBGRiI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+IFdlYktpdDxzZWxlY3Rpb24tZm9j
dXM+PC8jdGV4dD4KLTwvRk9OVD4KLTwvU1BBTj4KK3wgImhlbGxvLCB3b3JsZCIKK3wgPGZvbnQ+
Cit8ICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8ICAgY29sb3I9IiMwMDAwRkYiCit8ICAg
Ijwjc2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBmb3JlQ29s
b3IgYWxsOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPEZPTlQgY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iIGNvbG9yPSIjMDAwMEZGIj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj5oZWxs
bywgd29ybGQgV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9GT05UPgotPC9TUEFO
PgorfCA8Zm9udD4KK3wgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICBjb2xvcj0iIzAw
MDBGRiIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCB3b3JsZCBXZWJLaXQ8I3NlbGVj
dGlvbi1mb2N1cz4iCiAKIGhpbGl0ZUNvbG9yIGZpcnN0OgotPFNQQU4gY29udGVudEVkaXRhYmxl
PSIiPgotPFNQQU4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IiBjbGFzcz0iQXBwbGUt
c3R5bGUtc3BhbiI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIDxzZWxlY3Rpb24t
Zm9jdXM+PC8jdGV4dD4KLTwvU1BBTj4KLTwjdGV4dD53b3JsZCBXZWJLaXQ8LyN0ZXh0PgotPC9T
UEFOPgorfCA8c3Bhbj4KK3wgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywg
PCNzZWxlY3Rpb24tZm9jdXM+IgorfCAid29ybGQgV2ViS2l0IgogCiBoaWxpdGVDb2xvciBtaWRk
bGU6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIDwvI3RleHQ+Ci08
U1BBTiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiIGNsYXNzPSJBcHBsZS1zdHlsZS1z
cGFuIj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj53b3JsZDxzZWxlY3Rpb24tZm9jdXM+PC8j
dGV4dD4KLTwvU1BBTj4KLTwjdGV4dD4gV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgImhlbGxv
LCAiCit8IDxzcGFuPgorfCAgIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIgorfCAgIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOyIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNz
ZWxlY3Rpb24tZm9jdXM+IgorfCAiIFdlYktpdCIKIAogaGlsaXRlQ29sb3IgbGFzdDoKLTxTUEFO
IGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgd29ybGQ8LyN0ZXh0PgotPFNQQU4g
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiI+
Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+IFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4
dD4KLTwvU1BBTj4KLTwvU1BBTj4KK3wgImhlbGxvLCB3b3JsZCIKK3wgPHNwYW4+Cit8ICAgY2xh
c3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8ICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7
IgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+IFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAog
aGlsaXRlQ29sb3IgYWxsOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPFNQQU4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiI+Ci08I3Rl
eHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+
PC8jdGV4dD4KLTwvU1BBTj4KLTwvU1BBTj4KK3wgPHNwYW4+Cit8ICAgY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iCit8ICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IgorfCAgICI8I3Nl
bGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAog
c3Vic2NyaXB0IGZpcnN0OgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPFNVQj4KLTwjdGV4
dD48c2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9T
VUI+Ci08I3RleHQ+d29ybGQgV2ViS2l0PC8jdGV4dD4KLTwvU1BBTj4KK3wgPHN1Yj4KK3wgICAi
PCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvLCA8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICJ3b3JsZCBX
ZWJLaXQiCiAKIHN1YnNjcmlwdCBtaWRkbGU6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08
I3RleHQ+aGVsbG8sIDwvI3RleHQ+Ci08U1VCPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPndv
cmxkPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9TVUI+Ci08I3RleHQ+IFdlYktpdDwvI3Rl
eHQ+Ci08L1NQQU4+Cit8ICJoZWxsbywgIgorfCA8c3ViPgorfCAgICI8I3NlbGVjdGlvbi1hbmNo
b3I+d29ybGQ8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICIgV2ViS2l0IgogCiBzdWJzY3JpcHQgbGFz
dDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgd29ybGQ8LyN0ZXh0
PgotPFNVQj4KLTwjdGV4dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1
cz48LyN0ZXh0PgotPC9TVUI+Ci08L1NQQU4+Cit8ICJoZWxsbywgd29ybGQiCit8IDxzdWI+Cit8
ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBzdWJz
Y3JpcHQgYWxsOgotPFNQQU4gY29udGVudEVkaXRhYmxlPSIiPgotPFNVQj4KLTwjdGV4dD48c2Vs
ZWN0aW9uLWFuY2hvcj5oZWxsbywgd29ybGQgV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0
PgotPC9TVUI+Ci08L1NQQU4+Cit8IDxzdWI+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxs
bywgd29ybGQgV2ViS2l0PCNzZWxlY3Rpb24tZm9jdXM+IgogCiBzdXBlcnNjcmlwdCBmaXJzdDoK
LTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxTVVA+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNo
b3I+aGVsbG8sIDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvU1VQPgotPCN0ZXh0Pndvcmxk
IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8IDxzdXA+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hv
cj5oZWxsbywgPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAid29ybGQgV2ViS2l0IgogCiBzdXBlcnNj
cmlwdCBtaWRkbGU6Ci08U1BBTiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGVsbG8sIDwv
I3RleHQ+Ci08U1VQPgotPCN0ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPndvcmxkPHNlbGVjdGlvbi1m
b2N1cz48LyN0ZXh0PgotPC9TVVA+Ci08I3RleHQ+IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+Cit8
ICJoZWxsbywgIgorfCA8c3VwPgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+d29ybGQ8I3NlbGVj
dGlvbi1mb2N1cz4iCit8ICIgV2ViS2l0IgogCiBzdXBlcnNjcmlwdCBsYXN0OgotPFNQQU4gY29u
dGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlbGxvLCB3b3JsZDwvI3RleHQ+Ci08U1VQPgotPCN0
ZXh0PjxzZWxlY3Rpb24tYW5jaG9yPiBXZWJLaXQ8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08
L1NVUD4KLTwvU1BBTj4KK3wgImhlbGxvLCB3b3JsZCIKK3wgPHN1cD4KK3wgICAiPCNzZWxlY3Rp
b24tYW5jaG9yPiBXZWJLaXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiAKIHN1cGVyc2NyaXB0IGFsbDoK
LTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxTVVA+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNo
b3I+aGVsbG8sIHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvU1VQPgot
PC9TUEFOPgorfCA8c3VwPgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+aGVsbG8sIHdvcmxkIFdl
YktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKIAogY3JlYXRlTGluayBmaXJzdDoKLTxTUEFOIGNvbnRl
bnRFZGl0YWJsZT0iIj4KLTxBIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+Ci08I3RleHQ+PHNl
bGVjdGlvbi1hbmNob3I+aGVsbG8sIDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQT4KLTwj
dGV4dD53b3JsZCBXZWJLaXQ8LyN0ZXh0PgotPC9TUEFOPgorfCA8YT4KK3wgICBocmVmPSJodHRw
Oi8vd2Via2l0Lm9yZy8iCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbywgPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAid29ybGQgV2ViS2l0IgogCiBjcmVhdGVMaW5rIG1pZGRsZToKLTxTUEFO
IGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5oZWxsbywgPC8jdGV4dD4KLTxBIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnLyI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+d29ybGQ8c2VsZWN0
aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0E+Ci08I3RleHQ+IFdlYktpdDwvI3RleHQ+Ci08L1NQQU4+
Cit8ICJoZWxsbywgIgorfCA8YT4KK3wgICBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy8iCit8ICAg
Ijwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgIiBXZWJLaXQi
CiAKIGNyZWF0ZUxpbmsgbGFzdDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTwjdGV4dD5o
ZWxsbywgd29ybGQ8LyN0ZXh0PgotPEEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj4KLTwjdGV4
dD48c2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9B
PgotPC9TUEFOPgorfCAiaGVsbG8sIHdvcmxkIgorfCA8YT4KK3wgICBocmVmPSJodHRwOi8vd2Vi
a2l0Lm9yZy8iCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj4gV2ViS2l0PCNzZWxlY3Rpb24tZm9j
dXM+IgogCiBjcmVhdGVMaW5rIGFsbDoKLTxTUEFOIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxBIGhy
ZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+Ci08I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGVsbG8s
IHdvcmxkIFdlYktpdDxzZWxlY3Rpb24tZm9jdXM+PC8jdGV4dD4KLTwvQT4KLTwvU1BBTj4KK3wg
PGE+Cit8ICAgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIgorfCAgICI8I3NlbGVjdGlvbi1hbmNo
b3I+aGVsbG8sIHdvcmxkIFdlYktpdDwjc2VsZWN0aW9uLWZvY3VzPiIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtbm9kZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zcGxpdC10ZXh0LW5vZGUtZXhwZWN0ZWQu
dHh0CmluZGV4IDczYTdiZmI4MWE4YTJkZmFkYjBjYzkzMDhjOWVjOTdmODQyZDVmYjQuLmE5MzQ5
N2U0ZTE2YmE2ZjhhYWQzZGVhMzRkY2Y0MWZlMjMzNDJmMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtbm9kZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlZG8tc3BsaXQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4
dApAQCAtMiwyNiArMiwxNiBAQCBUaGlzIHRlc3Qgc3BsaXRzIGEgdGV4dCBub2RlIGJ5IGluc2Vy
dGluZyBhIG5ldyBwYXJhZ3JhcGggYW5kIGJvbGRzIHRoZSB0aGUgZmlycwogSWYgc3BsaXRUZXh0
Tm9kZSBjb3JyZWN0bHkgcmVhcHBsaWVkIHRoZSBzcGxpdCwgdW5kbyBhbmQgcmVkbyBzaG91bGQg
cHJlc2VydmUgdGhlIHN0eWxlLiAoU2VlIGJ1ZyA0Mjk0MSkuCiAKIGJlZm9yZSB1bmRvOgotPERJ
ViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPEI+Ci08I3RleHQ+PHNlbGVjdGlvbi1h
bmNob3I+aGU8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0I+Ci08RElWPgotPCN0ZXh0Pmxs
bzwvI3RleHQ+Ci08L0RJVj4KLTwvRElWPgorfCA8Yj4KK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PmhlPCNzZWxlY3Rpb24tZm9jdXM+IgorfCA8ZGl2PgorfCAgICJsbG8iCiAKIGFmdGVyIHVuZG86
Ci08RElWIGlkPSJ0ZXN0IiBjb250ZW50RWRpdGFibGU9IiI+Ci08I3RleHQ+aGU8c2VsZWN0aW9u
LWNhcmV0PmxsbzwvI3RleHQ+Ci08L0RJVj4KK3wgImhlPCNzZWxlY3Rpb24tY2FyZXQ+bGxvIgog
CiBhZnRlciByZWRvOgotPERJViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPEI+Ci08
I3RleHQ+PHNlbGVjdGlvbi1hbmNob3I+aGU8c2VsZWN0aW9uLWZvY3VzPjwvI3RleHQ+Ci08L0I+
Ci08RElWPgotPCN0ZXh0PmxsbzwvI3RleHQ+Ci08L0RJVj4KLTwvRElWPgorfCA8Yj4KK3wgICAi
PCNzZWxlY3Rpb24tYW5jaG9yPmhlPCNzZWxlY3Rpb24tZm9jdXM+IgorfCA8ZGl2PgorfCAgICJs
bG8iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zcGxpdC10ZXh0
LXdpdGgtcmVtb3ZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVk
by1zcGxpdC10ZXh0LXdpdGgtcmVtb3ZhbC1leHBlY3RlZC50eHQKaW5kZXggOTZjNDE2NGIxN2Vj
ODNhZGE3OGYzYmVjMjM2YjU5MzViYzdlODE2Zi4uYmEwNjkzY2Y3NWU1NThhYjk5YTQ5NTk0ZGNk
OWZmMzE2ZDIwYjg1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlZG8t
c3BsaXQtdGV4dC13aXRoLXJlbW92YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvdW5kby9yZWRvLXNwbGl0LXRleHQtd2l0aC1yZW1vdmFsLWV4cGVjdGVkLnR4dApAQCAt
MiwyNyArMiwxNyBAQCBUaGlzIHRlc3Qgc3BsaXRzIGEgdGV4dCBub2RlIGJ5IGluc2VydGluZyBh
IG5ldyBwYXJhZ3JhcGggYW5kIGJvbGRzIHRoZSB0aGUgZmlycwogQWZ0ZXIgdW5kb2luZyB0aGVz
ZSB0d28gc3RlcHMsIGl0IHJlbW92ZXMgdGhlIHRleHQgbm9kZSwgYW5kIHRoZW4gcmVkby4gVGhl
IHRlc3Qgc2hvdWxkIG5vdCBjcmFzaC4gKFNlZSBidWcgNDI5NDEpLgogCiBiZWZvcmUgdW5kbzoK
LTxESVYgaWQ9InRlc3QiIGNvbnRlbnRFZGl0YWJsZT0iIj4KLTxCPgotPCN0ZXh0PjxzZWxlY3Rp
b24tYW5jaG9yPmhlPHNlbGVjdGlvbi1mb2N1cz48LyN0ZXh0PgotPC9CPgotPERJVj4KLTwjdGV4
dD5sbG88LyN0ZXh0PgotPC9ESVY+Ci08L0RJVj4KK3wgPGI+Cit8ICAgIjwjc2VsZWN0aW9uLWFu
Y2hvcj5oZTwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgPGRpdj4KK3wgICAibGxvIgogCiBhZnRlciB1
bmRvOgotPERJViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxlPSIiPgotPCN0ZXh0PmhlPHNlbGVj
dGlvbi1jYXJldD5sbG88LyN0ZXh0PgotPC9ESVY+Cit8ICJoZTwjc2VsZWN0aW9uLWNhcmV0Pmxs
byIKIAogYWZ0ZXIgbm9kZSByZW1vdmFsOgotPERJViBpZD0idGVzdCIgY29udGVudEVkaXRhYmxl
PSIiPgotPC9ESVY+Cit8IAogCiBhZnRlciByZWRvOgotPERJViBpZD0idGVzdCIgY29udGVudEVk
aXRhYmxlPSIiPgotPERJVj4KLTwjdGV4dD5oZWxsbzwvI3RleHQ+Ci08L0RJVj4KLTwvRElWPgor
fCA8ZGl2PgorfCAgICJoZWxsbyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jl
c291cmNlcy9kb20yc3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL2Rv
bTJzdHJpbmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkZWI2NTgyMTMwYmVm
ZjEwMzkzZTBjZTRiYTQ3MWQ0ZTE5NDUwMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL2RvbTJzdHJp
bmcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotU3RyaW5nLnByb3RvdHlwZS50
b0FzY2lpTG93ZXJDYXNlID0gZnVuY3Rpb24gKCkgewotICB2YXIgb3V0cHV0ID0gIiI7Ci0gIGZv
ciAodmFyIGkgPSAwLCBsZW4gPSB0aGlzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgaWYg
KHRoaXMuY2hhckNvZGVBdChpKSA+PSAweDQxICYmIHRoaXMuY2hhckNvZGVBdChpKSA8PSAweDVB
KSB7Ci0gICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmNoYXJDb2RlQXQo
aSkgKyAweDIwKQotICAgIH0gZWxzZSB7Ci0gICAgICBvdXRwdXQgKz0gdGhpcy5jaGFyQXQoaSk7
Ci0gICAgfQotICB9Ci0gIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0aW9uIGluZGVudChhbmNl
c3RvcnMpIHsKLSAgdmFyIHN0ciA9ICIiOwotICBpZiAoYW5jZXN0b3JzID4gMCkgewotICAgIHdo
aWxlIChhbmNlc3RvcnMtLSkKLSAgICAgIHN0ciArPSAiICAiOwotICB9Ci0gIHJldHVybiBzdHI7
Ci19Ci0KLWZ1bmN0aW9uIGRvbTJzdHJpbmcobm9kZSwgYW5jZXN0b3JzKSB7Ci0gIHZhciBzdHIg
PSAiIjsKLSAgaWYgKHR5cGVvZiBhbmNlc3RvcnMgPT0gInVuZGVmaW5lZCIpCi0gICAgdmFyIGFu
Y2VzdG9ycyA9IDA7Ci0gIGlmICghbm9kZS5maXJzdENoaWxkKQotICAgIHJldHVybiAifCAiOwot
ICB2YXIgcGFyZW50ID0gbm9kZTsKLSAgdmFyIGN1cnJlbnQgPSBub2RlLmZpcnN0Q2hpbGQ7Ci0g
IHZhciBuZXh0ID0gbnVsbDsKLSAgdmFyIG1pc25lc3RlZCA9IG51bGw7Ci0gIGZvciAoOzspIHsK
LSAgICBzdHIgKz0gIlxufCAiICsgaW5kZW50KGFuY2VzdG9ycyk7Ci0gICAgc3dpdGNoIChjdXJy
ZW50Lm5vZGVUeXBlKSB7Ci0gICAgICBjYXNlIDEwOgotICAgICAgICBzdHIgKz0gJzwhRE9DVFlQ
RSAnICsgY3VycmVudC5ub2RlTmFtZTsKLSAgICAgICAgaWYgKGN1cnJlbnQucHVibGljSWQgfHwg
Y3VycmVudC5zeXN0ZW1JZCkgewotICAgICAgICAgICAgc3RyICs9ICcgIicgKyBjdXJyZW50LnB1
YmxpY0lkICsgJyInOwotICAgICAgICAgICAgc3RyICs9ICcgIicgKyBjdXJyZW50LnN5c3RlbUlk
ICsgJyInOwotICAgICAgICB9Ci0gICAgICAgIHN0ciArPSAnPic7Ci0gICAgICAgIGJyZWFrOwot
ICAgICAgY2FzZSA4OgotICAgICAgICB0cnkgewotICAgICAgICAgIHN0ciArPSAnPCEtLSAnICsg
Y3VycmVudC5ub2RlVmFsdWUgKyAnIC0tPic7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgICBzdHIgKz0gJzwhLS0gIC0tPic7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHBhcmVudCAh
PSBjdXJyZW50LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICByZXR1cm4gc3RyICs9ICcgKG1pc25l
c3RlZC4uLiBhYm9ydGluZyknOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2Fz
ZSA3OgotICAgICAgICBzdHIgKz0gJzw/JyArIGN1cnJlbnQubm9kZU5hbWUgKyBjdXJyZW50Lm5v
ZGVWYWx1ZSArICc+JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDQ6Ci0gICAgICAgIHN0
ciArPSAnPCFbQ0RBVEFbICcgKyBjdXJyZW50Lm5vZGVWYWx1ZSArICcgXV0+JzsKLSAgICAgICAg
YnJlYWs7Ci0gICAgICBjYXNlIDM6Ci0gICAgICAgIHN0ciArPSAnIicgKyBjdXJyZW50Lm5vZGVW
YWx1ZSArICciJzsKLSAgICAgICAgaWYgKHBhcmVudCAhPSBjdXJyZW50LnBhcmVudE5vZGUpIHsK
LSAgICAgICAgICByZXR1cm4gc3RyICs9ICcgKG1pc25lc3RlZC4uLiBhYm9ydGluZyknOwotICAg
ICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAxOgotICAgICAgICBzdHIgKz0gIjwi
OwotICAgICAgICBzd2l0Y2ggKGN1cnJlbnQubmFtZXNwYWNlVVJJKSB7Ci0gICAgICAgICAgY2Fz
ZSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOgotICAgICAgICAgICAgc3RyICs9ICJzdmcg
IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgImh0dHA6Ly93d3cudzMub3Jn
LzE5OTgvTWF0aC9NYXRoTUwiOgotICAgICAgICAgICAgc3RyICs9ICJtYXRoICI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVudC5sb2NhbE5hbWUgJiYg
Y3VycmVudC5uYW1lc3BhY2VVUkkgJiYgY3VycmVudC5uYW1lc3BhY2VVUkkgIT0gbnVsbCkgewot
ICAgICAgICAgIHN0ciArPSBjdXJyZW50LmxvY2FsTmFtZTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICBzdHIgKz0gY3VycmVudC5ub2RlTmFtZS50b0FzY2lpTG93ZXJDYXNlKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgc3RyICs9ICc+JzsKLSAgICAgICAgaWYgKHBhcmVudCAhPSBjdXJyZW50
LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICByZXR1cm4gc3RyICs9ICcgKG1pc25lc3RlZC4uLiBh
Ym9ydGluZyknOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmIChjdXJyZW50LmF0dHJp
YnV0ZXMpIHsKLSAgICAgICAgICAgIHZhciBhdHRyTmFtZXMgPSBbXTsKLSAgICAgICAgICAgIHZh
ciBhdHRyUG9zID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGN1cnJlbnQu
YXR0cmlidXRlcy5sZW5ndGg7IGogKz0gMSkgewotICAgICAgICAgICAgICBpZiAoY3VycmVudC5h
dHRyaWJ1dGVzW2pdLnNwZWNpZmllZCkgewotICAgICAgICAgICAgICAgIHZhciBuYW1lID0gIiI7
Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50LmF0dHJpYnV0ZXNbal0ubmFtZXNwYWNl
VVJJKSB7Ci0gICAgICAgICAgICAgICAgICBjYXNlICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5
OC9uYW1lc3BhY2UiOgotICAgICAgICAgICAgICAgICAgICBuYW1lICs9ICJ4bWwgIjsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICBjYXNlICJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3htbG5zLyI6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gInhtbG5z
ICI7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgY2FzZSAi
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUg
Kz0gInhsaW5rICI7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzW2pdLmxvY2FsTmFtZSkg
ewotICAgICAgICAgICAgICAgICAgbmFtZSArPSBjdXJyZW50LmF0dHJpYnV0ZXNbal0ubG9jYWxO
YW1lOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBuYW1lICs9
IGN1cnJlbnQuYXR0cmlidXRlc1tqXS5ub2RlTmFtZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgYXR0ck5hbWVzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICAgICAgYXR0clBv
c1tuYW1lXSA9IGo7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChhdHRyTmFtZXMubGVuZ3RoID4gMCkgewotICAgICAgICAgICAgICBhdHRyTmFtZXMuc29y
dCgpOwotICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJOYW1lcy5sZW5ndGg7
IGogKz0gMSkgewotICAgICAgICAgICAgICAgIHN0ciArPSAiXG58ICIgKyBpbmRlbnQoMSArIGFu
Y2VzdG9ycykgKyBhdHRyTmFtZXNbal07Ci0gICAgICAgICAgICAgICAgc3RyICs9ICc9IicgKyBj
dXJyZW50LmF0dHJpYnV0ZXNbYXR0clBvc1thdHRyTmFtZXNbal1dXS5ub2RlVmFsdWUgKyAnIic7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAg
aWYgKG5leHQgPSBjdXJyZW50LmZpcnN0Q2hpbGQpIHsKLSAgICAgICAgICAgIHBhcmVudCA9IGN1
cnJlbnQ7Ci0gICAgICAgICAgICBjdXJyZW50ID0gbmV4dDsKLSAgICAgICAgICAgIGFuY2VzdG9y
cysrOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICBpZiAobmV4dCA9IGN1cnJl
bnQubmV4dFNpYmxpbmcpIHsKLSAgICAgICAgY3VycmVudCA9IG5leHQ7Ci0gICAgICAgIGJyZWFr
OwotICAgICAgfQotICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Tm9kZTsKLSAgICAgIHBh
cmVudCA9IHBhcmVudC5wYXJlbnROb2RlOwotICAgICAgYW5jZXN0b3JzLS07Ci0gICAgICBpZiAo
Y3VycmVudCA9PSBub2RlKSB7Ci0gICAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDEpOwotICAg
ICAgfQotICAgIH0KLSAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVu
bmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXIuaHRtbAppbmRleCAwNWE0OTNm
ZjIwMTg3NTBlMjUzMTg4YzgxZWFlYWVjMmE0ZTNlNTRkLi4wNDU3ZWQ0YzhjNmQ4MjhjZGM1NTMx
NWFjOTA3ZmVmMDE4MDdlNmY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5u
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXIuaHRtbApAQCAtMjEsMTEg
KzIxLDcgQEAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogVEhFIFNPRlRXQVJFLgogLS0+CiA8dGl0bGU+aHRt
bDVsaWIgdGVzdCBydW5uZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9cmVzb3VyY2VzL2RvbTJzdHJp
bmcuanM+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPS4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcz48L3NjcmlwdD4KIDxzdHls
ZT4KIC5vdmVydmlldzpob3ZlciB7CiBiYWNrZ3JvdW5kOiAjY2NjOwpAQCAtMzcsNiArMzMsOCBA
QCBkaXNwbGF5OiBub25lOwogPHA+U2NyaXB0IGRpZCBub3QgcnVuPC9wPgogPGlmcmFtZT48L2lm
cmFtZT4KIDxzY3JpcHQ+CitNYXJrdXAud2FpdFVudGlsRG9uZSgpOworCiB2YXIgdGVzdF9maWxl
cyA9IFsKICAgICAgICAgJ3Jlc291cmNlcy90ZXN0czEuZGF0JywKICAgICAgICAgJ3Jlc291cmNl
cy90ZXN0czIuZGF0JywKQEAgLTkyLDYgKzkwLDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkKIHsKICAgICBzdGF0LmRhdGEgPSAiUnVubmluZyI7CiAgICAgcnVuKCk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBydW4oKQpAQCAtMjI4LDcgKzIyOCw3IEBAIGZ1
bmN0aW9uIHJ1bl90ZXN0KGlucHV0LCBjb250ZXh0RWxlbWVudCwgZXhwZWN0ZWQpCiAKIGZ1bmN0
aW9uIHByb2Nlc3NfcmVzdWx0KGlucHV0LCByZXN1bHQsIGV4cGVjdGVkKQogewotICAgIHJlc3Vs
dCA9IGRvbTJzdHJpbmcocmVzdWx0KTsKKyAgICByZXN1bHQgPSBNYXJrdXAuZ2V0KHJlc3VsdCk7
CiAgICAgaWYgKHJlc3VsdCAhPT0gZXhwZWN0ZWQpCiAgICAgewogICAgICAgICBmYWlsX2xpc3Qu
cHVzaCh0ZXN0X251bWJlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi93ZWJr
aXQtcmVzdW1lci5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvd2Via2l0LXJlc3VtZXIuaHRt
bAppbmRleCAyZDNhMDE3MTZiNTRhNjU5NGUzZTM1MDczZmIzNDIxYzgwMzRmODY4Li4wOTc0OGU0
MWVkMDRiZWQ3OGFkNWJlODc1YzA5M2ZlZTI3MmJkZjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odG1sNWxpYi93ZWJraXQtcmVzdW1lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGli
L3dlYmtpdC1yZXN1bWVyLmh0bWwKQEAgLTIwLDE0NyArMjAsNyBAQAogLy8gT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTgogLy8gVEhFIFNPRlRXQVJFLgogPC9zY3JpcHQ+Ci08c2NyaXB0PgotU3RyaW5nLnByb3Rv
dHlwZS50b0FzY2lpTG93ZXJDYXNlID0gZnVuY3Rpb24gKCkgewotICB2YXIgb3V0cHV0ID0gIiI7
Ci0gIGZvciAodmFyIGkgPSAwLCBsZW4gPSB0aGlzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7Ci0g
ICAgaWYgKHRoaXMuY2hhckNvZGVBdChpKSA+PSAweDQxICYmIHRoaXMuY2hhckNvZGVBdChpKSA8
PSAweDVBKSB7Ci0gICAgICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmNoYXJD
b2RlQXQoaSkgKyAweDIwKQotICAgIH0gZWxzZSB7Ci0gICAgICBvdXRwdXQgKz0gdGhpcy5jaGFy
QXQoaSk7Ci0gICAgfQotICB9Ci0gIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0aW9uIGluZGVu
dChhbmNlc3RvcnMpIHsKLSAgdmFyIHN0ciA9ICIiOwotICBpZiAoYW5jZXN0b3JzID4gMCkgewot
ICAgIHdoaWxlIChhbmNlc3RvcnMtLSkKLSAgICAgIHN0ciArPSAiICAiOwotICB9Ci0gIHJldHVy
biBzdHI7Ci19Ci0KLWZ1bmN0aW9uIGRvbTJzdHJpbmcobm9kZSwgYW5jZXN0b3JzKSB7Ci0gIHZh
ciBzdHIgPSAiIjsKLSAgaWYgKHR5cGVvZiBhbmNlc3RvcnMgPT0gInVuZGVmaW5lZCIpCi0gICAg
dmFyIGFuY2VzdG9ycyA9IDA7Ci0gIGlmICghbm9kZS5maXJzdENoaWxkKQotICAgIHJldHVybiAi
fCAiOwotICB2YXIgcGFyZW50ID0gbm9kZTsKLSAgdmFyIGN1cnJlbnQgPSBub2RlLmZpcnN0Q2hp
bGQ7Ci0gIHZhciBuZXh0ID0gbnVsbDsKLSAgdmFyIG1pc25lc3RlZCA9IG51bGw7Ci0gIGZvciAo
OzspIHsKLSAgICBzdHIgKz0gIlxufCAiICsgaW5kZW50KGFuY2VzdG9ycyk7Ci0gICAgc3dpdGNo
IChjdXJyZW50Lm5vZGVUeXBlKSB7Ci0gICAgICBjYXNlIDEwOgotICAgICAgICBzdHIgKz0gJzwh
RE9DVFlQRSAnICsgY3VycmVudC5ub2RlTmFtZSArICc+JzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ICBjYXNlIDg6Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgc3RyICs9ICc8IS0tICcgKyBjdXJy
ZW50Lm5vZGVWYWx1ZSArICcgLS0+JzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
IHN0ciArPSAnPCEtLSAgLS0+JzsKLSAgICAgICAgfQotICAgICAgICBpZiAocGFyZW50ICE9IGN1
cnJlbnQucGFyZW50Tm9kZSkgewotICAgICAgICAgIHJldHVybiBzdHIgKz0gJyAobWlzbmVzdGVk
Li4uIGFib3J0aW5nKSc7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDc6
Ci0gICAgICAgIHN0ciArPSAnPD8nICsgY3VycmVudC5ub2RlTmFtZSArIGN1cnJlbnQubm9kZVZh
bHVlICsgJz4nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgNDoKLSAgICAgICAgc3RyICs9
ICc8IVtDREFUQVsgJyArIGN1cnJlbnQubm9kZVZhbHVlICsgJyBdXT4nOwotICAgICAgICBicmVh
azsKLSAgICAgIGNhc2UgMzoKLSAgICAgICAgc3RyICs9ICciJyArIGN1cnJlbnQubm9kZVZhbHVl
ICsgJyInOwotICAgICAgICBpZiAocGFyZW50ICE9IGN1cnJlbnQucGFyZW50Tm9kZSkgewotICAg
ICAgICAgIHJldHVybiBzdHIgKz0gJyAobWlzbmVzdGVkLi4uIGFib3J0aW5nKSc7Ci0gICAgICAg
IH0KLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDE6Ci0gICAgICAgIHN0ciArPSAiPCI7Ci0g
ICAgICAgIHN3aXRjaCAoY3VycmVudC5uYW1lc3BhY2VVUkkpIHsKLSAgICAgICAgICBjYXNlICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6Ci0gICAgICAgICAgICBzdHIgKz0gInN2ZyAiOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgY2FzZSAiaHR0cDovL3d3dy53My5vcmcvMTk5
OC9NYXRoL01hdGhNTCI6Ci0gICAgICAgICAgICBzdHIgKz0gIm1hdGggIjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjdXJyZW50LmxvY2FsTmFtZSAmJiBjdXJy
ZW50Lm5hbWVzcGFjZVVSSSAmJiBjdXJyZW50Lm5hbWVzcGFjZVVSSSAhPSBudWxsKSB7Ci0gICAg
ICAgICAgc3RyICs9IGN1cnJlbnQubG9jYWxOYW1lOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIHN0ciArPSBjdXJyZW50Lm5vZGVOYW1lLnRvQXNjaWlMb3dlckNhc2UoKTsKLSAgICAgICAg
fQotICAgICAgICBzdHIgKz0gJz4nOwotICAgICAgICBpZiAocGFyZW50ICE9IGN1cnJlbnQucGFy
ZW50Tm9kZSkgewotICAgICAgICAgIHJldHVybiBzdHIgKz0gJyAobWlzbmVzdGVkLi4uIGFib3J0
aW5nKSc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRl
cykgewotICAgICAgICAgICAgdmFyIGF0dHJOYW1lcyA9IFtdOwotICAgICAgICAgICAgdmFyIGF0
dHJQb3MgPSB7fTsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY3VycmVudC5hdHRy
aWJ1dGVzLmxlbmd0aDsgaiArPSAxKSB7Ci0gICAgICAgICAgICAgIGlmIChjdXJyZW50LmF0dHJp
YnV0ZXNbal0uc3BlY2lmaWVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5hbWUgPSAiIjsKLSAg
ICAgICAgICAgICAgICBzd2l0Y2ggKGN1cnJlbnQuYXR0cmlidXRlc1tqXS5uYW1lc3BhY2VVUkkp
IHsKLSAgICAgICAgICAgICAgICAgIGNhc2UgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25h
bWVzcGFjZSI6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gInhtbCAiOwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgIGNhc2UgImh0dHA6Ly93d3cudzMu
b3JnLzIwMDAveG1sbnMvIjoKLSAgICAgICAgICAgICAgICAgICAgbmFtZSArPSAieG1sbnMgIjsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICBjYXNlICJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIjoKLSAgICAgICAgICAgICAgICAgICAgbmFtZSArPSAi
eGxpbmsgIjsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNbal0ubG9jYWxOYW1lKSB7Ci0g
ICAgICAgICAgICAgICAgICBuYW1lICs9IGN1cnJlbnQuYXR0cmlidXRlc1tqXS5sb2NhbE5hbWU7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIG5hbWUgKz0gY3Vy
cmVudC5hdHRyaWJ1dGVzW2pdLm5vZGVOYW1lOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBhdHRyTmFtZXMucHVzaChuYW1lKTsKLSAgICAgICAgICAgICAgICBhdHRyUG9zW25h
bWVdID0gajsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KGF0dHJOYW1lcy5sZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICAgIGF0dHJOYW1lcy5zb3J0KCk7
Ci0gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0ck5hbWVzLmxlbmd0aDsgaiAr
PSAxKSB7Ci0gICAgICAgICAgICAgICAgc3RyICs9ICJcbnwgIiArIGluZGVudCgxICsgYW5jZXN0
b3JzKSArIGF0dHJOYW1lc1tqXTsKLSAgICAgICAgICAgICAgICBzdHIgKz0gJz0iJyArIGN1cnJl
bnQuYXR0cmlidXRlc1thdHRyUG9zW2F0dHJOYW1lc1tqXV1dLm5vZGVWYWx1ZSArICciJzsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAo
bmV4dCA9IGN1cnJlbnQuZmlyc3RDaGlsZCkgewotICAgICAgICAgICAgcGFyZW50ID0gY3VycmVu
dDsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBuZXh0OwotICAgICAgICAgICAgYW5jZXN0b3JzKys7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGZvciAoOzspIHsKLSAgICAgIGlmIChuZXh0ID0gY3VycmVudC5u
ZXh0U2libGluZykgewotICAgICAgICBjdXJyZW50ID0gbmV4dDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgICB9Ci0gICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnROb2RlOwotICAgICAgcGFyZW50
ID0gcGFyZW50LnBhcmVudE5vZGU7Ci0gICAgICBhbmNlc3RvcnMtLTsKLSAgICAgIGlmIChjdXJy
ZW50ID09IG5vZGUpIHsKLSAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMSk7Ci0gICAgICB9
Ci0gICAgfQotICB9Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLTwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Li4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzPjwvc2Ny
aXB0PgogPHN0eWxlPgogLm92ZXJ2aWV3OmhvdmVyIHsKIGJhY2tncm91bmQ6ICNjY2M7CkBAIC0x
NzIsNiArMzIsOCBAQCBkaXNwbGF5OiBub25lOwogPHA+U2NyaXB0IGRpZCBub3QgcnVuPC9wPgog
PGlmcmFtZT48L2lmcmFtZT4KIDxzY3JpcHQ+CitNYXJrdXAud2FpdFVudGlsRG9uZSgpOworCiB2
YXIgdGVzdF9maWxlcyA9IFsKICAgICAgICAgLy8gJ3Jlc291cmNlcy90ZXN0czEuZGF0JywKICAg
ICAgICAgLy8gJ3Jlc291cmNlcy90ZXN0czIuZGF0JywKQEAgLTIxMyw2ICs3NSw4IEBAIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpCiB7CiAgICAgc3RhdC5kYXRhID0gIlJ1bm5pbmciOwogICAg
IHJ1bigpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuKCkKQEAg
LTM1Nyw3ICsyMjEsNyBAQCBmdW5jdGlvbiBydW5fdGVzdChpbnB1dCwgY29udGV4dEVsZW1lbnQs
IGV4cGVjdGVkKQogCiBmdW5jdGlvbiBwcm9jZXNzX3Jlc3VsdChpbnB1dCwgcmVzdWx0LCBleHBl
Y3RlZCwgYXN5bmMpCiB7Ci0gICAgcmVzdWx0ID0gZG9tMnN0cmluZyhyZXN1bHQpOworICAgIHJl
c3VsdCA9IE1hcmt1cC5nZXQocmVzdWx0KTsKICAgICBpZiAocmVzdWx0ICE9PSBleHBlY3RlZCkK
ICAgICB7CiAgICAgICAgIGZhaWxfbGlzdC5wdXNoKHRlc3RfbnVtYmVyICsgIi4iICsgc3VidGVz
dF9udW1iZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFy
a3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCmluZGV4IGVl
YWZjZTg4ZDYyNDhiYmE2OGUyYjVlNDU4YzNlNzJhMGQwMWZkODkuLjI2YTFhOWY3NjIzNjliZTU3
ODI4ZWY5OGVlY2FhNTk0NzQzOTI4OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMKQEAgLTIwLDYgKzIwLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewogfQogCiAvLyBOYW1lc3BhY2UKKy8vIEZJWE1FOiBSZW5hbWUgZHVtcC1hcy1tYXJrdXAu
anMgdG8gZHVtcC1kb20uanMgYW5kIE1hcmt1cCB0byBET00uCiB2YXIgTWFya3VwID0ge307CiAK
IC8vIFRoZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgdGVzdCBpcyB0ZXN0aW5nLiBHZXRzIHBy
ZXBlbmRlZCB0byB0aGUgZHVtcGVkIG1hcmt1cC4KQEAgLTM2LDcgKzM3LDcgQEAgTWFya3VwLmR1
bXAgPSBmdW5jdGlvbihvcHRfbm9kZSwgb3B0X2Rlc2NyaXB0aW9uKQogICAgIGlmICh0eXBlb2Yg
b3B0X25vZGUgPT0gJ3N0cmluZycpCiAgICAgICAgIG9wdF9ub2RlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQob3B0X25vZGUpOwogCi0gICAgdmFyIG5vZGUgPSBvcHRfbm9kZSB8fCBNYXJrdXAu
X25vZGUgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnRFbGVtZW50CisgICAgdmFyIG5vZGUgPSBvcHRf
bm9kZSB8fCBNYXJrdXAuX25vZGUgfHwgZG9jdW1lbnQKICAgICB2YXIgbWFya3VwID0gIiI7CiAK
ICAgICBpZiAoTWFya3VwLl90ZXN0X2Rlc2NyaXB0aW9uICYmICFNYXJrdXAuX2R1bXBDYWxscykK
QEAgLTUxLDcgKzUyLDcgQEAgTWFya3VwLmR1bXAgPSBmdW5jdGlvbihvcHRfbm9kZSwgb3B0X2Rl
c2NyaXB0aW9uKQogICAgICAgICAgICAgb3B0X2Rlc2NyaXB0aW9uID0gIkR1bXAgb2YgbWFya3Vw
ICIgKyBNYXJrdXAuX2R1bXBDYWxscwogICAgICAgICBpZiAoTWFya3VwLl9kdW1wQ2FsbHMgPiAx
KQogICAgICAgICAgICAgbWFya3VwICs9ICdcbic7Ci0gICAgICAgIG1hcmt1cCArPSAnXG4nICsg
b3B0X2Rlc2NyaXB0aW9uICsgJzonOworICAgICAgICBtYXJrdXAgKz0gJ1xuJyArIG9wdF9kZXNj
cmlwdGlvbiArICc6XG4nOwogICAgIH0KIAogICAgIG1hcmt1cCArPSBNYXJrdXAuZ2V0KG5vZGUp
OwpAQCAtOTMsOCArOTQsMTAgQEAgTWFya3VwLm5vdGlmeURvbmUgPSBmdW5jdGlvbigpCiAgICAg
Ly8gSW4gbm9uLWxheW91dCB0ZXN0IG1vZGUsIGFwcGVuZCB0aGUgcmVzdWx0cyBpbiBhIHByZSBz
byB0aGF0IHdlIGRvbid0CiAgICAgLy8gY2xvYmJlciB0aGUgdGVzdCBpdHNlbGYuIEJ1dCB3aGVu
IGluIGxheW91dCB0ZXN0IG1vZGUsIHdlIGRvbid0IHdhbnQKICAgICAvLyBzaWRlIGVmZmVjdHMg
ZnJvbSB0aGUgdGVzdCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0cy4KLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVyVGV4
dCA9IE1hcmt1cC5fY29udGFpbmVyLmlubmVyVGV4dDsKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIiI7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTWFya3VwLl9jb250YWluZXIpOworICAg
IH0KIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKQEAgLTEwNyw5OCArMTEwLDEzNCBAQCBNYXJr
dXAuc2V0Tm9kZVRvRHVtcCA9IGZ1bmN0aW9uKG5vZGUpCiAgICAgTWFya3VwLl9ub2RlID0gbm9k
ZQogfQogCitNYXJrdXAuZ2V0ID0gZnVuY3Rpb24obm9kZSkKK3sKKyAgICBpZiAoIW5vZGUuZmly
c3RDaGlsZCkKKyAgICAgICAgcmV0dXJuICd8ICc7CisKKyAgICAvLyBEb24ndCBwcmludCBhbnkg
bWFya3VwIGZvciB0aGUgcm9vdCBub2RlLgorICAgIHZhciBtYXJrdXAgPSAnJzsKKyAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7
CisgICAgICAgIG1hcmt1cCArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0sIDApOwor
ICAgIH0KKyAgICByZXR1cm4gbWFya3VwLnN1YnN0cmluZygxKTsKK30KKwogLy8gUmV0dXJucyB0
aGUgbWFya3VwIGZvciB0aGUgZ2l2ZW4gbm9kZS4gVG8gYmUgdXNlZCBmb3IgY2FzZXMgd2hlcmUg
YSB0ZXN0IG5lZWRzCiAvLyB0byBnZXQgdGhlIG1hcmt1cCBidXQgbm90IGNsb2JiZXIgdGhlIHdo
b2xlIHBhZ2UuCi1NYXJrdXAuZ2V0ID0gZnVuY3Rpb24obm9kZSwgb3B0X2RlcHRoKQorTWFya3Vw
Ll9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKIHsKLSAgICB2YXIgZGVwdGggPSBvcHRfZGVw
dGggfHwgMDsKLQotICAgIHZhciBhdHRycyA9IE1hcmt1cC5fZ2V0QXR0cmlidXRlcyhub2RlKTsK
LSAgICB2YXIgYXR0cnNTdHJpbmcgPSBhdHRycy5sZW5ndGggPyAnICcgKyBhdHRycy5qb2luKCcg
JykgOiAnJzsKLQotICAgIHZhciBub2RlTmFtZSA9IG5vZGUubm9kZU5hbWU7Ci0gICAgdmFyIG1h
cmt1cCA9ICc8JyArIG5vZGVOYW1lICsgYXR0cnNTdHJpbmcgKyAnPic7Ci0KLSAgICB2YXIgaXNT
cGVjaWFsTm9kZSA9IE1hcmt1cC5fRk9SQklEU19FTkRfVEFHW25vZGVOYW1lXTsKLSAgICB2YXIg
aW5uZXJNYXJrdXAgPSAnJzsKLSAgICBzd2l0Y2ggKG5vZGVOYW1lKSB7Ci0gICAgICAgIGNhc2Ug
JyN0ZXh0JzoKLSAgICAgICAgY2FzZSAnU1RZTEUnOgotICAgICAgICBjYXNlICdTQ1JJUFQnOgot
ICAgICAgICBjYXNlICdJRlJBTUUnOgotICAgICAgICBjYXNlICdURVhUQVJFQSc6Ci0gICAgICAg
IGNhc2UgJ1hNUCc6Ci0gICAgICAgICAgICBpbm5lck1hcmt1cCA9IG5vZGVOYW1lID09ICcjdGV4
dCcgPyBNYXJrdXAuX2dldE1hcmt1cEZvclRleHROb2RlKG5vZGUpIDogbm9kZS5pbm5lclRleHQ7
Ci0gICAgICAgICAgICBpbm5lck1hcmt1cCA9IGlubmVyTWFya3VwLnJlcGxhY2UoL1xuL2csICdc
bicgKyBNYXJrdXAuX3NwYWNlcyhkZXB0aCkpCi0gICAgICAgICAgICBpc1NwZWNpYWxOb2RlID0g
dHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBp
IDwgbGVuOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpbm5lck1hcmt1cCArPSBNYXJrdXAuX2dl
dFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAgICAgICAgICBpbm5lck1hcmt1cCAr
PSBNYXJrdXAuZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICB2YXIgc3Ry
ID0gTWFya3VwLl9pbmRlbnQoZGVwdGgpOworCisgICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKSB7
CisgICAgY2FzZSAxMDoKKyAgICAgICAgc3RyICs9ICc8IURPQ1RZUEUgJyArIG5vZGUubm9kZU5h
bWU7CisgICAgICAgIGlmIChub2RlLnB1YmxpY0lkIHx8IG5vZGUuc3lzdGVtSWQpIHsKKyAgICAg
ICAgICAgIHN0ciArPSAnICInICsgbm9kZS5wdWJsaWNJZCArICciJzsKKyAgICAgICAgICAgIHN0
ciArPSAnICInICsgbm9kZS5zeXN0ZW1JZCArICciJzsKKyAgICAgICAgfQorICAgICAgICBzdHIg
Kz0gJz4nOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgODoKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIHN0ciArPSAnPCEtLSAnICsgbm9kZS5ub2RlVmFsdWUgKyAnIC0tPic7CisgICAg
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHN0ciArPSAnPCEtLSAgLS0+JzsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgNzoKKyAgICAgICAgc3RyICs9ICc8Pycg
KyBub2RlLm5vZGVOYW1lICsgbm9kZS5ub2RlVmFsdWUgKyAnPic7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSA0OgorICAgICAgICBzdHIgKz0gJzwhW0NEQVRBWyAnICsgbm9kZS5ub2RlVmFs
dWUgKyAnIF1dPic7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSAzOgorICAgICAgICBzdHIg
Kz0gJyInICsgTWFya3VwLl9nZXRNYXJrdXBGb3JUZXh0Tm9kZShub2RlKSArICciJzsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIDE6CisgICAgICAgIHN0ciArPSAiPCI7CisgICAgICAgIHN0
ciArPSBNYXJrdXAuX25hbWVzcGFjZShub2RlKQorCisgICAgICAgIGlmIChub2RlLmxvY2FsTmFt
ZSAmJiBub2RlLm5hbWVzcGFjZVVSSSAmJiBub2RlLm5hbWVzcGFjZVVSSSAhPSBudWxsKQorICAg
ICAgICAgICAgc3RyICs9IG5vZGUubG9jYWxOYW1lOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzdHIgKz0gTWFya3VwLl90b0FzY2lpTG93ZXJDYXNlKG5vZGUubm9kZU5hbWUpOworCisgICAg
ICAgIHN0ciArPSAnPic7CisKKyAgICAgICAgaWYgKG5vZGUuYXR0cmlidXRlcykgeworICAgICAg
ICAgICAgdmFyIGF0dHJOYW1lcyA9IFtdOworICAgICAgICAgICAgdmFyIGF0dHJQb3MgPSB7fTsK
KyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsg
aiArPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUuYXR0cmlidXRlc1tqXS5zcGVjaWZp
ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBNYXJrdXAuX25hbWVzcGFjZShu
b2RlLmF0dHJpYnV0ZXNbal0pCisgICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gbm9kZS5hdHRy
aWJ1dGVzW2pdLmxvY2FsTmFtZSB8fCBub2RlLmF0dHJpYnV0ZXNbal0ubm9kZU5hbWU7CisgICAg
ICAgICAgICAgICAgICAgIGF0dHJOYW1lcy5wdXNoKG5hbWUpOworICAgICAgICAgICAgICAgICAg
ICBhdHRyUG9zW25hbWVdID0gajsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoYXR0ck5hbWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgYXR0
ck5hbWVzLnNvcnQoKTsKKyAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyTmFt
ZXMubGVuZ3RoOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRl
bnQoZGVwdGggKyAxKSArIGF0dHJOYW1lc1tqXTsKKyAgICAgICAgICAgICAgICBzdHIgKz0gJz0i
JyArIG5vZGUuYXR0cmlidXRlc1thdHRyUG9zW2F0dHJOYW1lc1tqXV1dLm5vZGVWYWx1ZSArICci
JzsKKyAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgaW5uZXJNYXJr
dXAgKz0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgbWFya3VwID0gJ1xuJyArIE1hcmt1cC5fc3BhY2Vz
KGRlcHRoKSArIG1hcmt1cCAKLSAgICBpZiAoIWlzU3BlY2lhbE5vZGUpCi0gICAgICAgIGlubmVy
TWFya3VwICs9ICdcbicgKyBNYXJrdXAuX3NwYWNlcyhkZXB0aCk7CisgICAgZm9yICh2YXIgaSA9
IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgeworICAgICAg
ICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7Cisg
ICAgICAgIGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQo
ZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKIAotICAgIG1hcmt1cCArPSBpbm5lck1hcmt1cDsKKyAg
ICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsK
KyAgICB9CiAgICAgCi0gICAgaWYgKCFNYXJrdXAuX0ZPUkJJRFNfRU5EX1RBR1tub2RlTmFtZV0p
Ci0gICAgICAgIG1hcmt1cCArPSAnPC8nICsgbm9kZU5hbWUgKyAnPic7CisgICAgdmFyIHNlbGVj
dGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOworICAgIGlmIChzZWxl
Y3Rpb24pCisgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0
aW9uOwogCi0gICAgcmV0dXJuIG1hcmt1cDsKKyAgICByZXR1cm4gc3RyOwogfQogCi1NYXJrdXAu
X2R1bXBDYWxscyA9IDAKLQotTWFya3VwLl9zcGFjZXMgPSBmdW5jdGlvbihtdWx0aXBsaWVyKQor
TWFya3VwLl9uYW1lc3BhY2UgPSBmdW5jdGlvbihub2RlKQogewotICAgIHJldHVybiBuZXcgQXJy
YXkobXVsdGlwbGllciAqIDQgKyAxKS5qb2luKCcgJyk7CisgICAgaWYgKE1hcmt1cC5fTkFNRVNQ
QUNFX1VSSV9NQVBbbm9kZS5uYW1lc3BhY2VVUkldKQorICAgICAgICByZXR1cm4gTWFya3VwLl9O
QU1FU1BBQ0VfVVJJX01BUFtub2RlLm5hbWVzcGFjZVVSSV0gKyAnICc7CisgICAgcmV0dXJuICcn
OwogfQogCi0vLyBGSVhNRTogSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMgdGhhbiBh
IGhhcmQgY29kZWQgbGlzdD8KLU1hcmt1cC5fRFVNUF9BU19NQVJLVVBfUFJPUEVSVElFUyA9IFsn
c3JjJywgJ3R5cGUnLCAnaHJlZicsICdzdHlsZScsICdjbGFzcycsICdpZCcsICdjb2xvcicsICdi
Z2NvbG9yJywgJ2NvbnRlbnRFZGl0YWJsZSddOworTWFya3VwLl9kdW1wQ2FsbHMgPSAwCiAKLU1h
cmt1cC5fZ2V0QXR0cmlidXRlcyA9IGZ1bmN0aW9uKG5vZGUpCitNYXJrdXAuX2luZGVudCA9IGZ1
bmN0aW9uKGRlcHRoKQogewotICAgIHZhciBwcm9wcyA9IFtdOwotICAgIGlmICghbm9kZS5oYXNB
dHRyaWJ1dGUpCi0gICAgICAgIHJldHVybiBwcm9wczsKLQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgTWFya3VwLl9EVU1QX0FTX01BUktVUF9QUk9QRVJUSUVTLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgIHZhciBhdHRyID0gTWFya3VwLl9EVU1QX0FTX01BUktVUF9QUk9QRVJUSUVTW2ldOwotICAg
ICAgICBpZiAobm9kZS5oYXNBdHRyaWJ1dGUoYXR0cikpIHsKLSAgICAgICAgICAgIHByb3BzLnB1
c2goYXR0ciArICc9IicgKyBub2RlLmdldEF0dHJpYnV0ZShhdHRyKSArICciJyk7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgcmV0dXJuIHByb3BzOworICAgIHJldHVybiAiXG58ICIgKyBuZXcgQXJy
YXkoZGVwdGggKiAyICsgMSkuam9pbignICcpOwogfQogCi0vLyBUaGlzIGxpc3Qgc2hvdWxkIG1h
dGNoIGFsbCBIVE1MIGVsZW1lbnRzIHRoYXQgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbiBmb3Ig
ZW5kVGFnUmVxdWlyZW1lbnQoKS4KLU1hcmt1cC5fRk9SQklEU19FTkRfVEFHID0gewotICAgICdN
RVRBJzogMSwKLSAgICAnSFInOiAxLAotICAgICdBUkVBJzogMSwKLSAgICAnTElOSyc6IDEsCi0g
ICAgJ1dCUic6IDEsCi0gICAgJ0JSJzogMSwKLSAgICAnQkFTRSc6IDEsCi0gICAgJ1RBQkxFQ09M
JzogMSwKLSAgICAnU09VUkNFJzogMSwKLSAgICAnSU5QVVQnOiAxLAotICAgICdQQVJBTSc6IDEs
Ci0gICAgJ0VNQkVEJzogMSwKLSAgICAnRlJBTUUnOiAxLAotICAgICdDQU5WQVMnOiAxLAotICAg
ICdJTUcnOiAxLAotICAgICdJU0lOREVYJzogMSwKLSAgICAnQkFTRUZPTlQnOiAxLAotICAgICdE
QVRBR1JJRENFTEwnOiAxLAotICAgICdEQVRBR1JJRENPTCc6IDEKK01hcmt1cC5fdG9Bc2NpaUxv
d2VyQ2FzZSA9IGZ1bmN0aW9uIChzdHIpIHsKKyAgdmFyIG91dHB1dCA9ICIiOworICBmb3IgKHZh
ciBpID0gMCwgbGVuID0gdGhpcy5sZW5ndGg7IGkgPCBsZW47ICsraSkgeworICAgIGlmIChzdHIu
Y2hhckNvZGVBdChpKSA+PSAweDQxICYmIHN0ci5jaGFyQ29kZUF0KGkpIDw9IDB4NUEpCisgICAg
ICBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShzdHIuY2hhckNvZGVBdChpKSArIDB4MjAp
CisgICAgZWxzZQorICAgICAgb3V0cHV0ICs9IHN0ci5jaGFyQXQoaSk7CisgIH0KKyAgcmV0dXJu
IG91dHB1dDsKK30KKworTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKKyAgICAiaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciOiAic3ZnIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5
OC9NYXRoL01hdGhNTCI6ICJtYXRoIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIjogInhtbCIsCisgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIjog
InhtbG5zIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI6ICJ4bGluayIKIH0K
IAogTWFya3VwLl9nZXRTZWxlY3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCkBAIC0yMDYs
NiArMjQ1LDEwIEBAIE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUgPSBmdW5jdGlvbihub2Rl
KQogICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9u
KCk7CiB9CiAKK01hcmt1cC5fU0VMRUNUSU9OX0ZPQ1VTID0gJzwjc2VsZWN0aW9uLWZvY3VzPic7
CitNYXJrdXAuX1NFTEVDVElPTl9BTkNIT1IgPSAnPCNzZWxlY3Rpb24tYW5jaG9yPic7CitNYXJr
dXAuX1NFTEVDVElPTl9DQVJFVCA9ICc8I3NlbGVjdGlvbi1jYXJldD4nOworCiBNYXJrdXAuX2dl
dE1hcmt1cEZvclRleHROb2RlID0gZnVuY3Rpb24obm9kZSkKIHsKICAgICBpbm5lck1hcmt1cCA9
IG5vZGUubm9kZVZhbHVlOwpAQCAtMjE1LDI2ICsyNTgsMjYgQEAgTWFya3VwLl9nZXRNYXJrdXBG
b3JUZXh0Tm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiAgICAgaWYgKG5vZGUgPT0gc2VsLmFuY2hvck5v
ZGUgJiYgbm9kZSA9PSBzZWwuZm9jdXNOb2RlKSB7CiAgICAgICAgIGlmIChzZWwuaXNDb2xsYXBz
ZWQpIHsKICAgICAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc2VsLmFuY2hvck9mZnNldDsKLSAgICAg
ICAgICAgIHN0YXJ0VGV4dCA9ICc8c2VsZWN0aW9uLWNhcmV0Pic7CisgICAgICAgICAgICBzdGFy
dFRleHQgPSBNYXJrdXAuX1NFTEVDVElPTl9DQVJFVDsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmIChzZWwuZm9jdXNPZmZzZXQgPiBzZWwuYW5jaG9yT2Zmc2V0KSB7CiAgICAgICAg
ICAgICAgICAgc3RhcnRPZmZzZXQgPSBzZWwuYW5jaG9yT2Zmc2V0OwogICAgICAgICAgICAgICAg
IGVuZE9mZnNldCA9IHNlbC5mb2N1c09mZnNldDsKLSAgICAgICAgICAgICAgICBzdGFydFRleHQg
PSAnPHNlbGVjdGlvbi1hbmNob3I+JzsKLSAgICAgICAgICAgICAgICBlbmRUZXh0ID0gJzxzZWxl
Y3Rpb24tZm9jdXM+JzsKKyAgICAgICAgICAgICAgICBzdGFydFRleHQgPSBNYXJrdXAuX1NFTEVD
VElPTl9BTkNIT1I7CisgICAgICAgICAgICAgICAgZW5kVGV4dCA9IE1hcmt1cC5fU0VMRUNUSU9O
X0ZPQ1VTOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBzdGFydE9mZnNl
dCA9IHNlbC5mb2N1c09mZnNldDsKICAgICAgICAgICAgICAgICBlbmRPZmZzZXQgPSBzZWwuYW5j
aG9yT2Zmc2V0OwotICAgICAgICAgICAgICAgIHN0YXJ0VGV4dCA9ICc8c2VsZWN0aW9uLWZvY3Vz
Pic7Ci0gICAgICAgICAgICAgICAgZW5kVGV4dCA9ICc8c2VsZWN0aW9uLWFuY2hvcj4nOyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN0YXJ0VGV4dCA9IE1hcmt1cC5f
U0VMRUNUSU9OX0ZPQ1VTOworICAgICAgICAgICAgICAgIGVuZFRleHQgPSBNYXJrdXAuX1NFTEVD
VElPTl9BTkNIT1I7ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgaWYgKG5vZGUgPT0gc2VsLmZvY3VzTm9kZSkgewogICAgICAgICBz
dGFydE9mZnNldCA9IHNlbC5mb2N1c09mZnNldDsKLSAgICAgICAgc3RhcnRUZXh0ID0gJzxzZWxl
Y3Rpb24tZm9jdXM+JzsKKyAgICAgICAgc3RhcnRUZXh0ID0gTWFya3VwLl9TRUxFQ1RJT05fRk9D
VVM7CiAgICAgfSBlbHNlIGlmIChub2RlID09IHNlbC5hbmNob3JOb2RlKSB7CiAgICAgICAgIHN0
YXJ0T2Zmc2V0ID0gc2VsLmFuY2hvck9mZnNldDsKLSAgICAgICAgc3RhcnRUZXh0ID0gJzxzZWxl
Y3Rpb24tYW5jaG9yPic7CisgICAgICAgIHN0YXJ0VGV4dCA9IE1hcmt1cC5fU0VMRUNUSU9OX0FO
Q0hPUjsKICAgICB9CiAgICAgCiAgICAgaWYgKHN0YXJ0VGV4dCAmJiBlbmRUZXh0KQpAQCAtMjQ3
LDE0ICsyOTAsMTcgQEAgTWFya3VwLl9nZXRNYXJrdXBGb3JUZXh0Tm9kZSA9IGZ1bmN0aW9uKG5v
ZGUpCiAKIE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyID0gZnVuY3Rpb24obm9kZSwgaW5kZXgp
CiB7CisgICAgaWYgKG5vZGUubm9kZVR5cGUgIT0gMSkKKyAgICAgICAgcmV0dXJuICcnOworCiAg
ICAgdmFyIHNlbCA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUobm9kZSk7OwogICAgIGlm
IChpbmRleCA9PSBzZWwuYW5jaG9yT2Zmc2V0ICYmIG5vZGUgPT0gc2VsLmFuY2hvck5vZGUpIHsK
ICAgICAgICAgaWYgKHNlbC5pc0NvbGxhcHNlZCkKLSAgICAgICAgICAgIHJldHVybiAnPHNlbGVj
dGlvbi1jYXJldD4nOworICAgICAgICAgICAgcmV0dXJuIE1hcmt1cC5fU0VMRUNUSU9OX0NBUkVU
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gJzxzZWxlY3Rpb24tYW5jaG9yPic7
CisgICAgICAgICAgICByZXR1cm4gTWFya3VwLl9TRUxFQ1RJT05fQU5DSE9SOwogICAgIH0gZWxz
ZSBpZiAoaW5kZXggPT0gc2VsLmZvY3VzT2Zmc2V0ICYmIG5vZGUgPT0gc2VsLmZvY3VzTm9kZSkK
LSAgICAgICAgcmV0dXJuICc8c2VsZWN0aW9uLWZvY3VzPic7CisgICAgICAgIHJldHVybiBNYXJr
dXAuX1NFTEVDVElPTl9GT0NVUzsKIAogICAgIHJldHVybiAnJzsKIH0K
</data>
<flag name="review"
          id="51142"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>