<?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>12751</bug_id>
          
          <creation_ts>2007-02-12 14:51:14 -0800</creation_ts>
          <short_desc>DocumentType nodes aren&apos;t part of the Document (affects Acid3)</short_desc>
          <delta_ts>2019-02-06 09:03:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://acid3.acidtests.org/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>17064</blocked>
    
    <blocked>17080</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23676</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2007-02-12 14:51:14 -0800</bug_when>
    <thetext>Firefox treats the document type node as the first child of the document. We don&apos;t add document type nodes as children at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65467</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-12-28 07:00:40 -0800</bug_when>
    <thetext>*** Bug 16636 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65914</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 11:35:54 -0800</bug_when>
    <thetext>Committed revision 29067.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65920</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 12:01:20 -0800</bug_when>
    <thetext>Marked resolved by accident.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65923</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 12:04:36 -0800</bug_when>
    <thetext>Oh, Eric just pointed out that it&apos;s not just XML!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65924</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 12:05:22 -0800</bug_when>
    <thetext>I guess it probably won&apos;t hurt compatibility too much if it makes us match Gecko. I wonder what Trident/IE does with a doctype node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66366</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-06 02:05:17 -0800</bug_when>
    <thetext>See also: bug 15290, bug 15411.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68833</commentid>
    <comment_count>7</comment_count>
      <attachid>18797</attachid>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-01-30 12:55:27 -0800</bug_when>
    <thetext>Created attachment 18797
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69864</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-02-08 15:07:57 -0800</bug_when>
    <thetext>Sadly this causes 2 Acid3 failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70809</commentid>
    <comment_count>9</comment_count>
      <attachid>19146</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-15 15:15:35 -0800</bug_when>
    <thetext>Created attachment 19146
Work in progress

Just saving my work.  Not ready for review yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70810</commentid>
    <comment_count>10</comment_count>
      <attachid>19147</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-15 15:52:31 -0800</bug_when>
    <thetext>Created attachment 19147
Patch that gets Acid3 up to 84/100

I still have to make view source mode work with doctypes so that I don&apos;t break the Web Inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70861</commentid>
    <comment_count>11</comment_count>
      <attachid>19147</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-02-16 07:59:19 -0800</bug_when>
    <thetext>Comment on attachment 19147
Patch that gets Acid3 up to 84/100

I like it!

 405     virtual void determineParseMode() {};

You made this protected, but it should be private. You only need it protected if derived classes need to *call* it. You can always override a virtual regardless of the visibility. And the derived class only needs to override, not call. It should be private in HTMLDocument too.

Also, no semicolon after the braces.

Do we need to do something to prohibit a second DOCTYPE node in XML, or does the parser already take care of that? Maybe this doesn&apos;t even handle he XML case yet?

 858         bool isWhitespace = c == &apos;\r&apos; || c == &apos;\n&apos; || c == &apos;\t&apos; || c == &apos; &apos;;

Don&apos;t we already have a function for exactly that set of whitespace? All our different whitespace checks drive me crazy.

 868                     // Malformed.  Just exit.

Extra space here in this comment after the period.

 902                     if (Unicode::toLower(c) == publicStart[m_doctypeSearchCount]) {

 910                     } else if (Unicode::toLower(c) == systemStart[m_doctypeSearchCount]) {

 1072                 if (Unicode::toLower(*src) == doctypeStart[m_doctypeSearchCount]) {

Unicode::toLower is overkill here. You want the much faster toASCIILower that works only for ASCII characters, because you know the that characters you are looking for are ASCII.

I think we need test cases for every single branch in the parsing logic. I honestly can&apos;t read the parsing code well enough to be sure it&apos;s right because of so many if statements and branches. Only tests will convince me and I assume that&apos; true for you too.

 102     DoctypeToken()
 103     {}

I&apos;d prefer this either all on one line, or with the braces on separate lines.

 105     void reset() {

Please put the opening brace here on a separate line since this is a function.

 116     String name() const { return String(m_name.data(), m_name.size()); }
 117     String publicID() const { return String(m_publicID.data(), m_publicID.size()); }
 118     String systemID() const { return String(m_systemID.data(), m_systemID.size()); }

Since we only use these when we&apos;re *done* with the doctype, we should use String::adopt, which is more efficient, but leaves the vector empty. I think that we could just leave these out entirely and write this:

    document-&gt;setDocType(new DocumentType(document, String::adopt(t-&gt;m_name), String::adopt(t-&gt;m_publicID), String::adopt(t-&gt;m_systemID)));

That&apos;s all my comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71043</commentid>
    <comment_count>12</comment_count>
      <attachid>19186</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-18 06:37:49 -0800</bug_when>
    <thetext>Created attachment 19186
More cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71061</commentid>
    <comment_count>13</comment_count>
      <attachid>19186</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-02-18 11:13:52 -0800</bug_when>
    <thetext>Comment on attachment 19186
More cleanup.

I know you didn&apos;t post this for review, yet, but here are my thoughts anyway.  I read through the DocType node manipulation bits, not through the doctype parsing bits yet.

1.  Obviously this needs test cases (I&apos;m sure you have some).
2.  I&apos;m not sure what other engines do when you add a second doctype node to a document (via js), then remove the first.  Does the second then become the doctype?  In our code, when you add a 3rd after removing the first it would suddenly become the doctype.  What if you have 3 in the doc when you remove the first? which becomes the doctype (if other parsers do that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71069</commentid>
    <comment_count>14</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2008-02-18 12:28:12 -0800</bug_when>
    <thetext>&quot;if the node to append is one of this node&apos;s ancestors or this node itself, or if this node is of type
Document and the DOM application attempts to append a second DocumentType or Element node&quot;, then you should raise a &quot;HIERARCHY_REQUEST_ERR&quot; exception.
See http://www.w3.org/TR/DOM-Level-3-Core/core.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71120</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-19 00:14:13 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; 1.  Obviously this needs test cases (I&apos;m sure you have some).

We can probably borrow some testcases from html5lib. Anne pointed me at the following files, all of which contain some doctype tokenizer tests:

http://html5lib.googlecode.com/svn/trunk/testdata/tokenizer/test1.test
http://html5lib.googlecode.com/svn/trunk/testdata/tokenizer/test2.test
http://html5lib.googlecode.com/svn/trunk/testdata/tokenizer/test3.test
http://html5lib.googlecode.com/svn/trunk/testdata/tokenizer/test4.test
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71157</commentid>
    <comment_count>16</comment_count>
      <attachid>19216</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-19 15:44:52 -0800</bug_when>
    <thetext>Created attachment 19216
Finish view source mode. Fix bugs in the inspector code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71169</commentid>
    <comment_count>17</comment_count>
      <attachid>19216</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-19 18:24:05 -0800</bug_when>
    <thetext>Comment on attachment 19216
Finish view source mode. Fix bugs in the inspector code.

Sam Weinig has written a test harness that tests a bunch of doctypes and makes sure the mode that is picked is correct.  

I will land his harness in the tree once it is ready (along with this patch).

Ready for comments again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71172</commentid>
    <comment_count>18</comment_count>
      <attachid>19218</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-19 20:37:32 -0800</bug_when>
    <thetext>Created attachment 19218
Patch that passes all of Sam&apos;s tests

This patch passes every single doctype rule contained in the HTML5 specification (Sam&apos;s tests cover all of them).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71176</commentid>
    <comment_count>19</comment_count>
      <attachid>19219</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-19 22:04:40 -0800</bug_when>
    <thetext>Created attachment 19219
Work in progress

There are still many layout tests to fix.  I am having to change layout tests that have bugs in them (e.g., svg/dynamic-updates has a broken test harness that does document.firstChild instead of document.documentElement).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71188</commentid>
    <comment_count>20</comment_count>
      <attachid>19221</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-20 01:21:06 -0800</bug_when>
    <thetext>Created attachment 19221
Ready for review.

This patch has been through the layout tests.  Many tests are changing results:

(1) DOM tests that failed are now passing and/or changing results slightly.
(2) about:blank is now properly in quirks mode instead of strict mode (affects every single test that uses about:blank)
(3) Positional dumping tests now change when a doctype is placed before the root element
(4) XSL transform results now have the correct mode

One major change I had to make is that the construction of the style selector is now delayed until a Document is attached.  Document construction time was too early, since the compat mode had not yet been initialized (the HTMLDocument is not even constructed yet in the base class constructor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71264</commentid>
    <comment_count>21</comment_count>
      <attachid>19221</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-02-20 09:54:55 -0800</bug_when>
    <thetext>Comment on attachment 19221
Ready for review.

+    String text = &quot;&lt;&quot;;
+    text += String::adopt(doctypeToken-&gt;m_source);
+    text += &quot;&gt;&quot;;
+    addText(text, &quot;webkit-html-doctype&quot;);

This could be quite a bit more efficient like so:

Vector&lt;UChar&gt; buffer(doctypeToken-&gt;m_source.size() + 2);
buffer[0] = &quot;&lt;&quot;;
buffer.insert(1, doctypeToken-&gt;m_source);
buffer[buffer.size() - 1] = &quot;&gt;&quot;;
addText(String::adopt(buffer), &quot;webkit-html-doctype&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71283</commentid>
    <comment_count>22</comment_count>
      <attachid>19235</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-02-20 13:16:40 -0800</bug_when>
    <thetext>Created attachment 19235
doctype tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71290</commentid>
    <comment_count>23</comment_count>
      <attachid>19235</attachid>
    <who name="">mitz</who>
    <bug_when>2008-02-20 13:29:05 -0800</bug_when>
    <thetext>Comment on attachment 19235
doctype tests

+FAIL: the Doctype was Standards.  It was expected to be Quirks.  Doctype: &lt;!-- comment --&gt;&lt;!DOCTYPE html&gt;

Is this expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71295</commentid>
    <comment_count>24</comment_count>
      <attachid>19235</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-20 13:37:35 -0800</bug_when>
    <thetext>Comment on attachment 19235
doctype tests

Yeah that is a bug.  I will fix the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71305</commentid>
    <comment_count>25</comment_count>
      <attachid>19241</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-20 14:25:34 -0800</bug_when>
    <thetext>Created attachment 19241
Final patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71307</commentid>
    <comment_count>26</comment_count>
      <attachid>19241</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-02-20 14:38:49 -0800</bug_when>
    <thetext>Comment on attachment 19241
Final patch

Yeah!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71312</commentid>
    <comment_count>27</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-02-20 14:49:35 -0800</bug_when>
    <thetext>Fixed in r30431.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502956</commentid>
    <comment_count>28</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:22 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18797</attachid>
            <date>2008-01-30 12:55:27 -0800</date>
            <delta_ts>2008-01-30 12:55:27 -0800</delta_ts>
            <desc>test case</desc>
            <filename>bug-16751-minimal-test-case.html</filename>
            <type>text/html</type>
            <size>456</size>
            <attacher name="Robert Blaut">webkit</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPHRpdGxlPlRl
c3QgY2FzZSBmb3IgY2hlY2tpbmcgZmlyc3RDaGlsZC5ub2RlVHlwZSBvZiBhIGRvY3VtZW50PC90
aXRsZT4KPC9oZWFkPgo8Ym9keT4KPHA+VGhlcmUgc2hvdWxkIGJlIG5vIFJFRCBvbiB0aGUgcGFn
ZTwvcD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJaWYgKGRvY3VtZW50LmZpcnN0
Q2hpbGQubm9kZVR5cGUgIT0gMTApIGRvY3VtZW50LndyaXRlKCI8cCBzdHlsZT1cImJhY2tncm91
bmQtY29sb3I6cmVkO1wiPlRoZSBmaXJzdENoaWxkLm5vZGVUeXBlIG9mIHRoZSBkb2N1bWVudCBp
cyBub3QgRE9DVU1FTlRfVFlQRV9OT0RFPC9wPiIpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19146</attachid>
            <date>2008-02-15 15:15:35 -0800</date>
            <delta_ts>2008-02-15 15:52:31 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>35152</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKKyAgICBpZiAoZG9jdHlwZSkKICAgICAgICAg
ZG9jLT5zZXREb2NUeXBlKGRvY3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChk
b2MuZ2V0KCkpOwotICAgIH0KIAogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAg
ICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBx
dWFsaWZpZWROYW1lLCBlYykpOwpJbmRleDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBkb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAzMDMxOCkKKysrIGRvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3MSwxMiArNDcxLDE1IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
QWN0aXZlTGlua0NvbG9yKCkKIAogdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRy
PERvY3VtZW50VHlwZT4gZG9jVHlwZSkKIHsKKyAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBj
YWxsZWQgbW9yZSB0aGFuIG9uY2UuCisgICAgLy8gTm90ZTogVGhpcyBpcyBub3QgYSBwdWJsaWMg
RE9NIG1ldGhvZCBhbmQgY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBwYXJzZXIuCisgICAgQVNT
RVJUKCFtX2RvY1R5cGUpOworICAgIGlmIChtX2RvY1R5cGUpCisgICAgICAgIHJldHVybjsKICAg
ICBtX2RvY1R5cGUgPSBkb2NUeXBlOwotfQotCi1Eb2N1bWVudFR5cGUgKkRvY3VtZW50Ojpkb2N0
eXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kb2NUeXBlLmdldCgpOworICAgIG1fZG9jVHlw
ZS0+c2V0RG9jdW1lbnQodGhpcyk7CisgICAgYWRkQ2hpbGQobV9kb2NUeXBlKTsKKyAgICBkZXRl
cm1pbmVQYXJzZU1vZGUoKTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBs
ZW1lbnRhdGlvbigpIGNvbnN0CkBAIC0xNjk4LDE0ICsxNzAxLDYgQEAgQ1NTU3R5bGVTaGVldCog
RG9jdW1lbnQ6Om1hcHBlZEVsZW1lbnRTaAogICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRTaGVl
dC5nZXQoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0
cmluZyYpCi17Ci0gICAgLy8gRm9yIFhNTCBkb2N1bWVudHMgdXNlIHN0cmljdCBwYXJzZSBtb2Rl
LgotICAgIC8vIEhUTUwgb3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB0aGUgcGFy
c2UgbW9kZS4KLSAgICBwTW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9IFhIdG1sOwotfQotCiBz
dGF0aWMgTm9kZSogbmV4dE5vZGVXaXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRh
YkluZGV4LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVz
aXZlIG9mIHN0YXJ0CkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9j
dW1lbnQuaAkocmV2aXNpb24gMzAzMTgpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTc4LDggKzE3OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0
cmlidXRlcyBmb3IgRG9jdW1lbnQKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRUeXBlKiBkb2N0eXBl
KCkgY29uc3Q7IC8vIE1heSByZXR1cm4gMCBmb3IgSFRNTCBkb2N1bWVudHMKLSAgICBEb2N1bWVu
dFR5cGUqIHJlYWxEb2NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9Cisg
ICAgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgp
OyB9CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFs
c2UpOwpAQCAtNDAxLDggKzQwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGluZyhi
b29sIHApIHsgbV9wcmludGluZyA9IHA7IH0KIAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29tcGF0
LCBBbG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1p
bmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJik7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZv
aWQgZGV0ZXJtaW5lUGFyc2VNb2RlKCkge307CisKK3B1YmxpYzoKICAgICB2b2lkIHNldFBhcnNl
TW9kZShQYXJzZU1vZGUgbSkgeyBwTW9kZSA9IG07IH0KICAgICBQYXJzZU1vZGUgcGFyc2VNb2Rl
KCkgY29uc3QgeyByZXR1cm4gcE1vZGU7IH0KIApJbmRleDogaHRtbC9IVE1MRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMzAzMTgpCisr
KyBodG1sL0hUTUxEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NiwxNTQgKzM0Niwx
MSBAQCBib29sIEhUTUxEb2N1bWVudDo6aGFzRG9jRXh0cmFOYW1lZEl0ZW0oCiAgICAgcmV0dXJu
IGRvY0V4dHJhTmFtZWRJdGVtQ291bnRzLmdldChuYW1lLmltcGwoKSkgIT0gMDsKIH0KIAotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEUgICAgICAgID0gICAgICAgKDE8PDApOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRCAgICAgID0gICAgICAgKDE8PDEpOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX1NZU1RFTV9JRCAgICAgID0gICAgICAgKDE8PDIpOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX0lOVEVSTkFMICAgICAgID0gICAgICAgKDE8PDMpOwotCi1z
dGF0aWMgaW50IHBhcnNlRG9jVHlwZVBhcnQoY29uc3QgU3RyaW5nJiBidWZmZXIsIGludCBpbmRl
eCkKLXsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBVQ2hhciBjaCA9IGJ1ZmZlcltpbmRl
eF07Ci0gICAgICAgIGlmIChjaCA9PSAnICcgfHwgY2ggPT0gJ1x0JyB8fCBjaCA9PSAnXG4nIHx8
IGNoID09ICdccicpCi0gICAgICAgICAgICArK2luZGV4OwotICAgICAgICBlbHNlIGlmIChjaCA9
PSAnLScpIHsKLSAgICAgICAgICAgIGludCB0bXBJbmRleD1pbmRleDsKLSAgICAgICAgICAgIGlm
IChidWZmZXJbaW5kZXgrMV0gPT0gJy0nICYmCi0gICAgICAgICAgICAgICAgKCh0bXBJbmRleD1i
dWZmZXIuZmluZCgiLS0iLCBpbmRleCsyKSkgIT0gLTEpKQotICAgICAgICAgICAgICAgIGluZGV4
ID0gdG1wSW5kZXgrMjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4g
aW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIGluZGV4
OwotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNTdHJpbmcoY29uc3QgY2hhciogc3Ry
LCBjb25zdCBTdHJpbmcmIGJ1ZmZlciwgaW50IG9mZnNldCkKK3ZvaWQgSFRNTERvY3VtZW50Ojpk
ZXRlcm1pbmVQYXJzZU1vZGUoKQogewotICAgIFN0cmluZyBzdGFydFN0cmluZyhzdHIpOwotICAg
IGlmIChvZmZzZXQgKyBzdGFydFN0cmluZy5sZW5ndGgoKSA+IGJ1ZmZlci5sZW5ndGgoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIFN0cmluZyBidWZmZXJTdHJpbmcgPSBidWZm
ZXIuc3Vic3RyaW5nKG9mZnNldCwgc3RhcnRTdHJpbmcubGVuZ3RoKCkpLmxvd2VyKCk7Ci0gICAg
U3RyaW5nIGxvd2VyU3RhcnQgPSBzdGFydFN0cmluZy5sb3dlcigpOwotCi0gICAgcmV0dXJuIGJ1
ZmZlclN0cmluZy5zdGFydHNXaXRoKGxvd2VyU3RhcnQpOwotfQotCi1zdGF0aWMgYm9vbCBwYXJz
ZURvY1R5cGVEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmIGJ1ZmZlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCogcmVzdWx0RmxhZ3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTdHJpbmcmIHB1YmxpY0lELAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nJiBzeXN0ZW1JRCkKLXsKLSAgICBib29sIGhhdmVEb2NUeXBlID0g
ZmFsc2U7Ci0gICAgKnJlc3VsdEZsYWdzID0gMDsKLQotICAgIC8vIFNraXAgdGhyb3VnaCBhbnkg
Y29tbWVudHMgYW5kIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLgotICAgIGludCBpbmRleCA9IDA7
Ci0gICAgZG8gewotICAgICAgICBpbmRleCA9IGJ1ZmZlci5maW5kKCc8JywgaW5kZXgpOwotICAg
ICAgICBpZiAoaW5kZXggPT0gLTEpIGJyZWFrOwotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1
ZmZlcltpbmRleCsxXTsKLSAgICAgICAgaWYgKG5leHRDaGFyID09ICchJykgewotICAgICAgICAg
ICAgaWYgKGNvbnRhaW5zU3RyaW5nKCJkb2N0eXBlIiwgYnVmZmVyLCBpbmRleCsyKSkgewotICAg
ICAgICAgICAgICAgIGhhdmVEb2NUeXBlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpbmRleCAr
PSA5OyAvLyBTa2lwICI8IURPQ1RZUEUiCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLGluZGV4
KTsKLSAgICAgICAgICAgIGluZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZSBpZiAobmV4dENoYXIgPT0gJz8nKQotICAgICAgICAgICAgaW5kZXgg
PSBidWZmZXIuZmluZCgnPicsIGluZGV4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgfSB3aGlsZSAoaW5kZXggIT0gLTEpOwotCi0gICAgaWYgKCFoYXZlRG9jVHlwZSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZF
X0RPQ1RZUEU7Ci0KLSAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCk7
Ci0gICAgaWYgKCFjb250YWluc1N0cmluZygiaHRtbCIsIGJ1ZmZlciwgaW5kZXgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgbmFtZSA9IGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXgs
IDQpOwotICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIGluZGV4KzQpOwotICAg
IGJvb2wgaGFzUHVibGljID0gY29udGFpbnNTdHJpbmcoInB1YmxpYyIsIGJ1ZmZlciwgaW5kZXgp
OwotICAgIGlmIChoYXNQdWJsaWMpIHsKLSAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0
KGJ1ZmZlciwgaW5kZXgrNik7CisgICAgLy8gRklYTUU6IEl0J3MgdGVycmlibGUgdGhhdCB0aGlz
IGNvZGUgcnVucyBzZXBhcmF0ZWx5IGFuZCBpc24ndCBqdXN0IGJ1aWx0IGluIHRvIHRoZQorICAg
IC8vIEhUTUwgdG9rZW5pemVyL3BhcnNlci4KIAotICAgICAgICAvLyBXZSd2ZSByZWFkIDwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAobm90IGNhc2Ugc2Vuc2l0aXZlKS4KLSAgICAgICAgLy8gTm93IHdl
IGZpbmQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBwdWJsaWMgaWRlbnRpZmVycwotICAg
ICAgICAvLyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIChhc3N1bWluZyB0aGV5J3JlIGV2ZW4gcHJl
c2VudCkuCi0gICAgICAgIFVDaGFyIHRoZUNoYXIgPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBp
ZiAodGhlQ2hhciAhPSAnXCInICYmIHRoZUNoYXIgIT0gJ1wnJykKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIC8vIHxzdGFydHwgaXMgdGhlIGZpcnN0IGNoYXJh
Y3RlciAoYWZ0ZXIgdGhlIHF1b3RlKSBhbmQgfGVuZHwKLSAgICAgICAgLy8gaXMgdGhlIGZpbmFs
IHF1b3RlLCBzbyB0aGVyZSBhcmUgfGVuZHwtfHN0YXJ0fCBjaGFyYWN0ZXJzLgotICAgICAgICBp
bnQgcHVibGljSURTdGFydCA9IGluZGV4KzE7Ci0gICAgICAgIGludCBwdWJsaWNJREVuZCA9IGJ1
ZmZlci5maW5kKHRoZUNoYXIsIHB1YmxpY0lEU3RhcnQpOwotICAgICAgICBpZiAocHVibGljSURF
bmQgPT0gLTEpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGluZGV4ID0gcGFy
c2VEb2NUeXBlUGFydChidWZmZXIsIHB1YmxpY0lERW5kKzEpOwotICAgICAgICBVQ2hhciBuZXh0
ID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAgaWYgKG5leHQgPT0gJz4nKSB7Ci0gICAgICAgICAg
ICAvLyBQdWJsaWMgaWRlbnRpZmllciBwcmVzZW50LCBidXQgbm8gc3lzdGVtIGlkZW50aWZpZXIu
Ci0gICAgICAgICAgICAvLyBEbyBub3RoaW5nLiAgTm90ZSB0aGF0IHRoaXMgaXMgdGhlIG1vc3Qg
Y29tbW9uCi0gICAgICAgICAgICAvLyBjYXNlLgotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYg
KG5leHQgPT0gJ1wiJyB8fCBuZXh0ID09ICdcJycpIHsKLSAgICAgICAgICAgIC8vIFdlIGhhdmUg
YSBzeXN0ZW0gaWRlbnRpZmllci4KLSAgICAgICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1P
REVfSEFWRV9TWVNURU1fSUQ7Ci0gICAgICAgICAgICBpbnQgc3lzdGVtSURTdGFydCA9IGluZGV4
KzE7Ci0gICAgICAgICAgICBpbnQgc3lzdGVtSURFbmQgPSBidWZmZXIuZmluZChuZXh0LCBzeXN0
ZW1JRFN0YXJ0KTsKLSAgICAgICAgICAgIGlmIChzeXN0ZW1JREVuZCA9PSAtMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBzeXN0ZW1JRCA9IGJ1ZmZlci5zdWJz
dHJpbmcoc3lzdGVtSURTdGFydCwgc3lzdGVtSURFbmQgLSBzeXN0ZW1JRFN0YXJ0KTsKLSAgICAg
ICAgfQotICAgICAgICBlbHNlIGlmIChuZXh0ID09ICdbJykgewotICAgICAgICAgICAgLy8gV2Ug
Zm91bmQgYW4gaW50ZXJuYWwgc3Vic2V0LgotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBB
UlNFTU9ERV9IQVZFX0lOVEVSTkFMOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsgLy8gU29tZXRoaW5nJ3Mgd3JvbmcuCi0KLSAgICAgICAgLy8gV2Ug
bmVlZCB0byB0cmltIHdoaXRlc3BhY2Ugb2ZmIHRoZSBwdWJsaWMgaWRlbnRpZmllci4KLSAgICAg
ICAgcHVibGljSUQgPSBidWZmZXIuc3Vic3RyaW5nKHB1YmxpY0lEU3RhcnQsIHB1YmxpY0lERW5k
IC0gcHVibGljSURTdGFydCk7Ci0gICAgICAgIHB1YmxpY0lEID0gcHVibGljSUQuc3RyaXBXaGl0
ZVNwYWNlKCk7Ci0gICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9QVUJMSUNf
SUQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGNvbnRhaW5zU3RyaW5nKCJzeXN0ZW0iLCBi
dWZmZXIsIGluZGV4KSkgewotICAgICAgICAgICAgLy8gRG9jdHlwZSBoYXMgYSBzeXN0ZW0gSUQg
YnV0IG5vIHB1YmxpYyBJRAotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9I
QVZFX1NZU1RFTV9JRDsKLSAgICAgICAgICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZm
ZXIsIGluZGV4KzYpOwotICAgICAgICAgICAgVUNoYXIgbmV4dCA9IGJ1ZmZlcltpbmRleF07Ci0g
ICAgICAgICAgICBpZiAobmV4dCAhPSAnXCInICYmIG5leHQgIT0gJ1wnJykKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpbnQgc3lzdGVtSURTdGFydCA9IGluZGV4
KzE7Ci0gICAgICAgICAgICBpbnQgc3lzdGVtSURFbmQgPSBidWZmZXIuZmluZChuZXh0LCBzeXN0
ZW1JRFN0YXJ0KTsKLSAgICAgICAgICAgIGlmIChzeXN0ZW1JREVuZCA9PSAtMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBzeXN0ZW1JRCA9IGJ1ZmZlci5zdWJz
dHJpbmcoc3lzdGVtSURTdGFydCwgc3lzdGVtSURFbmQgLSBzeXN0ZW1JRFN0YXJ0KTsKLSAgICAg
ICAgICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIHN5c3RlbUlERW5kKzEpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgVUNoYXIgbmV4dENoYXIgPSBidWZmZXJbaW5kZXhdOwotICAg
ICAgICBpZiAobmV4dENoYXIgPT0gJ1snKQotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBB
UlNFTU9ERV9IQVZFX0lOVEVSTkFMOwotICAgICAgICBlbHNlIGlmIChuZXh0Q2hhciAhPSAnPicp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KLXZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJiBz
dHIpCi17CiAgICAgLy8gVGhpcyBjb2RlIG1vcmUgb3IgbGVzcyBtaW1pY3MgTW96aWxsYSdzIGlt
cGxlbWVudGF0aW9uIChzcGVjaWZpY2FsbHkgdGhlCiAgICAgLy8gZG9jdHlwZSBwYXJzaW5nIGlt
cGxlbWVudGVkIGJ5IERhdmlkIEJhcm9uIGluIE1vemlsbGEncyBuc1BhcnNlci5jcHApLgogICAg
IC8vCkBAIC01MDcsMjggKzM2NCwxOSBAQCB2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFy
c2VNb2RlKGNvCiAgICAgLy8gdG8gU1RBTkRBUkRTIG1vZGUuCiAgICAgLy8gU1RSSUNUIC0gbm8g
cXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwgb2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8K
ICAgICAvLyB0aGUgbGV0dGVyLgotCi0gICAgU3RyaW5nIG5hbWUsIHN5c3RlbUlELCBwdWJsaWNJ
RDsKLSAgICBpbnQgcmVzdWx0RmxhZ3MgPSAwOwotICAgIGlmIChwYXJzZURvY1R5cGVEZWNsYXJh
dGlvbihzdHIsICZyZXN1bHRGbGFncywgbmFtZSwgcHVibGljSUQsIHN5c3RlbUlEKSkgewotICAg
ICAgICBpZiAocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9ET0NUWVBFKQotICAgICAgICAg
ICAgc2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKHRoaXMsIG5hbWUsIHB1YmxpY0lELCBzeXN0
ZW1JRCkpOwotICAgICAgICBpZiAoIShyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0RPQ1RZ
UEUpKSB7Ci0gICAgICAgICAgICAvLyBObyBkb2N0eXBlIGZvdW5kIGF0IGFsbC4gIERlZmF1bHQg
dG8gcXVpcmtzIG1vZGUgYW5kIEh0bWw0LgotICAgICAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBh
dCk7Ci0gICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7Ci0gICAgICAgIH0KLSAgICAgICAg
ZWxzZSBpZiAoKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfSU5URVJOQUwpIHx8Ci0gICAg
ICAgICAgICAgICAgICEocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9QVUJMSUNfSUQpKSB7
Ci0gICAgICAgICAgICAvLyBJbnRlcm5hbCBzdWJzZXRzIGFsd2F5cyBkZW5vdGUgZnVsbCBzdGFu
ZGFyZHMsIGFzIGRvZXMKLSAgICAgICAgICAgIC8vIGEgZG9jdHlwZSB3aXRob3V0IGEgcHVibGlj
IElELgorICAgIGlmICghZG9jdHlwZSgpKSB7CisgICAgICAgIC8vIE5vIGRvY3R5cGUgZm91bmQg
YXQgYWxsLiAgRGVmYXVsdCB0byBxdWlya3MgbW9kZSBhbmQgSHRtbDQuCisgICAgICAgIHNldFBh
cnNlTW9kZShDb21wYXQpOworICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaWYgKGRvY3R5cGUoKS0+cHVibGljSWQoKS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIC8vIEEgZG9jdHlwZSB3aXRob3V0IGEgcHVibGljIElEIG1lYW5zIHVzZSBzdHJpY3Qg
bW9kZS4KICAgICAgICAgICAgIHNldFBhcnNlTW9kZShTdHJpY3QpOwogICAgICAgICAgICAgc2V0
SFRNTE1vZGUoSHRtbDQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgeworICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBjaGVjayBhIGxpc3Qgb2YgcHVibGljIElE
cyB0byBzZWUgd2hhdCB3ZQogICAgICAgICAgICAgLy8gc2hvdWxkIGRvLgotICAgICAgICAgICAg
U3RyaW5nIGxvd2VyUHViSUQgPSBwdWJsaWNJRC5sb3dlcigpOworICAgICAgICAgICAgU3RyaW5n
IGxvd2VyUHViSUQgPSBkb2N0eXBlKCktPnB1YmxpY0lkKCkubG93ZXIoKTsKICAgICAgICAgICAg
IENTdHJpbmcgcHViSURTdHIgPSBsb3dlclB1YklELmxhdGluMSgpOwogICAgICAgICAgICAKICAg
ICAgICAgICAgIC8vIExvb2sgdXAgdGhlIGVudHJ5IGluIG91ciBncGVyZi1nZW5lcmF0ZWQgdGFi
bGUuCkBAIC01NDAsMTAgKzM4OCw5IEBAIHZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJz
ZU1vZGUoY28KICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHN3aXRjaCAoKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEKSA/
Ci0gICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9zeXNpZCA6Ci0gICAg
ICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9ub19zeXNpZCkKLSAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZG9jdHlwZSgpLT5zeXN0ZW1JZCgpLmlzRW1wdHko
KSA/CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9ub19zeXNpZCA6
CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9zeXNpZCkgewogICAg
ICAgICAgICAgICAgIGNhc2UgUHViSURJbmZvOjplUXVpcmtzMzoKICAgICAgICAgICAgICAgICAg
ICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7CiAgICAgICAgICAgICAgICAgICAgIHNldEhUTUxNb2Rl
KEh0bWwzKTsKQEAgLTU2MSwxNCArNDA4LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OmRldGVybWlu
ZVBhcnNlTW9kZShjbwogICAgICAgICAgICAgfQogICAgICAgICB9ICAgCiAgICAgfQotICAgIGVs
c2UgewotICAgICAgICAvLyBNYWxmb3JtZWQgZG9jdHlwZSBpbXBsaWVzIHF1aXJrcyBtb2RlLgot
ICAgICAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsKLSAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDMp
OwotICAgIH0KLSAgCiAgICAgc3R5bGVTZWxlY3RvcigpLT5zdHJpY3RQYXJzaW5nID0gIWluQ29t
cGF0TW9kZSgpOwotIAogfQogICAgIAogfQpJbmRleDogaHRtbC9IVE1MRG9jdW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBodG1sL0hUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAzMDMxOCkKKysrIGh0bWwv
SFRNTERvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQoY29uc3QgU3Ry
aW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJt
aW5lUGFyc2VNb2RlKGNvbnN0IFN0cmluZyYpOwotCiAgICAgdm9pZCBhZGROYW1lZEl0ZW0oY29u
c3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZU5hbWVkSXRlbShjb25zdCBTdHJpbmcm
IG5hbWUpOwogICAgIGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7CkBAIC04
MSw2ICs3OSw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmdJbXBsKiwg
aW50PiBOYW1lQ291bnRNYXA7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJt
aW5lUGFyc2VNb2RlKCk7CisKIHByaXZhdGU6CiAgICAgTmFtZUNvdW50TWFwIG5hbWVkSXRlbUNv
dW50czsKICAgICBOYW1lQ291bnRNYXAgZG9jRXh0cmFOYW1lZEl0ZW1Db3VudHM7CkluZGV4OiBo
dG1sL0hUTUxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFBhcnNlci5jcHAJKHJl
dmlzaW9uIDMwMzE4KQorKysgaHRtbC9IVE1MUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
b21tZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkBAIC0yNzEsNiArMjcyLDE2IEBAIFBhc3NS
ZWZQdHI8Tm9kZT4gSFRNTFBhcnNlcjo6cGFyc2VUb2tlbigKICAgICByZXR1cm4gbjsKIH0KIAor
dm9pZCBIVE1MUGFyc2VyOjpwYXJzZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qIHQpCit7Cisg
ICAgLy8gSWdub3JlIGFueSBkb2N0eXBlIGFmdGVyIHRoZSBmaXJzdC4gIElnbm9yZSBkb2N0eXBl
cyBpbiBmcmFnbWVudHMuCisgICAgaWYgKGRvY3VtZW50LT5kb2N0eXBlKCkgfHwgbV9pc1BhcnNp
bmdGcmFnbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAvLyBNYWtlIGEgbmV3
IGRvY3R5cGUgbm9kZSBhbmQgc2V0IGl0IGFzIG91ciBkb2N0eXBlLgorICAgIGRvY3VtZW50LT5z
ZXREb2NUeXBlKG5ldyBEb2N1bWVudFR5cGUoZG9jdW1lbnQsIHQtPm5hbWUoKSwgdC0+cHVibGlj
SUQoKSwgdC0+c3lzdGVtSUQoKSkpOworfQorCiBzdGF0aWMgYm9vbCBpc1RhYmxlU2VjdGlvbihO
b2RlKiBuKQogewogICAgIHJldHVybiBuLT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBuLT5oYXNU
YWdOYW1lKHRmb290VGFnKSB8fCBuLT5oYXNUYWdOYW1lKHRoZWFkVGFnKTsKSW5kZXg6IGh0bWwv
SFRNTFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFBhcnNlci5oCShyZXZpc2lvbiAz
MDMxOCkKKysrIGh0bWwvSFRNTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdHlwZVRva2VuOwogY2xhc3Mg
RG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTERvY3VtZW50OwpA
QCAtNTcsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgICovCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBw
YXJzZVRva2VuKFRva2VuKik7CiAgICAgCisgICAgLy8gUGFyc2VzIGEgZG9jdHlwZSB0b2tlbi4K
KyAgICB2b2lkIHBhcnNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiopOworCiAgICAgLyoqCiAg
ICAgICogdG9rZW5pemVyIHNheXMgaXQncyBub3QgZ29pbmcgdG8gYmUgc2VuZGluZyB1cyBhbnkg
bW9yZSB0b2tlbnMKICAgICAgKi8KSW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBodG1s
L0hUTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw5IEBAIGNvbnN0
IGRvdWJsZSB0b2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsKICNlbmRpZgogCiBzdGF0aWMgY29u
c3QgY2hhciBjb21tZW50U3RhcnQgW10gPSAiPCEtLSI7CitzdGF0aWMgY29uc3QgY2hhciBkb2N0
eXBlU3RhcnQgW10gPSAiPCFkb2N0eXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyIHB1YmxpY1N0YXJ0
IFtdID0gInB1YmxpYyI7CitzdGF0aWMgY29uc3QgY2hhciBzeXN0ZW1TdGFydCBbXSA9ICJzeXN0
ZW0iOwogc3RhdGljIGNvbnN0IGNoYXIgc2NyaXB0RW5kIFtdID0gIjwvc2NyaXB0IjsKIHN0YXRp
YyBjb25zdCBjaGFyIHhtcEVuZCBbXSA9ICI8L3htcCI7CiBzdGF0aWMgY29uc3QgY2hhciBzdHls
ZUVuZCBbXSA9ICAiPC9zdHlsZSI7CkBAIC0yMjIsNiArMjI1LDkgQEAgdm9pZCBIVE1MVG9rZW5p
emVyOjpyZXNldCgpCiAgICAgbV9zdGF0ZS5zZXRGb3JjZVN5bmNocm9ub3VzKGZhbHNlKTsKIAog
ICAgIGN1cnJUb2tlbi5yZXNldCgpOworICAgIG1fZG9jdHlwZVRva2VuLnJlc2V0KCk7CisgICAg
bV9kb2N0eXBlU2VhcmNoQ291bnQgPSAwOworICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENv
dW50ID0gMDsKIH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjpiZWdpbigpCkBAIC04NDQsNiArODUw
LDE3MyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgcmV0
dXJuIHN0YXRlOwogfQogCitIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJz
ZURvY3R5cGUoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQoreworICAgIEFTU0VS
VChzdGF0ZS5pbkRvY3R5cGUoKSk7CisgICAgd2hpbGUgKCFzcmMuaXNFbXB0eSgpICYmIHN0YXRl
LmluRG9jdHlwZSgpKSB7CisgICAgICAgIFVDaGFyIGMgPSAqc3JjOworICAgICAgICBib29sIGlz
V2hpdGVzcGFjZSA9IGMgPT0gJ1xyJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnIHx8IGMgPT0g
JyAnOworICAgICAgICBzd2l0Y2ggKG1fZG9jdHlwZVRva2VuLnN0YXRlKCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgRG9jdHlwZUJlZ2luOiB7CisgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4u
c2V0U3RhdGUoRG9jdHlwZUJlZm9yZU5hbWUpOworICAgICAgICAgICAgICAgIGlmIChpc1doaXRl
c3BhY2UpCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERv
Y3R5cGVCZWZvcmVOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIE1hbGZvcm1lZC4gIEp1c3QgZXhpdC4KKyAgICAgICAgICAgICAg
ICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBz
dGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNX
aGl0ZXNwYWNlKQorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4uc2V0U3RhdGUoRG9jdHlwZU5hbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlTmFtZTogeworICAgICAgICAgICAgICAg
IGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBF
bWl0IGl0LgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7
CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAg
ICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFy
Y2hDb3VudCA9IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFBVQkxJQworICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7IC8vIFVzZWQgbm93IHRv
IHNjYW4gZm9yIFNZU1RFTQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRT
dGF0ZShEb2N0eXBlQWZ0ZXJOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2Uo
bV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVRva2VuLm1fbmFtZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBl
QWZ0ZXJOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAg
ICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQuCisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUu
c2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVU
b2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzV2hpdGVzcGFjZSkgeworICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChVbmljb2RlOjp0b0xvd2VyKGMpID09IHB1YmxpY1N0YXJ0W21fZG9jdHlw
ZVNlYXJjaENvdW50XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNo
Q291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3Vu
dCA9PSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICdQVUJMSUMnIHNl
cXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3Rh
dGUoRG9jdHlwZUJlZm9yZVB1YmxpY0lEKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChtX2RvY3R5cGVTZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVNlYXJjaENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlw
ZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoVW5pY29kZTo6dG9Mb3dlcihjKSA9PSBzeXN0ZW1TdGFydFttX2RvY3R5cGVTZWFyY2hD
b3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJj
aENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2Vjb25kYXJ5
U2VhcmNoQ291bnQgPT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAn
U1lTVEVNJyBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRv
a2VuLnNldFN0YXRlKERvY3R5cGVCZWZvcmVTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFy
Y2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRT
dGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7
IC8vIFdoaXRlc3BhY2Uga2VlcHMgdXMgaW4gdGhlIGFmdGVyIG5hbWUgc3RhdGUuCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVC
ZWZvcmVQdWJsaWNJRDogeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAn
XCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1
b3RlIDogU2luZ2xlUXVvdGU7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNl
dFN0YXRlKERvY3R5cGVQdWJsaWNJRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNl
UGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNz
IHRoZSBkb2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXds
aW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3Vz
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNh
c2UgRG9jdHlwZVB1YmxpY0lEOiB7CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdcIicgJiYg
dHF1b3RlID09IERvdWJsZVF1b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVR
dW90ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgp
OworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0
ZXJQdWJsaWNJRCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAg
ICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhl
IGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5t
X3B1YmxpY0lELmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9s
aW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRlclB1YmxpY0lEOgorICAg
ICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7Cisg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVTeXN0ZW1J
RCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAgICAgICAgICAgICBzcmMu
YWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldElu
RG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4o
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBl
Qm9ndXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBl
QmVmb3JlU3lzdGVtSUQ6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdc
JycpIHsKKyAgICAgICAgICAgICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVv
dGUgOiBTaW5nbGVRdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0
U3RhdGUoRG9jdHlwZVN5c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQ
YXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3Mg
dGhlIGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAg
ICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlU3lzdGVt
SUQ6CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdcIicgJiYgdHF1b3RlID09IERvdWJsZVF1
b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVRdW90ZSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJTeXN0ZW1JRCk7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAg
Ly8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3N5c3RlbUlELmFwcGVuZChj
KTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERv
Y3R5cGVBZnRlclN5c3RlbUlEOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAg
ICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0IG5vdy4KKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9j
ZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3Bh
Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4u
c2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgRG9jdHlwZUJvZ3VzOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+Jykgewor
ICAgICAgICAgICAgICAgICAgICAvLyBEb25lIHdpdGggdGhlIGJvZ3VzIGRvY3R5cGUuCisgICAg
ICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsgLy8gSnVz
dCBrZWVwIHNjYW5uaW5nIGZvciAnPicKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIHN0YXRlOworfQorCiBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVy
OjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcgJnNyYywgU3RhdGUgc3RhdGUpCiB7CiAgICAgQVNT
RVJUKCFzdGF0ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKQEAgLTg2MiwxOSArMTAzNSwxMCBAQCBIVE1M
VG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBUYWdOYW1lOgogICAgICAgICB7Ci0jaWYgZGVmaW5lZChUT0tFTl9ERUJVRykgJiYgVE9L
RU5fREVCVUcgPiAxCi0gICAgICAgICAgICBxRGVidWcoIlRhZ05hbWUiKTsKLSNlbmRpZgotICAg
ICAgICAgICAgaWYgKHNlYXJjaENvdW50ID4gMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKQotICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAg
ICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHNlYXJjaENvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3Vu
dCA9PSA0KQotICAgICAgICAgICAgICAgICAgICB7Ci0jaWZkZWYgVE9LRU5fREVCVUcKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGtkRGVidWcoIDYwMzYgKSA8PCAiRm91bmQgY29tbWVudCIgPDwg
ZW5kbDsKLSNlbmRpZgorICAgICAgICAgICAgICAgICAgICBpZiAoc2VhcmNoQ291bnQgPT0gNCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgJzwhLS0nIHNlcXVlbmNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0ID0gYnVmZmVyOyAvLyBpZ25vcmUgdGhlIHByZXZpb3VzIHBh
cnQgb2YgdGhpcyB0YWcKQEAgLTg4NSwxMiArMTA0OSwxMSBAQCBIVE1MVG9rZW5pemVyOjpTdGF0
ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyA8IS0tPiBh
cyBhIHZhbGlkIGNvbW1lbnQsIHNpbmNlIGJvdGggbW96aWxsYSBhbmQgSUUgb24gd2luZG93cwog
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGhhbmRsZSB0aGlzIGNhc2UuICBPbmx5IGRv
IHRoaXMgaW4gcXVpcmtzIG1vZGUuIC1kd2gKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
c3JjLmlzRW1wdHkoKSAmJiAqc3JjID09ICc+JyAmJiBtX2RvYy0+aW5Db21wYXRNb2RlKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Db21tZW50KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNyYy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluQ29tbWVudChmYWxzZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghc3JjLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBh
cnNlQ29tbWVudChzcmMsIHN0YXRlKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgbV9jQnVm
ZmVyUG9zID0gY0J1ZmZlclBvczsKQEAgLTg5OSw5ICsxMDYyLDI5IEBAIEhUTUxUb2tlbml6ZXI6
OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltj
QnVmZmVyUG9zKytdID0gKnNyYzsKICAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0
Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAwOyAvLyBTdG9wIGxv
b2tpbmcgZm9yICc8IS0tJyBzZXF1ZW5jZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPiAwKSB7CisgICAgICAgICAgICAg
ICAgaWYgKFVuaWNvZGU6OnRvTG93ZXIoKnNyYykgPT0gZG9jdHlwZVN0YXJ0W3NlYXJjaENvdW50
XSkgeworICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCsrOworICAgICAgICAgICAgICAg
ICAgICBpZiAoc2VhcmNoQ291bnQgPT0gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
Rm91bmQgJzwhRE9DVFlQRScgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5h
ZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNl
dEluRG9jdHlwZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldFRhZ1N0
YXRlKE5vVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnJlc2V0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlRG9jdHlwZShzcmMsIHN0
YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNCdWZmZXJQb3M7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsK
KyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2lu
ZyBmb3IgJzwhLS0nIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJj
aENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCFET0NUWVBFJyBzZXF1ZW5jZQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBib29sIGZpbmlzaCA9IGZhbHNlOwpAQCAtMTQwNCw2
ICsxNTg3LDggQEAgYm9vbCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZQogICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwogICAgICAgICAg
ICAgZWxzZSBpZiAoc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBw
YXJzZUNvbW1lbnQoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkRv
Y3R5cGUoKSkKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlRG9jdHlwZShzcmMsIHN0YXRl
KTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluU2VydmVyKCkpCiAgICAgICAgICAgICAg
ICAgc3RhdGUgPSBwYXJzZVNlcnZlcihzcmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KHN0YXRlLmluUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpCkBAIC0xNDE3LDkgKzE2MDIsOSBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlCiAgICAgICAgICAgICAgICAg
Y2FzZSAnLyc6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNh
c2UgJyEnOiB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIDwhLS0gY29tbWVudCAtLT4KLSAgICAg
ICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAxOyAvLyBMb29rIGZvciAnPCEtLScgc2VxdWVu
Y2UgdG8gc3RhcnQgY29tbWVudAotICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgLy8gPCEtLSBjb21tZW50IC0tPiBvciA8IURPQ1RZUEUgLi4uPgorICAgICAgICAgICAg
ICAgICAgICBzZWFyY2hDb3VudCA9IDE7IC8vIExvb2sgZm9yICc8IS0tJyBzZXF1ZW5jZSB0byBz
dGFydCBjb21tZW50IG9yICc8IURPQ1RZUEUnIHNlcXVlbmNlIHRvIHN0YXJ0IGRvY3R5cGUKKyAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAxOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSAn
Pyc6IHsKQEAgLTE1NjUsNyArMTc1MCw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6ZW5kKCkKIHZv
aWQgSFRNTFRva2VuaXplcjo6ZmluaXNoKCkKIHsKICAgICAvLyBkbyB0aGlzIGFzIGxvbmcgYXMg
d2UgZG9uJ3QgZmluZCBtYXRjaGluZyBjb21tZW50IGVuZHMKLSAgICB3aGlsZSgobV9zdGF0ZS5p
bkNvbW1lbnQoKSB8fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUgJiYgc2NyaXB0
Q29kZVNpemUpIHsKKyAgICB3aGlsZSAoKG1fc3RhdGUuaW5Db21tZW50KCkgfHwgbV9zdGF0ZS5p
blNlcnZlcigpKSAmJiBzY3JpcHRDb2RlICYmIHNjcmlwdENvZGVTaXplKSB7CiAgICAgICAgIC8v
IHdlJ3ZlIGZvdW5kIGFuIHVubWF0Y2hlZCBjb21tZW50IHN0YXJ0CiAgICAgICAgIGlmIChtX3N0
YXRlLmluQ29tbWVudCgpKQogICAgICAgICAgICAgYnJva2VuQ29tbWVudHMgPSB0cnVlOwpAQCAt
MTYzNCw2ICsxODE5LDEzIEBAIFBhc3NSZWZQdHI8Tm9kZT4gSFRNTFRva2VuaXplcjo6cHJvY2Vz
c1QKICAgICByZXR1cm4gbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSFRNTFRva2VuaXplcjo6cHJv
Y2Vzc0RvY3R5cGVUb2tlbigpCit7CisgICAgLy8gRklYTUU6IFdlIGRvbid0IHdvcmsgd2l0aCB2
aWV3IHNvdXJjZSB5ZXQuCisgICAgaWYgKCFpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgIHBh
cnNlci0+cGFyc2VEb2N0eXBlVG9rZW4oJm1fZG9jdHlwZVRva2VuKTsKK30KKwogSFRNTFRva2Vu
aXplcjo6fkhUTUxUb2tlbml6ZXIoKQogewogICAgIEFTU0VSVCghaW5Xcml0ZSk7CkluZGV4OiBo
dG1sL0hUTUxUb2tlbml6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxUb2tlbml6ZXIuaAko
cmV2aXNpb24gMzAzMTgpCisrKyBodG1sL0hUTUxUb2tlbml6ZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtODMsNiArODMsNDcgQEAgcHVibGljOgogICAgIE93blB0cjxWZWN0b3I8VUNoYXI+ID4gbV9z
b3VyY2VJbmZvOwogfTsKIAorZW51bSBEb2N0eXBlU3RhdGUgeworICAgIERvY3R5cGVCZWdpbiwK
KyAgICBEb2N0eXBlQmVmb3JlTmFtZSwKKyAgICBEb2N0eXBlTmFtZSwKKyAgICBEb2N0eXBlQWZ0
ZXJOYW1lLAorICAgIERvY3R5cGVCZWZvcmVQdWJsaWNJRCwKKyAgICBEb2N0eXBlUHVibGljSUQs
CisgICAgRG9jdHlwZUFmdGVyUHVibGljSUQsCisgICAgRG9jdHlwZUJlZm9yZVN5c3RlbUlELAor
ICAgIERvY3R5cGVTeXN0ZW1JRCwKKyAgICBEb2N0eXBlQWZ0ZXJTeXN0ZW1JRCwKKyAgICBEb2N0
eXBlQm9ndXMKK307CisKK2NsYXNzIERvY3R5cGVUb2tlbiB7CitwdWJsaWM6CisgICAgRG9jdHlw
ZVRva2VuKCkKKyAgICB7fQorICAgIAorICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIG1fbmFt
ZS5jbGVhcigpOworICAgICAgICBtX3B1YmxpY0lELmNsZWFyKCk7CisgICAgICAgIG1fc3lzdGVt
SUQuY2xlYXIoKTsKKyAgICAgICAgbV9icm9rZW4gPSBmYWxzZTsKKyAgICAgICAgbV9zdGF0ZSA9
IERvY3R5cGVCZWdpbjsKKyAgICB9CisKKyAgICBEb2N0eXBlU3RhdGUgc3RhdGUoKSB7IHJldHVy
biBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRTdGF0ZShEb2N0eXBlU3RhdGUgcykgeyBtX3N0YXRl
ID0gczsgfQorCisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBTdHJpbmcobV9uYW1l
LmRhdGEoKSwgbV9uYW1lLnNpemUoKSk7IH0KKyAgICBTdHJpbmcgcHVibGljSUQoKSBjb25zdCB7
IHJldHVybiBTdHJpbmcobV9wdWJsaWNJRC5kYXRhKCksIG1fcHVibGljSUQuc2l6ZSgpKTsgfQor
ICAgIFN0cmluZyBzeXN0ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZyhtX3N5c3RlbUlELmRh
dGEoKSwgbV9zeXN0ZW1JRC5zaXplKCkpOyB9CisKKyAgICBWZWN0b3I8VUNoYXI+IG1fbmFtZTsK
KyAgICBWZWN0b3I8VUNoYXI+IG1fcHVibGljSUQ7CisgICAgVmVjdG9yPFVDaGFyPiBtX3N5c3Rl
bUlEOworICAgIGJvb2wgbV9icm9rZW47CisgICAgRG9jdHlwZVN0YXRlIG1fc3RhdGU7Cit9Owor
CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGNsYXNzIEhUTUxUb2tlbml6ZXIgOiBwdWJsaWMg
VG9rZW5pemVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpAQCAtMTE4LDEwICsxNTks
MTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuZCgpOwogCiAgICAgdm9pZCByZXNldCgpOworCiAg
ICAgUGFzc1JlZlB0cjxOb2RlPiBwcm9jZXNzVG9rZW4oKTsKKyAgICB2b2lkIHByb2Nlc3NEb2N0
eXBlVG9rZW4oKTsKIAogICAgIFN0YXRlIHByb2Nlc3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZywg
U3RhdGUpOwogICAgIFN0YXRlIHBhcnNlQ29tbWVudChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7
CisgICAgU3RhdGUgcGFyc2VEb2N0eXBlKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBT
dGF0ZSBwYXJzZVNlcnZlcihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFy
c2VUZXh0KFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVNwZWNpYWwo
U2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwpAQCAtMjIwLDYgKzI2NCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIHZvaWQgc2V0SW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oYm9vbCB2KSB7IHJldHVybiBz
ZXRCaXQoSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIHYpOyB9CiAgICAgICAgIGJvb2wgaW5Db21t
ZW50KCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJbkNvbW1lbnQpOyB9CiAgICAgICAgIHZvaWQg
c2V0SW5Db21tZW50KGJvb2wgdikgeyBzZXRCaXQoSW5Db21tZW50LCB2KTsgfQorICAgICAgICBi
b29sIGluRG9jdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5Eb2N0eXBlKTsgfQorICAg
ICAgICB2b2lkIHNldEluRG9jdHlwZShib29sIHYpIHsgc2V0Qml0KEluRG9jdHlwZSwgdik7IH0K
ICAgICAgICAgYm9vbCBpblRleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJblRleHRB
cmVhKTsgfQogICAgICAgICB2b2lkIHNldEluVGV4dEFyZWEoYm9vbCB2KSB7IHNldEJpdChJblRl
eHRBcmVhLCB2KTsgfQogICAgICAgICBib29sIGVzY2FwZWQoKSBjb25zdCB7IHJldHVybiB0ZXN0
Qml0KEVzY2FwZWQpOyB9CkBAIC0yNDMsNyArMjg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9v
bCBoYXNUYWdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFRhZ01hc2s7IH0KICAgICAg
ICAgYm9vbCBoYXNFbnRpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIEVudGl0eU1h
c2s7IH0KIAotICAgICAgICBib29sIG5lZWRzU3BlY2lhbFdyaXRlSGFuZGxpbmcoKSBjb25zdCB7
IHJldHVybiBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRBcmVh
IHwgSW5UaXRsZSB8IEluSUZyYW1lIHwgVGFnTWFzayB8IEVudGl0eU1hc2sgfCBJblBsYWluVGV4
dCB8IEluQ29tbWVudCB8IEluU2VydmVyIHwgSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gfCBTdGFy
dFRhZyk7IH0KKyAgICAgICAgYm9vbCBuZWVkc1NwZWNpYWxXcml0ZUhhbmRsaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0IHwgSW5TdHlsZSB8IEluWG1wIHwgSW5UZXh0QXJl
YSB8IEluVGl0bGUgfCBJbklGcmFtZSB8IFRhZ01hc2sgfCBFbnRpdHlNYXNrIHwgSW5QbGFpblRl
eHQgfCBJbkNvbW1lbnQgfCBJbkRvY3R5cGUgfCBJblNlcnZlciB8IEluUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uIHwgU3RhcnRUYWcpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29u
c3QgaW50IEVudGl0eVNoaWZ0ID0gNDsKQEAgLTI2Nyw3ICszMTMsOCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgQWxsb3dZaWVsZCA9IDEgPDwgMjEsCiAgICAgICAgICAgICBMb2FkaW5nRXh0U2Ny
aXB0ID0gMSA8PCAyMiwKICAgICAgICAgICAgIEZvcmNlU3luY2hyb25vdXMgPSAxIDw8IDIzLAot
ICAgICAgICAgICAgSW5JRnJhbWUgPSAxIDw8IDI0CisgICAgICAgICAgICBJbklGcmFtZSA9IDEg
PDwgMjQsCisgICAgICAgICAgICBJbkRvY3R5cGUgPSAxIDw8IDI1CiAgICAgICAgIH07CiAKICAg
ICAgICAgdm9pZCBzZXRCaXQoU3RhdGVCaXRzIGJpdCwgYm9vbCB2YWx1ZSkKQEAgLTI4Myw2ICsz
MzAsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICAKKyAg
ICBEb2N0eXBlVG9rZW4gbV9kb2N0eXBlVG9rZW47CisgICAgaW50IG1fZG9jdHlwZVNlYXJjaENv
dW50OworICAgIGludCBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudDsKIAogICAgIGJvb2wg
YnJva2VuU2VydmVyOwogCkBAIC0zMDAsMTQgKzM1MSwxNCBAQCBwcml2YXRlOgogCiAgICAgLy8g
U3RvcmVzIGNoYXJhY3RlcnMgaWYgd2UgYXJlIHNjYW5uaW5nIGZvciBhIHN0cmluZyBsaWtlICI8
L3NjcmlwdD4iCiAgICAgVUNoYXIgc2VhcmNoQnVmZmVyWzEwXTsKKyAgICAKICAgICAvLyBDb3Vu
dHMgd2hlcmUgd2UgYXJlIGluIHRoZSBzdHJpbmcgd2UgYXJlIHNjYW5uaW5nIGZvcgogICAgIGlu
dCBzZWFyY2hDb3VudDsKLSAgICAvLyBUaGUgc3RyaW5nIHdlIGFyZSBzZWFyY2hpbmcgZm9yCi0g
ICAgY29uc3QgVUNoYXIqIHNlYXJjaEZvcjsKICAgICAvLyB0aGUgc3RvcHBlciBzdHJpbmcKICAg
ICBjb25zdCBjaGFyKiBzZWFyY2hTdG9wcGVyOwogICAgIC8vIHRoZSBzdG9wcGVyIGxlbgogICAg
IGludCBzZWFyY2hTdG9wcGVyTGVuOworICAgIAogICAgIC8vIGlmIG5vIG1vcmUgZGF0YSBpcyBj
b21pbmcsIGp1c3QgcGFyc2Ugd2hhdCB3ZSBoYXZlIChpbmNsdWRpbmcgZXh0IHNjcmlwdHMgdGhh
dAogICAgIC8vIG1heSBiZSBzdGlsbCBkb3dubG9hZGluZykgYW5kIGZpbmlzaAogICAgIGJvb2wg
bm9Nb3JlRGF0YTsKSW5kZXg6IGxvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODgsNyArOTg4LDYgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6d3JpdGUoY29uc3QgY2hhciogc3RyLAogCiAgICAgaWYgKCFtX3JlY2VpdmVkRGF0YSkg
ewogICAgICAgICBtX3JlY2VpdmVkRGF0YSA9IHRydWU7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmRldGVybWluZVBhcnNlTW9kZShkZWNvZGVkKTsKICAgICAgICAgaWYgKG1fZGVjb2Rl
ci0+ZW5jb2RpbmcoKS51c2VzVmlzdWFsT3JkZXJpbmcoKSkKICAgICAgICAgICAgIG1fZnJhbWUt
PmRvY3VtZW50KCktPnNldFZpc3VhbGx5T3JkZXJlZCgpOwogICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CkBAIC00ODEwLDcgKzQ4MDksNiBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzd2l0Y2hPdXRMb3dCYW5kd2lkdGhECiAgICAgICAgICAgICBpZiAo
bV9wZW5kaW5nU291cmNlSW5Mb3dCYW5kd2lkdGhEaXNwbGF5Lmxlbmd0aCgpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gc2V0IGNhY2hlUG9saWN5IHRvIENhY2hlIHRvIHVzZSB0aGUgbG9hZGVkIHJl
c291cmNlCiAgICAgICAgICAgICAgICAgbmV3RG9jLT5kb2NMb2FkZXIoKS0+c2V0Q2FjaGVQb2xp
Y3koQ2FjaGVQb2xpY3lDYWNoZSk7Ci0gICAgICAgICAgICAgICAgbmV3RG9jLT5kZXRlcm1pbmVQ
YXJzZU1vZGUobV9wZW5kaW5nU291cmNlSW5Mb3dCYW5kd2lkdGhEaXNwbGF5KTsKICAgICAgICAg
ICAgICAgICBpZiAobV9kZWNvZGVyLT5lbmNvZGluZygpLnVzZXNWaXN1YWxPcmRlcmluZygpKQog
ICAgICAgICAgICAgICAgICAgICBuZXdEb2MtPnNldFZpc3VhbGx5T3JkZXJlZCgpOyAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbmV3RG9jLT5yZWNhbGNTdHlsZShOb2RlOjpG
b3JjZSk7ICAgICAgICAgICAgICAgIApJbmRleDogcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDMwMzE4KQorKysgcGFnZS9GcmFtZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2OTUsNyArMTY5NSw3IEBAIHZvaWQgRnJhbWU6OmRpc2Nvbm5lY3RP
d25lckVsZW1lbnQoKQogU3RyaW5nIEZyYW1lOjpkb2N1bWVudFR5cGVTdHJpbmcoKSBjb25zdAog
ewogICAgIGlmIChEb2N1bWVudCAqZG9jID0gZG9jdW1lbnQoKSkKLSAgICAgICAgaWYgKERvY3Vt
ZW50VHlwZSAqZG9jdHlwZSA9IGRvYy0+cmVhbERvY1R5cGUoKSkKKyAgICAgICAgaWYgKERvY3Vt
ZW50VHlwZSAqZG9jdHlwZSA9IGRvYy0+ZG9jdHlwZSgpKQogICAgICAgICAgICAgcmV0dXJuIGRv
Y3R5cGUtPnRvU3RyaW5nKCk7CiAKICAgICByZXR1cm4gU3RyaW5nKCk7CkluZGV4OiBwYWdlL2lu
c3BlY3Rvci91dGlsaXRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9pbnNwZWN0b3IvdXRpbGl0
aWVzLmpzCShyZXZpc2lvbiAzMDMxOCkKKysrIHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwko
d29ya2luZyBjb3B5KQpAQCAtNDI1LDYgKzQyNSwxNiBAQCBmdW5jdGlvbiBub2RlRGlzcGxheU5h
bWUoKQogCiAgICAgICAgIGNhc2UgTm9kZS5DT01NRU5UX05PREU6CiAgICAgICAgICAgICByZXR1
cm4gIjwhLS0iICsgdGhpcy5ub2RlVmFsdWUgKyAiLS0+IjsKKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgdmFyIGRvY1R5cGUg
PSAiPCFET0NUWVBFICIgKyB0aGlzLm5vZGVOYW1lOworICAgICAgICAgICAgaWYgKHRoaXMucHVi
bGljSUQpCisgICAgICAgICAgICAgICAgZG9jVHlwZSArPSAiIFBVQkxJQyBcIiIgKyB0aGlzLnB1
YmxpY0lEICsgIiAiICsgdGhpcy5zeXN0ZW1JRCArICJcIiI7CisgICAgICAgICAgICBlbHNlIGlm
ICh0aGlzLnN5c3RlbUlEKQorICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBTWVNURU0gXCIi
ICsgdGhpcy5zeXN0ZW1JRCArICJcIiI7CisgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN1
YnNldCkKKyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIgWyIgKyB0aGlzLmludGVybmFsU3Vi
c2V0ICsgIl0iOworICAgICAgICAgICAgcmV0dXJuIGRvY1R5cGUgKyAiPiI7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5jb2xsYXBzZVdoaXRlc3BhY2Uo
KTsKQEAgLTY0Myw2ICs2NTMsMTYgQEAgZnVuY3Rpb24gbm9kZVRpdGxlSW5mbyhoYXNDaGlsZHJl
biwgbGluawogICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1o
dG1sLWNvbW1lbnRcIj4mbHQ7IS0tIiArIHRoaXMubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICIt
LSZndDs8L3NwYW4+IjsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgTm9kZS5E
T0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFuIGNsYXNz
PVwid2Via2l0LWh0bWwtdGFnXCI+Jmx0OyFET0NUWVBFICIgKyB0aGlzLm5vZGVOYW1lOworICAg
ICAgICAgICAgaWYgKHRoaXMucHVibGljSUQpCisgICAgICAgICAgICAgICAgaW5mby50aXRsZSAr
PSAiIFBVQkxJQyBcIiIgKyB0aGlzLnB1YmxpY0lEICsgIiAiICsgdGhpcy5zeXN0ZW1JRCArICJc
IiI7CisgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnN5c3RlbUlEKQorICAgICAgICAgICAgICAg
IGluZm8udGl0bGUgKz0gIiBTWVNURU0gXCIiICsgdGhpcy5zeXN0ZW1JRCArICJcIiI7CisgICAg
ICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN1YnNldCkKKyAgICAgICAgICAgICAgICBpbmZvLnRp
dGxlICs9ICIgWyIgKyB0aGlzLmludGVybmFsU3Vic2V0ICsgIl0iOworICAgICAgICAgICAgaW5m
by50aXRsZSArPSAiJmd0Ozwvc3Bhbj4iOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBpbmZvLnRpdGxlID0gdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2Fz
ZSgpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2FwZUhUTUwoKTsKICAgICB9CkluZGV4OiB4bWwv
WFNMVFByb2Nlc3Nvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL1hTTFRQcm9jZXNzb3IuY3BwCShy
ZXZpc2lvbiAzMDMxOCkKKysrIHhtbC9YU0xUUHJvY2Vzc29yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjU4LDcgKzI1OCw2IEBAIFJlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRl
RG8KICAgICAgICAgcmVzdWx0LT5zZXRVUkwob3duZXJEb2N1bWVudC0+dXJsKCkpOwogICAgICAg
ICByZXN1bHQtPnNldEJhc2VVUkwob3duZXJEb2N1bWVudC0+YmFzZVVSTCgpKTsKICAgICB9Ci0g
ICAgcmVzdWx0LT5kZXRlcm1pbmVQYXJzZU1vZGUoZG9jdW1lbnRTb3VyY2UpOyAvLyBNYWtlIHN1
cmUgd2UgcGFyc2UgaW4gdGhlIGNvcnJlY3QgbW9kZS4KICAgICAKICAgICBSZWZQdHI8VGV4dFJl
c291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IG5ldyBUZXh0UmVzb3VyY2VEZWNvZGVyKHNvdXJjZU1J
TUVUeXBlKTsKICAgICBkZWNvZGVyLT5zZXRFbmNvZGluZyhzb3VyY2VFbmNvZGluZy5pc0VtcHR5
KCkgPyBVVEY4RW5jb2RpbmcoKSA6IFRleHRFbmNvZGluZyhzb3VyY2VFbmNvZGluZyksIFRleHRS
ZXNvdXJjZURlY29kZXI6OkVuY29kaW5nRnJvbVhNTEhlYWRlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19147</attachid>
            <date>2008-02-15 15:52:31 -0800</date>
            <delta_ts>2008-02-18 06:37:49 -0800</delta_ts>
            <desc>Patch that gets Acid3 up to 84/100</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>37058</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKKyAgICBpZiAoZG9jdHlwZSkKICAgICAgICAg
ZG9jLT5zZXREb2NUeXBlKGRvY3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChk
b2MuZ2V0KCkpOwotICAgIH0KIAogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAg
ICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBx
dWFsaWZpZWROYW1lLCBlYykpOwpJbmRleDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBkb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAzMDMxOCkKKysrIGRvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3MSwxMiArNDcxLDE3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
QWN0aXZlTGlua0NvbG9yKCkKIAogdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRy
PERvY3VtZW50VHlwZT4gZG9jVHlwZSkKIHsKKyAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBj
YWxsZWQgbW9yZSB0aGFuIG9uY2UuCisgICAgLy8gTm90ZTogVGhpcyBpcyBub3QgYSBwdWJsaWMg
RE9NIG1ldGhvZCBhbmQgY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBwYXJzZXIuCisgICAgQVNT
RVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5cGUpOworICAgIGlmIChtX2RvY1R5cGUgJiYgZG9jVHlw
ZSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fZG9jVHlwZSA9IGRvY1R5cGU7Ci19Ci0KLURvY3Vt
ZW50VHlwZSAqRG9jdW1lbnQ6OmRvY3R5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX2RvY1R5
cGUuZ2V0KCk7CisgICAgaWYgKG1fZG9jVHlwZSkgeworICAgICAgICBtX2RvY1R5cGUtPnNldERv
Y3VtZW50KHRoaXMpOworICAgICAgICBhZGRDaGlsZChtX2RvY1R5cGUpOworICAgIH0KKyAgICBk
ZXRlcm1pbmVQYXJzZU1vZGUoKTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50Ojpp
bXBsZW1lbnRhdGlvbigpIGNvbnN0CkBAIC0xNjk4LDE0ICsxNzAzLDYgQEAgQ1NTU3R5bGVTaGVl
dCogRG9jdW1lbnQ6Om1hcHBlZEVsZW1lbnRTaAogICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRT
aGVldC5nZXQoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0
IFN0cmluZyYpCi17Ci0gICAgLy8gRm9yIFhNTCBkb2N1bWVudHMgdXNlIHN0cmljdCBwYXJzZSBt
b2RlLgotICAgIC8vIEhUTUwgb3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB0aGUg
cGFyc2UgbW9kZS4KLSAgICBwTW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9IFhIdG1sOwotfQot
CiBzdGF0aWMgTm9kZSogbmV4dE5vZGVXaXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50
IHRhYkluZGV4LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5j
bHVzaXZlIG9mIHN0YXJ0CkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20v
RG9jdW1lbnQuaAkocmV2aXNpb24gMzAzMTgpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTc4LDggKzE3OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYg
YXR0cmlidXRlcyBmb3IgRG9jdW1lbnQKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRUeXBlKiBkb2N0
eXBlKCkgY29uc3Q7IC8vIE1heSByZXR1cm4gMCBmb3IgSFRNTCBkb2N1bWVudHMKLSAgICBEb2N1
bWVudFR5cGUqIHJlYWxEb2NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9
CisgICAgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdl
dCgpOyB9CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0g
ZmFsc2UpOwpAQCAtNDAxLDggKzQwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGlu
Zyhib29sIHApIHsgbV9wcmludGluZyA9IHA7IH0KIAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29t
cGF0LCBBbG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRl
cm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJik7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFs
IHZvaWQgZGV0ZXJtaW5lUGFyc2VNb2RlKCkge307CisKK3B1YmxpYzoKICAgICB2b2lkIHNldFBh
cnNlTW9kZShQYXJzZU1vZGUgbSkgeyBwTW9kZSA9IG07IH0KICAgICBQYXJzZU1vZGUgcGFyc2VN
b2RlKCkgY29uc3QgeyByZXR1cm4gcE1vZGU7IH0KIApJbmRleDogZG9tL0RvY3VtZW50VHlwZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwMzE4KQor
KysgZG9tL0RvY3VtZW50VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw0ICsxMDUsMTEg
QEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZQogICAgIHJldHVybiAw
OwogfQogCit2b2lkIERvY3VtZW50VHlwZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAg
aWYgKGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+ZG9jdHlwZSgpID09IHRoaXMpCisgICAgICAg
IGRvY3VtZW50KCktPnNldERvY1R5cGUoMCk7CisgICAgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpOworfQorCiB9CkluZGV4OiBkb20vRG9jdW1lbnRUeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9t
L0RvY3VtZW50VHlwZS5oCShyZXZpc2lvbiAzMDMxOCkKKysrIGRvbS9Eb2N1bWVudFR5cGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwogICAgIHZpcnR1YWwgU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgp
OworCiBwcml2YXRlOgogICAgIFJlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gbV9pbXBsZW1lbnRh
dGlvbjsKICAgICBSZWZQdHI8TmFtZWROb2RlTWFwPiBtX2VudGl0aWVzOwpJbmRleDogZG9tL05v
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Ob2RlLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBk
b20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczNiw3ICs3MzYsNyBAQCBib29sIE5vZGU6
OmlzRGVzY2VuZGFudE9mKGNvbnN0IE5vZGUgKm90CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIE5vZGU6OmNoaWxkQWxsb3dlZCggTm9kZSAqbmV3Q2hpbGQgKQorYm9vbCBOb2RlOjpjaGls
ZEFsbG93ZWQoTm9kZSogbmV3Q2hpbGQpCiB7CiAgICAgcmV0dXJuIGNoaWxkVHlwZUFsbG93ZWQo
bmV3Q2hpbGQtPm5vZGVUeXBlKCkpOwogfQpJbmRleDogaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGh0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyBo
dG1sL0hUTUxEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Myw3ICsyNzMsNyBAQCBU
b2tlbml6ZXIgKkhUTUxEb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVyCiAKIGJvb2wgSFRNTERvY3Vt
ZW50OjpjaGlsZEFsbG93ZWQoTm9kZSAqbmV3Q2hpbGQpCiB7Ci0gICAgcmV0dXJuIG5ld0NoaWxk
LT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IG5ld0NoaWxkLT5pc0NvbW1lbnROb2RlKCk7CisgICAg
cmV0dXJuIG5ld0NoaWxkLT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IG5ld0NoaWxkLT5pc0NvbW1l
bnROb2RlKCkgfHwgbmV3Q2hpbGQtPm5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFOwog
fQogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChjb25z
dCBTdHJpbmcgJm5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzQ2LDE1NCArMzQ2LDExIEBA
IGJvb2wgSFRNTERvY3VtZW50OjpoYXNEb2NFeHRyYU5hbWVkSXRlbSgKICAgICByZXR1cm4gZG9j
RXh0cmFOYW1lZEl0ZW1Db3VudHMuZ2V0KG5hbWUuaW1wbCgpKSAhPSAwOwogfQogCi1jb25zdCBp
bnQgUEFSU0VNT0RFX0hBVkVfRE9DVFlQRSAgICAgICAgPSAgICAgICAoMTw8MCk7Ci1jb25zdCBp
bnQgUEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEICAgICAgPSAgICAgICAoMTw8MSk7Ci1jb25zdCBp
bnQgUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEICAgICAgPSAgICAgICAoMTw8Mik7Ci1jb25zdCBp
bnQgUEFSU0VNT0RFX0hBVkVfSU5URVJOQUwgICAgICAgPSAgICAgICAoMTw8Myk7Ci0KLXN0YXRp
YyBpbnQgcGFyc2VEb2NUeXBlUGFydChjb25zdCBTdHJpbmcmIGJ1ZmZlciwgaW50IGluZGV4KQor
dm9pZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9kZSgpCiB7Ci0gICAgd2hpbGUgKHRy
dWUpIHsKLSAgICAgICAgVUNoYXIgY2ggPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAoY2gg
PT0gJyAnIHx8IGNoID09ICdcdCcgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQotICAgICAg
ICAgICAgKytpbmRleDsKLSAgICAgICAgZWxzZSBpZiAoY2ggPT0gJy0nKSB7Ci0gICAgICAgICAg
ICBpbnQgdG1wSW5kZXg9aW5kZXg7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyW2luZGV4KzFdID09
ICctJyAmJgotICAgICAgICAgICAgICAgICgodG1wSW5kZXg9YnVmZmVyLmZpbmQoIi0tIiwgaW5k
ZXgrMikpICE9IC0xKSkKLSAgICAgICAgICAgICAgICBpbmRleCA9IHRtcEluZGV4KzI7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci19CisgICAgLy8g
RklYTUU6IEl0J3MgdGVycmlibGUgdGhhdCB0aGlzIGNvZGUgcnVucyBzZXBhcmF0ZWx5IGFuZCBp
c24ndCBqdXN0IGJ1aWx0IGluIHRvIHRoZQorICAgIC8vIEhUTUwgdG9rZW5pemVyL3BhcnNlci4K
IAotc3RhdGljIGJvb2wgY29udGFpbnNTdHJpbmcoY29uc3QgY2hhciogc3RyLCBjb25zdCBTdHJp
bmcmIGJ1ZmZlciwgaW50IG9mZnNldCkKLXsKLSAgICBTdHJpbmcgc3RhcnRTdHJpbmcoc3RyKTsK
LSAgICBpZiAob2Zmc2V0ICsgc3RhcnRTdHJpbmcubGVuZ3RoKCkgPiBidWZmZXIubGVuZ3RoKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJpbmcgYnVmZmVyU3RyaW5nID0g
YnVmZmVyLnN1YnN0cmluZyhvZmZzZXQsIHN0YXJ0U3RyaW5nLmxlbmd0aCgpKS5sb3dlcigpOwot
ICAgIFN0cmluZyBsb3dlclN0YXJ0ID0gc3RhcnRTdHJpbmcubG93ZXIoKTsKLQotICAgIHJldHVy
biBidWZmZXJTdHJpbmcuc3RhcnRzV2l0aChsb3dlclN0YXJ0KTsKLX0KLQotc3RhdGljIGJvb2wg
cGFyc2VEb2NUeXBlRGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBidWZmZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIHJlc3VsdEZsYWdzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU3RyaW5nJiBwdWJsaWNJRCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFN0cmluZyYgc3lzdGVtSUQpCi17Ci0gICAgYm9vbCBoYXZlRG9jVHlw
ZSA9IGZhbHNlOwotICAgICpyZXN1bHRGbGFncyA9IDA7Ci0KLSAgICAvLyBTa2lwIHRocm91Z2gg
YW55IGNvbW1lbnRzIGFuZCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucy4KLSAgICBpbnQgaW5kZXgg
PSAwOwotICAgIGRvIHsKLSAgICAgICAgaW5kZXggPSBidWZmZXIuZmluZCgnPCcsIGluZGV4KTsK
LSAgICAgICAgaWYgKGluZGV4ID09IC0xKSBicmVhazsKLSAgICAgICAgVUNoYXIgbmV4dENoYXIg
PSBidWZmZXJbaW5kZXgrMV07Ci0gICAgICAgIGlmIChuZXh0Q2hhciA9PSAnIScpIHsKLSAgICAg
ICAgICAgIGlmIChjb250YWluc1N0cmluZygiZG9jdHlwZSIsIGJ1ZmZlciwgaW5kZXgrMikpIHsK
LSAgICAgICAgICAgICAgICBoYXZlRG9jVHlwZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaW5k
ZXggKz0gOTsgLy8gU2tpcCAiPCFET0NUWVBFIgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlcixp
bmRleCk7Ci0gICAgICAgICAgICBpbmRleCA9IGJ1ZmZlci5maW5kKCc+JywgaW5kZXgpOwotICAg
ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHRDaGFyID09ICc/JykKLSAgICAgICAgICAgIGlu
ZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGJyZWFrOwotICAgIH0gd2hpbGUgKGluZGV4ICE9IC0xKTsKLQotICAgIGlmICghaGF2ZURvY1R5
cGUpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVf
SEFWRV9ET0NUWVBFOwotCi0gICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5k
ZXgpOwotICAgIGlmICghY29udGFpbnNTdHJpbmcoImh0bWwiLCBidWZmZXIsIGluZGV4KSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIG5hbWUgPSBidWZmZXIuc3Vic3RyaW5nKGlu
ZGV4LCA0KTsKLSAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCs0KTsK
LSAgICBib29sIGhhc1B1YmxpYyA9IGNvbnRhaW5zU3RyaW5nKCJwdWJsaWMiLCBidWZmZXIsIGlu
ZGV4KTsKLSAgICBpZiAoaGFzUHVibGljKSB7Ci0gICAgICAgIGluZGV4ID0gcGFyc2VEb2NUeXBl
UGFydChidWZmZXIsIGluZGV4KzYpOwotCi0gICAgICAgIC8vIFdlJ3ZlIHJlYWQgPCFET0NUWVBF
IEhUTUwgUFVCTElDIChub3QgY2FzZSBzZW5zaXRpdmUpLgotICAgICAgICAvLyBOb3cgd2UgZmlu
ZCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHB1YmxpYyBpZGVudGlmZXJzCi0gICAgICAg
IC8vIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgKGFzc3VtaW5nIHRoZXkncmUgZXZlbiBwcmVzZW50
KS4KLSAgICAgICAgVUNoYXIgdGhlQ2hhciA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlmICh0
aGVDaGFyICE9ICdcIicgJiYgdGhlQ2hhciAhPSAnXCcnKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAKLSAgICAgICAgLy8gfHN0YXJ0fCBpcyB0aGUgZmlyc3QgY2hhcmFjdGVy
IChhZnRlciB0aGUgcXVvdGUpIGFuZCB8ZW5kfAotICAgICAgICAvLyBpcyB0aGUgZmluYWwgcXVv
dGUsIHNvIHRoZXJlIGFyZSB8ZW5kfC18c3RhcnR8IGNoYXJhY3RlcnMuCi0gICAgICAgIGludCBw
dWJsaWNJRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgaW50IHB1YmxpY0lERW5kID0gYnVmZmVy
LmZpbmQodGhlQ2hhciwgcHVibGljSURTdGFydCk7Ci0gICAgICAgIGlmIChwdWJsaWNJREVuZCA9
PSAtMSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaW5kZXggPSBwYXJzZURv
Y1R5cGVQYXJ0KGJ1ZmZlciwgcHVibGljSURFbmQrMSk7Ci0gICAgICAgIFVDaGFyIG5leHQgPSBi
dWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAobmV4dCA9PSAnPicpIHsKLSAgICAgICAgICAgIC8v
IFB1YmxpYyBpZGVudGlmaWVyIHByZXNlbnQsIGJ1dCBubyBzeXN0ZW0gaWRlbnRpZmllci4KLSAg
ICAgICAgICAgIC8vIERvIG5vdGhpbmcuICBOb3RlIHRoYXQgdGhpcyBpcyB0aGUgbW9zdCBjb21t
b24KLSAgICAgICAgICAgIC8vIGNhc2UuCi0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAobmV4
dCA9PSAnXCInIHx8IG5leHQgPT0gJ1wnJykgewotICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIHN5
c3RlbSBpZGVudGlmaWVyLgotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9I
QVZFX1NZU1RFTV9JRDsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsK
LSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlE
U3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09IC0xKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmlu
ZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgaWYgKG5leHQgPT0gJ1snKSB7Ci0gICAgICAgICAgICAvLyBXZSBmb3Vu
ZCBhbiBpbnRlcm5hbCBzdWJzZXQuCi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VN
T0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOyAvLyBTb21ldGhpbmcncyB3cm9uZy4KLQotICAgICAgICAvLyBXZSBuZWVk
IHRvIHRyaW0gd2hpdGVzcGFjZSBvZmYgdGhlIHB1YmxpYyBpZGVudGlmaWVyLgotICAgICAgICBw
dWJsaWNJRCA9IGJ1ZmZlci5zdWJzdHJpbmcocHVibGljSURTdGFydCwgcHVibGljSURFbmQgLSBw
dWJsaWNJRFN0YXJ0KTsKLSAgICAgICAgcHVibGljSUQgPSBwdWJsaWNJRC5zdHJpcFdoaXRlU3Bh
Y2UoKTsKLSAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRDsK
LSAgICB9IGVsc2UgewotICAgICAgICBpZiAoY29udGFpbnNTdHJpbmcoInN5c3RlbSIsIGJ1ZmZl
ciwgaW5kZXgpKSB7Ci0gICAgICAgICAgICAvLyBEb2N0eXBlIGhhcyBhIHN5c3RlbSBJRCBidXQg
bm8gcHVibGljIElECi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVf
U1lTVEVNX0lEOwotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwg
aW5kZXgrNik7Ci0gICAgICAgICAgICBVQ2hhciBuZXh0ID0gYnVmZmVyW2luZGV4XTsKLSAgICAg
ICAgICAgIGlmIChuZXh0ICE9ICdcIicgJiYgbmV4dCAhPSAnXCcnKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsK
LSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlE
U3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09IC0xKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmlu
ZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAg
ICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgc3lzdGVtSURFbmQrMSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAg
IGlmIChuZXh0Q2hhciA9PSAnWycpCi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VN
T0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIGVsc2UgaWYgKG5leHRDaGFyICE9ICc+JykKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
dm9pZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmIHN0cikK
LXsKICAgICAvLyBUaGlzIGNvZGUgbW9yZSBvciBsZXNzIG1pbWljcyBNb3ppbGxhJ3MgaW1wbGVt
ZW50YXRpb24gKHNwZWNpZmljYWxseSB0aGUKICAgICAvLyBkb2N0eXBlIHBhcnNpbmcgaW1wbGVt
ZW50ZWQgYnkgRGF2aWQgQmFyb24gaW4gTW96aWxsYSdzIG5zUGFyc2VyLmNwcCkuCiAgICAgLy8K
QEAgLTUwNywyOCArMzY0LDE5IEBAIHZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1v
ZGUoY28KICAgICAvLyB0byBTVEFOREFSRFMgbW9kZS4KICAgICAvLyBTVFJJQ1QgLSBubyBxdWly
a3MgYXBwbHkuICBXZWIgcGFnZXMgd2lsbCBvYmV5IHRoZSBzcGVjaWZpY2F0aW9ucyB0bwogICAg
IC8vIHRoZSBsZXR0ZXIuCi0KLSAgICBTdHJpbmcgbmFtZSwgc3lzdGVtSUQsIHB1YmxpY0lEOwot
ICAgIGludCByZXN1bHRGbGFncyA9IDA7Ci0gICAgaWYgKHBhcnNlRG9jVHlwZURlY2xhcmF0aW9u
KHN0ciwgJnJlc3VsdEZsYWdzLCBuYW1lLCBwdWJsaWNJRCwgc3lzdGVtSUQpKSB7Ci0gICAgICAg
IGlmIChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEUpCi0gICAgICAgICAgICBz
ZXREb2NUeXBlKG5ldyBEb2N1bWVudFR5cGUodGhpcywgbmFtZSwgcHVibGljSUQsIHN5c3RlbUlE
KSk7Ci0gICAgICAgIGlmICghKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfRE9DVFlQRSkp
IHsKLSAgICAgICAgICAgIC8vIE5vIGRvY3R5cGUgZm91bmQgYXQgYWxsLiAgRGVmYXVsdCB0byBx
dWlya3MgbW9kZSBhbmQgSHRtbDQuCi0gICAgICAgICAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsK
LSAgICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKLSAgICAgICAgfQotICAgICAgICBlbHNl
IGlmICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTCkgfHwKLSAgICAgICAg
ICAgICAgICAgIShyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRCkpIHsKLSAg
ICAgICAgICAgIC8vIEludGVybmFsIHN1YnNldHMgYWx3YXlzIGRlbm90ZSBmdWxsIHN0YW5kYXJk
cywgYXMgZG9lcwotICAgICAgICAgICAgLy8gYSBkb2N0eXBlIHdpdGhvdXQgYSBwdWJsaWMgSUQu
CisgICAgaWYgKCFkb2N0eXBlKCkpIHsKKyAgICAgICAgLy8gTm8gZG9jdHlwZSBmb3VuZCBhdCBh
bGwuICBEZWZhdWx0IHRvIHF1aXJrcyBtb2RlIGFuZCBIdG1sNC4KKyAgICAgICAgc2V0UGFyc2VN
b2RlKENvbXBhdCk7CisgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZiAoZG9jdHlwZSgpLT5wdWJsaWNJZCgpLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgLy8gQSBkb2N0eXBlIHdpdGhvdXQgYSBwdWJsaWMgSUQgbWVhbnMgdXNlIHN0cmljdCBtb2Rl
LgogICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7CiAgICAgICAgICAgICBzZXRIVE1M
TW9kZShIdG1sNCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRv
IHNlZSB3aGF0IHdlCiAgICAgICAgICAgICAvLyBzaG91bGQgZG8uCi0gICAgICAgICAgICBTdHJp
bmcgbG93ZXJQdWJJRCA9IHB1YmxpY0lELmxvd2VyKCk7CisgICAgICAgICAgICBTdHJpbmcgbG93
ZXJQdWJJRCA9IGRvY3R5cGUoKS0+cHVibGljSWQoKS5sb3dlcigpOwogICAgICAgICAgICAgQ1N0
cmluZyBwdWJJRFN0ciA9IGxvd2VyUHViSUQubGF0aW4xKCk7CiAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gTG9vayB1cCB0aGUgZW50cnkgaW4gb3VyIGdwZXJmLWdlbmVyYXRlZCB0YWJsZS4K
QEAgLTU0MCwxMCArMzg4LDkgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9k
ZShjbwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgc3dpdGNoICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQpID8KLSAg
ICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkIDoKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkKQotICAgICAgICAgICAg
eworICAgICAgICAgICAgc3dpdGNoIChkb2N0eXBlKCktPnN5c3RlbUlkKCkuaXNFbXB0eSgpID8K
KyAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkIDoKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBQdWJJREluZm86OmVRdWlya3MzOgogICAgICAgICAgICAgICAgICAgICBz
ZXRQYXJzZU1vZGUoQ29tcGF0KTsKICAgICAgICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRt
bDMpOwpAQCAtNTYxLDE0ICs0MDgsNyBAQCB2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFy
c2VNb2RlKGNvCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gICAKICAgICB9Ci0gICAgZWxzZSB7
Ci0gICAgICAgIC8vIE1hbGZvcm1lZCBkb2N0eXBlIGltcGxpZXMgcXVpcmtzIG1vZGUuCi0gICAg
ICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICBzZXRIVE1MTW9kZShIdG1sMyk7Ci0g
ICAgfQotICAKICAgICBzdHlsZVNlbGVjdG9yKCktPnN0cmljdFBhcnNpbmcgPSAhaW5Db21wYXRN
b2RlKCk7Ci0gCiB9CiAgICAgCiB9CkluZGV4OiBodG1sL0hUTUxEb2N1bWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGh0bWwvSFRNTERvY3VtZW50LmgJKHJldmlzaW9uIDMwMzE4KQorKysgaHRtbC9IVE1M
RG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBTdHJpbmcm
IHRhZ05hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQ
YXJzZU1vZGUoY29uc3QgU3RyaW5nJik7Ci0KICAgICB2b2lkIGFkZE5hbWVkSXRlbShjb25zdCBT
dHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFt
ZSk7CiAgICAgYm9vbCBoYXNOYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKTsKQEAgLTgxLDYg
Kzc5LDkgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCBpbnQ+
IE5hbWVDb3VudE1hcDsKIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQ
YXJzZU1vZGUoKTsKKwogcHJpdmF0ZToKICAgICBOYW1lQ291bnRNYXAgbmFtZWRJdGVtQ291bnRz
OwogICAgIE5hbWVDb3VudE1hcCBkb2NFeHRyYU5hbWVkSXRlbUNvdW50czsKSW5kZXg6IGh0bWwv
SFRNTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MUGFyc2VyLmNwcAkocmV2aXNp
b24gMzAzMTgpCisrKyBodG1sL0hUTUxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNvbW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRU
eXBlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKQEAgLTI3MSw2ICsyNzIsMTYgQEAgUGFzc1JlZlB0
cjxOb2RlPiBIVE1MUGFyc2VyOjpwYXJzZVRva2VuKAogICAgIHJldHVybiBuOwogfQogCit2b2lk
IEhUTUxQYXJzZXI6OnBhcnNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiogdCkKK3sKKyAgICAv
LyBJZ25vcmUgYW55IGRvY3R5cGUgYWZ0ZXIgdGhlIGZpcnN0LiAgSWdub3JlIGRvY3R5cGVzIGlu
IGZyYWdtZW50cy4KKyAgICBpZiAoZG9jdW1lbnQtPmRvY3R5cGUoKSB8fCBtX2lzUGFyc2luZ0Zy
YWdtZW50KQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIC8vIE1ha2UgYSBuZXcgZG9j
dHlwZSBub2RlIGFuZCBzZXQgaXQgYXMgb3VyIGRvY3R5cGUuCisgICAgZG9jdW1lbnQtPnNldERv
Y1R5cGUobmV3IERvY3VtZW50VHlwZShkb2N1bWVudCwgdC0+bmFtZSgpLCB0LT5wdWJsaWNJRCgp
LCB0LT5zeXN0ZW1JRCgpKSk7Cit9CisKIHN0YXRpYyBib29sIGlzVGFibGVTZWN0aW9uKE5vZGUq
IG4pCiB7CiAgICAgcmV0dXJuIG4tPmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IG4tPmhhc1RhZ05h
bWUodGZvb3RUYWcpIHx8IG4tPmhhc1RhZ05hbWUodGhlYWRUYWcpOwpJbmRleDogaHRtbC9IVE1M
UGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MUGFyc2VyLmgJKHJldmlzaW9uIDMwMzE4
KQorKysgaHRtbC9IVE1MUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N0eXBlVG9rZW47CiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CkBAIC01
Nyw2ICs1OCw5IEBAIHB1YmxpYzoKICAgICAgKi8KICAgICBQYXNzUmVmUHRyPE5vZGU+IHBhcnNl
VG9rZW4oVG9rZW4qKTsKICAgICAKKyAgICAvLyBQYXJzZXMgYSBkb2N0eXBlIHRva2VuLgorICAg
IHZvaWQgcGFyc2VEb2N0eXBlVG9rZW4oRG9jdHlwZVRva2VuKik7CisKICAgICAvKioKICAgICAg
KiB0b2tlbml6ZXIgc2F5cyBpdCdzIG5vdCBnb2luZyB0byBiZSBzZW5kaW5nIHVzIGFueSBtb3Jl
IHRva2VucwogICAgICAqLwpJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzMDMxOCkKKysrIGh0bWwvSFRN
TFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDkgQEAgY29uc3QgZG91
YmxlIHRva2VuaXplclRpbWVEZWxheSA9IDAuNTAwOwogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBj
aGFyIGNvbW1lbnRTdGFydCBbXSA9ICI8IS0tIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRvY3R5cGVT
dGFydCBbXSA9ICI8IWRvY3R5cGUiOworc3RhdGljIGNvbnN0IGNoYXIgcHVibGljU3RhcnQgW10g
PSAicHVibGljIjsKK3N0YXRpYyBjb25zdCBjaGFyIHN5c3RlbVN0YXJ0IFtdID0gInN5c3RlbSI7
CiBzdGF0aWMgY29uc3QgY2hhciBzY3JpcHRFbmQgW10gPSAiPC9zY3JpcHQiOwogc3RhdGljIGNv
bnN0IGNoYXIgeG1wRW5kIFtdID0gIjwveG1wIjsKIHN0YXRpYyBjb25zdCBjaGFyIHN0eWxlRW5k
IFtdID0gICI8L3N0eWxlIjsKQEAgLTIyMiw2ICsyMjUsOSBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6
OnJlc2V0KCkKICAgICBtX3N0YXRlLnNldEZvcmNlU3luY2hyb25vdXMoZmFsc2UpOwogCiAgICAg
Y3VyclRva2VuLnJlc2V0KCk7CisgICAgbV9kb2N0eXBlVG9rZW4ucmVzZXQoKTsKKyAgICBtX2Rv
Y3R5cGVTZWFyY2hDb3VudCA9IDA7CisgICAgbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQg
PSAwOwogfQogCiB2b2lkIEhUTUxUb2tlbml6ZXI6OmJlZ2luKCkKQEAgLTg0NCw2ICs4NTAsMTcz
IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICByZXR1cm4g
c3RhdGU7CiB9CiAKK0hUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlRG9j
dHlwZShTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCit7CisgICAgQVNTRVJUKHN0
YXRlLmluRG9jdHlwZSgpKTsKKyAgICB3aGlsZSAoIXNyYy5pc0VtcHR5KCkgJiYgc3RhdGUuaW5E
b2N0eXBlKCkpIHsKKyAgICAgICAgVUNoYXIgYyA9ICpzcmM7CisgICAgICAgIGJvb2wgaXNXaGl0
ZXNwYWNlID0gYyA9PSAnXHInIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnICc7
CisgICAgICAgIHN3aXRjaCAobV9kb2N0eXBlVG9rZW4uc3RhdGUoKSkgeworICAgICAgICAgICAg
Y2FzZSBEb2N0eXBlQmVnaW46IHsKKyAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRT
dGF0ZShEb2N0eXBlQmVmb3JlTmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFj
ZSkKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlw
ZUJlZm9yZU5hbWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gTWFsZm9ybWVkLiAgSnVzdCBleGl0LgorICAgICAgICAgICAgICAgICAg
ICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRl
LnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRl
c3BhY2UpCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5z
ZXRTdGF0ZShEb2N0eXBlTmFtZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYg
KGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQg
aXQuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENv
dW50ID0gMDsgLy8gVXNlZCBub3cgdG8gc2NhbiBmb3IgUFVCTElDCisgICAgICAgICAgICAgICAg
ICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID0gMDsgLy8gVXNlZCBub3cgdG8gc2Nh
biBmb3IgU1lTVEVNCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRl
KERvY3R5cGVBZnRlck5hbWUpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xp
bmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlVG9rZW4ubV9uYW1lLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRl
ck5hbWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gVmFsaWQgZG9jdHlwZS4gRW1pdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgc3Jj
LmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJ
bkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2Vu
KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNXaGl0ZXNwYWNlKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKFVuaWNvZGU6OnRvTG93ZXIoYykgPT0gcHVibGljU3RhcnRbbV9kb2N0eXBlU2Vh
cmNoQ291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3Vu
dCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID09
IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgJ1BVQkxJQycgc2VxdWVu
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShE
b2N0eXBlQmVmb3JlUHVibGljSUQpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1f
ZG9jdHlwZVNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlU2VhcmNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChVbmljb2RlOjp0b0xvd2VyKGMpID09IHN5c3RlbVN0YXJ0W21fZG9jdHlwZVNlYXJjaENvdW50
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291
bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWNvbmRhcnlTZWFy
Y2hDb3VudCA9PSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICdTWVNU
RU0nIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4u
c2V0U3RhdGUoRG9jdHlwZUJlZm9yZVN5c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENv
dW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRl
KERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsgLy8g
V2hpdGVzcGFjZSBrZWVwcyB1cyBpbiB0aGUgYWZ0ZXIgbmFtZSBzdGF0ZS4KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUJlZm9y
ZVB1YmxpY0lEOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycp
IHsKKyAgICAgICAgICAgICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUg
OiBTaW5nbGVRdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3Rh
dGUoRG9jdHlwZVB1YmxpY0lEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0
Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhl
IGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAg
ICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBE
b2N0eXBlUHVibGljSUQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gJ1wiJyAmJiB0cXVv
dGUgPT0gRG91YmxlUXVvdGUpIHx8IChjID09ICdcJycgJiYgdHF1b3RlID09IFNpbmdsZVF1b3Rl
KSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVBZnRlclB1
YmxpY0lEKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAg
ICAgICAgICAgICAgICAvLyBDb25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUgZG9j
dHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fcHVi
bGljSUQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVO
dW1iZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUFmdGVyUHVibGljSUQ6CisgICAgICAg
ICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUgOiBTaW5nbGVRdW90ZTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZVN5c3RlbUlEKTsK
KyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8g
VmFsaWQgZG9jdHlwZS4gRW1pdCBpdCBub3cuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0
eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAg
ICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1
cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZv
cmVTeXN0ZW1JRDoKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXCInIHx8IGMgPT0gJ1wnJykg
eworICAgICAgICAgICAgICAgICAgICB0cXVvdGUgPSBjID09ICdcIicgPyBEb3VibGVRdW90ZSA6
IFNpbmdsZVF1b3RlOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0
ZShEb2N0eXBlU3lzdGVtSUQpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3RO
b25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAg
ICAgICAgICAgICAgICAgICAvLyBDb25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUg
ZG9jdHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgp
OworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVTeXN0ZW1JRDoK
KyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gJ1wiJyAmJiB0cXVvdGUgPT0gRG91YmxlUXVvdGUp
IHx8IChjID09ICdcJycgJiYgdHF1b3RlID09IFNpbmdsZVF1b3RlKSkgeworICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVBZnRlclN5c3RlbUlEKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBD
b25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUgZG9jdHlwZS4KKyAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc3lzdGVtSUQuYXBwZW5kKGMpOwor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jdHlw
ZUFmdGVyU3lzdGVtSUQ6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NE
b2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkg
eworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRT
dGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBEb2N0eXBlQm9ndXM6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIERvbmUgd2l0aCB0aGUgYm9ndXMgZG9jdHlwZS4KKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOyAvLyBKdXN0IGtl
ZXAgc2Nhbm5pbmcgZm9yICc+JworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gc3RhdGU7Cit9CisKIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBh
cnNlVGFnKFNlZ21lbnRlZFN0cmluZyAmc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQo
IXN0YXRlLmhhc0VudGl0eVN0YXRlKCkpOwpAQCAtODYyLDE5ICsxMDM1LDEyIEBAIEhUTUxUb2tl
bml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAgICAgfQogICAgICAgICBjYXNl
IFRhZ05hbWU6CiAgICAgICAgIHsKLSNpZiBkZWZpbmVkKFRPS0VOX0RFQlVHKSAmJiBUT0tFTl9E
RUJVRyA+IDEKLSAgICAgICAgICAgIHFEZWJ1ZygiVGFnTmFtZSIpOwotI2VuZGlmCi0gICAgICAg
ICAgICBpZiAoc2VhcmNoQ291bnQgPiAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmICgqc3JjID09IGNvbW1lbnRTdGFydFtzZWFyY2hDb3VudF0pCi0gICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGlm
ICgqc3JjID09IGNvbW1lbnRTdGFydFtzZWFyY2hDb3VudF0pIHsKICAgICAgICAgICAgICAgICAg
ICAgc2VhcmNoQ291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID09
IDQpCi0gICAgICAgICAgICAgICAgICAgIHsKLSNpZmRlZiBUT0tFTl9ERUJVRwotICAgICAgICAg
ICAgICAgICAgICAgICAga2REZWJ1ZyggNjAzNiApIDw8ICJGb3VuZCBjb21tZW50IiA8PCBlbmRs
OwotI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA9PSAyKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQrKzsgLy8gQSAnIScgaXMg
YWxzbyBwYXJ0IG9mIGEgZG9jdHlwZSwgc28gd2UgYXJlIG1vdmluZyB0aHJvdWdoIHRoYXQgc3Rp
bGwgYXMgd2VsbC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID09IDQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICc8IS0tJyBzZXF1ZW5jZQogICAgICAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzdCA9IGJ1ZmZlcjsgLy8gaWdub3JlIHRoZSBwcmV2aW91cyBwYXJ0
IG9mIHRoaXMgdGFnCkBAIC04ODUsMTIgKzEwNTEsMTEgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUg
SFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gPCEtLT4gYXMg
YSB2YWxpZCBjb21tZW50LCBzaW5jZSBib3RoIG1vemlsbGEgYW5kIElFIG9uIHdpbmRvd3MKICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbiBoYW5kbGUgdGhpcyBjYXNlLiAgT25seSBkbyB0
aGlzIGluIHF1aXJrcyBtb2RlLiAtZHdoCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNy
Yy5pc0VtcHR5KCkgJiYgKnNyYyA9PSAnPicgJiYgbV9kb2MtPmluQ29tcGF0TW9kZSgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluQ29tbWVudChmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkNvbW1lbnQoZmFsc2UpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIXNyYy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJz
ZUNvbW1lbnQoc3JjLCBzdGF0ZSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZl
clBvcyA9IGNCdWZmZXJQb3M7CkBAIC04OTksOSArMTA2NCwyOSBAQCBIVE1MVG9rZW5pemVyOjpT
dGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1
ZmZlclBvcysrXSA9ICpzcmM7CiAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5v
bk5ld2xpbmUoKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29r
aW5nIGZvciAnPCEtLScgc2VxdWVuY2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAg
IGlmIChVbmljb2RlOjp0b0xvd2VyKCpzcmMpID09IGRvY3R5cGVTdGFydFttX2RvY3R5cGVTZWFy
Y2hDb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQrKzsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID09IDkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICc8IURPQ1RZUEUnIHNlcXVlbmNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUodHJ1ZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0ZS5zZXRUYWdTdGF0ZShOb1RhZyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVUb2tlbi5yZXNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBwYXJzZURvY3R5cGUoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBt
X2NCdWZmZXJQb3MgPSBjQnVmZmVyUG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNCdWZm
ZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNl
UGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2VhcmNo
Q291bnQgPSAwOyAvLyBTdG9wIGxvb2tpbmcgZm9yICc8IS0tJyBzZXF1ZW5jZQorICAgICAgICAg
ICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2luZyBmb3Ig
JzwhRE9DVFlQRScgc2VxdWVuY2UKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYm9vbCBm
aW5pc2ggPSBmYWxzZTsKQEAgLTE0MDQsNiArMTU4OSw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
d3JpdGUoY29uc3QgU2VnbWVudGUKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lh
bChzcmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluQ29tbWVudCgpKQog
ICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VDb21tZW50KHNyYywgc3RhdGUpOworICAgICAg
ICAgICAgZWxzZSBpZiAoc3RhdGUuaW5Eb2N0eXBlKCkpCisgICAgICAgICAgICAgICAgc3RhdGUg
PSBwYXJzZURvY3R5cGUoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5p
blNlcnZlcigpKQogICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTZXJ2ZXIoc3JjLCBzdGF0
ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pblByb2Nlc3NpbmdJbnN0cnVjdGlvbigp
KQpAQCAtMTQxNyw5ICsxNjA0LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBT
ZWdtZW50ZQogICAgICAgICAgICAgICAgIGNhc2UgJy8nOgogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICBjYXNlICchJzogewotICAgICAgICAgICAgICAgICAgICAv
LyA8IS0tIGNvbW1lbnQgLS0+Ci0gICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMTsg
Ly8gTG9vayBmb3IgJzwhLS0nIHNlcXVlbmNlIHRvIHN0YXJ0IGNvbW1lbnQKLSAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIDwhLS0gY29tbWVudCAtLT4gb3IgPCFE
T0NUWVBFIC4uLj4KKyAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAxOyAvLyBMb29r
IGZvciAnPCEtLScgc2VxdWVuY2UgdG8gc3RhcnQgY29tbWVudCBvciAnPCFET0NUWVBFJyBzZXF1
ZW5jZSB0byBzdGFydCBkb2N0eXBlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJj
aENvdW50ID0gMTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGNhc2UgJz8nOiB7CkBAIC0xNTY1LDcgKzE3NTIsNyBAQCB2b2lk
IEhUTUxUb2tlbml6ZXI6OmVuZCgpCiB2b2lkIEhUTUxUb2tlbml6ZXI6OmZpbmlzaCgpCiB7CiAg
ICAgLy8gZG8gdGhpcyBhcyBsb25nIGFzIHdlIGRvbid0IGZpbmQgbWF0Y2hpbmcgY29tbWVudCBl
bmRzCi0gICAgd2hpbGUoKG1fc3RhdGUuaW5Db21tZW50KCkgfHwgbV9zdGF0ZS5pblNlcnZlcigp
KSAmJiBzY3JpcHRDb2RlICYmIHNjcmlwdENvZGVTaXplKSB7CisgICAgd2hpbGUgKChtX3N0YXRl
LmluQ29tbWVudCgpIHx8IG1fc3RhdGUuaW5TZXJ2ZXIoKSkgJiYgc2NyaXB0Q29kZSAmJiBzY3Jp
cHRDb2RlU2l6ZSkgewogICAgICAgICAvLyB3ZSd2ZSBmb3VuZCBhbiB1bm1hdGNoZWQgY29tbWVu
dCBzdGFydAogICAgICAgICBpZiAobV9zdGF0ZS5pbkNvbW1lbnQoKSkKICAgICAgICAgICAgIGJy
b2tlbkNvbW1lbnRzID0gdHJ1ZTsKQEAgLTE2MzQsNiArMTgyMSwxMyBAQCBQYXNzUmVmUHRyPE5v
ZGU+IEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUCiAgICAgcmV0dXJuIG4ucmVsZWFzZSgpOwogfQog
Cit2b2lkIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4oKQoreworICAgIC8vIEZJ
WE1FOiBXZSBkb24ndCB3b3JrIHdpdGggdmlldyBzb3VyY2UgeWV0LgorICAgIGlmICghaW5WaWV3
U291cmNlTW9kZSgpKQorICAgICAgICBwYXJzZXItPnBhcnNlRG9jdHlwZVRva2VuKCZtX2RvY3R5
cGVUb2tlbik7Cit9CisKIEhUTUxUb2tlbml6ZXI6On5IVE1MVG9rZW5pemVyKCkKIHsKICAgICBB
U1NFUlQoIWluV3JpdGUpOwpJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MVG9rZW5pemVyLmgJKHJldmlzaW9uIDMwMzE4KQorKysgaHRtbC9IVE1MVG9r
ZW5pemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDQ3IEBAIHB1YmxpYzoKICAgICBP
d25QdHI8VmVjdG9yPFVDaGFyPiA+IG1fc291cmNlSW5mbzsKIH07CiAKK2VudW0gRG9jdHlwZVN0
YXRlIHsKKyAgICBEb2N0eXBlQmVnaW4sCisgICAgRG9jdHlwZUJlZm9yZU5hbWUsCisgICAgRG9j
dHlwZU5hbWUsCisgICAgRG9jdHlwZUFmdGVyTmFtZSwKKyAgICBEb2N0eXBlQmVmb3JlUHVibGlj
SUQsCisgICAgRG9jdHlwZVB1YmxpY0lELAorICAgIERvY3R5cGVBZnRlclB1YmxpY0lELAorICAg
IERvY3R5cGVCZWZvcmVTeXN0ZW1JRCwKKyAgICBEb2N0eXBlU3lzdGVtSUQsCisgICAgRG9jdHlw
ZUFmdGVyU3lzdGVtSUQsCisgICAgRG9jdHlwZUJvZ3VzCit9OworCitjbGFzcyBEb2N0eXBlVG9r
ZW4geworcHVibGljOgorICAgIERvY3R5cGVUb2tlbigpCisgICAge30KKyAgICAKKyAgICB2b2lk
IHJlc2V0KCkgeworICAgICAgICBtX25hbWUuY2xlYXIoKTsKKyAgICAgICAgbV9wdWJsaWNJRC5j
bGVhcigpOworICAgICAgICBtX3N5c3RlbUlELmNsZWFyKCk7CisgICAgICAgIG1fYnJva2VuID0g
ZmFsc2U7CisgICAgICAgIG1fc3RhdGUgPSBEb2N0eXBlQmVnaW47CisgICAgfQorCisgICAgRG9j
dHlwZVN0YXRlIHN0YXRlKCkgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQgc2V0U3RhdGUo
RG9jdHlwZVN0YXRlIHMpIHsgbV9zdGF0ZSA9IHM7IH0KKworICAgIFN0cmluZyBuYW1lKCkgY29u
c3QgeyByZXR1cm4gU3RyaW5nKG1fbmFtZS5kYXRhKCksIG1fbmFtZS5zaXplKCkpOyB9CisgICAg
U3RyaW5nIHB1YmxpY0lEKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKG1fcHVibGljSUQuZGF0YSgp
LCBtX3B1YmxpY0lELnNpemUoKSk7IH0KKyAgICBTdHJpbmcgc3lzdGVtSUQoKSBjb25zdCB7IHJl
dHVybiBTdHJpbmcobV9zeXN0ZW1JRC5kYXRhKCksIG1fc3lzdGVtSUQuc2l6ZSgpKTsgfQorCisg
ICAgVmVjdG9yPFVDaGFyPiBtX25hbWU7CisgICAgVmVjdG9yPFVDaGFyPiBtX3B1YmxpY0lEOwor
ICAgIFZlY3RvcjxVQ2hhcj4gbV9zeXN0ZW1JRDsKKyAgICBib29sIG1fYnJva2VuOworICAgIERv
Y3R5cGVTdGF0ZSBtX3N0YXRlOworfTsKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBjbGFz
cyBIVE1MVG9rZW5pemVyIDogcHVibGljIFRva2VuaXplciwgcHVibGljIENhY2hlZFJlc291cmNl
Q2xpZW50IHsKQEAgLTExOCwxMCArMTU5LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmQoKTsK
IAogICAgIHZvaWQgcmVzZXQoKTsKKwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJvY2Vzc1Rva2Vu
KCk7CisgICAgdm9pZCBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CiAKICAgICBTdGF0ZSBwcm9jZXNz
TGlzdGluZyhTZWdtZW50ZWRTdHJpbmcsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZUNvbW1lbnQo
U2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOworICAgIFN0YXRlIHBhcnNlRG9jdHlwZShTZWdtZW50
ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VTZXJ2ZXIoU2VnbWVudGVkU3RyaW5n
JiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlVGV4dChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7
CiAgICAgU3RhdGUgcGFyc2VTcGVjaWFsKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKQEAgLTIy
MCw2ICsyNjQsOCBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldEluUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKGJvb2wgdikgeyByZXR1cm4gc2V0Qml0KEluUHJvY2Vzc2luZ0luc3RydWN0aW9uLCB2
KTsgfQogICAgICAgICBib29sIGluQ29tbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5D
b21tZW50KTsgfQogICAgICAgICB2b2lkIHNldEluQ29tbWVudChib29sIHYpIHsgc2V0Qml0KElu
Q29tbWVudCwgdik7IH0KKyAgICAgICAgYm9vbCBpbkRvY3R5cGUoKSBjb25zdCB7IHJldHVybiB0
ZXN0Qml0KEluRG9jdHlwZSk7IH0KKyAgICAgICAgdm9pZCBzZXRJbkRvY3R5cGUoYm9vbCB2KSB7
IHNldEJpdChJbkRvY3R5cGUsIHYpOyB9CiAgICAgICAgIGJvb2wgaW5UZXh0QXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHRlc3RCaXQoSW5UZXh0QXJlYSk7IH0KICAgICAgICAgdm9pZCBzZXRJblRleHRB
cmVhKGJvb2wgdikgeyBzZXRCaXQoSW5UZXh0QXJlYSwgdik7IH0KICAgICAgICAgYm9vbCBlc2Nh
cGVkKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChFc2NhcGVkKTsgfQpAQCAtMjQzLDcgKzI4OSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgaGFzVGFnU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X2JpdHMgJiBUYWdNYXNrOyB9CiAgICAgICAgIGJvb2wgaGFzRW50aXR5U3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX2JpdHMgJiBFbnRpdHlNYXNrOyB9CiAKLSAgICAgICAgYm9vbCBuZWVkc1NwZWNp
YWxXcml0ZUhhbmRsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0IHwgSW5T
dHlsZSB8IEluWG1wIHwgSW5UZXh0QXJlYSB8IEluVGl0bGUgfCBJbklGcmFtZSB8IFRhZ01hc2sg
fCBFbnRpdHlNYXNrIHwgSW5QbGFpblRleHQgfCBJbkNvbW1lbnQgfCBJblNlcnZlciB8IEluUHJv
Y2Vzc2luZ0luc3RydWN0aW9uIHwgU3RhcnRUYWcpOyB9CisgICAgICAgIGJvb2wgbmVlZHNTcGVj
aWFsV3JpdGVIYW5kbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8IElu
U3R5bGUgfCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUgfCBUYWdNYXNr
IHwgRW50aXR5TWFzayB8IEluUGxhaW5UZXh0IHwgSW5Db21tZW50IHwgSW5Eb2N0eXBlIHwgSW5T
ZXJ2ZXIgfCBJblByb2Nlc3NpbmdJbnN0cnVjdGlvbiB8IFN0YXJ0VGFnKTsgfQogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBFbnRpdHlTaGlmdCA9IDQ7CkBAIC0yNjcs
NyArMzEzLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIEFsbG93WWllbGQgPSAxIDw8IDIxLAog
ICAgICAgICAgICAgTG9hZGluZ0V4dFNjcmlwdCA9IDEgPDwgMjIsCiAgICAgICAgICAgICBGb3Jj
ZVN5bmNocm9ub3VzID0gMSA8PCAyMywKLSAgICAgICAgICAgIEluSUZyYW1lID0gMSA8PCAyNAor
ICAgICAgICAgICAgSW5JRnJhbWUgPSAxIDw8IDI0LAorICAgICAgICAgICAgSW5Eb2N0eXBlID0g
MSA8PCAyNQogICAgICAgICB9OwogCiAgICAgICAgIHZvaWQgc2V0Qml0KFN0YXRlQml0cyBiaXQs
IGJvb2wgdmFsdWUpCkBAIC0yODMsNiArMzMwLDEwIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAg
IFN0YXRlIG1fc3RhdGU7CisgICAgCisgICAgRG9jdHlwZVRva2VuIG1fZG9jdHlwZVRva2VuOwor
ICAgIGludCBtX2RvY3R5cGVTZWFyY2hDb3VudDsKKyAgICBpbnQgbV9kb2N0eXBlU2Vjb25kYXJ5
U2VhcmNoQ291bnQ7CiAKICAgICBib29sIGJyb2tlblNlcnZlcjsKIApAQCAtMzAwLDE0ICszNTEs
MTQgQEAgcHJpdmF0ZToKIAogICAgIC8vIFN0b3JlcyBjaGFyYWN0ZXJzIGlmIHdlIGFyZSBzY2Fu
bmluZyBmb3IgYSBzdHJpbmcgbGlrZSAiPC9zY3JpcHQ+IgogICAgIFVDaGFyIHNlYXJjaEJ1ZmZl
clsxMF07CisgICAgCiAgICAgLy8gQ291bnRzIHdoZXJlIHdlIGFyZSBpbiB0aGUgc3RyaW5nIHdl
IGFyZSBzY2FubmluZyBmb3IKICAgICBpbnQgc2VhcmNoQ291bnQ7Ci0gICAgLy8gVGhlIHN0cmlu
ZyB3ZSBhcmUgc2VhcmNoaW5nIGZvcgotICAgIGNvbnN0IFVDaGFyKiBzZWFyY2hGb3I7CiAgICAg
Ly8gdGhlIHN0b3BwZXIgc3RyaW5nCiAgICAgY29uc3QgY2hhciogc2VhcmNoU3RvcHBlcjsKICAg
ICAvLyB0aGUgc3RvcHBlciBsZW4KICAgICBpbnQgc2VhcmNoU3RvcHBlckxlbjsKKyAgICAKICAg
ICAvLyBpZiBubyBtb3JlIGRhdGEgaXMgY29taW5nLCBqdXN0IHBhcnNlIHdoYXQgd2UgaGF2ZSAo
aW5jbHVkaW5nIGV4dCBzY3JpcHRzIHRoYXQKICAgICAvLyBtYXkgYmUgc3RpbGwgZG93bmxvYWRp
bmcpIGFuZCBmaW5pc2gKICAgICBib29sIG5vTW9yZURhdGE7CkluZGV4OiBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9u
IDMwMzE4KQorKysgbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg4
LDcgKzk4OCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OndyaXRlKGNvbnN0IGNoYXIqIHN0ciwKIAog
ICAgIGlmICghbV9yZWNlaXZlZERhdGEpIHsKICAgICAgICAgbV9yZWNlaXZlZERhdGEgPSB0cnVl
OwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kZXRlcm1pbmVQYXJzZU1vZGUoZGVjb2Rl
ZCk7CiAgICAgICAgIGlmIChtX2RlY29kZXItPmVuY29kaW5nKCkudXNlc1Zpc3VhbE9yZGVyaW5n
KCkpCiAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRWaXN1YWxseU9yZGVyZWQo
KTsKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2Up
OwpAQCAtNDgxMCw3ICs0ODA5LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3dpdGNoT3V0TG93QmFu
ZHdpZHRoRAogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NvdXJjZUluTG93QmFuZHdpZHRoRGlz
cGxheS5sZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8vIHNldCBjYWNoZVBvbGljeSB0byBD
YWNoZSB0byB1c2UgdGhlIGxvYWRlZCByZXNvdXJjZQogICAgICAgICAgICAgICAgIG5ld0RvYy0+
ZG9jTG9hZGVyKCktPnNldENhY2hlUG9saWN5KENhY2hlUG9saWN5Q2FjaGUpOwotICAgICAgICAg
ICAgICAgIG5ld0RvYy0+ZGV0ZXJtaW5lUGFyc2VNb2RlKG1fcGVuZGluZ1NvdXJjZUluTG93QmFu
ZHdpZHRoRGlzcGxheSk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZGVjb2Rlci0+ZW5jb2Rpbmco
KS51c2VzVmlzdWFsT3JkZXJpbmcoKSkKICAgICAgICAgICAgICAgICAgICAgbmV3RG9jLT5zZXRW
aXN1YWxseU9yZGVyZWQoKTsgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG5l
d0RvYy0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOyAgICAgICAgICAgICAgICAKSW5kZXg6IHBh
Z2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAzMDMx
OCkKKysrIHBhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjk1LDcgKzE2OTUsNyBA
QCB2b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KCkKIFN0cmluZyBGcmFtZTo6ZG9j
dW1lbnRUeXBlU3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAoRG9jdW1lbnQgKmRvYyA9IGRvY3Vt
ZW50KCkpCi0gICAgICAgIGlmIChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBkb2MtPnJlYWxEb2NU
eXBlKCkpCisgICAgICAgIGlmIChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBkb2MtPmRvY3R5cGUo
KSkKICAgICAgICAgICAgIHJldHVybiBkb2N0eXBlLT50b1N0cmluZygpOwogCiAgICAgcmV0dXJu
IFN0cmluZygpOwpJbmRleDogcGFnZS9pbnNwZWN0b3IvdXRpbGl0aWVzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwkocmV2aXNpb24gMzAzMTgpCisrKyBwYWdl
L2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyNSw2ICs0MjUsMTYg
QEAgZnVuY3Rpb24gbm9kZURpc3BsYXlOYW1lKCkKIAogICAgICAgICBjYXNlIE5vZGUuQ09NTUVO
VF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICI8IS0tIiArIHRoaXMubm9kZVZhbHVlICsgIi0t
PiI7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX1RZUEVfTk9ERToK
KyAgICAgICAgICAgIHZhciBkb2NUeXBlID0gIjwhRE9DVFlQRSAiICsgdGhpcy5ub2RlTmFtZTsK
KyAgICAgICAgICAgIGlmICh0aGlzLnB1YmxpY0lEKQorICAgICAgICAgICAgICAgIGRvY1R5cGUg
Kz0gIiBQVUJMSUMgXCIiICsgdGhpcy5wdWJsaWNJRCArICIgIiArIHRoaXMuc3lzdGVtSUQgKyAi
XCIiOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zeXN0ZW1JRCkKKyAgICAgICAgICAgICAg
ICBkb2NUeXBlICs9ICIgU1lTVEVNIFwiIiArIHRoaXMuc3lzdGVtSUQgKyAiXCIiOworICAgICAg
ICAgICAgaWYgKHRoaXMuaW50ZXJuYWxTdWJzZXQpCisgICAgICAgICAgICAgICAgZG9jVHlwZSAr
PSAiIFsiICsgdGhpcy5pbnRlcm5hbFN1YnNldCArICJdIjsKKyAgICAgICAgICAgIHJldHVybiBk
b2NUeXBlICsgIj4iOwogICAgIH0KIAogICAgIHJldHVybiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNlKCk7CkBAIC02NDMsNiArNjUzLDE2IEBAIGZ1bmN0aW9u
IG5vZGVUaXRsZUluZm8oaGFzQ2hpbGRyZW4sIGxpbmsKICAgICAgICAgICAgIGluZm8udGl0bGUg
PSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC1jb21tZW50XCI+Jmx0OyEtLSIgKyB0aGlzLm5v
ZGVWYWx1ZS5lc2NhcGVIVE1MKCkgKyAiLS0mZ3Q7PC9zcGFuPiI7CiAgICAgICAgICAgICBicmVh
azsKIAorICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAg
aW5mby50aXRsZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRhZ1wiPiZsdDshRE9DVFlQ
RSAiICsgdGhpcy5ub2RlTmFtZTsKKyAgICAgICAgICAgIGlmICh0aGlzLnB1YmxpY0lEKQorICAg
ICAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBQVUJMSUMgXCIiICsgdGhpcy5wdWJsaWNJRCAr
ICIgIiArIHRoaXMuc3lzdGVtSUQgKyAiXCIiOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5z
eXN0ZW1JRCkKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICIgU1lTVEVNIFwiIiArIHRo
aXMuc3lzdGVtSUQgKyAiXCIiOworICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxTdWJzZXQp
CisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFsiICsgdGhpcy5pbnRlcm5hbFN1YnNl
dCArICJdIjsKKyAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiZndDs8L3NwYW4+IjsKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgaW5mby50aXRsZSA9
IHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5jb2xsYXBzZVdoaXRlc3BhY2UoKS5lc2NhcGVI
VE1MKCk7CiAgICAgfQpJbmRleDogeG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHhtbC9YU0xUUHJvY2Vzc29yLmNwcAkocmV2aXNpb24gMzAzMTgpCisrKyB4bWwvWFNMVFByb2Nl
c3Nvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsyNTgsNiBAQCBSZWZQdHI8RG9jdW1l
bnQ+IFhTTFRQcm9jZXNzb3I6OmNyZWF0ZURvCiAgICAgICAgIHJlc3VsdC0+c2V0VVJMKG93bmVy
RG9jdW1lbnQtPnVybCgpKTsKICAgICAgICAgcmVzdWx0LT5zZXRCYXNlVVJMKG93bmVyRG9jdW1l
bnQtPmJhc2VVUkwoKSk7CiAgICAgfQotICAgIHJlc3VsdC0+ZGV0ZXJtaW5lUGFyc2VNb2RlKGRv
Y3VtZW50U291cmNlKTsgLy8gTWFrZSBzdXJlIHdlIHBhcnNlIGluIHRoZSBjb3JyZWN0IG1vZGUu
CiAgICAgCiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29kZXIgPSBuZXcgVGV4
dFJlc291cmNlRGVjb2Rlcihzb3VyY2VNSU1FVHlwZSk7CiAgICAgZGVjb2Rlci0+c2V0RW5jb2Rp
bmcoc291cmNlRW5jb2RpbmcuaXNFbXB0eSgpID8gVVRGOEVuY29kaW5nKCkgOiBUZXh0RW5jb2Rp
bmcoc291cmNlRW5jb2RpbmcpLCBUZXh0UmVzb3VyY2VEZWNvZGVyOjpFbmNvZGluZ0Zyb21YTUxI
ZWFkZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19186</attachid>
            <date>2008-02-18 06:37:49 -0800</date>
            <delta_ts>2008-02-19 15:44:52 -0800</delta_ts>
            <desc>More cleanup.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>38421</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzNjgpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAgICAgICAgZG9jLT5zZXREb2NUeXBlKGRv
Y3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChkb2MuZ2V0KCkpOwotICAgIH0K
KyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5hZGRDaGlsZChkb2N0eXBlKTsKIAogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9j
LT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYykpOwpJbmRl
eDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM2OCkKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSwx
MiArNDc1LDE1IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0NvbG9yKCkKIAogdm9p
ZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkK
IHsKKyAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuCisg
ICAgLy8gTm90ZTogVGhpcyBpcyBub3QgYSBwdWJsaWMgRE9NIG1ldGhvZCBhbmQgY2FuIG9ubHkg
YmUgY2FsbGVkIGJ5IHRoZSBwYXJzZXIuCisgICAgQVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5
cGUpOworICAgIGlmIChtX2RvY1R5cGUgJiYgZG9jVHlwZSkKKyAgICAgICAgcmV0dXJuOwogICAg
IG1fZG9jVHlwZSA9IGRvY1R5cGU7Ci19Ci0KLURvY3VtZW50VHlwZSAqRG9jdW1lbnQ6OmRvY3R5
cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7CisgICAgaWYgKG1fZG9j
VHlwZSkKKyAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsKKyAgICBkZXRlcm1p
bmVQYXJzZU1vZGUoKTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1l
bnRhdGlvbigpIGNvbnN0CkBAIC0xNzAyLDE0ICsxNzA1LDYgQEAgQ1NTU3R5bGVTaGVldCogRG9j
dW1lbnQ6Om1hcHBlZEVsZW1lbnRTaAogICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRTaGVldC5n
ZXQoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmlu
ZyYpCi17Ci0gICAgLy8gRm9yIFhNTCBkb2N1bWVudHMgdXNlIHN0cmljdCBwYXJzZSBtb2RlLgot
ICAgIC8vIEhUTUwgb3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB0aGUgcGFyc2Ug
bW9kZS4KLSAgICBwTW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9IFhIdG1sOwotfQotCiBzdGF0
aWMgTm9kZSogbmV4dE5vZGVXaXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYklu
ZGV4LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZl
IG9mIHN0YXJ0CkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1l
bnQuaAkocmV2aXNpb24gMzAzNjgpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTc5LDggKzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmli
dXRlcyBmb3IgRG9jdW1lbnQKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkg
Y29uc3Q7IC8vIE1heSByZXR1cm4gMCBmb3IgSFRNTCBkb2N1bWVudHMKLSAgICBEb2N1bWVudFR5
cGUqIHJlYWxEb2NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CisgICAg
RG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9
CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2Up
OwpAQCAtNDAyLDggKzQwMSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGluZyhib29s
IHApIHsgbV9wcmludGluZyA9IHA7IH0KIAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29tcGF0LCBB
bG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQ
YXJzZU1vZGUoY29uc3QgU3RyaW5nJik7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV0ZXJtaW5lUGFyc2VNb2RlKCkge307CisKK3B1YmxpYzoKICAgICB2b2lkIHNldFBhcnNlTW9k
ZShQYXJzZU1vZGUgbSkgeyBwTW9kZSA9IG07IH0KICAgICBQYXJzZU1vZGUgcGFyc2VNb2RlKCkg
Y29uc3QgeyByZXR1cm4gcE1vZGU7IH0KIApJbmRleDogZG9tL0RvY3VtZW50VHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwMzY4KQorKysgZG9t
L0RvY3VtZW50VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw0ICsxMDUsMjMgQEAgUGFz
c1JlZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZQogICAgIHJldHVybiAwOwogfQog
Cit2b2lkIERvY3VtZW50VHlwZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreworICAgIC8vIE91
ciBkb2N1bWVudCBub2RlIGNhbiBiZSBudWxsIGlmIHdlIHdlcmUgY3JlYXRlZCBieSBhIERPTUlt
cGxlbWVudGF0aW9uLiAgV2UgdXNlIHRoZSBwYXJlbnQoKSBpbnN0ZWFkLgorICAgIEFTU0VSVChw
YXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgaWYgKHBhcmVudCgp
ICYmIHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2Mg
PSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHBhcmVudCgpKTsKKyAgICAgICAgaWYgKCFkb2MtPmRv
Y3R5cGUoKSkKKyAgICAgICAgICAgIGRvYy0+c2V0RG9jVHlwZSh0aGlzKTsKKyAgICB9CisgICAg
Tm9kZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBEb2N1bWVudFR5cGU6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCkt
PmRvY3R5cGUoKSA9PSB0aGlzKQorICAgICAgICBkb2N1bWVudCgpLT5zZXREb2NUeXBlKDApOwor
ICAgIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKK30KKwogfQpJbmRleDogZG9tL0RvY3Vt
ZW50VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudFR5cGUuaAkocmV2aXNpb24gMzAz
NjgpCisrKyBkb20vRG9jdW1lbnRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBk
ZWVwKTsKICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCisgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRG
cm9tRG9jdW1lbnQoKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+
IG1faW1wbGVtZW50YXRpb247CiAgICAgUmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9lbnRpdGllczsK
SW5kZXg6IGRvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTm9kZS5jcHAJKHJldmlzaW9u
IDMwMzY4KQorKysgZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzYsNyArNzM2LDcg
QEAgYm9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihjb25zdCBOb2RlICpvdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotYm9vbCBOb2RlOjpjaGlsZEFsbG93ZWQoIE5vZGUgKm5ld0NoaWxkICkKK2Jv
b2wgTm9kZTo6Y2hpbGRBbGxvd2VkKE5vZGUqIG5ld0NoaWxkKQogewogICAgIHJldHVybiBjaGls
ZFR5cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgpKTsKIH0KSW5kZXg6IGRvbS9YTUxUb2tl
bml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAz
MDM2OCkKKysrIGRvbS9YTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDcg
KzEwMTIsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJuYWxTdWJzZXQoY29uc3QgCiAgICAg
aWYgKCFkb2MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvYy0+c2V0RG9jVHlwZShuZXcgRG9j
dW1lbnRUeXBlKGRvYywgdG9TdHJpbmcobmFtZSksIHRvU3RyaW5nKGV4dGVybmFsSUQpLCB0b1N0
cmluZyhzeXN0ZW1JRCkpKTsKKyAgICBkb2MtPmFkZENoaWxkKG5ldyBEb2N1bWVudFR5cGUoZG9j
LCB0b1N0cmluZyhuYW1lKSwgdG9TdHJpbmcoZXh0ZXJuYWxJRCksIHRvU3RyaW5nKHN5c3RlbUlE
KSkpOwogfQogCiBzdGF0aWMgaW5saW5lIFhNTFRva2VuaXplciogZ2V0VG9rZW5pemVyKHZvaWQq
IGNsb3N1cmUpCkBAIC0yMDk4LDcgKzIwOTgsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VE
dGQoKQogICAgICAgICBzZXRJc1hIVE1MRG9jdW1lbnQodHJ1ZSk7IC8vIGNvbnRyb2xzIGlmIHdl
IHJlcGxhY2UgZW50aXRpZXMgb3Igbm90LgogICAgIH0KICAgICBpZiAoIW1fcGFyc2luZ0ZyYWdt
ZW50KQotICAgICAgICBtX2RvYy0+c2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKG1fZG9jLCBu
YW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpKTsKKyAgICAgICAgbV9kb2MtPmFkZENoaWxkKG5ldyBE
b2N1bWVudFR5cGUobV9kb2MsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkpOwogICAgIAogfQog
I2VuZGlmCkluZGV4OiBodG1sL0hUTUxEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAzMDM2OCkKKysrIGh0bWwvSFRNTERvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjczLDcgKzI3Myw3IEBAIFRva2VuaXplciAqSFRNTERvY3Vt
ZW50OjpjcmVhdGVUb2tlbml6ZXIKIAogYm9vbCBIVE1MRG9jdW1lbnQ6OmNoaWxkQWxsb3dlZChO
b2RlICpuZXdDaGlsZCkKIHsKLSAgICByZXR1cm4gbmV3Q2hpbGQtPmhhc1RhZ05hbWUoaHRtbFRh
ZykgfHwgbmV3Q2hpbGQtPmlzQ29tbWVudE5vZGUoKTsKKyAgICByZXR1cm4gbmV3Q2hpbGQtPmhh
c1RhZ05hbWUoaHRtbFRhZykgfHwgbmV3Q2hpbGQtPmlzQ29tbWVudE5vZGUoKSB8fCAobmV3Q2hp
bGQtPm5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFICYmICFkb2N0eXBlKCkpOwogfQog
CiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChjb25zdCBT
dHJpbmcgJm5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzQ2LDE1NCArMzQ2LDExIEBAIGJv
b2wgSFRNTERvY3VtZW50OjpoYXNEb2NFeHRyYU5hbWVkSXRlbSgKICAgICByZXR1cm4gZG9jRXh0
cmFOYW1lZEl0ZW1Db3VudHMuZ2V0KG5hbWUuaW1wbCgpKSAhPSAwOwogfQogCi1jb25zdCBpbnQg
UEFSU0VNT0RFX0hBVkVfRE9DVFlQRSAgICAgICAgPSAgICAgICAoMTw8MCk7Ci1jb25zdCBpbnQg
UEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEICAgICAgPSAgICAgICAoMTw8MSk7Ci1jb25zdCBpbnQg
UEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEICAgICAgPSAgICAgICAoMTw8Mik7Ci1jb25zdCBpbnQg
UEFSU0VNT0RFX0hBVkVfSU5URVJOQUwgICAgICAgPSAgICAgICAoMTw8Myk7Ci0KLXN0YXRpYyBp
bnQgcGFyc2VEb2NUeXBlUGFydChjb25zdCBTdHJpbmcmIGJ1ZmZlciwgaW50IGluZGV4KQordm9p
ZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9kZSgpCiB7Ci0gICAgd2hpbGUgKHRydWUp
IHsKLSAgICAgICAgVUNoYXIgY2ggPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAoY2ggPT0g
JyAnIHx8IGNoID09ICdcdCcgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQotICAgICAgICAg
ICAgKytpbmRleDsKLSAgICAgICAgZWxzZSBpZiAoY2ggPT0gJy0nKSB7Ci0gICAgICAgICAgICBp
bnQgdG1wSW5kZXg9aW5kZXg7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyW2luZGV4KzFdID09ICct
JyAmJgotICAgICAgICAgICAgICAgICgodG1wSW5kZXg9YnVmZmVyLmZpbmQoIi0tIiwgaW5kZXgr
MikpICE9IC0xKSkKLSAgICAgICAgICAgICAgICBpbmRleCA9IHRtcEluZGV4KzI7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICB9Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci19CisgICAgLy8gRklY
TUU6IEl0J3MgdGVycmlibGUgdGhhdCB0aGlzIGNvZGUgcnVucyBzZXBhcmF0ZWx5IGFuZCBpc24n
dCBqdXN0IGJ1aWx0IGluIHRvIHRoZQorICAgIC8vIEhUTUwgdG9rZW5pemVyL3BhcnNlci4KIAot
c3RhdGljIGJvb2wgY29udGFpbnNTdHJpbmcoY29uc3QgY2hhciogc3RyLCBjb25zdCBTdHJpbmcm
IGJ1ZmZlciwgaW50IG9mZnNldCkKLXsKLSAgICBTdHJpbmcgc3RhcnRTdHJpbmcoc3RyKTsKLSAg
ICBpZiAob2Zmc2V0ICsgc3RhcnRTdHJpbmcubGVuZ3RoKCkgPiBidWZmZXIubGVuZ3RoKCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJpbmcgYnVmZmVyU3RyaW5nID0gYnVm
ZmVyLnN1YnN0cmluZyhvZmZzZXQsIHN0YXJ0U3RyaW5nLmxlbmd0aCgpKS5sb3dlcigpOwotICAg
IFN0cmluZyBsb3dlclN0YXJ0ID0gc3RhcnRTdHJpbmcubG93ZXIoKTsKLQotICAgIHJldHVybiBi
dWZmZXJTdHJpbmcuc3RhcnRzV2l0aChsb3dlclN0YXJ0KTsKLX0KLQotc3RhdGljIGJvb2wgcGFy
c2VEb2NUeXBlRGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBidWZmZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQqIHJlc3VsdEZsYWdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RyaW5nJiBwdWJsaWNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFN0cmluZyYgc3lzdGVtSUQpCi17Ci0gICAgYm9vbCBoYXZlRG9jVHlwZSA9
IGZhbHNlOwotICAgICpyZXN1bHRGbGFncyA9IDA7Ci0KLSAgICAvLyBTa2lwIHRocm91Z2ggYW55
IGNvbW1lbnRzIGFuZCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucy4KLSAgICBpbnQgaW5kZXggPSAw
OwotICAgIGRvIHsKLSAgICAgICAgaW5kZXggPSBidWZmZXIuZmluZCgnPCcsIGluZGV4KTsKLSAg
ICAgICAgaWYgKGluZGV4ID09IC0xKSBicmVhazsKLSAgICAgICAgVUNoYXIgbmV4dENoYXIgPSBi
dWZmZXJbaW5kZXgrMV07Ci0gICAgICAgIGlmIChuZXh0Q2hhciA9PSAnIScpIHsKLSAgICAgICAg
ICAgIGlmIChjb250YWluc1N0cmluZygiZG9jdHlwZSIsIGJ1ZmZlciwgaW5kZXgrMikpIHsKLSAg
ICAgICAgICAgICAgICBoYXZlRG9jVHlwZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaW5kZXgg
Kz0gOTsgLy8gU2tpcCAiPCFET0NUWVBFIgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlcixpbmRl
eCk7Ci0gICAgICAgICAgICBpbmRleCA9IGJ1ZmZlci5maW5kKCc+JywgaW5kZXgpOwotICAgICAg
ICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHRDaGFyID09ICc/JykKLSAgICAgICAgICAgIGluZGV4
ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgIH0gd2hpbGUgKGluZGV4ICE9IC0xKTsKLQotICAgIGlmICghaGF2ZURvY1R5cGUp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFW
RV9ET0NUWVBFOwotCi0gICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgp
OwotICAgIGlmICghY29udGFpbnNTdHJpbmcoImh0bWwiLCBidWZmZXIsIGluZGV4KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIG5hbWUgPSBidWZmZXIuc3Vic3RyaW5nKGluZGV4
LCA0KTsKLSAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCs0KTsKLSAg
ICBib29sIGhhc1B1YmxpYyA9IGNvbnRhaW5zU3RyaW5nKCJwdWJsaWMiLCBidWZmZXIsIGluZGV4
KTsKLSAgICBpZiAoaGFzUHVibGljKSB7Ci0gICAgICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFy
dChidWZmZXIsIGluZGV4KzYpOwotCi0gICAgICAgIC8vIFdlJ3ZlIHJlYWQgPCFET0NUWVBFIEhU
TUwgUFVCTElDIChub3QgY2FzZSBzZW5zaXRpdmUpLgotICAgICAgICAvLyBOb3cgd2UgZmluZCB0
aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHB1YmxpYyBpZGVudGlmZXJzCi0gICAgICAgIC8v
IGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgKGFzc3VtaW5nIHRoZXkncmUgZXZlbiBwcmVzZW50KS4K
LSAgICAgICAgVUNoYXIgdGhlQ2hhciA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlmICh0aGVD
aGFyICE9ICdcIicgJiYgdGhlQ2hhciAhPSAnXCcnKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAKLSAgICAgICAgLy8gfHN0YXJ0fCBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIChh
ZnRlciB0aGUgcXVvdGUpIGFuZCB8ZW5kfAotICAgICAgICAvLyBpcyB0aGUgZmluYWwgcXVvdGUs
IHNvIHRoZXJlIGFyZSB8ZW5kfC18c3RhcnR8IGNoYXJhY3RlcnMuCi0gICAgICAgIGludCBwdWJs
aWNJRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgaW50IHB1YmxpY0lERW5kID0gYnVmZmVyLmZp
bmQodGhlQ2hhciwgcHVibGljSURTdGFydCk7Ci0gICAgICAgIGlmIChwdWJsaWNJREVuZCA9PSAt
MSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5
cGVQYXJ0KGJ1ZmZlciwgcHVibGljSURFbmQrMSk7Ci0gICAgICAgIFVDaGFyIG5leHQgPSBidWZm
ZXJbaW5kZXhdOwotICAgICAgICBpZiAobmV4dCA9PSAnPicpIHsKLSAgICAgICAgICAgIC8vIFB1
YmxpYyBpZGVudGlmaWVyIHByZXNlbnQsIGJ1dCBubyBzeXN0ZW0gaWRlbnRpZmllci4KLSAgICAg
ICAgICAgIC8vIERvIG5vdGhpbmcuICBOb3RlIHRoYXQgdGhpcyBpcyB0aGUgbW9zdCBjb21tb24K
LSAgICAgICAgICAgIC8vIGNhc2UuCi0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAobmV4dCA9
PSAnXCInIHx8IG5leHQgPT0gJ1wnJykgewotICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIHN5c3Rl
bSBpZGVudGlmaWVyLgotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZF
X1NZU1RFTV9JRDsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsKLSAg
ICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlEU3Rh
cnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09IC0xKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmluZyhz
eXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UgaWYgKG5leHQgPT0gJ1snKSB7Ci0gICAgICAgICAgICAvLyBXZSBmb3VuZCBh
biBpbnRlcm5hbCBzdWJzZXQuCi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RF
X0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOyAvLyBTb21ldGhpbmcncyB3cm9uZy4KLQotICAgICAgICAvLyBXZSBuZWVkIHRv
IHRyaW0gd2hpdGVzcGFjZSBvZmYgdGhlIHB1YmxpYyBpZGVudGlmaWVyLgotICAgICAgICBwdWJs
aWNJRCA9IGJ1ZmZlci5zdWJzdHJpbmcocHVibGljSURTdGFydCwgcHVibGljSURFbmQgLSBwdWJs
aWNJRFN0YXJ0KTsKLSAgICAgICAgcHVibGljSUQgPSBwdWJsaWNJRC5zdHJpcFdoaXRlU3BhY2Uo
KTsKLSAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRDsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAoY29udGFpbnNTdHJpbmcoInN5c3RlbSIsIGJ1ZmZlciwg
aW5kZXgpKSB7Ci0gICAgICAgICAgICAvLyBEb2N0eXBlIGhhcyBhIHN5c3RlbSBJRCBidXQgbm8g
cHVibGljIElECi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfU1lT
VEVNX0lEOwotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5k
ZXgrNik7Ci0gICAgICAgICAgICBVQ2hhciBuZXh0ID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAg
ICAgIGlmIChuZXh0ICE9ICdcIicgJiYgbmV4dCAhPSAnXCcnKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsKLSAg
ICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlEU3Rh
cnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09IC0xKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmluZyhz
eXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAg
aW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgc3lzdGVtSURFbmQrMSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlm
IChuZXh0Q2hhciA9PSAnWycpCi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RF
X0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIGVsc2UgaWYgKG5leHRDaGFyICE9ICc+JykKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9p
ZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmIHN0cikKLXsK
ICAgICAvLyBUaGlzIGNvZGUgbW9yZSBvciBsZXNzIG1pbWljcyBNb3ppbGxhJ3MgaW1wbGVtZW50
YXRpb24gKHNwZWNpZmljYWxseSB0aGUKICAgICAvLyBkb2N0eXBlIHBhcnNpbmcgaW1wbGVtZW50
ZWQgYnkgRGF2aWQgQmFyb24gaW4gTW96aWxsYSdzIG5zUGFyc2VyLmNwcCkuCiAgICAgLy8KQEAg
LTUwNywyOCArMzY0LDE5IEBAIHZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUo
Y28KICAgICAvLyB0byBTVEFOREFSRFMgbW9kZS4KICAgICAvLyBTVFJJQ1QgLSBubyBxdWlya3Mg
YXBwbHkuICBXZWIgcGFnZXMgd2lsbCBvYmV5IHRoZSBzcGVjaWZpY2F0aW9ucyB0bwogICAgIC8v
IHRoZSBsZXR0ZXIuCi0KLSAgICBTdHJpbmcgbmFtZSwgc3lzdGVtSUQsIHB1YmxpY0lEOwotICAg
IGludCByZXN1bHRGbGFncyA9IDA7Ci0gICAgaWYgKHBhcnNlRG9jVHlwZURlY2xhcmF0aW9uKHN0
ciwgJnJlc3VsdEZsYWdzLCBuYW1lLCBwdWJsaWNJRCwgc3lzdGVtSUQpKSB7Ci0gICAgICAgIGlm
IChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEUpCi0gICAgICAgICAgICBzZXRE
b2NUeXBlKG5ldyBEb2N1bWVudFR5cGUodGhpcywgbmFtZSwgcHVibGljSUQsIHN5c3RlbUlEKSk7
Ci0gICAgICAgIGlmICghKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfRE9DVFlQRSkpIHsK
LSAgICAgICAgICAgIC8vIE5vIGRvY3R5cGUgZm91bmQgYXQgYWxsLiAgRGVmYXVsdCB0byBxdWly
a3MgbW9kZSBhbmQgSHRtbDQuCi0gICAgICAgICAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsKLSAg
ICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlm
ICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTCkgfHwKLSAgICAgICAgICAg
ICAgICAgIShyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRCkpIHsKLSAgICAg
ICAgICAgIC8vIEludGVybmFsIHN1YnNldHMgYWx3YXlzIGRlbm90ZSBmdWxsIHN0YW5kYXJkcywg
YXMgZG9lcwotICAgICAgICAgICAgLy8gYSBkb2N0eXBlIHdpdGhvdXQgYSBwdWJsaWMgSUQuCisg
ICAgaWYgKCFkb2N0eXBlKCkpIHsKKyAgICAgICAgLy8gTm8gZG9jdHlwZSBmb3VuZCBhdCBhbGwu
ICBEZWZhdWx0IHRvIHF1aXJrcyBtb2RlIGFuZCBIdG1sNC4KKyAgICAgICAgc2V0UGFyc2VNb2Rl
KENvbXBhdCk7CisgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAoZG9jdHlwZSgpLT5wdWJsaWNJZCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
Ly8gQSBkb2N0eXBlIHdpdGhvdXQgYSBwdWJsaWMgSUQgbWVhbnMgdXNlIHN0cmljdCBtb2RlLgog
ICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7CiAgICAgICAgICAgICBzZXRIVE1MTW9k
ZShIdG1sNCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRvIHNl
ZSB3aGF0IHdlCiAgICAgICAgICAgICAvLyBzaG91bGQgZG8uCi0gICAgICAgICAgICBTdHJpbmcg
bG93ZXJQdWJJRCA9IHB1YmxpY0lELmxvd2VyKCk7CisgICAgICAgICAgICBTdHJpbmcgbG93ZXJQ
dWJJRCA9IGRvY3R5cGUoKS0+cHVibGljSWQoKS5sb3dlcigpOwogICAgICAgICAgICAgQ1N0cmlu
ZyBwdWJJRFN0ciA9IGxvd2VyUHViSUQubGF0aW4xKCk7CiAgICAgICAgICAgIAogICAgICAgICAg
ICAgLy8gTG9vayB1cCB0aGUgZW50cnkgaW4gb3VyIGdwZXJmLWdlbmVyYXRlZCB0YWJsZS4KQEAg
LTU0MCwxMCArMzg4LDkgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OmRldGVybWluZVBhcnNlTW9kZShj
bwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
c3dpdGNoICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQpID8KLSAgICAg
ICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkIDoKLSAgICAgICAgICAg
ICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkKQotICAgICAgICAgICAgewor
ICAgICAgICAgICAgc3dpdGNoIChkb2N0eXBlKCktPnN5c3RlbUlkKCkuaXNFbXB0eSgpID8KKyAg
ICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkIDoKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkKSB7CiAgICAgICAgICAg
ICAgICAgY2FzZSBQdWJJREluZm86OmVRdWlya3MzOgogICAgICAgICAgICAgICAgICAgICBzZXRQ
YXJzZU1vZGUoQ29tcGF0KTsKICAgICAgICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDMp
OwpAQCAtNTYxLDE0ICs0MDgsNyBAQCB2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VN
b2RlKGNvCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gICAKICAgICB9Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIC8vIE1hbGZvcm1lZCBkb2N0eXBlIGltcGxpZXMgcXVpcmtzIG1vZGUuCi0gICAgICAg
IHNldFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICBzZXRIVE1MTW9kZShIdG1sMyk7Ci0gICAg
fQotICAKICAgICBzdHlsZVNlbGVjdG9yKCktPnN0cmljdFBhcnNpbmcgPSAhaW5Db21wYXRNb2Rl
KCk7Ci0gCiB9CiAgICAgCiB9CkluZGV4OiBodG1sL0hUTUxEb2N1bWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGh0bWwvSFRNTERvY3VtZW50LmgJKHJldmlzaW9uIDMwMzY4KQorKysgaHRtbC9IVE1MRG9j
dW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBTdHJpbmcmIHRh
Z05hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQYXJz
ZU1vZGUoY29uc3QgU3RyaW5nJik7Ci0KICAgICB2b2lkIGFkZE5hbWVkSXRlbShjb25zdCBTdHJp
bmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7
CiAgICAgYm9vbCBoYXNOYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKTsKQEAgLTgxLDYgKzc5
LDkgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCBpbnQ+IE5h
bWVDb3VudE1hcDsKIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQYXJz
ZU1vZGUoKTsKKwogcHJpdmF0ZToKICAgICBOYW1lQ291bnRNYXAgbmFtZWRJdGVtQ291bnRzOwog
ICAgIE5hbWVDb3VudE1hcCBkb2NFeHRyYU5hbWVkSXRlbUNvdW50czsKSW5kZXg6IGh0bWwvSFRN
TFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MUGFyc2VyLmNwcAkocmV2aXNpb24g
MzAzNjgpCisrKyBodG1sL0hUTUxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNvbW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBl
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKQEAgLTI3MSw2ICsyNzIsMTYgQEAgUGFzc1JlZlB0cjxO
b2RlPiBIVE1MUGFyc2VyOjpwYXJzZVRva2VuKAogICAgIHJldHVybiBuOwogfQogCit2b2lkIEhU
TUxQYXJzZXI6OnBhcnNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiogdCkKK3sKKyAgICAvLyBJ
Z25vcmUgYW55IGRvY3R5cGUgYWZ0ZXIgdGhlIGZpcnN0LiAgSWdub3JlIGRvY3R5cGVzIGluIGZy
YWdtZW50cy4KKyAgICBpZiAoZG9jdW1lbnQtPmRvY3R5cGUoKSB8fCBtX2lzUGFyc2luZ0ZyYWdt
ZW50KQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIC8vIE1ha2UgYSBuZXcgZG9jdHlw
ZSBub2RlIGFuZCBzZXQgaXQgYXMgb3VyIGRvY3R5cGUuCisgICAgZG9jdW1lbnQtPmFkZENoaWxk
KG5ldyBEb2N1bWVudFR5cGUoZG9jdW1lbnQsIHQtPm5hbWUoKSwgdC0+cHVibGljSUQoKSwgdC0+
c3lzdGVtSUQoKSkpOworfQorCiBzdGF0aWMgYm9vbCBpc1RhYmxlU2VjdGlvbihOb2RlKiBuKQog
ewogICAgIHJldHVybiBuLT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBuLT5oYXNUYWdOYW1lKHRm
b290VGFnKSB8fCBuLT5oYXNUYWdOYW1lKHRoZWFkVGFnKTsKSW5kZXg6IGh0bWwvSFRNTFBhcnNl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFBhcnNlci5oCShyZXZpc2lvbiAzMDM2OCkKKysr
IGh0bWwvSFRNTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdHlwZVRva2VuOwogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTERvY3VtZW50OwpAQCAtNTcsNiAr
NTgsOSBAQCBwdWJsaWM6CiAgICAgICovCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBwYXJzZVRva2Vu
KFRva2VuKik7CiAgICAgCisgICAgLy8gUGFyc2VzIGEgZG9jdHlwZSB0b2tlbi4KKyAgICB2b2lk
IHBhcnNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiopOworCiAgICAgLyoqCiAgICAgICogdG9r
ZW5pemVyIHNheXMgaXQncyBub3QgZ29pbmcgdG8gYmUgc2VuZGluZyB1cyBhbnkgbW9yZSB0b2tl
bnMKICAgICAgKi8KSW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
aHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNpb24gMzAzNjgpCisrKyBodG1sL0hUTUxUb2tl
bml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw5IEBAIGNvbnN0IGRvdWJsZSB0
b2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsKICNlbmRpZgogCiBzdGF0aWMgY29uc3QgY2hhciBj
b21tZW50U3RhcnQgW10gPSAiPCEtLSI7CitzdGF0aWMgY29uc3QgY2hhciBkb2N0eXBlU3RhcnQg
W10gPSAiPCFkb2N0eXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyIHB1YmxpY1N0YXJ0IFtdID0gInB1
YmxpYyI7CitzdGF0aWMgY29uc3QgY2hhciBzeXN0ZW1TdGFydCBbXSA9ICJzeXN0ZW0iOwogc3Rh
dGljIGNvbnN0IGNoYXIgc2NyaXB0RW5kIFtdID0gIjwvc2NyaXB0IjsKIHN0YXRpYyBjb25zdCBj
aGFyIHhtcEVuZCBbXSA9ICI8L3htcCI7CiBzdGF0aWMgY29uc3QgY2hhciBzdHlsZUVuZCBbXSA9
ICAiPC9zdHlsZSI7CkBAIC0yMjIsNiArMjI1LDkgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjpyZXNl
dCgpCiAgICAgbV9zdGF0ZS5zZXRGb3JjZVN5bmNocm9ub3VzKGZhbHNlKTsKIAogICAgIGN1cnJU
b2tlbi5yZXNldCgpOworICAgIG1fZG9jdHlwZVRva2VuLnJlc2V0KCk7CisgICAgbV9kb2N0eXBl
U2VhcmNoQ291bnQgPSAwOworICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID0gMDsK
IH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjpiZWdpbigpCkBAIC04NDQsNiArODUwLDE3MyBAQCBI
VE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgcmV0dXJuIHN0YXRl
OwogfQogCitIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZURvY3R5cGUo
U2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQoreworICAgIEFTU0VSVChzdGF0ZS5p
bkRvY3R5cGUoKSk7CisgICAgd2hpbGUgKCFzcmMuaXNFbXB0eSgpICYmIHN0YXRlLmluRG9jdHlw
ZSgpKSB7CisgICAgICAgIFVDaGFyIGMgPSAqc3JjOworICAgICAgICBib29sIGlzV2hpdGVzcGFj
ZSA9IGMgPT0gJ1xyJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJyAnOworICAg
ICAgICBzd2l0Y2ggKG1fZG9jdHlwZVRva2VuLnN0YXRlKCkpIHsKKyAgICAgICAgICAgIGNhc2Ug
RG9jdHlwZUJlZ2luOiB7CisgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUo
RG9jdHlwZUJlZm9yZU5hbWUpOworICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UpCisg
ICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZv
cmVOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIE1hbGZvcm1lZC4gIEp1c3QgZXhpdC4KKyAgICAgICAgICAgICAgICAgICAgc3Jj
LmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJ
bkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNl
KQorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3Rh
dGUoRG9jdHlwZU5hbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgY2FzZSBEb2N0eXBlTmFtZTogeworICAgICAgICAgICAgICAgIGlmIChjID09
ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0Lgor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlz
V2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9
IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFBVQkxJQworICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9y
IFNZU1RFTQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0
eXBlQWZ0ZXJOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVt
YmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzcmMu
YWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRv
a2VuLm1fbmFtZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJOYW1l
OiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0
eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChVbmljb2RlOjp0b0xvd2VyKGMpID09IHB1YmxpY1N0YXJ0W21fZG9jdHlwZVNlYXJjaENv
dW50XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQrKzsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA9PSA2KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICdQVUJMSUMnIHNlcXVlbmNlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlw
ZUJlZm9yZVB1YmxpY0lEKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtX2RvY3R5
cGVTZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNl
YXJjaENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNl
dFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoVW5p
Y29kZTo6dG9Mb3dlcihjKSA9PSBzeXN0ZW1TdGFydFttX2RvY3R5cGVTZWFyY2hDb3VudF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50Kys7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291
bnQgPT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnU1lTVEVNJyBz
ZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0
YXRlKERvY3R5cGVCZWZvcmVTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0
eXBlQm9ndXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7IC8vIFdoaXRl
c3BhY2Uga2VlcHMgdXMgaW4gdGhlIGFmdGVyIG5hbWUgc3RhdGUuCisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZvcmVQdWJs
aWNJRDogeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2lu
Z2xlUXVvdGU7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERv
Y3R5cGVQdWJsaWNJRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5l
d2xpbmUoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0
eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Jj
LmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlw
ZVB1YmxpY0lEOiB7CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdcIicgJiYgdHF1b3RlID09
IERvdWJsZVF1b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVRdW90ZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAg
ICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJQdWJsaWNJ
RCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAg
ICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUu
CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3B1YmxpY0lE
LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVy
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRlclB1YmxpY0lEOgorICAgICAgICAgICAg
ICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRx
dW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7CisgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVTeXN0ZW1JRCk7CisgICAg
ICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlk
IGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBh
c3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShm
YWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAg
ICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQmVmb3JlU3lz
dGVtSUQ6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUgOiBTaW5n
bGVRdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9j
dHlwZVN5c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5
cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMu
YWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlU3lzdGVtSUQ6CisgICAg
ICAgICAgICAgICAgaWYgKChjID09ICdcIicgJiYgdHF1b3RlID09IERvdWJsZVF1b3RlKSB8fCAo
YyA9PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVRdW90ZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJTeXN0ZW1JRCk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgLy8gQ29uc2lk
ZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAgICAgICAgICAg
ICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3N5c3RlbUlELmFwcGVuZChjKTsKKyAgICAg
ICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRl
clN5c3RlbUlEOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAg
ICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0IG5vdy4KKyAgICAgICAgICAgICAgICAg
ICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0
ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlw
ZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUo
RG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
RG9jdHlwZUJvZ3VzOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAg
ICAgICAgICAgICAvLyBEb25lIHdpdGggdGhlIGJvZ3VzIGRvY3R5cGUuCisgICAgICAgICAgICAg
ICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsgLy8gSnVzdCBrZWVwIHNj
YW5uaW5nIGZvciAnPicKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IHN0YXRlOworfQorCiBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRh
ZyhTZWdtZW50ZWRTdHJpbmcgJnNyYywgU3RhdGUgc3RhdGUpCiB7CiAgICAgQVNTRVJUKCFzdGF0
ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKQEAgLTg2MiwxOSArMTAzNSwxMiBAQCBIVE1MVG9rZW5pemVy
OjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUYWdO
YW1lOgogICAgICAgICB7Ci0jaWYgZGVmaW5lZChUT0tFTl9ERUJVRykgJiYgVE9LRU5fREVCVUcg
PiAxCi0gICAgICAgICAgICBxRGVidWcoIlRhZ05hbWUiKTsKLSNlbmRpZgotICAgICAgICAgICAg
aWYgKHNlYXJjaENvdW50ID4gMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAo
KnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKQotICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoKnNy
YyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKSB7CiAgICAgICAgICAgICAgICAgICAgIHNl
YXJjaENvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA9PSA0KQot
ICAgICAgICAgICAgICAgICAgICB7Ci0jaWZkZWYgVE9LRU5fREVCVUcKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGtkRGVidWcoIDYwMzYgKSA8PCAiRm91bmQgY29tbWVudCIgPDwgZW5kbDsKLSNl
bmRpZgorICAgICAgICAgICAgICAgICAgICBpZiAoc2VhcmNoQ291bnQgPT0gMikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50Kys7IC8vIEEgJyEnIGlzIGFsc28g
cGFydCBvZiBhIGRvY3R5cGUsIHNvIHdlIGFyZSBtb3ZpbmcgdGhyb3VnaCB0aGF0IHN0aWxsIGFz
IHdlbGwuCisgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA9PSA0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnPCEtLScgc2VxdWVuY2UKICAgICAgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc3QgPSBidWZmZXI7IC8vIGlnbm9yZSB0aGUgcHJldmlvdXMgcGFydCBvZiB0
aGlzIHRhZwpAQCAtODg1LDEyICsxMDUxLDExIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxU
b2tlbml6ZXI6OnBhcnMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDwhLS0+IGFzIGEgdmFs
aWQgY29tbWVudCwgc2luY2UgYm90aCBtb3ppbGxhIGFuZCBJRSBvbiB3aW5kb3dzCiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBjYW4gaGFuZGxlIHRoaXMgY2FzZS4gIE9ubHkgZG8gdGhpcyBp
biBxdWlya3MgbW9kZS4gLWR3aAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmMuaXNF
bXB0eSgpICYmICpzcmMgPT0gJz4nICYmIG1fZG9jLT5pbkNvbXBhdE1vZGUoKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkNvbW1lbnQoZmFsc2UpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghc3JjLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdGUuc2V0SW5Db21tZW50KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VDb21t
ZW50KHNyYywgc3RhdGUpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NCdWZmZXJQb3Mg
PSBjQnVmZmVyUG9zOwpAQCAtODk5LDkgKzEwNjQsMjkgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUg
SFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQ
b3MrK10gPSAqc3JjOwogICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXds
aW5lKCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2luZyBm
b3IgJzwhLS0nIHNlcXVlbmNlCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAo
VW5pY29kZTo6dG9Mb3dlcigqc3JjKSA9PSBkb2N0eXBlU3RhcnRbbV9kb2N0eXBlU2VhcmNoQ291
bnRdKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50Kys7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA9PSA5KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnPCFET0NUWVBFJyBzZXF1ZW5jZQorICAgICAgICAg
ICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKHRydWUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0VGFnU3RhdGUoTm9UYWcpOworICAgICAgICAgICAgICAgICAgICAgICAg
bV9kb2N0eXBlVG9rZW4ucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0g
cGFyc2VEb2N0eXBlKHNyYywgc3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9jQnVm
ZmVyUG9zID0gY0J1ZmZlclBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0
ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NC
dWZmZXJQb3MrK10gPSAqc3JjOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3RO
b25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50
ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCEtLScgc2VxdWVuY2UKKyAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAwOyAvLyBTdG9wIGxvb2tpbmcgZm9yICc8IURP
Q1RZUEUnIHNlcXVlbmNlCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgZmluaXNo
ID0gZmFsc2U7CkBAIC0xNDAzLDYgKzE1ODgsOCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OndyaXRl
KGNvbnN0IFNlZ21lbnRlCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3Jj
LCBzdGF0ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkNvbW1lbnQoKSkKICAgICAg
ICAgICAgICAgICBzdGF0ZSA9IHBhcnNlQ29tbWVudChzcmMsIHN0YXRlKTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKHN0YXRlLmluRG9jdHlwZSgpKQorICAgICAgICAgICAgICAgIHN0YXRlID0gcGFy
c2VEb2N0eXBlKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5TZXJ2
ZXIoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU2VydmVyKHNyYywgc3RhdGUpOwog
ICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSkKQEAg
LTE0MTYsOSArMTYwMyw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVu
dGUKICAgICAgICAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgY2FzZSAnISc6IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPCEt
LSBjb21tZW50IC0tPgotICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDE7IC8vIExv
b2sgZm9yICc8IS0tJyBzZXF1ZW5jZSB0byBzdGFydCBjb21tZW50Ci0gICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICAvLyA8IS0tIGNvbW1lbnQgLS0+IG9yIDwhRE9DVFlQ
RSAuLi4+CisgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMTsgLy8gTG9vayBmb3Ig
JzwhLS0nIHNlcXVlbmNlIHRvIHN0YXJ0IGNvbW1lbnQgb3IgJzwhRE9DVFlQRScgc2VxdWVuY2Ug
dG8gc3RhcnQgZG9jdHlwZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3Vu
dCA9IDE7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBjYXNlICc/JzogewpAQCAtMTU2NCw3ICsxNzUxLDcgQEAgdm9pZCBIVE1M
VG9rZW5pemVyOjplbmQoKQogdm9pZCBIVE1MVG9rZW5pemVyOjpmaW5pc2goKQogewogICAgIC8v
IGRvIHRoaXMgYXMgbG9uZyBhcyB3ZSBkb24ndCBmaW5kIG1hdGNoaW5nIGNvbW1lbnQgZW5kcwot
ICAgIHdoaWxlKChtX3N0YXRlLmluQ29tbWVudCgpIHx8IG1fc3RhdGUuaW5TZXJ2ZXIoKSkgJiYg
c2NyaXB0Q29kZSAmJiBzY3JpcHRDb2RlU2l6ZSkgeworICAgIHdoaWxlICgobV9zdGF0ZS5pbkNv
bW1lbnQoKSB8fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUgJiYgc2NyaXB0Q29k
ZVNpemUpIHsKICAgICAgICAgLy8gd2UndmUgZm91bmQgYW4gdW5tYXRjaGVkIGNvbW1lbnQgc3Rh
cnQKICAgICAgICAgaWYgKG1fc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICBicm9rZW5D
b21tZW50cyA9IHRydWU7CkBAIC0xNjMzLDYgKzE4MjAsMTMgQEAgUGFzc1JlZlB0cjxOb2RlPiBI
VE1MVG9rZW5pemVyOjpwcm9jZXNzVAogICAgIHJldHVybiBuLnJlbGVhc2UoKTsKIH0KIAordm9p
ZCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRG9jdHlwZVRva2VuKCkKK3sKKyAgICAvLyBGSVhNRTog
V2UgZG9uJ3Qgd29yayB3aXRoIHZpZXcgc291cmNlIHlldC4KKyAgICBpZiAoIWluVmlld1NvdXJj
ZU1vZGUoKSkKKyAgICAgICAgcGFyc2VyLT5wYXJzZURvY3R5cGVUb2tlbigmbV9kb2N0eXBlVG9r
ZW4pOworfQorCiBIVE1MVG9rZW5pemVyOjp+SFRNTFRva2VuaXplcigpCiB7CiAgICAgQVNTRVJU
KCFpbldyaXRlKTsKSW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0
bWwvSFRNTFRva2VuaXplci5oCShyZXZpc2lvbiAzMDM2OCkKKysrIGh0bWwvSFRNTFRva2VuaXpl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw0NyBAQCBwdWJsaWM6CiAgICAgT3duUHRy
PFZlY3RvcjxVQ2hhcj4gPiBtX3NvdXJjZUluZm87CiB9OwogCitlbnVtIERvY3R5cGVTdGF0ZSB7
CisgICAgRG9jdHlwZUJlZ2luLAorICAgIERvY3R5cGVCZWZvcmVOYW1lLAorICAgIERvY3R5cGVO
YW1lLAorICAgIERvY3R5cGVBZnRlck5hbWUsCisgICAgRG9jdHlwZUJlZm9yZVB1YmxpY0lELAor
ICAgIERvY3R5cGVQdWJsaWNJRCwKKyAgICBEb2N0eXBlQWZ0ZXJQdWJsaWNJRCwKKyAgICBEb2N0
eXBlQmVmb3JlU3lzdGVtSUQsCisgICAgRG9jdHlwZVN5c3RlbUlELAorICAgIERvY3R5cGVBZnRl
clN5c3RlbUlELAorICAgIERvY3R5cGVCb2d1cworfTsKKworY2xhc3MgRG9jdHlwZVRva2VuIHsK
K3B1YmxpYzoKKyAgICBEb2N0eXBlVG9rZW4oKQorICAgIHt9CisgICAgCisgICAgdm9pZCByZXNl
dCgpIHsKKyAgICAgICAgbV9uYW1lLmNsZWFyKCk7CisgICAgICAgIG1fcHVibGljSUQuY2xlYXIo
KTsKKyAgICAgICAgbV9zeXN0ZW1JRC5jbGVhcigpOworICAgICAgICBtX2Jyb2tlbiA9IGZhbHNl
OworICAgICAgICBtX3N0YXRlID0gRG9jdHlwZUJlZ2luOworICAgIH0KKworICAgIERvY3R5cGVT
dGF0ZSBzdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICB2b2lkIHNldFN0YXRlKERvY3R5
cGVTdGF0ZSBzKSB7IG1fc3RhdGUgPSBzOyB9CisKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsg
cmV0dXJuIFN0cmluZyhtX25hbWUuZGF0YSgpLCBtX25hbWUuc2l6ZSgpKTsgfQorICAgIFN0cmlu
ZyBwdWJsaWNJRCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZyhtX3B1YmxpY0lELmRhdGEoKSwgbV9w
dWJsaWNJRC5zaXplKCkpOyB9CisgICAgU3RyaW5nIHN5c3RlbUlEKCkgY29uc3QgeyByZXR1cm4g
U3RyaW5nKG1fc3lzdGVtSUQuZGF0YSgpLCBtX3N5c3RlbUlELnNpemUoKSk7IH0KKworICAgIFZl
Y3RvcjxVQ2hhcj4gbV9uYW1lOworICAgIFZlY3RvcjxVQ2hhcj4gbV9wdWJsaWNJRDsKKyAgICBW
ZWN0b3I8VUNoYXI+IG1fc3lzdGVtSUQ7CisgICAgYm9vbCBtX2Jyb2tlbjsKKyAgICBEb2N0eXBl
U3RhdGUgbV9zdGF0ZTsKK307CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogY2xhc3MgSFRN
TFRva2VuaXplciA6IHB1YmxpYyBUb2tlbml6ZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVu
dCB7CkBAIC0xMTgsMTAgKzE1OSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kKCk7CiAKICAg
ICB2b2lkIHJlc2V0KCk7CisKICAgICBQYXNzUmVmUHRyPE5vZGU+IHByb2Nlc3NUb2tlbigpOwor
ICAgIHZvaWQgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOwogCiAgICAgU3RhdGUgcHJvY2Vzc0xpc3Rp
bmcoU2VnbWVudGVkU3RyaW5nLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VDb21tZW50KFNlZ21l
bnRlZFN0cmluZyYsIFN0YXRlKTsKKyAgICBTdGF0ZSBwYXJzZURvY3R5cGUoU2VnbWVudGVkU3Ry
aW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlU2VydmVyKFNlZ21lbnRlZFN0cmluZyYsIFN0
YXRlKTsKICAgICBTdGF0ZSBwYXJzZVRleHQoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAg
IFN0YXRlIHBhcnNlU3BlY2lhbChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CkBAIC0yMjAsNiAr
MjY0LDggQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRJblByb2Nlc3NpbmdJbnN0cnVjdGlv
bihib29sIHYpIHsgcmV0dXJuIHNldEJpdChJblByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgdik7IH0K
ICAgICAgICAgYm9vbCBpbkNvbW1lbnQoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEluQ29tbWVu
dCk7IH0KICAgICAgICAgdm9pZCBzZXRJbkNvbW1lbnQoYm9vbCB2KSB7IHNldEJpdChJbkNvbW1l
bnQsIHYpOyB9CisgICAgICAgIGJvb2wgaW5Eb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gdGVzdEJp
dChJbkRvY3R5cGUpOyB9CisgICAgICAgIHZvaWQgc2V0SW5Eb2N0eXBlKGJvb2wgdikgeyBzZXRC
aXQoSW5Eb2N0eXBlLCB2KTsgfQogICAgICAgICBib29sIGluVGV4dEFyZWEoKSBjb25zdCB7IHJl
dHVybiB0ZXN0Qml0KEluVGV4dEFyZWEpOyB9CiAgICAgICAgIHZvaWQgc2V0SW5UZXh0QXJlYShi
b29sIHYpIHsgc2V0Qml0KEluVGV4dEFyZWEsIHYpOyB9CiAgICAgICAgIGJvb2wgZXNjYXBlZCgp
IGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoRXNjYXBlZCk7IH0KQEAgLTI0Myw3ICsyODksNyBAQCBw
cml2YXRlOgogICAgICAgICBib29sIGhhc1RhZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRz
ICYgVGFnTWFzazsgfQogICAgICAgICBib29sIGhhc0VudGl0eVN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRzICYgRW50aXR5TWFzazsgfQogCi0gICAgICAgIGJvb2wgbmVlZHNTcGVjaWFsV3Jp
dGVIYW5kbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUg
fCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUgfCBUYWdNYXNrIHwgRW50
aXR5TWFzayB8IEluUGxhaW5UZXh0IHwgSW5Db21tZW50IHwgSW5TZXJ2ZXIgfCBJblByb2Nlc3Np
bmdJbnN0cnVjdGlvbiB8IFN0YXJ0VGFnKTsgfQorICAgICAgICBib29sIG5lZWRzU3BlY2lhbFdy
aXRlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxl
IHwgSW5YbXAgfCBJblRleHRBcmVhIHwgSW5UaXRsZSB8IEluSUZyYW1lIHwgVGFnTWFzayB8IEVu
dGl0eU1hc2sgfCBJblBsYWluVGV4dCB8IEluQ29tbWVudCB8IEluRG9jdHlwZSB8IEluU2VydmVy
IHwgSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gfCBTdGFydFRhZyk7IH0KIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgRW50aXR5U2hpZnQgPSA0OwpAQCAtMjY3LDcgKzMx
Myw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBBbGxvd1lpZWxkID0gMSA8PCAyMSwKICAgICAg
ICAgICAgIExvYWRpbmdFeHRTY3JpcHQgPSAxIDw8IDIyLAogICAgICAgICAgICAgRm9yY2VTeW5j
aHJvbm91cyA9IDEgPDwgMjMsCi0gICAgICAgICAgICBJbklGcmFtZSA9IDEgPDwgMjQKKyAgICAg
ICAgICAgIEluSUZyYW1lID0gMSA8PCAyNCwKKyAgICAgICAgICAgIEluRG9jdHlwZSA9IDEgPDwg
MjUKICAgICAgICAgfTsKIAogICAgICAgICB2b2lkIHNldEJpdChTdGF0ZUJpdHMgYml0LCBib29s
IHZhbHVlKQpAQCAtMjgzLDYgKzMzMCwxMCBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBTdGF0
ZSBtX3N0YXRlOworICAgIAorICAgIERvY3R5cGVUb2tlbiBtX2RvY3R5cGVUb2tlbjsKKyAgICBp
bnQgbV9kb2N0eXBlU2VhcmNoQ291bnQ7CisgICAgaW50IG1fZG9jdHlwZVNlY29uZGFyeVNlYXJj
aENvdW50OwogCiAgICAgYm9vbCBicm9rZW5TZXJ2ZXI7CiAKQEAgLTMwMCwxNCArMzUxLDE0IEBA
IHByaXZhdGU6CiAKICAgICAvLyBTdG9yZXMgY2hhcmFjdGVycyBpZiB3ZSBhcmUgc2Nhbm5pbmcg
Zm9yIGEgc3RyaW5nIGxpa2UgIjwvc2NyaXB0PiIKICAgICBVQ2hhciBzZWFyY2hCdWZmZXJbMTBd
OworICAgIAogICAgIC8vIENvdW50cyB3aGVyZSB3ZSBhcmUgaW4gdGhlIHN0cmluZyB3ZSBhcmUg
c2Nhbm5pbmcgZm9yCiAgICAgaW50IHNlYXJjaENvdW50OwotICAgIC8vIFRoZSBzdHJpbmcgd2Ug
YXJlIHNlYXJjaGluZyBmb3IKLSAgICBjb25zdCBVQ2hhciogc2VhcmNoRm9yOwogICAgIC8vIHRo
ZSBzdG9wcGVyIHN0cmluZwogICAgIGNvbnN0IGNoYXIqIHNlYXJjaFN0b3BwZXI7CiAgICAgLy8g
dGhlIHN0b3BwZXIgbGVuCiAgICAgaW50IHNlYXJjaFN0b3BwZXJMZW47CisgICAgCiAgICAgLy8g
aWYgbm8gbW9yZSBkYXRhIGlzIGNvbWluZywganVzdCBwYXJzZSB3aGF0IHdlIGhhdmUgKGluY2x1
ZGluZyBleHQgc2NyaXB0cyB0aGF0CiAgICAgLy8gbWF5IGJlIHN0aWxsIGRvd25sb2FkaW5nKSBh
bmQgZmluaXNoCiAgICAgYm9vbCBub01vcmVEYXRhOwpJbmRleDogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiAzMDM2
OCkKKysrIGxvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5MCw3ICs5
OTAsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjp3cml0ZShjb25zdCBjaGFyKiBzdHIsCiAKICAgICBp
ZiAoIW1fcmVjZWl2ZWREYXRhKSB7CiAgICAgICAgIG1fcmVjZWl2ZWREYXRhID0gdHJ1ZTsKLSAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGV0ZXJtaW5lUGFyc2VNb2RlKGRlY29kZWQpOwog
ICAgICAgICBpZiAobV9kZWNvZGVyLT5lbmNvZGluZygpLnVzZXNWaXN1YWxPcmRlcmluZygpKQog
ICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0VmlzdWFsbHlPcmRlcmVkKCk7CiAg
ICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsKQEAg
LTQ4MTAsNyArNDgwOSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN3aXRjaE91dExvd0JhbmR3aWR0
aEQKICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTb3VyY2VJbkxvd0JhbmR3aWR0aERpc3BsYXku
bGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyBzZXQgY2FjaGVQb2xpY3kgdG8gQ2FjaGUg
dG8gdXNlIHRoZSBsb2FkZWQgcmVzb3VyY2UKICAgICAgICAgICAgICAgICBuZXdEb2MtPmRvY0xv
YWRlcigpLT5zZXRDYWNoZVBvbGljeShDYWNoZVBvbGljeUNhY2hlKTsKLSAgICAgICAgICAgICAg
ICBuZXdEb2MtPmRldGVybWluZVBhcnNlTW9kZShtX3BlbmRpbmdTb3VyY2VJbkxvd0JhbmR3aWR0
aERpc3BsYXkpOwogICAgICAgICAgICAgICAgIGlmIChtX2RlY29kZXItPmVuY29kaW5nKCkudXNl
c1Zpc3VhbE9yZGVyaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIG5ld0RvYy0+c2V0VmlzdWFs
bHlPcmRlcmVkKCk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBuZXdEb2Mt
PnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsgICAgICAgICAgICAgICAgCkluZGV4OiBwYWdlL0Zy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMzAzNjgpCisr
KyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5MCw3ICsxNjkwLDcgQEAgdm9p
ZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCiBTdHJpbmcgRnJhbWU6OmRvY3VtZW50
VHlwZVN0cmluZygpIGNvbnN0CiB7CiAgICAgaWYgKERvY3VtZW50ICpkb2MgPSBkb2N1bWVudCgp
KQotICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9jLT5yZWFsRG9jVHlwZSgp
KQorICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9jLT5kb2N0eXBlKCkpCiAg
ICAgICAgICAgICByZXR1cm4gZG9jdHlwZS0+dG9TdHJpbmcoKTsKIAogICAgIHJldHVybiBTdHJp
bmcoKTsKSW5kZXg6IHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
YWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHJldmlzaW9uIDMwMzY4KQorKysgcGFnZS9pbnNw
ZWN0b3IvdXRpbGl0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MjUsNiArNDI1LDE2IEBAIGZ1
bmN0aW9uIG5vZGVEaXNwbGF5TmFtZSgpCiAKICAgICAgICAgY2FzZSBOb2RlLkNPTU1FTlRfTk9E
RToKICAgICAgICAgICAgIHJldHVybiAiPCEtLSIgKyB0aGlzLm5vZGVWYWx1ZSArICItLT4iOwor
ICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9UWVBFX05PREU6CisgICAg
ICAgICAgICB2YXIgZG9jVHlwZSA9ICI8IURPQ1RZUEUgIiArIHRoaXMubm9kZU5hbWU7CisgICAg
ICAgICAgICBpZiAodGhpcy5wdWJsaWNJRCkKKyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIg
UFVCTElDIFwiIiArIHRoaXMucHVibGljSUQgKyAiICIgKyB0aGlzLnN5c3RlbUlEICsgIlwiIjsK
KyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3lzdGVtSUQpCisgICAgICAgICAgICAgICAgZG9j
VHlwZSArPSAiIFNZU1RFTSBcIiIgKyB0aGlzLnN5c3RlbUlEICsgIlwiIjsKKyAgICAgICAgICAg
IGlmICh0aGlzLmludGVybmFsU3Vic2V0KQorICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBb
IiArIHRoaXMuaW50ZXJuYWxTdWJzZXQgKyAiXSI7CisgICAgICAgICAgICByZXR1cm4gZG9jVHlw
ZSArICI+IjsKICAgICB9CiAKICAgICByZXR1cm4gdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp
LmNvbGxhcHNlV2hpdGVzcGFjZSgpOwpAQCAtNjQzLDYgKzY1MywxNiBAQCBmdW5jdGlvbiBub2Rl
VGl0bGVJbmZvKGhhc0NoaWxkcmVuLCBsaW5rCiAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxz
cGFuIGNsYXNzPVwid2Via2l0LWh0bWwtY29tbWVudFwiPiZsdDshLS0iICsgdGhpcy5ub2RlVmFs
dWUuZXNjYXBlSFRNTCgpICsgIi0tJmd0Ozwvc3Bhbj4iOwogICAgICAgICAgICAgYnJlYWs7CiAK
KyAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIGluZm8u
dGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10YWdcIj4mbHQ7IURPQ1RZUEUgIiAr
IHRoaXMubm9kZU5hbWU7CisgICAgICAgICAgICBpZiAodGhpcy5wdWJsaWNJRCkKKyAgICAgICAg
ICAgICAgICBpbmZvLnRpdGxlICs9ICIgUFVCTElDIFwiIiArIHRoaXMucHVibGljSUQgKyAiICIg
KyB0aGlzLnN5c3RlbUlEICsgIlwiIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3lzdGVt
SUQpCisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFNZU1RFTSBcIiIgKyB0aGlzLnN5
c3RlbUlEICsgIlwiIjsKKyAgICAgICAgICAgIGlmICh0aGlzLmludGVybmFsU3Vic2V0KQorICAg
ICAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBbIiArIHRoaXMuaW50ZXJuYWxTdWJzZXQgKyAi
XSI7CisgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7PC9zcGFuPiI7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGluZm8udGl0bGUgPSB0aGlz
Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNlKCkuZXNjYXBlSFRNTCgp
OwogICAgIH0KSW5kZXg6IHhtbC9YU0xUUHJvY2Vzc29yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB4bWwv
WFNMVFByb2Nlc3Nvci5jcHAJKHJldmlzaW9uIDMwMzY4KQorKysgeG1sL1hTTFRQcm9jZXNzb3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNyArMjU4LDYgQEAgUmVmUHRyPERvY3VtZW50PiBY
U0xUUHJvY2Vzc29yOjpjcmVhdGVEbwogICAgICAgICByZXN1bHQtPnNldFVSTChvd25lckRvY3Vt
ZW50LT51cmwoKSk7CiAgICAgICAgIHJlc3VsdC0+c2V0QmFzZVVSTChvd25lckRvY3VtZW50LT5i
YXNlVVJMKCkpOwogICAgIH0KLSAgICByZXN1bHQtPmRldGVybWluZVBhcnNlTW9kZShkb2N1bWVu
dFNvdXJjZSk7IC8vIE1ha2Ugc3VyZSB3ZSBwYXJzZSBpbiB0aGUgY29ycmVjdCBtb2RlLgogICAg
IAogICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVyID0gbmV3IFRleHRSZXNv
dXJjZURlY29kZXIoc291cmNlTUlNRVR5cGUpOwogICAgIGRlY29kZXItPnNldEVuY29kaW5nKHNv
dXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/IFVURjhFbmNvZGluZygpIDogVGV4dEVuY29kaW5nKHNv
dXJjZUVuY29kaW5nKSwgVGV4dFJlc291cmNlRGVjb2Rlcjo6RW5jb2RpbmdGcm9tWE1MSGVhZGVy
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19216</attachid>
            <date>2008-02-19 15:44:52 -0800</date>
            <delta_ts>2008-02-19 20:37:32 -0800</delta_ts>
            <desc>Finish view source mode. Fix bugs in the inspector code.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>46522</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAgICAgICAgZG9jLT5zZXREb2NUeXBlKGRv
Y3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChkb2MuZ2V0KCkpOwotICAgIH0K
KyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5hZGRDaGlsZChkb2N0eXBlKTsKIAogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9j
LT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYykpOwpJbmRl
eDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSwx
MiArNDc1LDE1IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0NvbG9yKCkKIAogdm9p
ZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkK
IHsKKyAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuCisg
ICAgLy8gTm90ZTogVGhpcyBpcyBub3QgYSBwdWJsaWMgRE9NIG1ldGhvZCBhbmQgY2FuIG9ubHkg
YmUgY2FsbGVkIGJ5IHRoZSBwYXJzZXIuCisgICAgQVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5
cGUpOworICAgIGlmIChtX2RvY1R5cGUgJiYgZG9jVHlwZSkKKyAgICAgICAgcmV0dXJuOwogICAg
IG1fZG9jVHlwZSA9IGRvY1R5cGU7Ci19Ci0KLURvY3VtZW50VHlwZSAqRG9jdW1lbnQ6OmRvY3R5
cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7CisgICAgaWYgKG1fZG9j
VHlwZSkKKyAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsKKyAgICBkZXRlcm1p
bmVQYXJzZU1vZGUoKTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1l
bnRhdGlvbigpIGNvbnN0CkBAIC0xNzAyLDE0ICsxNzA1LDYgQEAgQ1NTU3R5bGVTaGVldCogRG9j
dW1lbnQ6Om1hcHBlZEVsZW1lbnRTaAogICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRTaGVldC5n
ZXQoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmlu
ZyYpCi17Ci0gICAgLy8gRm9yIFhNTCBkb2N1bWVudHMgdXNlIHN0cmljdCBwYXJzZSBtb2RlLgot
ICAgIC8vIEhUTUwgb3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB0aGUgcGFyc2Ug
bW9kZS4KLSAgICBwTW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9IFhIdG1sOwotfQotCiBzdGF0
aWMgTm9kZSogbmV4dE5vZGVXaXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYklu
ZGV4LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZl
IG9mIHN0YXJ0CkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1l
bnQuaAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTc5LDggKzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmli
dXRlcyBmb3IgRG9jdW1lbnQKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkg
Y29uc3Q7IC8vIE1heSByZXR1cm4gMCBmb3IgSFRNTCBkb2N1bWVudHMKLSAgICBEb2N1bWVudFR5
cGUqIHJlYWxEb2NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CisgICAg
RG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9
CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2Up
OwpAQCAtNDAyLDggKzQwMSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGluZyhib29s
IHApIHsgbV9wcmludGluZyA9IHA7IH0KIAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29tcGF0LCBB
bG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQ
YXJzZU1vZGUoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRl
dGVybWluZVBhcnNlTW9kZSgpIHt9CisKK3B1YmxpYzoKICAgICB2b2lkIHNldFBhcnNlTW9kZShQ
YXJzZU1vZGUgbSkgeyBwTW9kZSA9IG07IH0KICAgICBQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29u
c3QgeyByZXR1cm4gcE1vZGU7IH0KIApJbmRleDogZG9tL0RvY3VtZW50VHlwZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgZG9tL0Rv
Y3VtZW50VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw0ICsxMDUsMjMgQEAgUGFzc1Jl
ZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZQogICAgIHJldHVybiAwOwogfQogCit2
b2lkIERvY3VtZW50VHlwZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreworICAgIC8vIE91ciBk
b2N1bWVudCBub2RlIGNhbiBiZSBudWxsIGlmIHdlIHdlcmUgY3JlYXRlZCBieSBhIERPTUltcGxl
bWVudGF0aW9uLiAgV2UgdXNlIHRoZSBwYXJlbnQoKSBpbnN0ZWFkLgorICAgIEFTU0VSVChwYXJl
bnQoKSAmJiBwYXJlbnQoKS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgaWYgKHBhcmVudCgpICYm
IHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2MgPSBz
dGF0aWNfY2FzdDxEb2N1bWVudCo+KHBhcmVudCgpKTsKKyAgICAgICAgaWYgKCFkb2MtPmRvY3R5
cGUoKSkKKyAgICAgICAgICAgIGRvYy0+c2V0RG9jVHlwZSh0aGlzKTsKKyAgICB9CisgICAgTm9k
ZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBEb2N1bWVudFR5cGU6OnJlbW92
ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPmRv
Y3R5cGUoKSA9PSB0aGlzKQorICAgICAgICBkb2N1bWVudCgpLT5zZXREb2NUeXBlKDApOworICAg
IE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKK30KKwogfQpJbmRleDogZG9tL0RvY3VtZW50
VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudFR5cGUuaAkocmV2aXNpb24gMzAzODcp
CisrKyBkb20vRG9jdW1lbnRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVw
KTsKICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCisgICAgdmlydHVhbCB2
b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
RG9jdW1lbnQoKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+IG1f
aW1wbGVtZW50YXRpb247CiAgICAgUmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9lbnRpdGllczsKSW5k
ZXg6IGRvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTm9kZS5jcHAJKHJldmlzaW9uIDMw
Mzg3KQorKysgZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzYsNyArNzM2LDcgQEAg
Ym9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihjb25zdCBOb2RlICpvdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotYm9vbCBOb2RlOjpjaGlsZEFsbG93ZWQoIE5vZGUgKm5ld0NoaWxkICkKK2Jvb2wg
Tm9kZTo6Y2hpbGRBbGxvd2VkKE5vZGUqIG5ld0NoaWxkKQogewogICAgIHJldHVybiBjaGlsZFR5
cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgpKTsKIH0KSW5kZXg6IGRvbS9YTUxUb2tlbml6
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzMDM4
NykKKysrIGRvbS9YTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDcgKzEw
MTIsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJuYWxTdWJzZXQoY29uc3QgCiAgICAgaWYg
KCFkb2MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvYy0+c2V0RG9jVHlwZShuZXcgRG9jdW1l
bnRUeXBlKGRvYywgdG9TdHJpbmcobmFtZSksIHRvU3RyaW5nKGV4dGVybmFsSUQpLCB0b1N0cmlu
ZyhzeXN0ZW1JRCkpKTsKKyAgICBkb2MtPmFkZENoaWxkKG5ldyBEb2N1bWVudFR5cGUoZG9jLCB0
b1N0cmluZyhuYW1lKSwgdG9TdHJpbmcoZXh0ZXJuYWxJRCksIHRvU3RyaW5nKHN5c3RlbUlEKSkp
OwogfQogCiBzdGF0aWMgaW5saW5lIFhNTFRva2VuaXplciogZ2V0VG9rZW5pemVyKHZvaWQqIGNs
b3N1cmUpCkBAIC0yMDk4LDcgKzIwOTgsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VEdGQo
KQogICAgICAgICBzZXRJc1hIVE1MRG9jdW1lbnQodHJ1ZSk7IC8vIGNvbnRyb2xzIGlmIHdlIHJl
cGxhY2UgZW50aXRpZXMgb3Igbm90LgogICAgIH0KICAgICBpZiAoIW1fcGFyc2luZ0ZyYWdtZW50
KQotICAgICAgICBtX2RvYy0+c2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKG1fZG9jLCBuYW1l
LCBwdWJsaWNJZCwgc3lzdGVtSWQpKTsKKyAgICAgICAgbV9kb2MtPmFkZENoaWxkKG5ldyBEb2N1
bWVudFR5cGUobV9kb2MsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkpOwogICAgIAogfQogI2Vu
ZGlmCkluZGV4OiBlZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZWRpdGluZy9tYXJr
dXAuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGVkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzY4LDE0ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdGFydE1hcmt1cChW
ZWN0b3I8VUNoCiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICAgICAg
YXBwZW5kKHJlc3VsdCwgc3RhdGljX2Nhc3Q8Y29uc3QgQ29tbWVudCo+KG5vZGUpLT50b1N0cmlu
ZygpKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05P
REU6IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBJIHRoaW5rIHRoZSBjb21tZW50IGJlbG93IChh
bmQgdGhlcmVmb3JlIHRoaXMgY29kZSkgaXMgd3Jvbmcgbm93Ci0gICAgICAgICAgICAvLyBEb2N1
bWVudHMgZG8gbm90IG5vcm1hbGx5IGNvbnRhaW4gYSBkb2NUeXBlIGFzIGEgY2hpbGQgbm9kZSwg
Zm9yY2UgaXQgdG8gcHJpbnQgaGVyZSBpbnN0ZWFkLgotICAgICAgICAgICAgY29uc3QgRG9jdW1l
bnRUeXBlKiBkb2NUeXBlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRG9jdW1lbnQqPihub2RlKS0+ZG9j
dHlwZSgpOwotICAgICAgICAgICAgaWYgKGRvY1R5cGUpCi0gICAgICAgICAgICAgICAgYXBwZW5k
KHJlc3VsdCwgZG9jVHlwZS0+dG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQorICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKSW5kZXg6IGh0bWwvSFRNTERvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxEb2N1bWVudC5jcHAJKHJldmlzaW9uIDMwMzg3KQor
KysgaHRtbC9IVE1MRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNyArMjczLDcg
QEAgVG9rZW5pemVyICpIVE1MRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcgogCiBib29sIEhUTUxE
b2N1bWVudDo6Y2hpbGRBbGxvd2VkKE5vZGUgKm5ld0NoaWxkKQogewotICAgIHJldHVybiBuZXdD
aGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8fCBuZXdDaGlsZC0+aXNDb21tZW50Tm9kZSgpOwor
ICAgIHJldHVybiBuZXdDaGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8fCBuZXdDaGlsZC0+aXND
b21tZW50Tm9kZSgpIHx8IChuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBET0NVTUVOVF9UWVBFX05P
REUgJiYgIWRvY3R5cGUoKSk7CiB9CiAKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTERvY3VtZW50
OjpjcmVhdGVFbGVtZW50KGNvbnN0IFN0cmluZyAmbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBA
IC0zNDYsMTU0ICszNDYsMTEgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6Omhhc0RvY0V4dHJhTmFtZWRJ
dGVtKAogICAgIHJldHVybiBkb2NFeHRyYU5hbWVkSXRlbUNvdW50cy5nZXQobmFtZS5pbXBsKCkp
ICE9IDA7CiB9CiAKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9ET0NUWVBFICAgICAgICA9ICAg
ICAgICgxPDwwKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9QVUJMSUNfSUQgICAgICA9ICAg
ICAgICgxPDwxKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQgICAgICA9ICAg
ICAgICgxPDwyKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTCAgICAgICA9ICAg
ICAgICgxPDwzKTsKLQotc3RhdGljIGludCBwYXJzZURvY1R5cGVQYXJ0KGNvbnN0IFN0cmluZyYg
YnVmZmVyLCBpbnQgaW5kZXgpCit2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2Rl
KCkKIHsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBVQ2hhciBjaCA9IGJ1ZmZlcltpbmRl
eF07Ci0gICAgICAgIGlmIChjaCA9PSAnICcgfHwgY2ggPT0gJ1x0JyB8fCBjaCA9PSAnXG4nIHx8
IGNoID09ICdccicpCi0gICAgICAgICAgICArK2luZGV4OwotICAgICAgICBlbHNlIGlmIChjaCA9
PSAnLScpIHsKLSAgICAgICAgICAgIGludCB0bXBJbmRleD1pbmRleDsKLSAgICAgICAgICAgIGlm
IChidWZmZXJbaW5kZXgrMV0gPT0gJy0nICYmCi0gICAgICAgICAgICAgICAgKCh0bXBJbmRleD1i
dWZmZXIuZmluZCgiLS0iLCBpbmRleCsyKSkgIT0gLTEpKQotICAgICAgICAgICAgICAgIGluZGV4
ID0gdG1wSW5kZXgrMjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4g
aW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIGluZGV4
OwotICAgIH0KLX0KKyAgICAvLyBGSVhNRTogSXQncyB0ZXJyaWJsZSB0aGF0IHRoaXMgY29kZSBy
dW5zIHNlcGFyYXRlbHkgYW5kIGlzbid0IGp1c3QgYnVpbHQgaW4gdG8gdGhlCisgICAgLy8gSFRN
TCB0b2tlbml6ZXIvcGFyc2VyLgogCi1zdGF0aWMgYm9vbCBjb250YWluc1N0cmluZyhjb25zdCBj
aGFyKiBzdHIsIGNvbnN0IFN0cmluZyYgYnVmZmVyLCBpbnQgb2Zmc2V0KQotewotICAgIFN0cmlu
ZyBzdGFydFN0cmluZyhzdHIpOwotICAgIGlmIChvZmZzZXQgKyBzdGFydFN0cmluZy5sZW5ndGgo
KSA+IGJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIFN0
cmluZyBidWZmZXJTdHJpbmcgPSBidWZmZXIuc3Vic3RyaW5nKG9mZnNldCwgc3RhcnRTdHJpbmcu
bGVuZ3RoKCkpLmxvd2VyKCk7Ci0gICAgU3RyaW5nIGxvd2VyU3RhcnQgPSBzdGFydFN0cmluZy5s
b3dlcigpOwotCi0gICAgcmV0dXJuIGJ1ZmZlclN0cmluZy5zdGFydHNXaXRoKGxvd2VyU3RhcnQp
OwotfQotCi1zdGF0aWMgYm9vbCBwYXJzZURvY1R5cGVEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcm
IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogcmVzdWx0
RmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcmIG5hbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcmIHB1YmxpY0lELAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBzeXN0ZW1JRCkKLXsK
LSAgICBib29sIGhhdmVEb2NUeXBlID0gZmFsc2U7Ci0gICAgKnJlc3VsdEZsYWdzID0gMDsKLQot
ICAgIC8vIFNraXAgdGhyb3VnaCBhbnkgY29tbWVudHMgYW5kIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rp
b25zLgotICAgIGludCBpbmRleCA9IDA7Ci0gICAgZG8gewotICAgICAgICBpbmRleCA9IGJ1ZmZl
ci5maW5kKCc8JywgaW5kZXgpOwotICAgICAgICBpZiAoaW5kZXggPT0gLTEpIGJyZWFrOwotICAg
ICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1ZmZlcltpbmRleCsxXTsKLSAgICAgICAgaWYgKG5leHRD
aGFyID09ICchJykgewotICAgICAgICAgICAgaWYgKGNvbnRhaW5zU3RyaW5nKCJkb2N0eXBlIiwg
YnVmZmVyLCBpbmRleCsyKSkgewotICAgICAgICAgICAgICAgIGhhdmVEb2NUeXBlID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICBpbmRleCArPSA5OyAvLyBTa2lwICI8IURPQ1RZUEUiCi0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNl
RG9jVHlwZVBhcnQoYnVmZmVyLGluZGV4KTsKLSAgICAgICAgICAgIGluZGV4ID0gYnVmZmVyLmZp
bmQoJz4nLCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAobmV4dENoYXIgPT0g
Jz8nKQotICAgICAgICAgICAgaW5kZXggPSBidWZmZXIuZmluZCgnPicsIGluZGV4KTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfSB3aGlsZSAoaW5kZXggIT0gLTEpOwot
Ci0gICAgaWYgKCFoYXZlRG9jVHlwZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKnJlc3Vs
dEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEU7Ci0KLSAgICBpbmRleCA9IHBhcnNlRG9j
VHlwZVBhcnQoYnVmZmVyLCBpbmRleCk7Ci0gICAgaWYgKCFjb250YWluc1N0cmluZygiaHRtbCIs
IGJ1ZmZlciwgaW5kZXgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgbmFtZSA9
IGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXgsIDQpOwotICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFy
dChidWZmZXIsIGluZGV4KzQpOwotICAgIGJvb2wgaGFzUHVibGljID0gY29udGFpbnNTdHJpbmco
InB1YmxpYyIsIGJ1ZmZlciwgaW5kZXgpOwotICAgIGlmIChoYXNQdWJsaWMpIHsKLSAgICAgICAg
aW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgrNik7Ci0KLSAgICAgICAgLy8g
V2UndmUgcmVhZCA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgKG5vdCBjYXNlIHNlbnNpdGl2ZSkuCi0g
ICAgICAgIC8vIE5vdyB3ZSBmaW5kIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgcHVibGlj
IGlkZW50aWZlcnMKLSAgICAgICAgLy8gYW5kIHN5c3RlbSBpZGVudGlmaWVycyAoYXNzdW1pbmcg
dGhleSdyZSBldmVuIHByZXNlbnQpLgotICAgICAgICBVQ2hhciB0aGVDaGFyID0gYnVmZmVyW2lu
ZGV4XTsKLSAgICAgICAgaWYgKHRoZUNoYXIgIT0gJ1wiJyAmJiB0aGVDaGFyICE9ICdcJycpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICAvLyB8c3RhcnR8IGlz
IHRoZSBmaXJzdCBjaGFyYWN0ZXIgKGFmdGVyIHRoZSBxdW90ZSkgYW5kIHxlbmR8Ci0gICAgICAg
IC8vIGlzIHRoZSBmaW5hbCBxdW90ZSwgc28gdGhlcmUgYXJlIHxlbmR8LXxzdGFydHwgY2hhcmFj
dGVycy4KLSAgICAgICAgaW50IHB1YmxpY0lEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICBpbnQg
cHVibGljSURFbmQgPSBidWZmZXIuZmluZCh0aGVDaGFyLCBwdWJsaWNJRFN0YXJ0KTsKLSAgICAg
ICAgaWYgKHB1YmxpY0lERW5kID09IC0xKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBwdWJsaWNJREVuZCsxKTsKLSAg
ICAgICAgVUNoYXIgbmV4dCA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlmIChuZXh0ID09ICc+
JykgewotICAgICAgICAgICAgLy8gUHVibGljIGlkZW50aWZpZXIgcHJlc2VudCwgYnV0IG5vIHN5
c3RlbSBpZGVudGlmaWVyLgotICAgICAgICAgICAgLy8gRG8gbm90aGluZy4gIE5vdGUgdGhhdCB0
aGlzIGlzIHRoZSBtb3N0IGNvbW1vbgotICAgICAgICAgICAgLy8gY2FzZS4KLSAgICAgICAgfQot
ICAgICAgICBlbHNlIGlmIChuZXh0ID09ICdcIicgfHwgbmV4dCA9PSAnXCcnKSB7Ci0gICAgICAg
ICAgICAvLyBXZSBoYXZlIGEgc3lzdGVtIGlkZW50aWZpZXIuCi0gICAgICAgICAgICAqcmVzdWx0
RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEOwotICAgICAgICAgICAgaW50IHN5c3Rl
bUlEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICAgICAgaW50IHN5c3RlbUlERW5kID0gYnVmZmVy
LmZpbmQobmV4dCwgc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAgICBpZiAoc3lzdGVtSURFbmQg
PT0gLTEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgc3lzdGVt
SUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5c3RlbUlEU3RhcnQsIHN5c3RlbUlERW5kIC0gc3lzdGVt
SURTdGFydCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAobmV4dCA9PSAnWycpIHsKLSAg
ICAgICAgICAgIC8vIFdlIGZvdW5kIGFuIGludGVybmFsIHN1YnNldC4KLSAgICAgICAgICAgICpy
ZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTDsKLSAgICAgICAgfQotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFNvbWV0aGluZydzIHdyb25nLgot
Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gdHJpbSB3aGl0ZXNwYWNlIG9mZiB0aGUgcHVibGljIGlk
ZW50aWZpZXIuCi0gICAgICAgIHB1YmxpY0lEID0gYnVmZmVyLnN1YnN0cmluZyhwdWJsaWNJRFN0
YXJ0LCBwdWJsaWNJREVuZCAtIHB1YmxpY0lEU3RhcnQpOwotICAgICAgICBwdWJsaWNJRCA9IHB1
YmxpY0lELnN0cmlwV2hpdGVTcGFjZSgpOwotICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VN
T0RFX0hBVkVfUFVCTElDX0lEOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChjb250YWluc1N0
cmluZygic3lzdGVtIiwgYnVmZmVyLCBpbmRleCkpIHsKLSAgICAgICAgICAgIC8vIERvY3R5cGUg
aGFzIGEgc3lzdGVtIElEIGJ1dCBubyBwdWJsaWMgSUQKLSAgICAgICAgICAgICpyZXN1bHRGbGFn
cyB8PSBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQ7Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNl
RG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCs2KTsKLSAgICAgICAgICAgIFVDaGFyIG5leHQgPSBi
dWZmZXJbaW5kZXhdOwotICAgICAgICAgICAgaWYgKG5leHQgIT0gJ1wiJyAmJiBuZXh0ICE9ICdc
JycpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaW50IHN5c3Rl
bUlEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICAgICAgaW50IHN5c3RlbUlERW5kID0gYnVmZmVy
LmZpbmQobmV4dCwgc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAgICBpZiAoc3lzdGVtSURFbmQg
PT0gLTEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgc3lzdGVt
SUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5c3RlbUlEU3RhcnQsIHN5c3RlbUlERW5kIC0gc3lzdGVt
SURTdGFydCk7Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBz
eXN0ZW1JREVuZCsxKTsKLSAgICAgICAgfQotCi0gICAgICAgIFVDaGFyIG5leHRDaGFyID0gYnVm
ZmVyW2luZGV4XTsKLSAgICAgICAgaWYgKG5leHRDaGFyID09ICdbJykKLSAgICAgICAgICAgICpy
ZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTDsKLSAgICAgICAgZWxzZSBpZiAo
bmV4dENoYXIgIT0gJz4nKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAg
IHJldHVybiB0cnVlOwotfQotCi12b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2Rl
KGNvbnN0IFN0cmluZyYgc3RyKQotewogICAgIC8vIFRoaXMgY29kZSBtb3JlIG9yIGxlc3MgbWlt
aWNzIE1vemlsbGEncyBpbXBsZW1lbnRhdGlvbiAoc3BlY2lmaWNhbGx5IHRoZQogICAgIC8vIGRv
Y3R5cGUgcGFyc2luZyBpbXBsZW1lbnRlZCBieSBEYXZpZCBCYXJvbiBpbiBNb3ppbGxhJ3MgbnNQ
YXJzZXIuY3BwKS4KICAgICAvLwpAQCAtNTA3LDI4ICszNjQsMTkgQEAgdm9pZCBIVE1MRG9jdW1l
bnQ6OmRldGVybWluZVBhcnNlTW9kZShjbwogICAgIC8vIHRvIFNUQU5EQVJEUyBtb2RlLgogICAg
IC8vIFNUUklDVCAtIG5vIHF1aXJrcyBhcHBseS4gIFdlYiBwYWdlcyB3aWxsIG9iZXkgdGhlIHNw
ZWNpZmljYXRpb25zIHRvCiAgICAgLy8gdGhlIGxldHRlci4KLQotICAgIFN0cmluZyBuYW1lLCBz
eXN0ZW1JRCwgcHVibGljSUQ7Ci0gICAgaW50IHJlc3VsdEZsYWdzID0gMDsKLSAgICBpZiAocGFy
c2VEb2NUeXBlRGVjbGFyYXRpb24oc3RyLCAmcmVzdWx0RmxhZ3MsIG5hbWUsIHB1YmxpY0lELCBz
eXN0ZW1JRCkpIHsKLSAgICAgICAgaWYgKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfRE9D
VFlQRSkKLSAgICAgICAgICAgIHNldERvY1R5cGUobmV3IERvY3VtZW50VHlwZSh0aGlzLCBuYW1l
LCBwdWJsaWNJRCwgc3lzdGVtSUQpKTsKLSAgICAgICAgaWYgKCEocmVzdWx0RmxhZ3MgJiBQQVJT
RU1PREVfSEFWRV9ET0NUWVBFKSkgewotICAgICAgICAgICAgLy8gTm8gZG9jdHlwZSBmb3VuZCBh
dCBhbGwuICBEZWZhdWx0IHRvIHF1aXJrcyBtb2RlIGFuZCBIdG1sNC4KLSAgICAgICAgICAgIHNl
dFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwotICAg
ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0lO
VEVSTkFMKSB8fAotICAgICAgICAgICAgICAgICAhKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hB
VkVfUFVCTElDX0lEKSkgewotICAgICAgICAgICAgLy8gSW50ZXJuYWwgc3Vic2V0cyBhbHdheXMg
ZGVub3RlIGZ1bGwgc3RhbmRhcmRzLCBhcyBkb2VzCi0gICAgICAgICAgICAvLyBhIGRvY3R5cGUg
d2l0aG91dCBhIHB1YmxpYyBJRC4KKyAgICBpZiAoIWRvY3R5cGUoKSkgeworICAgICAgICAvLyBO
byBkb2N0eXBlIGZvdW5kIGF0IGFsbC4gIERlZmF1bHQgdG8gcXVpcmtzIG1vZGUgYW5kIEh0bWw0
LgorICAgICAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsKKyAgICAgICAgc2V0SFRNTE1vZGUoSHRt
bDQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N0eXBlKCktPnB1YmxpY0lkKCkuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICAvLyBBIGRvY3R5cGUgd2l0aG91dCBhIHB1YmxpYyBJRCBt
ZWFucyB1c2Ugc3RyaWN0IG1vZGUuCiAgICAgICAgICAgICBzZXRQYXJzZU1vZGUoU3RyaWN0KTsK
ICAgICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKLSAgICAgICAgfQotICAgICAgICBlbHNl
IHsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gY2hlY2sgYSBs
aXN0IG9mIHB1YmxpYyBJRHMgdG8gc2VlIHdoYXQgd2UKICAgICAgICAgICAgIC8vIHNob3VsZCBk
by4KLSAgICAgICAgICAgIFN0cmluZyBsb3dlclB1YklEID0gcHVibGljSUQubG93ZXIoKTsKKyAg
ICAgICAgICAgIFN0cmluZyBsb3dlclB1YklEID0gZG9jdHlwZSgpLT5wdWJsaWNJZCgpLmxvd2Vy
KCk7CiAgICAgICAgICAgICBDU3RyaW5nIHB1YklEU3RyID0gbG93ZXJQdWJJRC5sYXRpbjEoKTsK
ICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBMb29rIHVwIHRoZSBlbnRyeSBpbiBvdXIgZ3Bl
cmYtZ2VuZXJhdGVkIHRhYmxlLgpAQCAtNTQwLDEwICszODgsOSBAQCB2b2lkIEhUTUxEb2N1bWVu
dDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBzd2l0Y2ggKChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9I
QVZFX1NZU1RFTV9JRCkgPwotICAgICAgICAgICAgICAgICAgICBkb2N0eXBlRW50cnktPm1vZGVf
aWZfc3lzaWQgOgotICAgICAgICAgICAgICAgICAgICBkb2N0eXBlRW50cnktPm1vZGVfaWZfbm9f
c3lzaWQpCi0gICAgICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKGRvY3R5cGUoKS0+c3lz
dGVtSWQoKS5pc0VtcHR5KCkgPworICAgICAgICAgICAgICAgICAgICBkb2N0eXBlRW50cnktPm1v
ZGVfaWZfbm9fc3lzaWQgOgorICAgICAgICAgICAgICAgICAgICBkb2N0eXBlRW50cnktPm1vZGVf
aWZfc3lzaWQpIHsKICAgICAgICAgICAgICAgICBjYXNlIFB1YklESW5mbzo6ZVF1aXJrczM6CiAg
ICAgICAgICAgICAgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwogICAgICAgICAgICAgICAg
ICAgICBzZXRIVE1MTW9kZShIdG1sMyk7CkBAIC01NjEsMTQgKzQwOCw3IEBAIHZvaWQgSFRNTERv
Y3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUoY28KICAgICAgICAgICAgIH0KICAgICAgICAgfSAg
IAogICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgLy8gTWFsZm9ybWVkIGRvY3R5cGUgaW1wbGll
cyBxdWlya3MgbW9kZS4KLSAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgIHNl
dEhUTUxNb2RlKEh0bWwzKTsKLSAgICB9Ci0gIAogICAgIHN0eWxlU2VsZWN0b3IoKS0+c3RyaWN0
UGFyc2luZyA9ICFpbkNvbXBhdE1vZGUoKTsKLSAKIH0KICAgICAKIH0KSW5kZXg6IGh0bWwvSFRN
TERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MRG9jdW1lbnQuaAkocmV2aXNpb24g
MzAzODcpCisrKyBodG1sL0hUTUxEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2
OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVF
bGVtZW50KGNvbnN0IFN0cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdmly
dHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmKTsKLQogICAgIHZvaWQg
YWRkTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVOYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBTdHJp
bmcmIG5hbWUpOwpAQCAtODIsNiArODAsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFN0cmluZ0ltcGwqLCBpbnQ+IE5hbWVDb3VudE1hcDsKIAogcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IHZvaWQgZGV0ZXJtaW5lUGFyc2VNb2RlKCk7CisKK3ByaXZhdGU6CiAgICAgTmFtZUNvdW50TWFw
IG5hbWVkSXRlbUNvdW50czsKICAgICBOYW1lQ291bnRNYXAgZG9jRXh0cmFOYW1lZEl0ZW1Db3Vu
dHM7CiB9OwpJbmRleDogaHRtbC9IVE1MUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hU
TUxQYXJzZXIuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFBhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRz
LmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAtMjcxLDYg
KzI3MiwxNiBAQCBQYXNzUmVmUHRyPE5vZGU+IEhUTUxQYXJzZXI6OnBhcnNlVG9rZW4oCiAgICAg
cmV0dXJuIG47CiB9CiAKK3ZvaWQgSFRNTFBhcnNlcjo6cGFyc2VEb2N0eXBlVG9rZW4oRG9jdHlw
ZVRva2VuKiB0KQoreworICAgIC8vIElnbm9yZSBhbnkgZG9jdHlwZSBhZnRlciB0aGUgZmlyc3Qu
ICBJZ25vcmUgZG9jdHlwZXMgaW4gZnJhZ21lbnRzLgorICAgIGlmIChkb2N1bWVudC0+ZG9jdHlw
ZSgpIHx8IG1faXNQYXJzaW5nRnJhZ21lbnQpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisg
ICAgLy8gTWFrZSBhIG5ldyBkb2N0eXBlIG5vZGUgYW5kIHNldCBpdCBhcyBvdXIgZG9jdHlwZS4K
KyAgICBkb2N1bWVudC0+YWRkQ2hpbGQobmV3IERvY3VtZW50VHlwZShkb2N1bWVudCwgU3RyaW5n
OjphZG9wdCh0LT5tX25hbWUpLCBTdHJpbmc6OmFkb3B0KHQtPm1fcHVibGljSUQpLCBTdHJpbmc6
OmFkb3B0KHQtPm1fc3lzdGVtSUQpKSk7Cit9CisKIHN0YXRpYyBib29sIGlzVGFibGVTZWN0aW9u
KE5vZGUqIG4pCiB7CiAgICAgcmV0dXJuIG4tPmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IG4tPmhh
c1RhZ05hbWUodGZvb3RUYWcpIHx8IG4tPmhhc1RhZ05hbWUodGhlYWRUYWcpOwpJbmRleDogaHRt
bC9IVE1MUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MUGFyc2VyLmgJKHJldmlzaW9u
IDMwMzg3KQorKysgaHRtbC9IVE1MUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N0eXBlVG9rZW47CiBjbGFz
cyBEb2N1bWVudDsKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CkBAIC01Nyw2ICs1OCw5IEBAIHB1YmxpYzoKICAgICAgKi8KICAgICBQYXNzUmVmUHRyPE5vZGU+
IHBhcnNlVG9rZW4oVG9rZW4qKTsKICAgICAKKyAgICAvLyBQYXJzZXMgYSBkb2N0eXBlIHRva2Vu
LgorICAgIHZvaWQgcGFyc2VEb2N0eXBlVG9rZW4oRG9jdHlwZVRva2VuKik7CisKICAgICAvKioK
ICAgICAgKiB0b2tlbml6ZXIgc2F5cyBpdCdzIG5vdCBnb2luZyB0byBiZSBzZW5kaW5nIHVzIGFu
eSBtb3JlIHRva2VucwogICAgICAqLwpJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGh0
bWwvSFRNTFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDkgQEAgY29u
c3QgZG91YmxlIHRva2VuaXplclRpbWVEZWxheSA9IDAuNTAwOwogI2VuZGlmCiAKIHN0YXRpYyBj
b25zdCBjaGFyIGNvbW1lbnRTdGFydCBbXSA9ICI8IS0tIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRv
Y3R5cGVTdGFydCBbXSA9ICI8IWRvY3R5cGUiOworc3RhdGljIGNvbnN0IGNoYXIgcHVibGljU3Rh
cnQgW10gPSAicHVibGljIjsKK3N0YXRpYyBjb25zdCBjaGFyIHN5c3RlbVN0YXJ0IFtdID0gInN5
c3RlbSI7CiBzdGF0aWMgY29uc3QgY2hhciBzY3JpcHRFbmQgW10gPSAiPC9zY3JpcHQiOwogc3Rh
dGljIGNvbnN0IGNoYXIgeG1wRW5kIFtdID0gIjwveG1wIjsKIHN0YXRpYyBjb25zdCBjaGFyIHN0
eWxlRW5kIFtdID0gICI8L3N0eWxlIjsKQEAgLTIyMiw2ICsyMjUsOSBAQCB2b2lkIEhUTUxUb2tl
bml6ZXI6OnJlc2V0KCkKICAgICBtX3N0YXRlLnNldEZvcmNlU3luY2hyb25vdXMoZmFsc2UpOwog
CiAgICAgY3VyclRva2VuLnJlc2V0KCk7CisgICAgbV9kb2N0eXBlVG9rZW4ucmVzZXQoKTsKKyAg
ICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7CisgICAgbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNo
Q291bnQgPSAwOwogfQogCiB2b2lkIEhUTUxUb2tlbml6ZXI6OmJlZ2luKCkKQEAgLTg0NCw2ICs4
NTAsMjIyIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICBy
ZXR1cm4gc3RhdGU7CiB9CiAKK0hUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBh
cnNlRG9jdHlwZShTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCit7CisgICAgQVNT
RVJUKHN0YXRlLmluRG9jdHlwZSgpKTsKKyAgICB3aGlsZSAoIXNyYy5pc0VtcHR5KCkgJiYgc3Rh
dGUuaW5Eb2N0eXBlKCkpIHsKKyAgICAgICAgVUNoYXIgYyA9ICpzcmM7CisgICAgICAgIGJvb2wg
aXNXaGl0ZXNwYWNlID0gYyA9PSAnXHInIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdcdCcgfHwgYyA9
PSAnICc7CisgICAgICAgIHN3aXRjaCAobV9kb2N0eXBlVG9rZW4uc3RhdGUoKSkgeworICAgICAg
ICAgICAgY2FzZSBEb2N0eXBlQmVnaW46IHsKKyAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tl
bi5zZXRTdGF0ZShEb2N0eXBlQmVmb3JlTmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGlzV2hp
dGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIp
OworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNhc2UgRG9jdHlwZUJlZm9yZU5hbWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9
PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWFsZm9ybWVkLiAgSnVzdCBleGl0Lgor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9j
ZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3Bh
Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUo
RG9jdHlwZU5hbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FzZSBEb2N0eXBlTmFtZTogeworICAgICAgICAgICAgICAgIGlmIChjID09ICc+
JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0LgorICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAg
ICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hp
dGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7
IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFBVQkxJQworICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFNZ
U1RFTQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBl
QWZ0ZXJOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVy
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3RO
b25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fbmFtZS5h
cHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJOYW1lOiB7CisgICAgICAgICAgICAgICAg
aWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVt
aXQgaXQuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoIWlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBh
c3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoYykg
PT0gcHVibGljU3RhcnRbbV9kb2N0eXBlU2VhcmNoQ291bnRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID09IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRm91bmQgJ1BVQkxJQycgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQmVmb3JlUHVibGljSUQpOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID4gMCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAwOworICAgICAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b0FTQ0lJTG93ZXIoYykgPT0gc3lzdGVtU3Rh
cnRbbV9kb2N0eXBlU2VhcmNoQ291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID09IDYpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRm91bmQgJ1NZU1RFTScgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQmVmb3JlU3lzdGVtSUQpOwor
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAg
bV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1f
bGluZU51bWJlcik7IC8vIFdoaXRlc3BhY2Uga2VlcHMgdXMgaW4gdGhlIGFmdGVyIG5hbWUgc3Rh
dGUuCisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FzZSBEb2N0eXBlQmVmb3JlUHVibGljSUQ6IHsKKyAgICAgICAgICAgICAgICBp
ZiAoYyA9PSAnXCInIHx8IGMgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICB0cXVvdGUg
PSBjID09ICdcIicgPyBEb3VibGVRdW90ZSA6IFNpbmdsZVF1b3RlOworICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlUHVibGljSUQpOworICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBDb25zaWRlcmVkIGJvZ3VzLiAg
RG9uJ3QgcHJvY2VzcyB0aGUgZG9jdHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFu
Y2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5
cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNy
Yy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdT
b3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3Nv
dXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVQdWJsaWNJ
RDogeworICAgICAgICAgICAgICAgIGlmICgoYyA9PSAnXCInICYmIHRxdW90ZSA9PSBEb3VibGVR
dW90ZSkgfHwgKGMgPT0gJ1wnJyAmJiB0cXVvdGUgPT0gU2luZ2xlUXVvdGUpKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUFmdGVyUHVibGljSUQpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvbnNp
ZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAgICAg
ICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0
YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdT
b3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2Vu
KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlVG9rZW4ubV9wdWJsaWNJRC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5h
ZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3Vy
Y2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJj
ZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJQdWJsaWNJRDoKKyAg
ICAgICAgICAgICAgICBpZiAoYyA9PSAnXCInIHx8IGMgPT0gJ1wnJykgeworICAgICAgICAgICAg
ICAgICAgICB0cXVvdGUgPSBjID09ICdcIicgPyBEb3VibGVRdW90ZSA6IFNpbmdsZVF1b3RlOwor
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlU3lzdGVt
SUQpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxp
ZCBkb2N0eXBlLiBFbWl0IGl0IG5vdy4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQ
YXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUo
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlu
Vmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2Vu
Lm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUJlZm9yZVN5c3RlbUlEOgor
ICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7
CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVTeXN0
ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENv
bnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChp
c1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVt
YmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4u
c2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgRG9jdHlwZVN5c3RlbUlEOgorICAgICAgICAgICAgICAgIGlmICgoYyA9PSAnXCIn
ICYmIHRxdW90ZSA9PSBEb3VibGVRdW90ZSkgfHwgKGMgPT0gJ1wnJyAmJiB0cXVvdGUgPT0gU2lu
Z2xlUXVvdGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlw
ZUFmdGVyU3lzdGVtSUQpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9k
ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBw
ZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAg
ICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0
eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zeXN0ZW1JRC5hcHBlbmQoYyk7CisgICAg
ICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJTeXN0ZW1J
RDoKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gVmFsaWQgZG9jdHlwZS4gRW1pdCBpdCBub3cuCisgICAgICAgICAgICAgICAgICAgIHNyYy5h
ZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5E
b2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAg
ICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5
cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCb2d1czoKKyAg
ICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRG9u
ZSB3aXRoIHRoZSBib2d1cyBkb2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlw
ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1i
ZXIpOyAvLyBKdXN0IGtlZXAgc2Nhbm5pbmcgZm9yICc+JworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBl
VG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0YXRlOworfQorCiBIVE1MVG9rZW5pemVy
OjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcgJnNyYywgU3Rh
dGUgc3RhdGUpCiB7CiAgICAgQVNTRVJUKCFzdGF0ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKQEAgLTg2
MiwxOSArMTA4NCwxMiBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJz
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUYWdOYW1lOgogICAgICAgICB7Ci0jaWYgZGVmaW5l
ZChUT0tFTl9ERUJVRykgJiYgVE9LRU5fREVCVUcgPiAxCi0gICAgICAgICAgICBxRGVidWcoIlRh
Z05hbWUiKTsKLSNlbmRpZgotICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID4gMCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNo
Q291bnRdKQotICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA+
IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291
bnRdKSB7CiAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50Kys7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChzZWFyY2hDb3VudCA9PSA0KQotICAgICAgICAgICAgICAgICAgICB7Ci0jaWZk
ZWYgVE9LRU5fREVCVUcKLSAgICAgICAgICAgICAgICAgICAgICAgIGtkRGVidWcoIDYwMzYgKSA8
PCAiRm91bmQgY29tbWVudCIgPDwgZW5kbDsKLSNlbmRpZgorICAgICAgICAgICAgICAgICAgICBp
ZiAoc2VhcmNoQ291bnQgPT0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNl
YXJjaENvdW50Kys7IC8vIEEgJyEnIGlzIGFsc28gcGFydCBvZiBhIGRvY3R5cGUsIHNvIHdlIGFy
ZSBtb3ZpbmcgdGhyb3VnaCB0aGF0IHN0aWxsIGFzIHdlbGwuCisgICAgICAgICAgICAgICAgICAg
IGlmIChzZWFyY2hDb3VudCA9PSA0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3Vu
ZCAnPCEtLScgc2VxdWVuY2UKICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFz
dE5vbk5ld2xpbmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBidWZmZXI7IC8v
IGlnbm9yZSB0aGUgcHJldmlvdXMgcGFydCBvZiB0aGlzIHRhZwpAQCAtODg1LDEyICsxMTAwLDEx
IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIDwhLS0+IGFzIGEgdmFsaWQgY29tbWVudCwgc2luY2UgYm90aCBtb3pp
bGxhIGFuZCBJRSBvbiB3aW5kb3dzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFu
ZGxlIHRoaXMgY2FzZS4gIE9ubHkgZG8gdGhpcyBpbiBxdWlya3MgbW9kZS4gLWR3aAogICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0eSgpICYmICpzcmMgPT0gJz4nICYmIG1f
ZG9jLT5pbkNvbXBhdE1vZGUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5z
ZXRJbkNvbW1lbnQoZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3JjLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBv
cysrXSA9ICpzcmM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Db21t
ZW50KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3RO
b25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3Mr
K10gPSAqc3JjOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VDb21tZW50KHNyYywgc3RhdGUpOwogCiAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2NCdWZmZXJQb3MgPSBjQnVmZmVyUG9zOwpAQCAtODk5LDkgKzEx
MTMsMzAgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAg
ICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOwogICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBzZWFy
Y2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2luZyBmb3IgJzwhLS0nIHNlcXVlbmNlCisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3Vu
dCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKCpzcmMpID09IGRvY3R5
cGVTdGFydFttX2RvY3R5cGVTZWFyY2hDb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlU2VhcmNoQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVy
UG9zKytdID0gKnNyYzsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPT0g
OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgJzwhRE9DVFlQRScgc2VxdWVu
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZSh0cnVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldFRhZ1N0YXRlKE5vVGFnKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnJlc2V0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjQnVmZmVyLCBjQnVmZmVyUG9zKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VEb2N0eXBlKHNyYywgc3RhdGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgbV9jQnVmZmVyUG9zID0gY0J1ZmZlclBvczsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDA7IC8vIFN0
b3AgbG9va2luZyBmb3IgJzwhLS0nIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9j
dHlwZVNlYXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCFET0NUWVBFJyBzZXF1
ZW5jZQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBib29sIGZpbmlzaCA9IGZhbHNlOwpA
QCAtMTQwMyw2ICsxNjM4LDggQEAgYm9vbCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdt
ZW50ZQogICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwog
ICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICAgICAg
c3RhdGUgPSBwYXJzZUNvbW1lbnQoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChz
dGF0ZS5pbkRvY3R5cGUoKSkKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlRG9jdHlwZShz
cmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluU2VydmVyKCkpCiAgICAg
ICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNlcnZlcihzcmMsIHN0YXRlKTsKICAgICAgICAgICAg
IGVsc2UgaWYgKHN0YXRlLmluUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpCkBAIC0xNDE2LDkgKzE2
NTMsOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlCiAgICAgICAg
ICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgJyEnOiB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIDwhLS0gY29tbWVudCAt
LT4KLSAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAxOyAvLyBMb29rIGZvciAnPCEt
LScgc2VxdWVuY2UgdG8gc3RhcnQgY29tbWVudAotICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgLy8gPCEtLSBjb21tZW50IC0tPiBvciA8IURPQ1RZUEUgLi4uPgorICAg
ICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDE7IC8vIExvb2sgZm9yICc8IS0tJyBzZXF1
ZW5jZSB0byBzdGFydCBjb21tZW50IG9yICc8IURPQ1RZUEUnIHNlcXVlbmNlIHRvIHN0YXJ0IGRv
Y3R5cGUKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAxOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgY2FzZSAnPyc6IHsKQEAgLTE1NjQsNyArMTgwMSw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6
ZW5kKCkKIHZvaWQgSFRNTFRva2VuaXplcjo6ZmluaXNoKCkKIHsKICAgICAvLyBkbyB0aGlzIGFz
IGxvbmcgYXMgd2UgZG9uJ3QgZmluZCBtYXRjaGluZyBjb21tZW50IGVuZHMKLSAgICB3aGlsZSgo
bV9zdGF0ZS5pbkNvbW1lbnQoKSB8fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUg
JiYgc2NyaXB0Q29kZVNpemUpIHsKKyAgICB3aGlsZSAoKG1fc3RhdGUuaW5Db21tZW50KCkgfHwg
bV9zdGF0ZS5pblNlcnZlcigpKSAmJiBzY3JpcHRDb2RlICYmIHNjcmlwdENvZGVTaXplKSB7CiAg
ICAgICAgIC8vIHdlJ3ZlIGZvdW5kIGFuIHVubWF0Y2hlZCBjb21tZW50IHN0YXJ0CiAgICAgICAg
IGlmIChtX3N0YXRlLmluQ29tbWVudCgpKQogICAgICAgICAgICAgYnJva2VuQ29tbWVudHMgPSB0
cnVlOwpAQCAtMTYzMyw2ICsxODcwLDE0IEBAIFBhc3NSZWZQdHI8Tm9kZT4gSFRNTFRva2VuaXpl
cjo6cHJvY2Vzc1QKICAgICByZXR1cm4gbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSFRNTFRva2Vu
aXplcjo6cHJvY2Vzc0RvY3R5cGVUb2tlbigpCit7CisgICAgaWYgKGluVmlld1NvdXJjZU1vZGUo
KSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFZpZXdTb3VyY2VEb2N1bWVudCo+KG1fZG9jKS0+
YWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbigmbV9kb2N0eXBlVG9rZW4pOworICAgIGVsc2UKKyAg
ICAgICAgcGFyc2VyLT5wYXJzZURvY3R5cGVUb2tlbigmbV9kb2N0eXBlVG9rZW4pOworfQorCiBI
VE1MVG9rZW5pemVyOjp+SFRNTFRva2VuaXplcigpCiB7CiAgICAgQVNTRVJUKCFpbldyaXRlKTsK
SW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFRva2Vu
aXplci5oCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFRva2VuaXplci5oCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4Myw0NCBAQCBwdWJsaWM6CiAgICAgT3duUHRyPFZlY3RvcjxVQ2hh
cj4gPiBtX3NvdXJjZUluZm87CiB9OwogCitlbnVtIERvY3R5cGVTdGF0ZSB7CisgICAgRG9jdHlw
ZUJlZ2luLAorICAgIERvY3R5cGVCZWZvcmVOYW1lLAorICAgIERvY3R5cGVOYW1lLAorICAgIERv
Y3R5cGVBZnRlck5hbWUsCisgICAgRG9jdHlwZUJlZm9yZVB1YmxpY0lELAorICAgIERvY3R5cGVQ
dWJsaWNJRCwKKyAgICBEb2N0eXBlQWZ0ZXJQdWJsaWNJRCwKKyAgICBEb2N0eXBlQmVmb3JlU3lz
dGVtSUQsCisgICAgRG9jdHlwZVN5c3RlbUlELAorICAgIERvY3R5cGVBZnRlclN5c3RlbUlELAor
ICAgIERvY3R5cGVCb2d1cworfTsKKworY2xhc3MgRG9jdHlwZVRva2VuIHsKK3B1YmxpYzoKKyAg
ICBEb2N0eXBlVG9rZW4oKSB7fQorICAgIAorICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAg
ICAgbV9uYW1lLmNsZWFyKCk7CisgICAgICAgIG1fcHVibGljSUQuY2xlYXIoKTsKKyAgICAgICAg
bV9zeXN0ZW1JRC5jbGVhcigpOworICAgICAgICBtX3N0YXRlID0gRG9jdHlwZUJlZ2luOworICAg
ICAgICBtX3NvdXJjZS5jbGVhcigpOworICAgIH0KKworICAgIERvY3R5cGVTdGF0ZSBzdGF0ZSgp
IHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICB2b2lkIHNldFN0YXRlKERvY3R5cGVTdGF0ZSBzKSB7
IG1fc3RhdGUgPSBzOyB9CisKKyAgICBWZWN0b3I8VUNoYXI+IG1fbmFtZTsKKyAgICBWZWN0b3I8
VUNoYXI+IG1fcHVibGljSUQ7CisgICAgVmVjdG9yPFVDaGFyPiBtX3N5c3RlbUlEOworICAgIERv
Y3R5cGVTdGF0ZSBtX3N0YXRlOworICAgIAorICAgIFZlY3RvcjxVQ2hhcj4gbV9zb3VyY2U7Cit9
OworCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGNsYXNzIEhUTUxUb2tlbml6ZXIgOiBwdWJs
aWMgVG9rZW5pemVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpAQCAtMTE4LDEwICsx
NTYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuZCgpOwogCiAgICAgdm9pZCByZXNldCgpOwor
CiAgICAgUGFzc1JlZlB0cjxOb2RlPiBwcm9jZXNzVG9rZW4oKTsKKyAgICB2b2lkIHByb2Nlc3NE
b2N0eXBlVG9rZW4oKTsKIAogICAgIFN0YXRlIHByb2Nlc3NMaXN0aW5nKFNlZ21lbnRlZFN0cmlu
ZywgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlQ29tbWVudChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0
ZSk7CisgICAgU3RhdGUgcGFyc2VEb2N0eXBlKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAg
ICBTdGF0ZSBwYXJzZVNlcnZlcihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUg
cGFyc2VUZXh0KFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVNwZWNp
YWwoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwpAQCAtMjIwLDYgKzI2MSw4IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgc2V0SW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oYm9vbCB2KSB7IHJldHVy
biBzZXRCaXQoSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIHYpOyB9CiAgICAgICAgIGJvb2wgaW5D
b21tZW50KCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJbkNvbW1lbnQpOyB9CiAgICAgICAgIHZv
aWQgc2V0SW5Db21tZW50KGJvb2wgdikgeyBzZXRCaXQoSW5Db21tZW50LCB2KTsgfQorICAgICAg
ICBib29sIGluRG9jdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5Eb2N0eXBlKTsgfQor
ICAgICAgICB2b2lkIHNldEluRG9jdHlwZShib29sIHYpIHsgc2V0Qml0KEluRG9jdHlwZSwgdik7
IH0KICAgICAgICAgYm9vbCBpblRleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJblRl
eHRBcmVhKTsgfQogICAgICAgICB2b2lkIHNldEluVGV4dEFyZWEoYm9vbCB2KSB7IHNldEJpdChJ
blRleHRBcmVhLCB2KTsgfQogICAgICAgICBib29sIGVzY2FwZWQoKSBjb25zdCB7IHJldHVybiB0
ZXN0Qml0KEVzY2FwZWQpOyB9CkBAIC0yNDMsNyArMjg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
Ym9vbCBoYXNUYWdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFRhZ01hc2s7IH0KICAg
ICAgICAgYm9vbCBoYXNFbnRpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIEVudGl0
eU1hc2s7IH0KIAotICAgICAgICBib29sIG5lZWRzU3BlY2lhbFdyaXRlSGFuZGxpbmcoKSBjb25z
dCB7IHJldHVybiBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRB
cmVhIHwgSW5UaXRsZSB8IEluSUZyYW1lIHwgVGFnTWFzayB8IEVudGl0eU1hc2sgfCBJblBsYWlu
VGV4dCB8IEluQ29tbWVudCB8IEluU2VydmVyIHwgSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gfCBT
dGFydFRhZyk7IH0KKyAgICAgICAgYm9vbCBuZWVkc1NwZWNpYWxXcml0ZUhhbmRsaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0IHwgSW5TdHlsZSB8IEluWG1wIHwgSW5UZXh0
QXJlYSB8IEluVGl0bGUgfCBJbklGcmFtZSB8IFRhZ01hc2sgfCBFbnRpdHlNYXNrIHwgSW5QbGFp
blRleHQgfCBJbkNvbW1lbnQgfCBJbkRvY3R5cGUgfCBJblNlcnZlciB8IEluUHJvY2Vzc2luZ0lu
c3RydWN0aW9uIHwgU3RhcnRUYWcpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IEVudGl0eVNoaWZ0ID0gNDsKQEAgLTI2Nyw3ICszMTAsOCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgQWxsb3dZaWVsZCA9IDEgPDwgMjEsCiAgICAgICAgICAgICBMb2FkaW5nRXh0
U2NyaXB0ID0gMSA8PCAyMiwKICAgICAgICAgICAgIEZvcmNlU3luY2hyb25vdXMgPSAxIDw8IDIz
LAotICAgICAgICAgICAgSW5JRnJhbWUgPSAxIDw8IDI0CisgICAgICAgICAgICBJbklGcmFtZSA9
IDEgPDwgMjQsCisgICAgICAgICAgICBJbkRvY3R5cGUgPSAxIDw8IDI1CiAgICAgICAgIH07CiAK
ICAgICAgICAgdm9pZCBzZXRCaXQoU3RhdGVCaXRzIGJpdCwgYm9vbCB2YWx1ZSkKQEAgLTI4Myw2
ICszMjcsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICAK
KyAgICBEb2N0eXBlVG9rZW4gbV9kb2N0eXBlVG9rZW47CisgICAgaW50IG1fZG9jdHlwZVNlYXJj
aENvdW50OworICAgIGludCBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudDsKIAogICAgIGJv
b2wgYnJva2VuU2VydmVyOwogCkBAIC0zMDAsMTQgKzM0OCwxNCBAQCBwcml2YXRlOgogCiAgICAg
Ly8gU3RvcmVzIGNoYXJhY3RlcnMgaWYgd2UgYXJlIHNjYW5uaW5nIGZvciBhIHN0cmluZyBsaWtl
ICI8L3NjcmlwdD4iCiAgICAgVUNoYXIgc2VhcmNoQnVmZmVyWzEwXTsKKyAgICAKICAgICAvLyBD
b3VudHMgd2hlcmUgd2UgYXJlIGluIHRoZSBzdHJpbmcgd2UgYXJlIHNjYW5uaW5nIGZvcgogICAg
IGludCBzZWFyY2hDb3VudDsKLSAgICAvLyBUaGUgc3RyaW5nIHdlIGFyZSBzZWFyY2hpbmcgZm9y
Ci0gICAgY29uc3QgVUNoYXIqIHNlYXJjaEZvcjsKICAgICAvLyB0aGUgc3RvcHBlciBzdHJpbmcK
ICAgICBjb25zdCBjaGFyKiBzZWFyY2hTdG9wcGVyOwogICAgIC8vIHRoZSBzdG9wcGVyIGxlbgog
ICAgIGludCBzZWFyY2hTdG9wcGVyTGVuOworICAgIAogICAgIC8vIGlmIG5vIG1vcmUgZGF0YSBp
cyBjb21pbmcsIGp1c3QgcGFyc2Ugd2hhdCB3ZSBoYXZlIChpbmNsdWRpbmcgZXh0IHNjcmlwdHMg
dGhhdAogICAgIC8vIG1heSBiZSBzdGlsbCBkb3dubG9hZGluZykgYW5kIGZpbmlzaAogICAgIGJv
b2wgbm9Nb3JlRGF0YTsKSW5kZXg6IGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkocmV2aXNpb24gMzAz
ODcpCisrKyBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDgsOSArMTA4LDcgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291
cgogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gSGFuZGxlIHRoZSB0YWcuCi0g
ICAgICAgIGJvb2wgZG9jdHlwZSA9IHRva2VuLT50YWdOYW1lLnN0YXJ0c1dpdGgoIiFET0NUWVBF
IiwgZmFsc2UpOwotICAgICAgICAKLSAgICAgICAgU3RyaW5nIGNsYXNzTmFtZVN0ciA9IGRvY3R5
cGUgPyAid2Via2l0LWh0bWwtZG9jdHlwZSIgOiAid2Via2l0LWh0bWwtdGFnIjsKKyAgICAgICAg
U3RyaW5nIGNsYXNzTmFtZVN0ciA9ICJ3ZWJraXQtaHRtbC10YWciOwogICAgICAgICBtX2N1cnJl
bnQgPSBhZGRTcGFuV2l0aENsYXNzTmFtZShjbGFzc05hbWVTdHIpOwogCiAgICAgICAgIFN0cmlu
ZyB0ZXh0ID0gIjwiOwpAQCAtMTQ1LDI4ICsxNDMsMjEgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURv
Y3VtZW50OjphZGRWaWV3U291cgogICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cikgewogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGd1aWRlLT5hdChpKSA9PSAnYScpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGF0dHItPm5hbWUoKS50b1N0cmluZygp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N0eXBlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhZGRUZXh0KG5hbWUsICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRt
bC1hdHRyaWJ1dGUtbmFtZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRU
ZXh0KG5hbWUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobV9jdXJyZW50ICE9IG1fdGJvZHkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
bV9jdXJyZW50LT5wYXJlbnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Y3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFt
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQobmFtZSwgIndlYmtpdC1o
dG1sLWF0dHJpYnV0ZS1uYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1f
Y3VycmVudCAhPSBtX3Rib2R5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1
cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9jdXJyZW50LT5wYXJlbnQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFN0cmluZyB2YWx1ZSA9IGF0dHItPnZhbHVlKCkuZG9tU3RyaW5nKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGRvY3R5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFkZFRleHQodmFsdWUsICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBYTUwgY291bGQgdXNlIG5hbWVzcGFjZSBwcmVmaXhlcyBhbmQgY29uZnVzZSB1cy4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGF0
dHItPm5hbWUoKS5sb2NhbE5hbWUoKSwgInNyYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGF0dHIt
Pm5hbWUoKS5sb2NhbE5hbWUoKSwgImhyZWYiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fY3VycmVudCA9IGFkZExpbmsodmFsdWUsIGVxdWFsSWdub3JpbmdDYXNlKHRv
a2VuLT50YWdOYW1lLCAiYSIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3Bh
bldpdGhDbGFzc05hbWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRUZXh0KHZhbHVlLCAid2Via2l0LWh0bWwtYXR0cmli
dXRlLXZhbHVlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJl
bnQgIT0gbV90Ym9keSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3Vy
cmVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBhcmVudCgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFhNTCBjb3VsZCB1c2UgbmFtZXNwYWNlIHByZWZpeGVzIGFuZCBjb25mdXNlIHVzLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhdHRyLT5u
YW1lKCkubG9jYWxOYW1lKCksICJzcmMiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhdHRyLT5uYW1l
KCkubG9jYWxOYW1lKCksICJocmVmIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fY3VycmVudCA9IGFkZExpbmsodmFsdWUsIGVxdWFsSWdub3JpbmdDYXNlKHRva2VuLT50YWdO
YW1lLCAiYSIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKCJ3
ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhZGRUZXh0KHZhbHVlLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCAhPSBtX3Rib2R5KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
bV9jdXJyZW50LT5wYXJlbnQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0xODQsNiArMTc1LDE3IEBAIHZv
aWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkVmlld1NvdXIKICAgICB9CiB9CiAKK3ZvaWQg
SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbihEb2N0eXBl
VG9rZW4qIGRvY3R5cGVUb2tlbikKK3sKKyAgICBpZiAoIW1fY3VycmVudCkKKyAgICAgICAgY3Jl
YXRlQ29udGFpbmluZ1RhYmxlKCk7CisgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05h
bWUoIndlYmtpdC1odG1sLWRvY3R5cGUiKTsKKyAgICBTdHJpbmcgdGV4dCA9ICI8IjsKKyAgICB0
ZXh0ICs9IFN0cmluZzo6YWRvcHQoZG9jdHlwZVRva2VuLT5tX3NvdXJjZSk7CisgICAgdGV4dCAr
PSAiPiI7CisgICAgYWRkVGV4dCh0ZXh0LCAid2Via2l0LWh0bWwtZG9jdHlwZSIpOworfQorCiBF
bGVtZW50KiBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRTcGFuV2l0aENsYXNzTmFtZShjb25z
dCBTdHJpbmcmIGNsYXNzTmFtZSkKIHsKICAgICBpZiAobV9jdXJyZW50ID09IG1fdGJvZHkpIHsK
SW5kZXg6IGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwv
SFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdHlwZVRva2VuOwogY2xhc3MgVG9rZW47CiAK
IGNsYXNzIEhUTUxWaWV3U291cmNlRG9jdW1lbnQgOiBwdWJsaWMgSFRNTERvY3VtZW50CkBAIC0z
OSw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihU
b2tlbiopOyAvLyBVc2VkIGJ5IHRoZSBIVE1MIHRva2VuaXplci4KICAgICB2b2lkIGFkZFZpZXdT
b3VyY2VUZXh0KGNvbnN0IFN0cmluZyYpOyAvLyBVc2VkIGJ5IHRoZSBwbGFpbnRleHQgdG9rZW5p
emVyLgotICAgIAorICAgIHZvaWQgYWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbihEb2N0eXBlVG9r
ZW4qKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUNvbnRhaW5pbmdUYWJsZSgpOwogICAg
IEVsZW1lbnQqIGFkZFNwYW5XaXRoQ2xhc3NOYW1lKGNvbnN0IFN0cmluZyYpOwpJbmRleDogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CShyZXZpc2lvbiAzMDM4NykKKysrIGxvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTk5MCw3ICs5OTAsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjp3cml0ZShjb25zdCBjaGFy
KiBzdHIsCiAKICAgICBpZiAoIW1fcmVjZWl2ZWREYXRhKSB7CiAgICAgICAgIG1fcmVjZWl2ZWRE
YXRhID0gdHJ1ZTsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGV0ZXJtaW5lUGFyc2VN
b2RlKGRlY29kZWQpOwogICAgICAgICBpZiAobV9kZWNvZGVyLT5lbmNvZGluZygpLnVzZXNWaXN1
YWxPcmRlcmluZygpKQogICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0VmlzdWFs
bHlPcmRlcmVkKCk7CiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlY2FsY1N0eWxlKE5v
ZGU6OkZvcmNlKTsKQEAgLTQ4MTAsNyArNDgwOSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN3aXRj
aE91dExvd0JhbmR3aWR0aEQKICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTb3VyY2VJbkxvd0Jh
bmR3aWR0aERpc3BsYXkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyBzZXQgY2FjaGVQ
b2xpY3kgdG8gQ2FjaGUgdG8gdXNlIHRoZSBsb2FkZWQgcmVzb3VyY2UKICAgICAgICAgICAgICAg
ICBuZXdEb2MtPmRvY0xvYWRlcigpLT5zZXRDYWNoZVBvbGljeShDYWNoZVBvbGljeUNhY2hlKTsK
LSAgICAgICAgICAgICAgICBuZXdEb2MtPmRldGVybWluZVBhcnNlTW9kZShtX3BlbmRpbmdTb3Vy
Y2VJbkxvd0JhbmR3aWR0aERpc3BsYXkpOwogICAgICAgICAgICAgICAgIGlmIChtX2RlY29kZXIt
PmVuY29kaW5nKCkudXNlc1Zpc3VhbE9yZGVyaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIG5l
d0RvYy0+c2V0VmlzdWFsbHlPcmRlcmVkKCk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBuZXdEb2MtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsgICAgICAgICAgICAgICAg
CkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2
aXNpb24gMzAzODcpCisrKyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5MCw3
ICsxNjkwLDcgQEAgdm9pZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCiBTdHJpbmcg
RnJhbWU6OmRvY3VtZW50VHlwZVN0cmluZygpIGNvbnN0CiB7CiAgICAgaWYgKERvY3VtZW50ICpk
b2MgPSBkb2N1bWVudCgpKQotICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9j
LT5yZWFsRG9jVHlwZSgpKQorICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9j
LT5kb2N0eXBlKCkpCiAgICAgICAgICAgICByZXR1cm4gZG9jdHlwZS0+dG9TdHJpbmcoKTsKIAog
ICAgIHJldHVybiBTdHJpbmcoKTsKSW5kZXg6IHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBwYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHJldmlzaW9uIDMwMzg3
KQorKysgcGFnZS9pbnNwZWN0b3IvdXRpbGl0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MjUs
NiArNDI1LDE4IEBAIGZ1bmN0aW9uIG5vZGVEaXNwbGF5TmFtZSgpCiAKICAgICAgICAgY2FzZSBO
b2RlLkNPTU1FTlRfTk9ERToKICAgICAgICAgICAgIHJldHVybiAiPCEtLSIgKyB0aGlzLm5vZGVW
YWx1ZSArICItLT4iOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9U
WVBFX05PREU6CisgICAgICAgICAgICB2YXIgZG9jVHlwZSA9ICI8IURPQ1RZUEUgIiArIHRoaXMu
bm9kZU5hbWU7CisgICAgICAgICAgICBpZiAodGhpcy5wdWJsaWNJZCkgeworICAgICAgICAgICAg
ICAgIGRvY1R5cGUgKz0gIiBQVUJMSUMgXCIiICsgdGhpcy5wdWJsaWNJZCArICJcIiI7CisgICAg
ICAgICAgICAgICAgaWYgKHRoaXMuc3lzdGVtSWQpCisgICAgICAgICAgICAgICAgICAgIGRvY1R5
cGUgKz0gIiBcIiIgKyB0aGlzLnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAodGhpcy5zeXN0ZW1JZCkKKyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIgU1lTVEVNIFwi
IiArIHRoaXMuc3lzdGVtSWQgKyAiXCIiOworICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxT
dWJzZXQpCisgICAgICAgICAgICAgICAgZG9jVHlwZSArPSAiIFsiICsgdGhpcy5pbnRlcm5hbFN1
YnNldCArICJdIjsKKyAgICAgICAgICAgIHJldHVybiBkb2NUeXBlICsgIj4iOwogICAgIH0KIAog
ICAgIHJldHVybiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNl
KCk7CkBAIC02NDMsNiArNjU1LDE4IEBAIGZ1bmN0aW9uIG5vZGVUaXRsZUluZm8oaGFzQ2hpbGRy
ZW4sIGxpbmsKICAgICAgICAgICAgIGluZm8udGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQt
aHRtbC1jb21tZW50XCI+Jmx0OyEtLSIgKyB0aGlzLm5vZGVWYWx1ZS5lc2NhcGVIVE1MKCkgKyAi
LS0mZ3Q7PC9zcGFuPiI7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIE5vZGUu
RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3BhbiBjbGFz
cz1cIndlYmtpdC1odG1sLXRhZ1wiPiZsdDshRE9DVFlQRSAiICsgdGhpcy5ub2RlTmFtZTsKKyAg
ICAgICAgICAgIGlmICh0aGlzLnB1YmxpY0lkKSB7CisgICAgICAgICAgICAgICAgaW5mby50aXRs
ZSArPSAiIFBVQkxJQyBcIiIgKyB0aGlzLnB1YmxpY0lkICsgIlwiIjsKKyAgICAgICAgICAgICAg
ICBpZiAodGhpcy5zeXN0ZW1JZCkKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAi
IFwiIiArIHRoaXMuc3lzdGVtSWQgKyAiXCIiOworICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlz
LnN5c3RlbUlkKQorICAgICAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBTWVNURU0gXCIiICsg
dGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN1YnNl
dCkKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICIgWyIgKyB0aGlzLmludGVybmFsU3Vi
c2V0ICsgIl0iOworICAgICAgICAgICAgaW5mby50aXRsZSArPSAiJmd0Ozwvc3Bhbj4iOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpbmZvLnRpdGxl
ID0gdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2Fw
ZUhUTUwoKTsKICAgICB9CkluZGV4OiB4bWwvWFNMVFByb2Nlc3Nvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0geG1sL1hTTFRQcm9jZXNzb3IuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIHhtbC9YU0xUUHJv
Y2Vzc29yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4LDcgKzI1OCw2IEBAIFJlZlB0cjxEb2N1
bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG8KICAgICAgICAgcmVzdWx0LT5zZXRVUkwob3du
ZXJEb2N1bWVudC0+dXJsKCkpOwogICAgICAgICByZXN1bHQtPnNldEJhc2VVUkwob3duZXJEb2N1
bWVudC0+YmFzZVVSTCgpKTsKICAgICB9Ci0gICAgcmVzdWx0LT5kZXRlcm1pbmVQYXJzZU1vZGUo
ZG9jdW1lbnRTb3VyY2UpOyAvLyBNYWtlIHN1cmUgd2UgcGFyc2UgaW4gdGhlIGNvcnJlY3QgbW9k
ZS4KICAgICAKICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IG5ldyBU
ZXh0UmVzb3VyY2VEZWNvZGVyKHNvdXJjZU1JTUVUeXBlKTsKICAgICBkZWNvZGVyLT5zZXRFbmNv
ZGluZyhzb3VyY2VFbmNvZGluZy5pc0VtcHR5KCkgPyBVVEY4RW5jb2RpbmcoKSA6IFRleHRFbmNv
ZGluZyhzb3VyY2VFbmNvZGluZyksIFRleHRSZXNvdXJjZURlY29kZXI6OkVuY29kaW5nRnJvbVhN
TEhlYWRlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19218</attachid>
            <date>2008-02-19 20:37:32 -0800</date>
            <delta_ts>2008-02-19 22:04:40 -0800</delta_ts>
            <desc>Patch that passes all of Sam&apos;s tests</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>52337</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAgICAgICAgZG9jLT5zZXREb2NUeXBlKGRv
Y3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChkb2MuZ2V0KCkpOwotICAgIH0K
KyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5hZGRDaGlsZChkb2N0eXBlKTsKIAogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9j
LT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYykpOwpJbmRl
eDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxOSw3
ICszMTksNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRE9NSW1wbGVtZW50YXRpb24qIGltCiAgICAg
bV93ZWxsRm9ybWVkID0gZmFsc2U7CiAKICAgICBwTW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9
IFhIdG1sOworCiAgICAgbV90ZXh0Q29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgbV9saXN0ZW5l
clR5cGVzID0gMDsKICAgICBtX2luRG9jdW1lbnQgPSB0cnVlOwpAQCAtNDc1LDEyICs0NzUsMTUg
QEAgdm9pZCBEb2N1bWVudDo6cmVzZXRBY3RpdmVMaW5rQ29sb3IoKQogCiB2b2lkIERvY3VtZW50
OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQogeworICAgIC8v
IFRoaXMgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZS4KKyAgICAvLyBOb3Rl
OiBUaGlzIGlzIG5vdCBhIHB1YmxpYyBET00gbWV0aG9kIGFuZCBjYW4gb25seSBiZSBjYWxsZWQg
YnkgdGhlIHBhcnNlci4KKyAgICBBU1NFUlQoIW1fZG9jVHlwZSB8fCAhZG9jVHlwZSk7CisgICAg
aWYgKG1fZG9jVHlwZSAmJiBkb2NUeXBlKQorICAgICAgICByZXR1cm47CiAgICAgbV9kb2NUeXBl
ID0gZG9jVHlwZTsKLX0KLQotRG9jdW1lbnRUeXBlICpEb2N1bWVudDo6ZG9jdHlwZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsKKyAgICBpZiAobV9kb2NUeXBlKQorICAg
ICAgICBtX2RvY1R5cGUtPnNldERvY3VtZW50KHRoaXMpOworICAgIGRldGVybWluZVBhcnNlTW9k
ZSgpOwogfQogCiBET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkg
Y29uc3QKQEAgLTE3MDIsMTQgKzE3MDUsNiBAQCBDU1NTdHlsZVNoZWV0KiBEb2N1bWVudDo6bWFw
cGVkRWxlbWVudFNoCiAgICAgcmV0dXJuIG1fbWFwcGVkRWxlbWVudFNoZWV0LmdldCgpOwogfQog
Ci12b2lkIERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJikKLXsKLSAg
ICAvLyBGb3IgWE1MIGRvY3VtZW50cyB1c2Ugc3RyaWN0IHBhcnNlIG1vZGUuCi0gICAgLy8gSFRN
TCBvdmVycmlkZXMgdGhpcyBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBwYXJzZSBtb2RlLgotICAg
IHBNb2RlID0gU3RyaWN0OwotICAgIGhNb2RlID0gWEh0bWw7Ci19Ci0KIHN0YXRpYyBOb2RlKiBu
ZXh0Tm9kZVdpdGhFeGFjdFRhYkluZGV4KE5vZGUqIHN0YXJ0LCBpbnQgdGFiSW5kZXgsIEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8vIFNlYXJjaCBpcyBpbmNsdXNpdmUgb2Ygc3RhcnQK
QEAgLTI3NzIsNyArMjc2Nyw3IEBAIEhUTUxNYXBFbGVtZW50ICpEb2N1bWVudDo6Z2V0SW1hZ2VN
YXAoY28KICAgICAgICAgcmV0dXJuIDA7CiAgICAgaW50IGhhc2hQb3MgPSB1cmwuZmluZCgnIycp
OwogICAgIFN0cmluZyBuYW1lID0gKGhhc2hQb3MgPCAwID8gdXJsIDogdXJsLnN1YnN0cmluZyho
YXNoUG9zICsgMSkpLmltcGwoKTsKLSAgICBBdG9taWNTdHJpbmcgbWFwTmFtZSA9IGhNb2RlID09
IFhIdG1sID8gbmFtZSA6IG5hbWUubG93ZXIoKTsKKyAgICBBdG9taWNTdHJpbmcgbWFwTmFtZSA9
IGlzSFRNTERvY3VtZW50KCkgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwogICAgIHJldHVybiBtX2lt
YWdlTWFwc0J5TmFtZS5nZXQobWFwTmFtZS5pbXBsKCkpOwogfQogCkluZGV4OiBkb20vRG9jdW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMzAzODcpCisrKyBk
b20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDggKzE3OSw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgRG9jdW1lbnQKIAotICAgIHZp
cnR1YWwgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3Q7IC8vIE1heSByZXR1cm4gMCBmb3Ig
SFRNTCBkb2N1bWVudHMKLSAgICBEb2N1bWVudFR5cGUqIHJlYWxEb2NUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CisgICAgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiog
aW1wbGVtZW50YXRpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UpOwpAQCAtNDAyLDggKzQwMSwxMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQcmludGluZyhib29sIHApIHsgbV9wcmludGluZyA9IHA7IH0KIAog
ICAgIGVudW0gUGFyc2VNb2RlIHsgQ29tcGF0LCBBbG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAg
IAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJik7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZSgpIHt9CisKK3B1
YmxpYzoKICAgICB2b2lkIHNldFBhcnNlTW9kZShQYXJzZU1vZGUgbSkgeyBwTW9kZSA9IG07IH0K
ICAgICBQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4gcE1vZGU7IH0KIApAQCAt
NDExLDExICs0MTMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbkFsbW9zdFN0cmljdE1vZGUoKSBj
b25zdCB7IHJldHVybiBwTW9kZSA9PSBBbG1vc3RTdHJpY3Q7IH0KICAgICBib29sIGluU3RyaWN0
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHBNb2RlID09IFN0cmljdDsgfQogICAgIAotICAgIGVudW0g
SFRNTE1vZGUgeyBIdG1sMywgSHRtbDQsIFhIdG1sIH07Ci0KLSAgICB2b2lkIHNldEhUTUxNb2Rl
KEhUTUxNb2RlIG0pIHsgaE1vZGUgPSBtOyB9Ci0gICAgSFRNTE1vZGUgaHRtbE1vZGUoKSBjb25z
dCB7IHJldHVybiBoTW9kZTsgfQotCiAgICAgdm9pZCBzZXRQYXJzaW5nKGJvb2wpOwogICAgIGJv
b2wgcGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYlBhcnNpbmc7IH0KICAgICBpbnQgbWluaW11
bUxheW91dERlbGF5KCk7CkBAIC03MzYsNyArNzMzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cHJpbnRpbmc7CiAKICAgICBQYXJzZU1vZGUgcE1vZGU7Ci0gICAgSFRNTE1vZGUgaE1vZGU7CiAK
ICAgICBDb2xvciBtX3RleHRDb2xvcjsKIApJbmRleDogZG9tL0RvY3VtZW50VHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgZG9t
L0RvY3VtZW50VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw0ICsxMDUsMjMgQEAgUGFz
c1JlZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZQogICAgIHJldHVybiAwOwogfQog
Cit2b2lkIERvY3VtZW50VHlwZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreworICAgIC8vIE91
ciBkb2N1bWVudCBub2RlIGNhbiBiZSBudWxsIGlmIHdlIHdlcmUgY3JlYXRlZCBieSBhIERPTUlt
cGxlbWVudGF0aW9uLiAgV2UgdXNlIHRoZSBwYXJlbnQoKSBpbnN0ZWFkLgorICAgIEFTU0VSVChw
YXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgaWYgKHBhcmVudCgp
ICYmIHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2Mg
PSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHBhcmVudCgpKTsKKyAgICAgICAgaWYgKCFkb2MtPmRv
Y3R5cGUoKSkKKyAgICAgICAgICAgIGRvYy0+c2V0RG9jVHlwZSh0aGlzKTsKKyAgICB9CisgICAg
Tm9kZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBEb2N1bWVudFR5cGU6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCkt
PmRvY3R5cGUoKSA9PSB0aGlzKQorICAgICAgICBkb2N1bWVudCgpLT5zZXREb2NUeXBlKDApOwor
ICAgIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKK30KKwogfQpJbmRleDogZG9tL0RvY3Vt
ZW50VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudFR5cGUuaAkocmV2aXNpb24gMzAz
ODcpCisrKyBkb20vRG9jdW1lbnRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBk
ZWVwKTsKICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCisgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRG
cm9tRG9jdW1lbnQoKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+
IG1faW1wbGVtZW50YXRpb247CiAgICAgUmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9lbnRpdGllczsK
SW5kZXg6IGRvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTm9kZS5jcHAJKHJldmlzaW9u
IDMwMzg3KQorKysgZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzYsNyArNzM2LDcg
QEAgYm9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihjb25zdCBOb2RlICpvdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotYm9vbCBOb2RlOjpjaGlsZEFsbG93ZWQoIE5vZGUgKm5ld0NoaWxkICkKK2Jv
b2wgTm9kZTo6Y2hpbGRBbGxvd2VkKE5vZGUqIG5ld0NoaWxkKQogewogICAgIHJldHVybiBjaGls
ZFR5cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgpKTsKIH0KSW5kZXg6IGRvbS9YTUxUb2tl
bml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAz
MDM4NykKKysrIGRvbS9YTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDcg
KzEwMTIsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJuYWxTdWJzZXQoY29uc3QgCiAgICAg
aWYgKCFkb2MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvYy0+c2V0RG9jVHlwZShuZXcgRG9j
dW1lbnRUeXBlKGRvYywgdG9TdHJpbmcobmFtZSksIHRvU3RyaW5nKGV4dGVybmFsSUQpLCB0b1N0
cmluZyhzeXN0ZW1JRCkpKTsKKyAgICBkb2MtPmFkZENoaWxkKG5ldyBEb2N1bWVudFR5cGUoZG9j
LCB0b1N0cmluZyhuYW1lKSwgdG9TdHJpbmcoZXh0ZXJuYWxJRCksIHRvU3RyaW5nKHN5c3RlbUlE
KSkpOwogfQogCiBzdGF0aWMgaW5saW5lIFhNTFRva2VuaXplciogZ2V0VG9rZW5pemVyKHZvaWQq
IGNsb3N1cmUpCkBAIC0yMDk4LDcgKzIwOTgsNyBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VE
dGQoKQogICAgICAgICBzZXRJc1hIVE1MRG9jdW1lbnQodHJ1ZSk7IC8vIGNvbnRyb2xzIGlmIHdl
IHJlcGxhY2UgZW50aXRpZXMgb3Igbm90LgogICAgIH0KICAgICBpZiAoIW1fcGFyc2luZ0ZyYWdt
ZW50KQotICAgICAgICBtX2RvYy0+c2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKG1fZG9jLCBu
YW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpKTsKKyAgICAgICAgbV9kb2MtPmFkZENoaWxkKG5ldyBE
b2N1bWVudFR5cGUobV9kb2MsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkpOwogICAgIAogfQog
I2VuZGlmCkluZGV4OiBlZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZWRpdGluZy9t
YXJrdXAuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGVkaXRpbmcvbWFya3VwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzY4LDE0ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdGFydE1hcmt1
cChWZWN0b3I8VUNoCiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICAg
ICAgYXBwZW5kKHJlc3VsdCwgc3RhdGljX2Nhc3Q8Y29uc3QgQ29tbWVudCo+KG5vZGUpLT50b1N0
cmluZygpKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X05PREU6IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBJIHRoaW5rIHRoZSBjb21tZW50IGJlbG93
IChhbmQgdGhlcmVmb3JlIHRoaXMgY29kZSkgaXMgd3Jvbmcgbm93Ci0gICAgICAgICAgICAvLyBE
b2N1bWVudHMgZG8gbm90IG5vcm1hbGx5IGNvbnRhaW4gYSBkb2NUeXBlIGFzIGEgY2hpbGQgbm9k
ZSwgZm9yY2UgaXQgdG8gcHJpbnQgaGVyZSBpbnN0ZWFkLgotICAgICAgICAgICAgY29uc3QgRG9j
dW1lbnRUeXBlKiBkb2NUeXBlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRG9jdW1lbnQqPihub2RlKS0+
ZG9jdHlwZSgpOwotICAgICAgICAgICAgaWYgKGRvY1R5cGUpCi0gICAgICAgICAgICAgICAgYXBw
ZW5kKHJlc3VsdCwgZG9jVHlwZS0+dG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQorICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKSW5kZXg6IGh0bWwvSFRNTEFwcGxldEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTcsNyArMTE3LDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1MQXBwbGV0RWxlbWVudDo6Y3Jl
YXRlUgogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNvZGVCYXNlID0gZ2V0QXR0cmlidXRl
KGNvZGViYXNlQXR0cik7CiAgICAgICAgIGlmKCFjb2RlQmFzZS5pc051bGwoKSkKICAgICAgICAg
ICAgIGFyZ3Muc2V0KCJjb2RlQmFzZSIsIGNvZGVCYXNlKTsKLSAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lID0gZ2V0QXR0cmlidXRlKGRvY3VtZW50KCktPmh0bWxNb2RlKCkgIT0gRG9j
dW1lbnQ6OlhIdG1sID8gbmFtZUF0dHIgOiBpZEF0dHIpOworICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUgPSBnZXRBdHRyaWJ1dGUoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSA/
IG5hbWVBdHRyIDogaWRBdHRyKTsKICAgICAgICAgaWYgKCFuYW1lLmlzTnVsbCgpKQogICAgICAg
ICAgICAgYXJncy5zZXQoIm5hbWUiLCBuYW1lKTsKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBhcmNoaXZlID0gZ2V0QXR0cmlidXRlKGFyY2hpdmVBdHRyKTsKSW5kZXg6IGh0bWwvSFRNTERv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxEb2N1bWVudC5jcHAJKHJldmlzaW9u
IDMwMzg3KQorKysgaHRtbC9IVE1MRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2
ICs4Miw3IEBAIEhUTUxEb2N1bWVudDo6SFRNTERvY3VtZW50KERPTUltcGxlbWVudGEKICAgICA6
IERvY3VtZW50KGltcGxlbWVudGF0aW9uLCBmcmFtZSkKIHsKICAgICBjbGVhclhNTFZlcnNpb24o
KTsKKyAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsKIH0KIAogSFRNTERvY3VtZW50Ojp+SFRNTERv
Y3VtZW50KCkKQEAgLTI3Myw3ICsyNzQsNyBAQCBUb2tlbml6ZXIgKkhUTUxEb2N1bWVudDo6Y3Jl
YXRlVG9rZW5pemVyCiAKIGJvb2wgSFRNTERvY3VtZW50OjpjaGlsZEFsbG93ZWQoTm9kZSAqbmV3
Q2hpbGQpCiB7Ci0gICAgcmV0dXJuIG5ld0NoaWxkLT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IG5l
d0NoaWxkLT5pc0NvbW1lbnROb2RlKCk7CisgICAgcmV0dXJuIG5ld0NoaWxkLT5oYXNUYWdOYW1l
KGh0bWxUYWcpIHx8IG5ld0NoaWxkLT5pc0NvbW1lbnROb2RlKCkgfHwgKG5ld0NoaWxkLT5ub2Rl
VHlwZSgpID09IERPQ1VNRU5UX1RZUEVfTk9ERSAmJiAhZG9jdHlwZSgpKTsKIH0KIAogUGFzc1Jl
ZlB0cjxFbGVtZW50PiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoY29uc3QgU3RyaW5nICZu
YW1lLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM0NiwyMjkgKzM0Nyw1OSBAQCBib29sIEhUTUxE
b2N1bWVudDo6aGFzRG9jRXh0cmFOYW1lZEl0ZW0oCiAgICAgcmV0dXJuIGRvY0V4dHJhTmFtZWRJ
dGVtQ291bnRzLmdldChuYW1lLmltcGwoKSkgIT0gMDsKIH0KIAotY29uc3QgaW50IFBBUlNFTU9E
RV9IQVZFX0RPQ1RZUEUgICAgICAgID0gICAgICAgKDE8PDApOwotY29uc3QgaW50IFBBUlNFTU9E
RV9IQVZFX1BVQkxJQ19JRCAgICAgID0gICAgICAgKDE8PDEpOwotY29uc3QgaW50IFBBUlNFTU9E
RV9IQVZFX1NZU1RFTV9JRCAgICAgID0gICAgICAgKDE8PDIpOwotY29uc3QgaW50IFBBUlNFTU9E
RV9IQVZFX0lOVEVSTkFMICAgICAgID0gICAgICAgKDE8PDMpOwotCi1zdGF0aWMgaW50IHBhcnNl
RG9jVHlwZVBhcnQoY29uc3QgU3RyaW5nJiBidWZmZXIsIGludCBpbmRleCkKLXsKLSAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgICBVQ2hhciBjaCA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlm
IChjaCA9PSAnICcgfHwgY2ggPT0gJ1x0JyB8fCBjaCA9PSAnXG4nIHx8IGNoID09ICdccicpCi0g
ICAgICAgICAgICArK2luZGV4OwotICAgICAgICBlbHNlIGlmIChjaCA9PSAnLScpIHsKLSAgICAg
ICAgICAgIGludCB0bXBJbmRleD1pbmRleDsKLSAgICAgICAgICAgIGlmIChidWZmZXJbaW5kZXgr
MV0gPT0gJy0nICYmCi0gICAgICAgICAgICAgICAgKCh0bXBJbmRleD1idWZmZXIuZmluZCgiLS0i
LCBpbmRleCsyKSkgIT0gLTEpKQotICAgICAgICAgICAgICAgIGluZGV4ID0gdG1wSW5kZXgrMjsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgIH0KLX0KLQot
c3RhdGljIGJvb2wgY29udGFpbnNTdHJpbmcoY29uc3QgY2hhciogc3RyLCBjb25zdCBTdHJpbmcm
IGJ1ZmZlciwgaW50IG9mZnNldCkKK3ZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1v
ZGUoKQogewotICAgIFN0cmluZyBzdGFydFN0cmluZyhzdHIpOwotICAgIGlmIChvZmZzZXQgKyBz
dGFydFN0cmluZy5sZW5ndGgoKSA+IGJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIAotICAgIFN0cmluZyBidWZmZXJTdHJpbmcgPSBidWZmZXIuc3Vic3RyaW5nKG9m
ZnNldCwgc3RhcnRTdHJpbmcubGVuZ3RoKCkpLmxvd2VyKCk7Ci0gICAgU3RyaW5nIGxvd2VyU3Rh
cnQgPSBzdGFydFN0cmluZy5sb3dlcigpOwotCi0gICAgcmV0dXJuIGJ1ZmZlclN0cmluZy5zdGFy
dHNXaXRoKGxvd2VyU3RhcnQpOwotfQotCi1zdGF0aWMgYm9vbCBwYXJzZURvY1R5cGVEZWNsYXJh
dGlvbihjb25zdCBTdHJpbmcmIGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCogcmVzdWx0RmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
dHJpbmcmIHB1YmxpY0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nJiBzeXN0ZW1JRCkKLXsKLSAgICBib29sIGhhdmVEb2NUeXBlID0gZmFsc2U7Ci0gICAgKnJl
c3VsdEZsYWdzID0gMDsKLQotICAgIC8vIFNraXAgdGhyb3VnaCBhbnkgY29tbWVudHMgYW5kIHBy
b2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLgotICAgIGludCBpbmRleCA9IDA7Ci0gICAgZG8gewotICAg
ICAgICBpbmRleCA9IGJ1ZmZlci5maW5kKCc8JywgaW5kZXgpOwotICAgICAgICBpZiAoaW5kZXgg
PT0gLTEpIGJyZWFrOwotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1ZmZlcltpbmRleCsxXTsK
LSAgICAgICAgaWYgKG5leHRDaGFyID09ICchJykgewotICAgICAgICAgICAgaWYgKGNvbnRhaW5z
U3RyaW5nKCJkb2N0eXBlIiwgYnVmZmVyLCBpbmRleCsyKSkgewotICAgICAgICAgICAgICAgIGhh
dmVEb2NUeXBlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpbmRleCArPSA5OyAvLyBTa2lwICI8
IURPQ1RZUEUiCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLGluZGV4KTsKLSAgICAgICAgICAg
IGluZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxz
ZSBpZiAobmV4dENoYXIgPT0gJz8nKQotICAgICAgICAgICAgaW5kZXggPSBidWZmZXIuZmluZCgn
PicsIGluZGV4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfSB3aGls
ZSAoaW5kZXggIT0gLTEpOwotCi0gICAgaWYgKCFoYXZlRG9jVHlwZSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEU7Ci0KLSAg
ICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCk7Ci0gICAgaWYgKCFjb250
YWluc1N0cmluZygiaHRtbCIsIGJ1ZmZlciwgaW5kZXgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCi0gICAgbmFtZSA9IGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXgsIDQpOwotICAgIGluZGV4
ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIGluZGV4KzQpOwotICAgIGJvb2wgaGFzUHVibGlj
ID0gY29udGFpbnNTdHJpbmcoInB1YmxpYyIsIGJ1ZmZlciwgaW5kZXgpOwotICAgIGlmIChoYXNQ
dWJsaWMpIHsKLSAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgr
Nik7Ci0KLSAgICAgICAgLy8gV2UndmUgcmVhZCA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgKG5vdCBj
YXNlIHNlbnNpdGl2ZSkuCi0gICAgICAgIC8vIE5vdyB3ZSBmaW5kIHRoZSBiZWdpbm5pbmcgYW5k
IGVuZCBvZiB0aGUgcHVibGljIGlkZW50aWZlcnMKLSAgICAgICAgLy8gYW5kIHN5c3RlbSBpZGVu
dGlmaWVycyAoYXNzdW1pbmcgdGhleSdyZSBldmVuIHByZXNlbnQpLgotICAgICAgICBVQ2hhciB0
aGVDaGFyID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAgaWYgKHRoZUNoYXIgIT0gJ1wiJyAmJiB0
aGVDaGFyICE9ICdcJycpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAg
ICAgICAvLyB8c3RhcnR8IGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgKGFmdGVyIHRoZSBxdW90ZSkg
YW5kIHxlbmR8Ci0gICAgICAgIC8vIGlzIHRoZSBmaW5hbCBxdW90ZSwgc28gdGhlcmUgYXJlIHxl
bmR8LXxzdGFydHwgY2hhcmFjdGVycy4KLSAgICAgICAgaW50IHB1YmxpY0lEU3RhcnQgPSBpbmRl
eCsxOwotICAgICAgICBpbnQgcHVibGljSURFbmQgPSBidWZmZXIuZmluZCh0aGVDaGFyLCBwdWJs
aWNJRFN0YXJ0KTsKLSAgICAgICAgaWYgKHB1YmxpY0lERW5kID09IC0xKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBw
dWJsaWNJREVuZCsxKTsKLSAgICAgICAgVUNoYXIgbmV4dCA9IGJ1ZmZlcltpbmRleF07Ci0gICAg
ICAgIGlmIChuZXh0ID09ICc+JykgewotICAgICAgICAgICAgLy8gUHVibGljIGlkZW50aWZpZXIg
cHJlc2VudCwgYnV0IG5vIHN5c3RlbSBpZGVudGlmaWVyLgotICAgICAgICAgICAgLy8gRG8gbm90
aGluZy4gIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSBtb3N0IGNvbW1vbgotICAgICAgICAgICAgLy8g
Y2FzZS4KLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChuZXh0ID09ICdcIicgfHwgbmV4dCA9
PSAnXCcnKSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIGEgc3lzdGVtIGlkZW50aWZpZXIuCi0g
ICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEOwotICAg
ICAgICAgICAgaW50IHN5c3RlbUlEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICAgICAgaW50IHN5
c3RlbUlERW5kID0gYnVmZmVyLmZpbmQobmV4dCwgc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAg
ICBpZiAoc3lzdGVtSURFbmQgPT0gLTEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgc3lzdGVtSUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5c3RlbUlEU3RhcnQsIHN5
c3RlbUlERW5kIC0gc3lzdGVtSURTdGFydCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAo
bmV4dCA9PSAnWycpIHsKLSAgICAgICAgICAgIC8vIFdlIGZvdW5kIGFuIGludGVybmFsIHN1YnNl
dC4KLSAgICAgICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTDsK
LSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFNv
bWV0aGluZydzIHdyb25nLgotCi0gICAgICAgIC8vIFdlIG5lZWQgdG8gdHJpbSB3aGl0ZXNwYWNl
IG9mZiB0aGUgcHVibGljIGlkZW50aWZpZXIuCi0gICAgICAgIHB1YmxpY0lEID0gYnVmZmVyLnN1
YnN0cmluZyhwdWJsaWNJRFN0YXJ0LCBwdWJsaWNJREVuZCAtIHB1YmxpY0lEU3RhcnQpOwotICAg
ICAgICBwdWJsaWNJRCA9IHB1YmxpY0lELnN0cmlwV2hpdGVTcGFjZSgpOwotICAgICAgICAqcmVz
dWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGlmIChjb250YWluc1N0cmluZygic3lzdGVtIiwgYnVmZmVyLCBpbmRleCkpIHsKLSAgICAg
ICAgICAgIC8vIERvY3R5cGUgaGFzIGEgc3lzdGVtIElEIGJ1dCBubyBwdWJsaWMgSUQKLSAgICAg
ICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQ7Ci0gICAgICAg
ICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCs2KTsKLSAgICAgICAg
ICAgIFVDaGFyIG5leHQgPSBidWZmZXJbaW5kZXhdOwotICAgICAgICAgICAgaWYgKG5leHQgIT0g
J1wiJyAmJiBuZXh0ICE9ICdcJycpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgaW50IHN5c3RlbUlEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICAgICAgaW50IHN5
c3RlbUlERW5kID0gYnVmZmVyLmZpbmQobmV4dCwgc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAg
ICBpZiAoc3lzdGVtSURFbmQgPT0gLTEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgc3lzdGVtSUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5c3RlbUlEU3RhcnQsIHN5
c3RlbUlERW5kIC0gc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlRG9j
VHlwZVBhcnQoYnVmZmVyLCBzeXN0ZW1JREVuZCsxKTsKLSAgICAgICAgfQotCi0gICAgICAgIFVD
aGFyIG5leHRDaGFyID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAgaWYgKG5leHRDaGFyID09ICdb
JykKLSAgICAgICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTDsK
LSAgICAgICAgZWxzZSBpZiAobmV4dENoYXIgIT0gJz4nKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KKyAgICAvLyBGSVhNRTogSXQncyB0ZXJyaWJsZSB0aGF0IHRoaXMgY29kZSBy
dW5zIHNlcGFyYXRlbHkgYW5kIGlzbid0IGp1c3QgYnVpbHQgaW4gdG8gdGhlCisgICAgLy8gSFRN
TCB0b2tlbml6ZXIvcGFyc2VyLgogCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgSFRNTERv
Y3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJiBzdHIpCi17CiAgICAgLy8g
VGhpcyBjb2RlIG1vcmUgb3IgbGVzcyBtaW1pY3MgTW96aWxsYSdzIGltcGxlbWVudGF0aW9uIChz
cGVjaWZpY2FsbHkgdGhlCiAgICAgLy8gZG9jdHlwZSBwYXJzaW5nIGltcGxlbWVudGVkIGJ5IERh
dmlkIEJhcm9uIGluIE1vemlsbGEncyBuc1BhcnNlci5jcHApLgogICAgIC8vCiAgICAgLy8gVGhl
cmUgYXJlIHRocmVlIHBvc3NpYmxlIHBhcnNlIG1vZGVzOgotICAgIC8vIENPTVBBVCAtIHF1aXJr
cyBtb2RlIGVtdWxhdGVzIFdpbklFCi0gICAgLy8gYW5kIE5TNC4gIENTUyBwYXJzaW5nIGlzIGFs
c28gcmVsYXhlZCBpbiB0aGlzIG1vZGUsIGUuZy4sIHVuaXQgdHlwZXMgY2FuCisgICAgLy8gQ09N
UEFUIC0gcXVpcmtzIG1vZGUgZW11bGF0ZXMgV2luSUUgYW5kIE5TNC4gIENTUyBwYXJzaW5nIGlz
IGFsc28gcmVsYXhlZCBpbiB0aGlzIG1vZGUsIGUuZy4sIHVuaXQgdHlwZXMgY2FuCiAgICAgLy8g
YmUgb21pdHRlZCBmcm9tIG51bWJlcnMuCi0gICAgLy8gQUxNT1NUIFNUUklDVCAtIFRoaXMgbW9k
ZSBpcyBpZGVudGljYWwgdG8gc3RyaWN0IG1vZGUKLSAgICAvLyBleGNlcHQgZm9yIGl0cyB0cmVh
dG1lbnQgb2YgbGluZS1oZWlnaHQgaW4gdGhlIGlubGluZSBib3ggbW9kZWwuICBGb3IKLSAgICAv
LyBub3cgKHVudGlsIHRoZSBpbmxpbmUgYm94IG1vZGVsIGlzIHJlLXdyaXR0ZW4pLCB0aGlzIG1v
ZGUgaXMgaWRlbnRpY2FsCi0gICAgLy8gdG8gU1RBTkRBUkRTIG1vZGUuCi0gICAgLy8gU1RSSUNU
IC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwgb2JleSB0aGUgc3BlY2lmaWNhdGlv
bnMgdG8KLSAgICAvLyB0aGUgbGV0dGVyLgotCi0gICAgU3RyaW5nIG5hbWUsIHN5c3RlbUlELCBw
dWJsaWNJRDsKLSAgICBpbnQgcmVzdWx0RmxhZ3MgPSAwOwotICAgIGlmIChwYXJzZURvY1R5cGVE
ZWNsYXJhdGlvbihzdHIsICZyZXN1bHRGbGFncywgbmFtZSwgcHVibGljSUQsIHN5c3RlbUlEKSkg
ewotICAgICAgICBpZiAocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9ET0NUWVBFKQotICAg
ICAgICAgICAgc2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKHRoaXMsIG5hbWUsIHB1YmxpY0lE
LCBzeXN0ZW1JRCkpOwotICAgICAgICBpZiAoIShyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZF
X0RPQ1RZUEUpKSB7Ci0gICAgICAgICAgICAvLyBObyBkb2N0eXBlIGZvdW5kIGF0IGFsbC4gIERl
ZmF1bHQgdG8gcXVpcmtzIG1vZGUgYW5kIEh0bWw0LgotICAgICAgICAgICAgc2V0UGFyc2VNb2Rl
KENvbXBhdCk7Ci0gICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSBpZiAoKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfSU5URVJOQUwpIHx8
Ci0gICAgICAgICAgICAgICAgICEocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9QVUJMSUNf
SUQpKSB7Ci0gICAgICAgICAgICAvLyBJbnRlcm5hbCBzdWJzZXRzIGFsd2F5cyBkZW5vdGUgZnVs
bCBzdGFuZGFyZHMsIGFzIGRvZXMKLSAgICAgICAgICAgIC8vIGEgZG9jdHlwZSB3aXRob3V0IGEg
cHVibGljIElELgorICAgIC8vIEFMTU9TVCBTVFJJQ1QgLSBUaGlzIG1vZGUgaXMgaWRlbnRpY2Fs
IHRvIHN0cmljdCBtb2RlIGV4Y2VwdCBmb3IgaXRzIHRyZWF0bWVudCBvZiBsaW5lLWhlaWdodCBp
biB0aGUgaW5saW5lIGJveCBtb2RlbC4gIEZvcgorICAgIC8vIG5vdyAodW50aWwgdGhlIGlubGlu
ZSBib3ggbW9kZWwgaXMgcmUtd3JpdHRlbiksIHRoaXMgbW9kZSBpcyBpZGVudGljYWwgdG8gU1RB
TkRBUkRTIG1vZGUuCisgICAgLy8gU1RSSUNUIC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2Vz
IHdpbGwgb2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlci4KKyAgICBEb2N1bWVu
dFR5cGUqIGRvY1R5cGUgPSBkb2N0eXBlKCk7CisgICAgaWYgKCFkb2NUeXBlIHx8ICFlcXVhbEln
bm9yaW5nQ2FzZShkb2NUeXBlLT5uYW1lKCksICJodG1sIikpCisgICAgICAgIC8vIE5vIGRvY3R5
cGUgZm91bmQgYXQgYWxsIG9yIHRoZSBkb2N0eXBlIGlzIG5vdCBIVE1MLiAgRGVmYXVsdCB0byBx
dWlya3MgbW9kZSBhbmQgSHRtbDQuCisgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOworICAg
IGVsc2UgaWYgKCFkb2N0eXBlKCktPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIGVxdWFsSWdub3Jp
bmdDYXNlKGRvY1R5cGUtPnN5c3RlbUlkKCksICJodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQv
djExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkIikpCisgICAgICAgIC8vIEFzc3VtZSBxdWly
a3MgbW9kZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIHN5c3RlbSBJRC4gIEluIHRoZSBIVE1MNSBzcGVj
LCB0aGlzIGlzIHRoZSBvbmx5CisgICAgICAgIC8vIHN5c3RlbSBpZGVudGlmaWVyIHRoYXQgaXMg
ZXhhbWluZWQuCisgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOworICAgIGVsc2UgaWYgKGRv
Y1R5cGUtPnB1YmxpY0lkKCkuaXNFbXB0eSgpKQorICAgICAgICAvLyBBIGRvY3R5cGUgd2l0aG91
dCBhIHB1YmxpYyBJRCBtZWFucyB1c2Ugc3RyaWN0IG1vZGUuCisgICAgICAgIHNldFBhcnNlTW9k
ZShTdHJpY3QpOworICAgIGVsc2UgeworICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlz
dCBvZiBwdWJsaWMgSURzIHRvIHNlZSB3aGF0IHdlCisgICAgICAgIC8vIHNob3VsZCBkby4KKyAg
ICAgICAgU3RyaW5nIGxvd2VyUHViSUQgPSBkb2NUeXBlLT5wdWJsaWNJZCgpLmxvd2VyKCk7Cisg
ICAgICAgIENTdHJpbmcgcHViSURTdHIgPSBsb3dlclB1YklELmxhdGluMSgpOworICAgICAgIAor
ICAgICAgICAvLyBMb29rIHVwIHRoZSBlbnRyeSBpbiBvdXIgZ3BlcmYtZ2VuZXJhdGVkIHRhYmxl
LgorICAgICAgICBjb25zdCBQdWJJREluZm8qIGRvY3R5cGVFbnRyeSA9IGZpbmREb2N0eXBlRW50
cnkocHViSURTdHIuZGF0YSgpLCBwdWJJRFN0ci5sZW5ndGgoKSk7CisgICAgICAgIGlmICghZG9j
dHlwZUVudHJ5KQorICAgICAgICAgICAgLy8gVGhlIERPQ1RZUEUgaXMgbm90IGluIHRoZSBsaXN0
LiAgQXNzdW1lIHN0cmljdCBtb2RlLgogICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7
Ci0gICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7Ci0gICAgICAgIH0KICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURz
IHRvIHNlZSB3aGF0IHdlCi0gICAgICAgICAgICAvLyBzaG91bGQgZG8uCi0gICAgICAgICAgICBT
dHJpbmcgbG93ZXJQdWJJRCA9IHB1YmxpY0lELmxvd2VyKCk7Ci0gICAgICAgICAgICBDU3RyaW5n
IHB1YklEU3RyID0gbG93ZXJQdWJJRC5sYXRpbjEoKTsKLSAgICAgICAgICAgCi0gICAgICAgICAg
ICAvLyBMb29rIHVwIHRoZSBlbnRyeSBpbiBvdXIgZ3BlcmYtZ2VuZXJhdGVkIHRhYmxlLgotICAg
ICAgICAgICAgY29uc3QgUHViSURJbmZvKiBkb2N0eXBlRW50cnkgPSBmaW5kRG9jdHlwZUVudHJ5
KHB1YklEU3RyLmRhdGEoKSwgcHViSURTdHIubGVuZ3RoKCkpOwotICAgICAgICAgICAgaWYgKCFk
b2N0eXBlRW50cnkpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgRE9DVFlQRSBpcyBub3QgaW4g
dGhlIGxpc3QuICBBc3N1bWUgc3RyaWN0IG1vZGUuCi0gICAgICAgICAgICAgICAgc2V0UGFyc2VN
b2RlKFN0cmljdCk7Ci0gICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc3dpdGNoICgo
cmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQpID8KLSAgICAgICAgICAgICAg
ICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkIDoKLSAgICAgICAgICAgICAgICAgICAg
ZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkKQotICAgICAgICAgICAgeworICAgICAgICAg
ICAgc3dpdGNoIChkb2NUeXBlLT5zeXN0ZW1JZCgpLmlzRW1wdHkoKSA/CisgICAgICAgICAgICAg
ICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9ub19zeXNpZCA6CisgICAgICAgICAgICAgICAg
ICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9zeXNpZCkgewogICAgICAgICAgICAgICAgIGNhc2Ug
UHViSURJbmZvOjplUXVpcmtzMzoKLSAgICAgICAgICAgICAgICAgICAgc2V0UGFyc2VNb2RlKENv
bXBhdCk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWwzKTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBQdWJJREluZm86OmVRdWly
a3M6CiAgICAgICAgICAgICAgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICAg
ICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzOgogICAg
ICAgICAgICAgICAgICAgICBzZXRQYXJzZU1vZGUoQWxtb3N0U3RyaWN0KTsKLSAgICAgICAgICAg
ICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGZh
bHNlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSAgIAotICAgIH0KLSAgICBlbHNlIHsKLSAg
ICAgICAgLy8gTWFsZm9ybWVkIGRvY3R5cGUgaW1wbGllcyBxdWlya3MgbW9kZS4KLSAgICAgICAg
c2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgIHNldEhUTUxNb2RlKEh0bWwzKTsKKyAgICAg
ICAgfQogICAgIH0KLSAgCiAgICAgc3R5bGVTZWxlY3RvcigpLT5zdHJpY3RQYXJzaW5nID0gIWlu
Q29tcGF0TW9kZSgpOwotIAogfQogICAgIAogfQpJbmRleDogaHRtbC9IVE1MRG9jdW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBodG1sL0hUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAzMDM4NykKKysrIGh0
bWwvSFRNTERvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQoY29uc3Qg
U3RyaW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0
ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmluZyYpOwotCiAgICAgdm9pZCBhZGROYW1lZEl0ZW0o
Y29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZU5hbWVkSXRlbShjb25zdCBTdHJp
bmcmIG5hbWUpOwogICAgIGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7CkBA
IC04Miw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nSW1wbCos
IGludD4gTmFtZUNvdW50TWFwOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1p
bmVQYXJzZU1vZGUoKTsKKworcHJpdmF0ZToKICAgICBOYW1lQ291bnRNYXAgbmFtZWRJdGVtQ291
bnRzOwogICAgIE5hbWVDb3VudE1hcCBkb2NFeHRyYU5hbWVkSXRlbUNvdW50czsKIH07CkluZGV4
OiBodG1sL0hUTUxNYXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxNYXBFbGVt
ZW50LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxNYXBFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODAsMTQgKzgwLDE0IEBAIHZvaWQgSFRNTE1hcEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXQKICAgICAgICAgaWYgKGF0dHJOYW1lID09IGlkQXR0cikgewogICAgICAg
ICAgICAgLy8gQ2FsbCBiYXNlIGNsYXNzIHNvIHRoYXQgaGFzSUQgYml0IGdldHMgc2V0LgogICAg
ICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwotICAgICAg
ICAgICAgaWYgKGRvYy0+aHRtbE1vZGUoKSAhPSBEb2N1bWVudDo6WEh0bWwpCisgICAgICAgICAg
ICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICBkb2MtPnJlbW92ZUltYWdlTWFwKHRoaXMpOwogICAgICAgICBTdHJp
bmcgbWFwTmFtZSA9IGF0dHItPnZhbHVlKCk7CiAgICAgICAgIGlmIChtYXBOYW1lWzBdID09ICcj
JykKICAgICAgICAgICAgIG1hcE5hbWUgPSBtYXBOYW1lLnN1YnN0cmluZygxKTsKLSAgICAgICAg
bV9uYW1lID0gZG9jLT5odG1sTW9kZSgpID09IERvY3VtZW50OjpYSHRtbCA/IG1hcE5hbWUgOiBt
YXBOYW1lLmxvd2VyKCk7CisgICAgICAgIG1fbmFtZSA9IGRvYy0+aXNIVE1MRG9jdW1lbnQoKSA/
IG1hcE5hbWUubG93ZXIoKSA6IG1hcE5hbWU7CiAgICAgICAgIGRvYy0+YWRkSW1hZ2VNYXAodGhp
cyk7CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKSW5kZXg6IGh0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
aHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxQ
YXJhbUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgSFRN
TFBhcmFtRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICBpZiAoYXR0ci0+bmFtZSgpID09
IGlkQXR0cikgewogICAgICAgICAvLyBNdXN0IGNhbGwgYmFzZSBjbGFzcyBzbyB0aGF0IGhhc0lE
IGJpdCBnZXRzIHNldC4KICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpOwotICAgICAgICBpZiAoZG9jdW1lbnQoKS0+aHRtbE1vZGUoKSAhPSBEb2N1bWVudDo6
WEh0bWwpCisgICAgICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBtX25hbWUgPSBhdHRyLT52YWx1ZSgpOwogICAgIH0gZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKSB7CkluZGV4OiBodG1sL0hUTUxQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFBhcnNlci5jcHAJKHJldmlzaW9uIDMwMzg3KQor
KysgaHRtbC9IVE1MUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCkBAIC0yNzEsNiArMjcyLDE2IEBAIFBhc3NSZWZQdHI8Tm9kZT4gSFRN
TFBhcnNlcjo6cGFyc2VUb2tlbigKICAgICByZXR1cm4gbjsKIH0KIAordm9pZCBIVE1MUGFyc2Vy
OjpwYXJzZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qIHQpCit7CisgICAgLy8gSWdub3JlIGFu
eSBkb2N0eXBlIGFmdGVyIHRoZSBmaXJzdC4gIElnbm9yZSBkb2N0eXBlcyBpbiBmcmFnbWVudHMu
CisgICAgaWYgKGRvY3VtZW50LT5kb2N0eXBlKCkgfHwgbV9pc1BhcnNpbmdGcmFnbWVudCB8fCBj
dXJyZW50ICE9IGRvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIC8vIE1h
a2UgYSBuZXcgZG9jdHlwZSBub2RlIGFuZCBzZXQgaXQgYXMgb3VyIGRvY3R5cGUuCisgICAgZG9j
dW1lbnQtPmFkZENoaWxkKG5ldyBEb2N1bWVudFR5cGUoZG9jdW1lbnQsIFN0cmluZzo6YWRvcHQo
dC0+bV9uYW1lKSwgU3RyaW5nOjphZG9wdCh0LT5tX3B1YmxpY0lEKSwgU3RyaW5nOjphZG9wdCh0
LT5tX3N5c3RlbUlEKSkpOworfQorCiBzdGF0aWMgYm9vbCBpc1RhYmxlU2VjdGlvbihOb2RlKiBu
KQogewogICAgIHJldHVybiBuLT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBuLT5oYXNUYWdOYW1l
KHRmb290VGFnKSB8fCBuLT5oYXNUYWdOYW1lKHRoZWFkVGFnKTsKSW5kZXg6IGh0bWwvSFRNTFBh
cnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFBhcnNlci5oCShyZXZpc2lvbiAzMDM4NykK
KysrIGh0bWwvSFRNTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdHlwZVRva2VuOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTERvY3VtZW50OwpAQCAtNTcs
NiArNTgsOSBAQCBwdWJsaWM6CiAgICAgICovCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBwYXJzZVRv
a2VuKFRva2VuKik7CiAgICAgCisgICAgLy8gUGFyc2VzIGEgZG9jdHlwZSB0b2tlbi4KKyAgICB2
b2lkIHBhcnNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiopOworCiAgICAgLyoqCiAgICAgICog
dG9rZW5pemVyIHNheXMgaXQncyBub3QgZ29pbmcgdG8gYmUgc2VuZGluZyB1cyBhbnkgbW9yZSB0
b2tlbnMKICAgICAgKi8KSW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxU
b2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw5IEBAIGNvbnN0IGRvdWJs
ZSB0b2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsKICNlbmRpZgogCiBzdGF0aWMgY29uc3QgY2hh
ciBjb21tZW50U3RhcnQgW10gPSAiPCEtLSI7CitzdGF0aWMgY29uc3QgY2hhciBkb2N0eXBlU3Rh
cnQgW10gPSAiPCFkb2N0eXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyIHB1YmxpY1N0YXJ0IFtdID0g
InB1YmxpYyI7CitzdGF0aWMgY29uc3QgY2hhciBzeXN0ZW1TdGFydCBbXSA9ICJzeXN0ZW0iOwog
c3RhdGljIGNvbnN0IGNoYXIgc2NyaXB0RW5kIFtdID0gIjwvc2NyaXB0IjsKIHN0YXRpYyBjb25z
dCBjaGFyIHhtcEVuZCBbXSA9ICI8L3htcCI7CiBzdGF0aWMgY29uc3QgY2hhciBzdHlsZUVuZCBb
XSA9ICAiPC9zdHlsZSI7CkBAIC0yMjIsNiArMjI1LDkgQEAgdm9pZCBIVE1MVG9rZW5pemVyOjpy
ZXNldCgpCiAgICAgbV9zdGF0ZS5zZXRGb3JjZVN5bmNocm9ub3VzKGZhbHNlKTsKIAogICAgIGN1
cnJUb2tlbi5yZXNldCgpOworICAgIG1fZG9jdHlwZVRva2VuLnJlc2V0KCk7CisgICAgbV9kb2N0
eXBlU2VhcmNoQ291bnQgPSAwOworICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID0g
MDsKIH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjpiZWdpbigpCkBAIC04NDQsNiArODUwLDIyMiBA
QCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgcmV0dXJuIHN0
YXRlOwogfQogCitIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZURvY3R5
cGUoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQoreworICAgIEFTU0VSVChzdGF0
ZS5pbkRvY3R5cGUoKSk7CisgICAgd2hpbGUgKCFzcmMuaXNFbXB0eSgpICYmIHN0YXRlLmluRG9j
dHlwZSgpKSB7CisgICAgICAgIFVDaGFyIGMgPSAqc3JjOworICAgICAgICBib29sIGlzV2hpdGVz
cGFjZSA9IGMgPT0gJ1xyJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJyAnOwor
ICAgICAgICBzd2l0Y2ggKG1fZG9jdHlwZVRva2VuLnN0YXRlKCkpIHsKKyAgICAgICAgICAgIGNh
c2UgRG9jdHlwZUJlZ2luOiB7CisgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3Rh
dGUoRG9jdHlwZUJlZm9yZU5hbWUpOworICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
YXNlIERvY3R5cGVCZWZvcmVOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIE1hbGZvcm1lZC4gIEp1c3QgZXhpdC4KKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5
cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVO
YW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNhc2UgRG9jdHlwZU5hbWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gVmFsaWQgZG9jdHlwZS4gRW1pdCBpdC4KKyAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
RG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAwOyAvLyBVc2Vk
IG5vdyB0byBzY2FuIGZvciBQVUJMSUMKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2Vj
b25kYXJ5U2VhcmNoQ291bnQgPSAwOyAvLyBVc2VkIG5vdyB0byBzY2FuIGZvciBTWVNURU0KKyAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUFmdGVyTmFt
ZSk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGlu
ZSgpOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX25hbWUuYXBwZW5kKGMp
OworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNhc2UgRG9jdHlwZUFmdGVyTmFtZTogeworICAgICAgICAgICAgICAgIGlmIChjID09
ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0Lgor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFp
c1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGMpID09IHB1Ymxp
Y1N0YXJ0W21fZG9jdHlwZVNlYXJjaENvdW50XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bV9kb2N0eXBlU2VhcmNoQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2Rv
Y3R5cGVTZWFyY2hDb3VudCA9PSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZv
dW5kICdQVUJMSUMnIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJlZm9yZVB1YmxpY0lEKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAodG9BU0NJSUxvd2VyKGMpID09IHN5c3RlbVN0YXJ0W21fZG9j
dHlwZVNlY29uZGFyeVNlYXJjaENvdW50XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9PSA2KQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZvdW5kICdTWVNURU0nIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJlZm9yZVN5c3RlbUlEKTsK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZSht
X2xpbmVOdW1iZXIpOyAvLyBXaGl0ZXNwYWNlIGtlZXBzIHVzIGluIHRoZSBhZnRlciBuYW1lIHN0
YXRlLgorICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGNhc2UgRG9jdHlwZUJlZm9yZVB1YmxpY0lEOiB7CisgICAgICAgICAgICAgICAg
aWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgdHF1b3Rl
ID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUgOiBTaW5nbGVRdW90ZTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZVB1YmxpY0lEKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4g
IERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0
eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBz
cmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3
U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9z
b3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlUHVibGlj
SUQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gJ1wiJyAmJiB0cXVvdGUgPT0gRG91Ymxl
UXVvdGUpIHx8IChjID09ICdcJycgJiYgdHF1b3RlID09IFNpbmdsZVF1b3RlKSkgeworICAgICAg
ICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAg
ICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVBZnRlclB1YmxpY0lEKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBDb25z
aWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUgZG9jdHlwZS4KKyAgICAgICAgICAgICAg
ICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBz
dGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3
U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tl
bigpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9j
dHlwZVRva2VuLm1fcHVibGljSUQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICBzcmMu
YWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291
cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3Vy
Y2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUFmdGVyUHVibGljSUQ6Cisg
ICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUgOiBTaW5nbGVRdW90ZTsK
KyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZVN5c3Rl
bUlEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVmFs
aWQgZG9jdHlwZS4gRW1pdCBpdCBub3cuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNl
UGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBl
KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChp
blZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tl
bi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZvcmVTeXN0ZW1JRDoK
KyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXCInIHx8IGMgPT0gJ1wnJykgeworICAgICAgICAg
ICAgICAgICAgICB0cXVvdGUgPSBjID09ICdcIicgPyBEb3VibGVRdW90ZSA6IFNpbmdsZVF1b3Rl
OworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlU3lz
dGVtSUQpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7
CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBD
b25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUgZG9jdHlwZS4KKyAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
aXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51
bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2Vu
LnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIERvY3R5cGVTeXN0ZW1JRDoKKyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gJ1wi
JyAmJiB0cXVvdGUgPT0gRG91YmxlUXVvdGUpIHx8IChjID09ICdcJycgJiYgdHF1b3RlID09IFNp
bmdsZVF1b3RlKSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXds
aW5lKCk7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5
cGVBZnRlclN5c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1v
ZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFw
cGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAg
ICAgICAgICAgICAgICAvLyBDb25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUgZG9j
dHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc3lzdGVtSUQuYXBwZW5kKGMpOworICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
bV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUFmdGVyU3lzdGVt
SUQ6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAgICAgICAgICAgICBzcmMu
YWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldElu
RG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4o
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQm9ndXM6Cisg
ICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERv
bmUgd2l0aCB0aGUgYm9ndXMgZG9jdHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFu
Y2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5
cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQor
ICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVt
YmVyKTsgLy8gSnVzdCBrZWVwIHNjYW5uaW5nIGZvciAnPicKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlw
ZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGF0ZTsKK30KKwogSFRNTFRva2VuaXpl
cjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nICZzcmMsIFN0
YXRlIHN0YXRlKQogewogICAgIEFTU0VSVCghc3RhdGUuaGFzRW50aXR5U3RhdGUoKSk7CkBAIC04
NjIsMTkgKzEwODQsMTIgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFy
cwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVGFnTmFtZToKICAgICAgICAgewotI2lmIGRlZmlu
ZWQoVE9LRU5fREVCVUcpICYmIFRPS0VOX0RFQlVHID4gMQotICAgICAgICAgICAgcURlYnVnKCJU
YWdOYW1lIik7Ci0jZW5kaWYKLSAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA+IDApCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKCpzcmMgPT0gY29tbWVudFN0YXJ0W3NlYXJj
aENvdW50XSkKLSAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoc2VhcmNoQ291bnQg
PiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCpzcmMgPT0gY29tbWVudFN0YXJ0W3NlYXJjaENv
dW50XSkgewogICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCsrOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VhcmNoQ291bnQgPT0gNCkKLSAgICAgICAgICAgICAgICAgICAgewotI2lm
ZGVmIFRPS0VOX0RFQlVHCi0gICAgICAgICAgICAgICAgICAgICAgICBrZERlYnVnKCA2MDM2ICkg
PDwgIkZvdW5kIGNvbW1lbnQiIDw8IGVuZGw7Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHNlYXJjaENvdW50ID09IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVT
ZWFyY2hDb3VudCsrOyAvLyBBICchJyBpcyBhbHNvIHBhcnQgb2YgYSBkb2N0eXBlLCBzbyB3ZSBh
cmUgbW92aW5nIHRocm91Z2ggdGhhdCBzdGlsbCBhcyB3ZWxsLgorICAgICAgICAgICAgICAgICAg
ICBpZiAoc2VhcmNoQ291bnQgPT0gNCkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91
bmQgJzwhLS0nIHNlcXVlbmNlCiAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBh
c3ROb25OZXdsaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0ID0gYnVmZmVyOyAv
LyBpZ25vcmUgdGhlIHByZXZpb3VzIHBhcnQgb2YgdGhpcyB0YWcKQEAgLTg4NSwxMiArMTEwMCwx
MSBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyA8IS0tPiBhcyBhIHZhbGlkIGNvbW1lbnQsIHNpbmNlIGJvdGggbW96
aWxsYSBhbmQgSUUgb24gd2luZG93cwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGhh
bmRsZSB0aGlzIGNhc2UuICBPbmx5IGRvIHRoaXMgaW4gcXVpcmtzIG1vZGUuIC1kd2gKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghc3JjLmlzRW1wdHkoKSAmJiAqc3JjID09ICc+JyAmJiBt
X2RvYy0+aW5Db21wYXRNb2RlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUu
c2V0SW5Db21tZW50KGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFu
Y2VQYXN0Tm9uTmV3bGluZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNyYy5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQ
b3MrK10gPSAqc3JjOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluQ29t
bWVudChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0
Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3JjLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9z
KytdID0gKnNyYzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlQ29tbWVudChzcmMsIHN0YXRlKTsKIAogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9jQnVmZmVyUG9zID0gY0J1ZmZlclBvczsKQEAgLTg5OSw5ICsx
MTEzLDMwIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAg
ICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsKICAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2Vh
cmNoQ291bnQgPSAwOyAvLyBTdG9wIGxvb2tpbmcgZm9yICc8IS0tJyBzZXF1ZW5jZQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291
bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcigqc3JjKSA9PSBkb2N0
eXBlU3RhcnRbbV9kb2N0eXBlU2VhcmNoQ291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVNlYXJjaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZl
clBvcysrXSA9ICpzcmM7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5l
d2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID09
IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvdW5kICc8IURPQ1RZUEUnIHNlcXVl
bmNlCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUodHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRUYWdTdGF0ZShOb1RhZyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5yZXNldCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoY0J1ZmZlciwgY0J1ZmZlclBvcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlRG9jdHlwZShzcmMsIHN0YXRl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNCdWZmZXJQb3M7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAwOyAvLyBT
dG9wIGxvb2tpbmcgZm9yICc8IS0tJyBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVTZWFyY2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2luZyBmb3IgJzwhRE9DVFlQRScgc2Vx
dWVuY2UKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYm9vbCBmaW5pc2ggPSBmYWxzZTsK
QEAgLTE0MDMsNiArMTYzOCw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2Vn
bWVudGUKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluQ29tbWVudCgpKQogICAgICAgICAgICAgICAg
IHN0YXRlID0gcGFyc2VDb21tZW50KHNyYywgc3RhdGUpOworICAgICAgICAgICAgZWxzZSBpZiAo
c3RhdGUuaW5Eb2N0eXBlKCkpCisgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZURvY3R5cGUo
c3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pblNlcnZlcigpKQogICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTZXJ2ZXIoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAg
ICBlbHNlIGlmIChzdGF0ZS5pblByb2Nlc3NpbmdJbnN0cnVjdGlvbigpKQpAQCAtMTQxNiw5ICsx
NjUzLDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZQogICAgICAg
ICAgICAgICAgIGNhc2UgJy8nOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlICchJzogewotICAgICAgICAgICAgICAgICAgICAvLyA8IS0tIGNvbW1lbnQg
LS0+Ci0gICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMTsgLy8gTG9vayBmb3IgJzwh
LS0nIHNlcXVlbmNlIHRvIHN0YXJ0IGNvbW1lbnQKLSAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgIC8vIDwhLS0gY29tbWVudCAtLT4gb3IgPCFET0NUWVBFIC4uLj4KKyAg
ICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQgPSAxOyAvLyBMb29rIGZvciAnPCEtLScgc2Vx
dWVuY2UgdG8gc3RhcnQgY29tbWVudCBvciAnPCFET0NUWVBFJyBzZXF1ZW5jZSB0byBzdGFydCBk
b2N0eXBlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50ID0gMTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGNhc2UgJz8nOiB7CkBAIC0xNTY0LDcgKzE4MDEsNyBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6
OmVuZCgpCiB2b2lkIEhUTUxUb2tlbml6ZXI6OmZpbmlzaCgpCiB7CiAgICAgLy8gZG8gdGhpcyBh
cyBsb25nIGFzIHdlIGRvbid0IGZpbmQgbWF0Y2hpbmcgY29tbWVudCBlbmRzCi0gICAgd2hpbGUo
KG1fc3RhdGUuaW5Db21tZW50KCkgfHwgbV9zdGF0ZS5pblNlcnZlcigpKSAmJiBzY3JpcHRDb2Rl
ICYmIHNjcmlwdENvZGVTaXplKSB7CisgICAgd2hpbGUgKChtX3N0YXRlLmluQ29tbWVudCgpIHx8
IG1fc3RhdGUuaW5TZXJ2ZXIoKSkgJiYgc2NyaXB0Q29kZSAmJiBzY3JpcHRDb2RlU2l6ZSkgewog
ICAgICAgICAvLyB3ZSd2ZSBmb3VuZCBhbiB1bm1hdGNoZWQgY29tbWVudCBzdGFydAogICAgICAg
ICBpZiAobV9zdGF0ZS5pbkNvbW1lbnQoKSkKICAgICAgICAgICAgIGJyb2tlbkNvbW1lbnRzID0g
dHJ1ZTsKQEAgLTE2MzMsNiArMTg3MCwxNCBAQCBQYXNzUmVmUHRyPE5vZGU+IEhUTUxUb2tlbml6
ZXI6OnByb2Nlc3NUCiAgICAgcmV0dXJuIG4ucmVsZWFzZSgpOwogfQogCit2b2lkIEhUTUxUb2tl
bml6ZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4oKQoreworICAgIGlmIChpblZpZXdTb3VyY2VNb2Rl
KCkpCisgICAgICAgIHN0YXRpY19jYXN0PEhUTUxWaWV3U291cmNlRG9jdW1lbnQqPihtX2RvYykt
PmFkZFZpZXdTb3VyY2VEb2N0eXBlVG9rZW4oJm1fZG9jdHlwZVRva2VuKTsKKyAgICBlbHNlCisg
ICAgICAgIHBhcnNlci0+cGFyc2VEb2N0eXBlVG9rZW4oJm1fZG9jdHlwZVRva2VuKTsKK30KKwog
SFRNTFRva2VuaXplcjo6fkhUTUxUb2tlbml6ZXIoKQogewogICAgIEFTU0VSVCghaW5Xcml0ZSk7
CkluZGV4OiBodG1sL0hUTUxUb2tlbml6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxUb2tl
bml6ZXIuaAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxUb2tlbml6ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtODMsNiArODMsNDQgQEAgcHVibGljOgogICAgIE93blB0cjxWZWN0b3I8VUNo
YXI+ID4gbV9zb3VyY2VJbmZvOwogfTsKIAorZW51bSBEb2N0eXBlU3RhdGUgeworICAgIERvY3R5
cGVCZWdpbiwKKyAgICBEb2N0eXBlQmVmb3JlTmFtZSwKKyAgICBEb2N0eXBlTmFtZSwKKyAgICBE
b2N0eXBlQWZ0ZXJOYW1lLAorICAgIERvY3R5cGVCZWZvcmVQdWJsaWNJRCwKKyAgICBEb2N0eXBl
UHVibGljSUQsCisgICAgRG9jdHlwZUFmdGVyUHVibGljSUQsCisgICAgRG9jdHlwZUJlZm9yZVN5
c3RlbUlELAorICAgIERvY3R5cGVTeXN0ZW1JRCwKKyAgICBEb2N0eXBlQWZ0ZXJTeXN0ZW1JRCwK
KyAgICBEb2N0eXBlQm9ndXMKK307CisKK2NsYXNzIERvY3R5cGVUb2tlbiB7CitwdWJsaWM6Cisg
ICAgRG9jdHlwZVRva2VuKCkge30KKyAgICAKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAg
ICAgIG1fbmFtZS5jbGVhcigpOworICAgICAgICBtX3B1YmxpY0lELmNsZWFyKCk7CisgICAgICAg
IG1fc3lzdGVtSUQuY2xlYXIoKTsKKyAgICAgICAgbV9zdGF0ZSA9IERvY3R5cGVCZWdpbjsKKyAg
ICAgICAgbV9zb3VyY2UuY2xlYXIoKTsKKyAgICB9CisKKyAgICBEb2N0eXBlU3RhdGUgc3RhdGUo
KSB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgdm9pZCBzZXRTdGF0ZShEb2N0eXBlU3RhdGUgcykg
eyBtX3N0YXRlID0gczsgfQorCisgICAgVmVjdG9yPFVDaGFyPiBtX25hbWU7CisgICAgVmVjdG9y
PFVDaGFyPiBtX3B1YmxpY0lEOworICAgIFZlY3RvcjxVQ2hhcj4gbV9zeXN0ZW1JRDsKKyAgICBE
b2N0eXBlU3RhdGUgbV9zdGF0ZTsKKyAgICAKKyAgICBWZWN0b3I8VUNoYXI+IG1fc291cmNlOwor
fTsKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBjbGFzcyBIVE1MVG9rZW5pemVyIDogcHVi
bGljIFRva2VuaXplciwgcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKQEAgLTExOCwxMCAr
MTU2LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmQoKTsKIAogICAgIHZvaWQgcmVzZXQoKTsK
KwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJvY2Vzc1Rva2VuKCk7CisgICAgdm9pZCBwcm9jZXNz
RG9jdHlwZVRva2VuKCk7CiAKICAgICBTdGF0ZSBwcm9jZXNzTGlzdGluZyhTZWdtZW50ZWRTdHJp
bmcsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZUNvbW1lbnQoU2VnbWVudGVkU3RyaW5nJiwgU3Rh
dGUpOworICAgIFN0YXRlIHBhcnNlRG9jdHlwZShTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAg
ICAgU3RhdGUgcGFyc2VTZXJ2ZXIoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRl
IHBhcnNlVGV4dChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VTcGVj
aWFsKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKQEAgLTIyMCw2ICsyNjEsOCBAQCBwcml2YXRl
OgogICAgICAgICB2b2lkIHNldEluUHJvY2Vzc2luZ0luc3RydWN0aW9uKGJvb2wgdikgeyByZXR1
cm4gc2V0Qml0KEluUHJvY2Vzc2luZ0luc3RydWN0aW9uLCB2KTsgfQogICAgICAgICBib29sIGlu
Q29tbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5Db21tZW50KTsgfQogICAgICAgICB2
b2lkIHNldEluQ29tbWVudChib29sIHYpIHsgc2V0Qml0KEluQ29tbWVudCwgdik7IH0KKyAgICAg
ICAgYm9vbCBpbkRvY3R5cGUoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEluRG9jdHlwZSk7IH0K
KyAgICAgICAgdm9pZCBzZXRJbkRvY3R5cGUoYm9vbCB2KSB7IHNldEJpdChJbkRvY3R5cGUsIHYp
OyB9CiAgICAgICAgIGJvb2wgaW5UZXh0QXJlYSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5U
ZXh0QXJlYSk7IH0KICAgICAgICAgdm9pZCBzZXRJblRleHRBcmVhKGJvb2wgdikgeyBzZXRCaXQo
SW5UZXh0QXJlYSwgdik7IH0KICAgICAgICAgYm9vbCBlc2NhcGVkKCkgY29uc3QgeyByZXR1cm4g
dGVzdEJpdChFc2NhcGVkKTsgfQpAQCAtMjQzLDcgKzI4Niw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgaGFzVGFnU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUYWdNYXNrOyB9CiAg
ICAgICAgIGJvb2wgaGFzRW50aXR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBFbnRp
dHlNYXNrOyB9CiAKLSAgICAgICAgYm9vbCBuZWVkc1NwZWNpYWxXcml0ZUhhbmRsaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0IHwgSW5TdHlsZSB8IEluWG1wIHwgSW5UZXh0
QXJlYSB8IEluVGl0bGUgfCBJbklGcmFtZSB8IFRhZ01hc2sgfCBFbnRpdHlNYXNrIHwgSW5QbGFp
blRleHQgfCBJbkNvbW1lbnQgfCBJblNlcnZlciB8IEluUHJvY2Vzc2luZ0luc3RydWN0aW9uIHwg
U3RhcnRUYWcpOyB9CisgICAgICAgIGJvb2wgbmVlZHNTcGVjaWFsV3JpdGVIYW5kbGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4
dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUgfCBUYWdNYXNrIHwgRW50aXR5TWFzayB8IEluUGxh
aW5UZXh0IHwgSW5Db21tZW50IHwgSW5Eb2N0eXBlIHwgSW5TZXJ2ZXIgfCBJblByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiB8IFN0YXJ0VGFnKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGlj
IGNvbnN0IGludCBFbnRpdHlTaGlmdCA9IDQ7CkBAIC0yNjcsNyArMzEwLDggQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIEFsbG93WWllbGQgPSAxIDw8IDIxLAogICAgICAgICAgICAgTG9hZGluZ0V4
dFNjcmlwdCA9IDEgPDwgMjIsCiAgICAgICAgICAgICBGb3JjZVN5bmNocm9ub3VzID0gMSA8PCAy
MywKLSAgICAgICAgICAgIEluSUZyYW1lID0gMSA8PCAyNAorICAgICAgICAgICAgSW5JRnJhbWUg
PSAxIDw8IDI0LAorICAgICAgICAgICAgSW5Eb2N0eXBlID0gMSA8PCAyNQogICAgICAgICB9Owog
CiAgICAgICAgIHZvaWQgc2V0Qml0KFN0YXRlQml0cyBiaXQsIGJvb2wgdmFsdWUpCkBAIC0yODMs
NiArMzI3LDEwIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIFN0YXRlIG1fc3RhdGU7CisgICAg
CisgICAgRG9jdHlwZVRva2VuIG1fZG9jdHlwZVRva2VuOworICAgIGludCBtX2RvY3R5cGVTZWFy
Y2hDb3VudDsKKyAgICBpbnQgbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQ7CiAKICAgICBi
b29sIGJyb2tlblNlcnZlcjsKIApAQCAtMzAwLDE0ICszNDgsMTQgQEAgcHJpdmF0ZToKIAogICAg
IC8vIFN0b3JlcyBjaGFyYWN0ZXJzIGlmIHdlIGFyZSBzY2FubmluZyBmb3IgYSBzdHJpbmcgbGlr
ZSAiPC9zY3JpcHQ+IgogICAgIFVDaGFyIHNlYXJjaEJ1ZmZlclsxMF07CisgICAgCiAgICAgLy8g
Q291bnRzIHdoZXJlIHdlIGFyZSBpbiB0aGUgc3RyaW5nIHdlIGFyZSBzY2FubmluZyBmb3IKICAg
ICBpbnQgc2VhcmNoQ291bnQ7Ci0gICAgLy8gVGhlIHN0cmluZyB3ZSBhcmUgc2VhcmNoaW5nIGZv
cgotICAgIGNvbnN0IFVDaGFyKiBzZWFyY2hGb3I7CiAgICAgLy8gdGhlIHN0b3BwZXIgc3RyaW5n
CiAgICAgY29uc3QgY2hhciogc2VhcmNoU3RvcHBlcjsKICAgICAvLyB0aGUgc3RvcHBlciBsZW4K
ICAgICBpbnQgc2VhcmNoU3RvcHBlckxlbjsKKyAgICAKICAgICAvLyBpZiBubyBtb3JlIGRhdGEg
aXMgY29taW5nLCBqdXN0IHBhcnNlIHdoYXQgd2UgaGF2ZSAoaW5jbHVkaW5nIGV4dCBzY3JpcHRz
IHRoYXQKICAgICAvLyBtYXkgYmUgc3RpbGwgZG93bmxvYWRpbmcpIGFuZCBmaW5pc2gKICAgICBi
b29sIG5vTW9yZURhdGE7CkluZGV4OiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHJldmlzaW9uIDMw
Mzg3KQorKysgaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA4LDkgKzEwOCw3IEBAIHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkVmlld1Nv
dXIKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEhhbmRsZSB0aGUgdGFnLgot
ICAgICAgICBib29sIGRvY3R5cGUgPSB0b2tlbi0+dGFnTmFtZS5zdGFydHNXaXRoKCIhRE9DVFlQ
RSIsIGZhbHNlKTsKLSAgICAgICAgCi0gICAgICAgIFN0cmluZyBjbGFzc05hbWVTdHIgPSBkb2N0
eXBlID8gIndlYmtpdC1odG1sLWRvY3R5cGUiIDogIndlYmtpdC1odG1sLXRhZyI7CisgICAgICAg
IFN0cmluZyBjbGFzc05hbWVTdHIgPSAid2Via2l0LWh0bWwtdGFnIjsKICAgICAgICAgbV9jdXJy
ZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoY2xhc3NOYW1lU3RyKTsKIAogICAgICAgICBTdHJp
bmcgdGV4dCA9ICI8IjsKQEAgLTE0NSwyOCArMTQzLDIxIEBAIHZvaWQgSFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6YWRkVmlld1NvdXIKICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChndWlkZS0+YXQoaSkgPT0gJ2EnKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBhdHRyLT5uYW1lKCkudG9TdHJpbmco
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdHlwZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkVGV4dChuYW1lLCAid2Via2l0LWh0bWwtZG9jdHlwZSIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBhZGRTcGFuV2l0aENsYXNzTmFtZSgid2Via2l0LWh0
bWwtYXR0cmlidXRlLW5hbWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRk
VGV4dChuYW1lLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCAhPSBtX3Rib2R5KQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG1fY3VycmVudC0+cGFyZW50KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2N1cnJlbnQgPSBhZGRTcGFuV2l0aENsYXNzTmFtZSgid2Via2l0LWh0bWwtYXR0cmlidXRlLW5h
bWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRUZXh0KG5hbWUsICJ3ZWJraXQt
aHRtbC1hdHRyaWJ1dGUtbmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICht
X2N1cnJlbnQgIT0gbV90Ym9keSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9j
dXJyZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1fY3VycmVudC0+cGFyZW50KCkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBhdHRyLT52YWx1ZSgpLmRvbVN0cmluZygpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChkb2N0eXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRUZXh0KHZhbHVlLCAid2Via2l0LWh0bWwtZG9jdHlwZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogWE1MIGNvdWxkIHVzZSBuYW1lc3BhY2UgcHJlZml4ZXMgYW5kIGNvbmZ1c2UgdXMu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShh
dHRyLT5uYW1lKCkubG9jYWxOYW1lKCksICJzcmMiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhdHRy
LT5uYW1lKCkubG9jYWxOYW1lKCksICJocmVmIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2N1cnJlbnQgPSBhZGRMaW5rKHZhbHVlLCBlcXVhbElnbm9yaW5nQ2FzZSh0
b2tlbi0+dGFnTmFtZSwgImEiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IGFkZFNw
YW5XaXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkVGV4dCh2YWx1ZSwgIndlYmtpdC1odG1sLWF0dHJp
YnV0ZS12YWx1ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJy
ZW50ICE9IG1fdGJvZHkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1
cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9jdXJyZW50LT5wYXJlbnQoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBYTUwgY291bGQgdXNlIG5hbWVzcGFjZSBwcmVmaXhlcyBhbmQgY29uZnVzZSB1cy4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+
bmFtZSgpLmxvY2FsTmFtZSgpLCAic3JjIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+bmFt
ZSgpLmxvY2FsTmFtZSgpLCAiaHJlZiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2N1cnJlbnQgPSBhZGRMaW5rKHZhbHVlLCBlcXVhbElnbm9yaW5nQ2FzZSh0b2tlbi0+dGFn
TmFtZSwgImEiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBhZGRTcGFuV2l0aENsYXNzTmFtZSgi
d2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWRkVGV4dCh2YWx1ZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgIT0gbV90Ym9keSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG1fY3VycmVudC0+cGFyZW50KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg0LDYgKzE3NSwxNyBAQCB2
b2lkIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFZpZXdTb3VyCiAgICAgfQogfQogCit2b2lk
IEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFZpZXdTb3VyY2VEb2N0eXBlVG9rZW4oRG9jdHlw
ZVRva2VuKiBkb2N0eXBlVG9rZW4pCit7CisgICAgaWYgKCFtX2N1cnJlbnQpCisgICAgICAgIGNy
ZWF0ZUNvbnRhaW5pbmdUYWJsZSgpOworICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NO
YW1lKCJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7CisgICAgU3RyaW5nIHRleHQgPSAiPCI7CisgICAg
dGV4dCArPSBTdHJpbmc6OmFkb3B0KGRvY3R5cGVUb2tlbi0+bV9zb3VyY2UpOworICAgIHRleHQg
Kz0gIj4iOworICAgIGFkZFRleHQodGV4dCwgIndlYmtpdC1odG1sLWRvY3R5cGUiKTsKK30KKwog
RWxlbWVudCogSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkU3BhbldpdGhDbGFzc05hbWUoY29u
c3QgU3RyaW5nJiBjbGFzc05hbWUpCiB7CiAgICAgaWYgKG1fY3VycmVudCA9PSBtX3Rib2R5KSB7
CkluZGV4OiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1s
L0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxW
aWV3U291cmNlRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3R5cGVUb2tlbjsKIGNsYXNzIFRva2VuOwog
CiBjbGFzcyBIVE1MVmlld1NvdXJjZURvY3VtZW50IDogcHVibGljIEhUTUxEb2N1bWVudApAQCAt
MzksNyArNDAsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGRWaWV3U291cmNlVG9rZW4o
VG9rZW4qKTsgLy8gVXNlZCBieSB0aGUgSFRNTCB0b2tlbml6ZXIuCiAgICAgdm9pZCBhZGRWaWV3
U291cmNlVGV4dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSB0aGUgcGxhaW50ZXh0IHRva2Vu
aXplci4KLSAgICAKKyAgICB2b2lkIGFkZFZpZXdTb3VyY2VEb2N0eXBlVG9rZW4oRG9jdHlwZVRv
a2VuKik7CisKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVDb250YWluaW5nVGFibGUoKTsKICAg
ICBFbGVtZW50KiBhZGRTcGFuV2l0aENsYXNzTmFtZShjb25zdCBTdHJpbmcmKTsKSW5kZXg6IGxv
YWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAkocmV2aXNpb24gMzAzODcpCisrKyBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05OTAsNyArOTkwLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6d3JpdGUoY29uc3QgY2hh
ciogc3RyLAogCiAgICAgaWYgKCFtX3JlY2VpdmVkRGF0YSkgewogICAgICAgICBtX3JlY2VpdmVk
RGF0YSA9IHRydWU7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRldGVybWluZVBhcnNl
TW9kZShkZWNvZGVkKTsKICAgICAgICAgaWYgKG1fZGVjb2Rlci0+ZW5jb2RpbmcoKS51c2VzVmlz
dWFsT3JkZXJpbmcoKSkKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldFZpc3Vh
bGx5T3JkZXJlZCgpOwogICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWNhbGNTdHlsZShO
b2RlOjpGb3JjZSk7CkBAIC00ODEwLDcgKzQ4MDksNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzd2l0
Y2hPdXRMb3dCYW5kd2lkdGhECiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU291cmNlSW5Mb3dC
YW5kd2lkdGhEaXNwbGF5Lmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gc2V0IGNhY2hl
UG9saWN5IHRvIENhY2hlIHRvIHVzZSB0aGUgbG9hZGVkIHJlc291cmNlCiAgICAgICAgICAgICAg
ICAgbmV3RG9jLT5kb2NMb2FkZXIoKS0+c2V0Q2FjaGVQb2xpY3koQ2FjaGVQb2xpY3lDYWNoZSk7
Ci0gICAgICAgICAgICAgICAgbmV3RG9jLT5kZXRlcm1pbmVQYXJzZU1vZGUobV9wZW5kaW5nU291
cmNlSW5Mb3dCYW5kd2lkdGhEaXNwbGF5KTsKICAgICAgICAgICAgICAgICBpZiAobV9kZWNvZGVy
LT5lbmNvZGluZygpLnVzZXNWaXN1YWxPcmRlcmluZygpKQogICAgICAgICAgICAgICAgICAgICBu
ZXdEb2MtPnNldFZpc3VhbGx5T3JkZXJlZCgpOyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgbmV3RG9jLT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7ICAgICAgICAgICAgICAg
IApJbmRleDogcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFtZS5jcHAJKHJl
dmlzaW9uIDMwMzg3KQorKysgcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OTAs
NyArMTY5MCw3IEBAIHZvaWQgRnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKQogU3RyaW5n
IEZyYW1lOjpkb2N1bWVudFR5cGVTdHJpbmcoKSBjb25zdAogewogICAgIGlmIChEb2N1bWVudCAq
ZG9jID0gZG9jdW1lbnQoKSkKLSAgICAgICAgaWYgKERvY3VtZW50VHlwZSAqZG9jdHlwZSA9IGRv
Yy0+cmVhbERvY1R5cGUoKSkKKyAgICAgICAgaWYgKERvY3VtZW50VHlwZSAqZG9jdHlwZSA9IGRv
Yy0+ZG9jdHlwZSgpKQogICAgICAgICAgICAgcmV0dXJuIGRvY3R5cGUtPnRvU3RyaW5nKCk7CiAK
ICAgICByZXR1cm4gU3RyaW5nKCk7CkluZGV4OiBwYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcGFnZS9pbnNwZWN0b3IvdXRpbGl0aWVzLmpzCShyZXZpc2lvbiAzMDM4
NykKKysrIHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwkod29ya2luZyBjb3B5KQpAQCAtNDI1
LDYgKzQyNSwxOCBAQCBmdW5jdGlvbiBub2RlRGlzcGxheU5hbWUoKQogCiAgICAgICAgIGNhc2Ug
Tm9kZS5DT01NRU5UX05PREU6CiAgICAgICAgICAgICByZXR1cm4gIjwhLS0iICsgdGhpcy5ub2Rl
VmFsdWUgKyAiLS0+IjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRf
VFlQRV9OT0RFOgorICAgICAgICAgICAgdmFyIGRvY1R5cGUgPSAiPCFET0NUWVBFICIgKyB0aGlz
Lm5vZGVOYW1lOworICAgICAgICAgICAgaWYgKHRoaXMucHVibGljSWQpIHsKKyAgICAgICAgICAg
ICAgICBkb2NUeXBlICs9ICIgUFVCTElDIFwiIiArIHRoaXMucHVibGljSWQgKyAiXCIiOworICAg
ICAgICAgICAgICAgIGlmICh0aGlzLnN5c3RlbUlkKQorICAgICAgICAgICAgICAgICAgICBkb2NU
eXBlICs9ICIgXCIiICsgdGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHRoaXMuc3lzdGVtSWQpCisgICAgICAgICAgICAgICAgZG9jVHlwZSArPSAiIFNZU1RFTSBc
IiIgKyB0aGlzLnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIGlmICh0aGlzLmludGVybmFs
U3Vic2V0KQorICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBbIiArIHRoaXMuaW50ZXJuYWxT
dWJzZXQgKyAiXSI7CisgICAgICAgICAgICByZXR1cm4gZG9jVHlwZSArICI+IjsKICAgICB9CiAK
ICAgICByZXR1cm4gdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLmNvbGxhcHNlV2hpdGVzcGFj
ZSgpOwpAQCAtNjQzLDYgKzY1NSwxOCBAQCBmdW5jdGlvbiBub2RlVGl0bGVJbmZvKGhhc0NoaWxk
cmVuLCBsaW5rCiAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFuIGNsYXNzPVwid2Via2l0
LWh0bWwtY29tbWVudFwiPiZsdDshLS0iICsgdGhpcy5ub2RlVmFsdWUuZXNjYXBlSFRNTCgpICsg
Ii0tJmd0Ozwvc3Bhbj4iOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBOb2Rl
LkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIGluZm8udGl0bGUgPSAiPHNwYW4gY2xh
c3M9XCJ3ZWJraXQtaHRtbC10YWdcIj4mbHQ7IURPQ1RZUEUgIiArIHRoaXMubm9kZU5hbWU7Cisg
ICAgICAgICAgICBpZiAodGhpcy5wdWJsaWNJZCkgeworICAgICAgICAgICAgICAgIGluZm8udGl0
bGUgKz0gIiBQVUJMSUMgXCIiICsgdGhpcy5wdWJsaWNJZCArICJcIiI7CisgICAgICAgICAgICAg
ICAgaWYgKHRoaXMuc3lzdGVtSWQpCisgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGUgKz0g
IiBcIiIgKyB0aGlzLnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGhp
cy5zeXN0ZW1JZCkKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICIgU1lTVEVNIFwiIiAr
IHRoaXMuc3lzdGVtSWQgKyAiXCIiOworICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxTdWJz
ZXQpCisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFsiICsgdGhpcy5pbnRlcm5hbFN1
YnNldCArICJdIjsKKyAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiZndDs8L3NwYW4+IjsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgaW5mby50aXRs
ZSA9IHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5jb2xsYXBzZVdoaXRlc3BhY2UoKS5lc2Nh
cGVIVE1MKCk7CiAgICAgfQpJbmRleDogeG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHhtbC9YU0xUUHJvY2Vzc29yLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyB4bWwvWFNMVFBy
b2Nlc3Nvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsyNTgsNiBAQCBSZWZQdHI8RG9j
dW1lbnQ+IFhTTFRQcm9jZXNzb3I6OmNyZWF0ZURvCiAgICAgICAgIHJlc3VsdC0+c2V0VVJMKG93
bmVyRG9jdW1lbnQtPnVybCgpKTsKICAgICAgICAgcmVzdWx0LT5zZXRCYXNlVVJMKG93bmVyRG9j
dW1lbnQtPmJhc2VVUkwoKSk7CiAgICAgfQotICAgIHJlc3VsdC0+ZGV0ZXJtaW5lUGFyc2VNb2Rl
KGRvY3VtZW50U291cmNlKTsgLy8gTWFrZSBzdXJlIHdlIHBhcnNlIGluIHRoZSBjb3JyZWN0IG1v
ZGUuCiAgICAgCiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29kZXIgPSBuZXcg
VGV4dFJlc291cmNlRGVjb2Rlcihzb3VyY2VNSU1FVHlwZSk7CiAgICAgZGVjb2Rlci0+c2V0RW5j
b2Rpbmcoc291cmNlRW5jb2RpbmcuaXNFbXB0eSgpID8gVVRGOEVuY29kaW5nKCkgOiBUZXh0RW5j
b2Rpbmcoc291cmNlRW5jb2RpbmcpLCBUZXh0UmVzb3VyY2VEZWNvZGVyOjpFbmNvZGluZ0Zyb21Y
TUxIZWFkZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19219</attachid>
            <date>2008-02-19 22:04:40 -0800</date>
            <delta_ts>2008-02-20 01:21:06 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>52546</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAgICAgICAgZG9jLT5zZXREb2NUeXBlKGRv
Y3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChkb2MuZ2V0KCkpOwotICAgIH0K
KyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5hZGRDaGlsZChkb2N0eXBlKTsKIAogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9j
LT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYykpOwpJbmRl
eDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxOCw4
ICszMTgsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRE9NSW1wbGVtZW50YXRpb24qIGltCiAgICAg
bV90b2tlbml6ZXIgPSAwOwogICAgIG1fd2VsbEZvcm1lZCA9IGZhbHNlOwogCi0gICAgcE1vZGUg
PSBTdHJpY3Q7Ci0gICAgaE1vZGUgPSBYSHRtbDsKKyAgICBwTW9kZSA9IGRlZmF1bHRQYXJzZU1v
ZGUoKTsKKwogICAgIG1fdGV4dENvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgIG1fbGlzdGVuZXJU
eXBlcyA9IDA7CiAgICAgbV9pbkRvY3VtZW50ID0gdHJ1ZTsKQEAgLTQ3NSwxMiArNDc1LDE1IEBA
IHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0NvbG9yKCkKIAogdm9pZCBEb2N1bWVudDo6
c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkKIHsKKyAgICAvLyBU
aGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuCisgICAgLy8gTm90ZTog
VGhpcyBpcyBub3QgYSBwdWJsaWMgRE9NIG1ldGhvZCBhbmQgY2FuIG9ubHkgYmUgY2FsbGVkIGJ5
IHRoZSBwYXJzZXIuCisgICAgQVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5cGUpOworICAgIGlm
IChtX2RvY1R5cGUgJiYgZG9jVHlwZSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fZG9jVHlwZSA9
IGRvY1R5cGU7Ci19Ci0KLURvY3VtZW50VHlwZSAqRG9jdW1lbnQ6OmRvY3R5cGUoKSBjb25zdAot
ewotICAgIHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7CisgICAgaWYgKG1fZG9jVHlwZSkKKyAgICAg
ICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsKKyAgICBkZXRlcm1pbmVQYXJzZU1vZGUo
KTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpIGNv
bnN0CkBAIC0xNzAyLDE0ICsxNzA1LDYgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnQ6Om1hcHBl
ZEVsZW1lbnRTaAogICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRTaGVldC5nZXQoKTsKIH0KIAot
dm9pZCBEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmluZyYpCi17Ci0gICAg
Ly8gRm9yIFhNTCBkb2N1bWVudHMgdXNlIHN0cmljdCBwYXJzZSBtb2RlLgotICAgIC8vIEhUTUwg
b3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB0aGUgcGFyc2UgbW9kZS4KLSAgICBw
TW9kZSA9IFN0cmljdDsKLSAgICBoTW9kZSA9IFhIdG1sOwotfQotCiBzdGF0aWMgTm9kZSogbmV4
dE5vZGVXaXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CkBA
IC0yNzcyLDcgKzI3NjcsNyBAQCBIVE1MTWFwRWxlbWVudCAqRG9jdW1lbnQ6OmdldEltYWdlTWFw
KGNvCiAgICAgICAgIHJldHVybiAwOwogICAgIGludCBoYXNoUG9zID0gdXJsLmZpbmQoJyMnKTsK
ICAgICBTdHJpbmcgbmFtZSA9IChoYXNoUG9zIDwgMCA/IHVybCA6IHVybC5zdWJzdHJpbmcoaGFz
aFBvcyArIDEpKS5pbXBsKCk7Ci0gICAgQXRvbWljU3RyaW5nIG1hcE5hbWUgPSBoTW9kZSA9PSBY
SHRtbCA/IG5hbWUgOiBuYW1lLmxvd2VyKCk7CisgICAgQXRvbWljU3RyaW5nIG1hcE5hbWUgPSBp
c0hUTUxEb2N1bWVudCgpID8gbmFtZS5sb3dlcigpIDogbmFtZTsKICAgICByZXR1cm4gbV9pbWFn
ZU1hcHNCeU5hbWUuZ2V0KG1hcE5hbWUuaW1wbCgpKTsKIH0KIApJbmRleDogZG9tL0RvY3VtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDMwMzg3KQorKysgZG9t
L0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw4ICsxNzksNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERvY3VtZW50CiAKLSAgICB2aXJ0
dWFsIERvY3VtZW50VHlwZSogZG9jdHlwZSgpIGNvbnN0OyAvLyBNYXkgcmV0dXJuIDAgZm9yIEhU
TUwgZG9jdW1lbnRzCi0gICAgRG9jdW1lbnRUeXBlKiByZWFsRG9jVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQorICAgIERvY3VtZW50VHlwZSogZG9jdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQogCiAgICAgRE9NSW1wbGVtZW50YXRpb24qIGlt
cGxlbWVudGF0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChi
b29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlKTsKQEAgLTQwMiw4ICs0MDEsMTIgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UHJpbnRpbmcoYm9vbCBwKSB7IG1fcHJpbnRpbmcgPSBwOyB9CiAKICAg
ICBlbnVtIFBhcnNlTW9kZSB7IENvbXBhdCwgQWxtb3N0U3RyaWN0LCBTdHJpY3QgfTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIFBhcnNlTW9kZSBkZWZhdWx0UGFyc2VNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gU3RyaWN0OyB9CisgICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZSgpIHt9
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcm
KTsKK3B1YmxpYzoKICAgICB2b2lkIHNldFBhcnNlTW9kZShQYXJzZU1vZGUgbSkgeyBwTW9kZSA9
IG07IH0KICAgICBQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4gcE1vZGU7IH0K
IApAQCAtNDExLDExICs0MTQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbkFsbW9zdFN0cmljdE1v
ZGUoKSBjb25zdCB7IHJldHVybiBwTW9kZSA9PSBBbG1vc3RTdHJpY3Q7IH0KICAgICBib29sIGlu
U3RyaWN0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHBNb2RlID09IFN0cmljdDsgfQogICAgIAotICAg
IGVudW0gSFRNTE1vZGUgeyBIdG1sMywgSHRtbDQsIFhIdG1sIH07Ci0KLSAgICB2b2lkIHNldEhU
TUxNb2RlKEhUTUxNb2RlIG0pIHsgaE1vZGUgPSBtOyB9Ci0gICAgSFRNTE1vZGUgaHRtbE1vZGUo
KSBjb25zdCB7IHJldHVybiBoTW9kZTsgfQotCiAgICAgdm9pZCBzZXRQYXJzaW5nKGJvb2wpOwog
ICAgIGJvb2wgcGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYlBhcnNpbmc7IH0KICAgICBpbnQg
bWluaW11bUxheW91dERlbGF5KCk7CkBAIC03MzYsNyArNzM0LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcHJpbnRpbmc7CiAKICAgICBQYXJzZU1vZGUgcE1vZGU7Ci0gICAgSFRNTE1vZGUgaE1v
ZGU7CiAKICAgICBDb2xvciBtX3RleHRDb2xvcjsKIApJbmRleDogZG9tL0RvY3VtZW50VHlwZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwMzg3KQor
KysgZG9tL0RvY3VtZW50VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw0ICsxMDUsMjMg
QEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZQogICAgIHJldHVybiAw
OwogfQogCit2b2lkIERvY3VtZW50VHlwZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreworICAg
IC8vIE91ciBkb2N1bWVudCBub2RlIGNhbiBiZSBudWxsIGlmIHdlIHdlcmUgY3JlYXRlZCBieSBh
IERPTUltcGxlbWVudGF0aW9uLiAgV2UgdXNlIHRoZSBwYXJlbnQoKSBpbnN0ZWFkLgorICAgIEFT
U0VSVChwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgaWYgKHBh
cmVudCgpICYmIHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIERvY3VtZW50
KiBkb2MgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHBhcmVudCgpKTsKKyAgICAgICAgaWYgKCFk
b2MtPmRvY3R5cGUoKSkKKyAgICAgICAgICAgIGRvYy0+c2V0RG9jVHlwZSh0aGlzKTsKKyAgICB9
CisgICAgTm9kZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBEb2N1bWVudFR5
cGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3Vt
ZW50KCktPmRvY3R5cGUoKSA9PSB0aGlzKQorICAgICAgICBkb2N1bWVudCgpLT5zZXREb2NUeXBl
KDApOworICAgIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKK30KKwogfQpJbmRleDogZG9t
L0RvY3VtZW50VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudFR5cGUuaAkocmV2aXNp
b24gMzAzODcpCisrKyBkb20vRG9jdW1lbnRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYg
KzU4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUo
Ym9vbCBkZWVwKTsKICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCisgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZWRGcm9tRG9jdW1lbnQoKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NSW1wbGVtZW50
YXRpb24+IG1faW1wbGVtZW50YXRpb247CiAgICAgUmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9lbnRp
dGllczsKSW5kZXg6IGRvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTm9kZS5jcHAJKHJl
dmlzaW9uIDMwMzg3KQorKysgZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzYsNyAr
NzM2LDcgQEAgYm9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihjb25zdCBOb2RlICpvdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotYm9vbCBOb2RlOjpjaGlsZEFsbG93ZWQoIE5vZGUgKm5ld0NoaWxk
ICkKK2Jvb2wgTm9kZTo6Y2hpbGRBbGxvd2VkKE5vZGUqIG5ld0NoaWxkKQogewogICAgIHJldHVy
biBjaGlsZFR5cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgpKTsKIH0KSW5kZXg6IGRvbS9Y
TUxUb2tlbml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGRvbS9YTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDA4LDExICsxMDA4LDggQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmludGVybmFsU3Vic2V0KGNvbnN0
IAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIERvY3VtZW50KiBkb2MgPSBtX2Rv
YzsKLSAgICBpZiAoIWRvYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZG9jLT5zZXREb2NUeXBl
KG5ldyBEb2N1bWVudFR5cGUoZG9jLCB0b1N0cmluZyhuYW1lKSwgdG9TdHJpbmcoZXh0ZXJuYWxJ
RCksIHRvU3RyaW5nKHN5c3RlbUlEKSkpOworICAgIGlmIChtX2RvYykKKyAgICAgICAgbV9kb2Mt
PmFkZENoaWxkKG5ldyBEb2N1bWVudFR5cGUobV9kb2MsIHRvU3RyaW5nKG5hbWUpLCB0b1N0cmlu
ZyhleHRlcm5hbElEKSwgdG9TdHJpbmcoc3lzdGVtSUQpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
WE1MVG9rZW5pemVyKiBnZXRUb2tlbml6ZXIodm9pZCogY2xvc3VyZSkKQEAgLTIwOTgsNyArMjA5
NSw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZUR0ZCgpCiAgICAgICAgIHNldElzWEhUTUxE
b2N1bWVudCh0cnVlKTsgLy8gY29udHJvbHMgaWYgd2UgcmVwbGFjZSBlbnRpdGllcyBvciBub3Qu
CiAgICAgfQogICAgIGlmICghbV9wYXJzaW5nRnJhZ21lbnQpCi0gICAgICAgIG1fZG9jLT5zZXRE
b2NUeXBlKG5ldyBEb2N1bWVudFR5cGUobV9kb2MsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkp
OworICAgICAgICBtX2RvYy0+YWRkQ2hpbGQobmV3IERvY3VtZW50VHlwZShtX2RvYywgbmFtZSwg
cHVibGljSWQsIHN5c3RlbUlkKSk7CiAgICAgCiB9CiAjZW5kaWYKSW5kZXg6IGVkaXRpbmcvbWFy
a3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBlZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDMwMzg3
KQorKysgZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsMTQgKzM2OCw3
IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0YXJ0TWFya3VwKFZlY3RvcjxVQ2gKICAgICAgICAgY2Fz
ZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgICAgICBhcHBlbmQocmVzdWx0LCBzdGF0aWNf
Y2FzdDxjb25zdCBDb21tZW50Kj4obm9kZSktPnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERTogewotICAgICAgICAgICAgLy8g
RklYTUU6IEkgdGhpbmsgdGhlIGNvbW1lbnQgYmVsb3cgKGFuZCB0aGVyZWZvcmUgdGhpcyBjb2Rl
KSBpcyB3cm9uZyBub3cKLSAgICAgICAgICAgIC8vIERvY3VtZW50cyBkbyBub3Qgbm9ybWFsbHkg
Y29udGFpbiBhIGRvY1R5cGUgYXMgYSBjaGlsZCBub2RlLCBmb3JjZSBpdCB0byBwcmludCBoZXJl
IGluc3RlYWQuCi0gICAgICAgICAgICBjb25zdCBEb2N1bWVudFR5cGUqIGRvY1R5cGUgPSBzdGF0
aWNfY2FzdDxjb25zdCBEb2N1bWVudCo+KG5vZGUpLT5kb2N0eXBlKCk7Ci0gICAgICAgICAgICBp
ZiAoZG9jVHlwZSkKLSAgICAgICAgICAgICAgICBhcHBlbmQocmVzdWx0LCBkb2NUeXBlLT50b1N0
cmluZygpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQ
RV9OT0RFOgpJbmRleDogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBSZW5k
ZXJPYmplY3QqIEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVSCiAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgY29kZUJhc2UgPSBnZXRBdHRyaWJ1dGUoY29kZWJhc2VBdHRyKTsKICAgICAgICAg
aWYoIWNvZGVCYXNlLmlzTnVsbCgpKQogICAgICAgICAgICAgYXJncy5zZXQoImNvZGVCYXNlIiwg
Y29kZUJhc2UpOwotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBnZXRBdHRyaWJ1
dGUoZG9jdW1lbnQoKS0+aHRtbE1vZGUoKSAhPSBEb2N1bWVudDo6WEh0bWwgPyBuYW1lQXR0ciA6
IGlkQXR0cik7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGdldEF0dHJpYnV0
ZShkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpID8gbmFtZUF0dHIgOiBpZEF0dHIpOwogICAg
ICAgICBpZiAoIW5hbWUuaXNOdWxsKCkpCiAgICAgICAgICAgICBhcmdzLnNldCgibmFtZSIsIG5h
bWUpOwogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyY2hpdmUgPSBnZXRBdHRyaWJ1dGUo
YXJjaGl2ZUF0dHIpOwpJbmRleDogaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGh0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxEb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Myw3ICsyNzMsNyBAQCBUb2tlbml6ZXIgKkhU
TUxEb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVyCiAKIGJvb2wgSFRNTERvY3VtZW50OjpjaGlsZEFs
bG93ZWQoTm9kZSAqbmV3Q2hpbGQpCiB7Ci0gICAgcmV0dXJuIG5ld0NoaWxkLT5oYXNUYWdOYW1l
KGh0bWxUYWcpIHx8IG5ld0NoaWxkLT5pc0NvbW1lbnROb2RlKCk7CisgICAgcmV0dXJuIG5ld0No
aWxkLT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IG5ld0NoaWxkLT5pc0NvbW1lbnROb2RlKCkgfHwg
KG5ld0NoaWxkLT5ub2RlVHlwZSgpID09IERPQ1VNRU5UX1RZUEVfTk9ERSAmJiAhZG9jdHlwZSgp
KTsKIH0KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQo
Y29uc3QgU3RyaW5nICZuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM0NiwyMjkgKzM0Niw2
MiBAQCBib29sIEhUTUxEb2N1bWVudDo6aGFzRG9jRXh0cmFOYW1lZEl0ZW0oCiAgICAgcmV0dXJu
IGRvY0V4dHJhTmFtZWRJdGVtQ291bnRzLmdldChuYW1lLmltcGwoKSkgIT0gMDsKIH0KIAotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEUgICAgICAgID0gICAgICAgKDE8PDApOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRCAgICAgID0gICAgICAgKDE8PDEpOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX1NZU1RFTV9JRCAgICAgID0gICAgICAgKDE8PDIpOwotY29u
c3QgaW50IFBBUlNFTU9ERV9IQVZFX0lOVEVSTkFMICAgICAgID0gICAgICAgKDE8PDMpOwotCi1z
dGF0aWMgaW50IHBhcnNlRG9jVHlwZVBhcnQoY29uc3QgU3RyaW5nJiBidWZmZXIsIGludCBpbmRl
eCkKLXsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBVQ2hhciBjaCA9IGJ1ZmZlcltpbmRl
eF07Ci0gICAgICAgIGlmIChjaCA9PSAnICcgfHwgY2ggPT0gJ1x0JyB8fCBjaCA9PSAnXG4nIHx8
IGNoID09ICdccicpCi0gICAgICAgICAgICArK2luZGV4OwotICAgICAgICBlbHNlIGlmIChjaCA9
PSAnLScpIHsKLSAgICAgICAgICAgIGludCB0bXBJbmRleD1pbmRleDsKLSAgICAgICAgICAgIGlm
IChidWZmZXJbaW5kZXgrMV0gPT0gJy0nICYmCi0gICAgICAgICAgICAgICAgKCh0bXBJbmRleD1i
dWZmZXIuZmluZCgiLS0iLCBpbmRleCsyKSkgIT0gLTEpKQotICAgICAgICAgICAgICAgIGluZGV4
ID0gdG1wSW5kZXgrMjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4g
aW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIGluZGV4
OwotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNTdHJpbmcoY29uc3QgY2hhciogc3Ry
LCBjb25zdCBTdHJpbmcmIGJ1ZmZlciwgaW50IG9mZnNldCkKLXsKLSAgICBTdHJpbmcgc3RhcnRT
dHJpbmcoc3RyKTsKLSAgICBpZiAob2Zmc2V0ICsgc3RhcnRTdHJpbmcubGVuZ3RoKCkgPiBidWZm
ZXIubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJpbmcgYnVm
ZmVyU3RyaW5nID0gYnVmZmVyLnN1YnN0cmluZyhvZmZzZXQsIHN0YXJ0U3RyaW5nLmxlbmd0aCgp
KS5sb3dlcigpOwotICAgIFN0cmluZyBsb3dlclN0YXJ0ID0gc3RhcnRTdHJpbmcubG93ZXIoKTsK
LQotICAgIHJldHVybiBidWZmZXJTdHJpbmcuc3RhcnRzV2l0aChsb3dlclN0YXJ0KTsKLX0KLQot
c3RhdGljIGJvb2wgcGFyc2VEb2NUeXBlRGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBidWZmZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIHJlc3VsdEZsYWdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBuYW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBwdWJsaWNJRCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyYgc3lzdGVtSUQpCit2b2lkIEhUTUxE
b2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKCkKIHsKLSAgICBib29sIGhhdmVEb2NUeXBlID0g
ZmFsc2U7Ci0gICAgKnJlc3VsdEZsYWdzID0gMDsKLQotICAgIC8vIFNraXAgdGhyb3VnaCBhbnkg
Y29tbWVudHMgYW5kIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLgotICAgIGludCBpbmRleCA9IDA7
Ci0gICAgZG8gewotICAgICAgICBpbmRleCA9IGJ1ZmZlci5maW5kKCc8JywgaW5kZXgpOwotICAg
ICAgICBpZiAoaW5kZXggPT0gLTEpIGJyZWFrOwotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1
ZmZlcltpbmRleCsxXTsKLSAgICAgICAgaWYgKG5leHRDaGFyID09ICchJykgewotICAgICAgICAg
ICAgaWYgKGNvbnRhaW5zU3RyaW5nKCJkb2N0eXBlIiwgYnVmZmVyLCBpbmRleCsyKSkgewotICAg
ICAgICAgICAgICAgIGhhdmVEb2NUeXBlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpbmRleCAr
PSA5OyAvLyBTa2lwICI8IURPQ1RZUEUiCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLGluZGV4
KTsKLSAgICAgICAgICAgIGluZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZSBpZiAobmV4dENoYXIgPT0gJz8nKQotICAgICAgICAgICAgaW5kZXgg
PSBidWZmZXIuZmluZCgnPicsIGluZGV4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgfSB3aGlsZSAoaW5kZXggIT0gLTEpOwotCi0gICAgaWYgKCFoYXZlRG9jVHlwZSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZF
X0RPQ1RZUEU7Ci0KLSAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRleCk7
Ci0gICAgaWYgKCFjb250YWluc1N0cmluZygiaHRtbCIsIGJ1ZmZlciwgaW5kZXgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgbmFtZSA9IGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXgs
IDQpOwotICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIGluZGV4KzQpOwotICAg
IGJvb2wgaGFzUHVibGljID0gY29udGFpbnNTdHJpbmcoInB1YmxpYyIsIGJ1ZmZlciwgaW5kZXgp
OwotICAgIGlmIChoYXNQdWJsaWMpIHsKLSAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0
KGJ1ZmZlciwgaW5kZXgrNik7Ci0KLSAgICAgICAgLy8gV2UndmUgcmVhZCA8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgKG5vdCBjYXNlIHNlbnNpdGl2ZSkuCi0gICAgICAgIC8vIE5vdyB3ZSBmaW5kIHRo
ZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgcHVibGljIGlkZW50aWZlcnMKLSAgICAgICAgLy8g
YW5kIHN5c3RlbSBpZGVudGlmaWVycyAoYXNzdW1pbmcgdGhleSdyZSBldmVuIHByZXNlbnQpLgot
ICAgICAgICBVQ2hhciB0aGVDaGFyID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAgaWYgKHRoZUNo
YXIgIT0gJ1wiJyAmJiB0aGVDaGFyICE9ICdcJycpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIAotICAgICAgICAvLyB8c3RhcnR8IGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgKGFm
dGVyIHRoZSBxdW90ZSkgYW5kIHxlbmR8Ci0gICAgICAgIC8vIGlzIHRoZSBmaW5hbCBxdW90ZSwg
c28gdGhlcmUgYXJlIHxlbmR8LXxzdGFydHwgY2hhcmFjdGVycy4KLSAgICAgICAgaW50IHB1Ymxp
Y0lEU3RhcnQgPSBpbmRleCsxOwotICAgICAgICBpbnQgcHVibGljSURFbmQgPSBidWZmZXIuZmlu
ZCh0aGVDaGFyLCBwdWJsaWNJRFN0YXJ0KTsKLSAgICAgICAgaWYgKHB1YmxpY0lERW5kID09IC0x
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlw
ZVBhcnQoYnVmZmVyLCBwdWJsaWNJREVuZCsxKTsKLSAgICAgICAgVUNoYXIgbmV4dCA9IGJ1ZmZl
cltpbmRleF07Ci0gICAgICAgIGlmIChuZXh0ID09ICc+JykgewotICAgICAgICAgICAgLy8gUHVi
bGljIGlkZW50aWZpZXIgcHJlc2VudCwgYnV0IG5vIHN5c3RlbSBpZGVudGlmaWVyLgotICAgICAg
ICAgICAgLy8gRG8gbm90aGluZy4gIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSBtb3N0IGNvbW1vbgot
ICAgICAgICAgICAgLy8gY2FzZS4KLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChuZXh0ID09
ICdcIicgfHwgbmV4dCA9PSAnXCcnKSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIGEgc3lzdGVt
IGlkZW50aWZpZXIuCi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVf
U1lTVEVNX0lEOwotICAgICAgICAgICAgaW50IHN5c3RlbUlEU3RhcnQgPSBpbmRleCsxOwotICAg
ICAgICAgICAgaW50IHN5c3RlbUlERW5kID0gYnVmZmVyLmZpbmQobmV4dCwgc3lzdGVtSURTdGFy
dCk7Ci0gICAgICAgICAgICBpZiAoc3lzdGVtSURFbmQgPT0gLTEpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgc3lzdGVtSUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5
c3RlbUlEU3RhcnQsIHN5c3RlbUlERW5kIC0gc3lzdGVtSURTdGFydCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSBpZiAobmV4dCA9PSAnWycpIHsKLSAgICAgICAgICAgIC8vIFdlIGZvdW5kIGFu
IGludGVybmFsIHN1YnNldC4KLSAgICAgICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVf
SEFWRV9JTlRFUk5BTDsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7IC8vIFNvbWV0aGluZydzIHdyb25nLgotCi0gICAgICAgIC8vIFdlIG5lZWQgdG8g
dHJpbSB3aGl0ZXNwYWNlIG9mZiB0aGUgcHVibGljIGlkZW50aWZpZXIuCi0gICAgICAgIHB1Ymxp
Y0lEID0gYnVmZmVyLnN1YnN0cmluZyhwdWJsaWNJRFN0YXJ0LCBwdWJsaWNJREVuZCAtIHB1Ymxp
Y0lEU3RhcnQpOwotICAgICAgICBwdWJsaWNJRCA9IHB1YmxpY0lELnN0cmlwV2hpdGVTcGFjZSgp
OwotICAgICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChjb250YWluc1N0cmluZygic3lzdGVtIiwgYnVmZmVyLCBp
bmRleCkpIHsKLSAgICAgICAgICAgIC8vIERvY3R5cGUgaGFzIGEgc3lzdGVtIElEIGJ1dCBubyBw
dWJsaWMgSUQKLSAgICAgICAgICAgICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9TWVNU
RU1fSUQ7Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBpbmRl
eCs2KTsKLSAgICAgICAgICAgIFVDaGFyIG5leHQgPSBidWZmZXJbaW5kZXhdOwotICAgICAgICAg
ICAgaWYgKG5leHQgIT0gJ1wiJyAmJiBuZXh0ICE9ICdcJycpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgaW50IHN5c3RlbUlEU3RhcnQgPSBpbmRleCsxOwotICAg
ICAgICAgICAgaW50IHN5c3RlbUlERW5kID0gYnVmZmVyLmZpbmQobmV4dCwgc3lzdGVtSURTdGFy
dCk7Ci0gICAgICAgICAgICBpZiAoc3lzdGVtSURFbmQgPT0gLTEpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgc3lzdGVtSUQgPSBidWZmZXIuc3Vic3RyaW5nKHN5
c3RlbUlEU3RhcnQsIHN5c3RlbUlERW5kIC0gc3lzdGVtSURTdGFydCk7Ci0gICAgICAgICAgICBp
bmRleCA9IHBhcnNlRG9jVHlwZVBhcnQoYnVmZmVyLCBzeXN0ZW1JREVuZCsxKTsKLSAgICAgICAg
fQorICAgIC8vIEZJWE1FOiBJdCdzIHRlcnJpYmxlIHRoYXQgdGhpcyBjb2RlIHJ1bnMgc2VwYXJh
dGVseSBhbmQgaXNuJ3QganVzdCBidWlsdCBpbiB0byB0aGUKKyAgICAvLyBIVE1MIHRva2VuaXpl
ci9wYXJzZXIuCiAKLSAgICAgICAgVUNoYXIgbmV4dENoYXIgPSBidWZmZXJbaW5kZXhdOwotICAg
ICAgICBpZiAobmV4dENoYXIgPT0gJ1snKQotICAgICAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBB
UlNFTU9ERV9IQVZFX0lOVEVSTkFMOwotICAgICAgICBlbHNlIGlmIChuZXh0Q2hhciAhPSAnPicp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KLXZvaWQgSFRNTERvY3VtZW50OjpkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJiBz
dHIpCi17CiAgICAgLy8gVGhpcyBjb2RlIG1vcmUgb3IgbGVzcyBtaW1pY3MgTW96aWxsYSdzIGlt
cGxlbWVudGF0aW9uIChzcGVjaWZpY2FsbHkgdGhlCiAgICAgLy8gZG9jdHlwZSBwYXJzaW5nIGlt
cGxlbWVudGVkIGJ5IERhdmlkIEJhcm9uIGluIE1vemlsbGEncyBuc1BhcnNlci5jcHApLgogICAg
IC8vCiAgICAgLy8gVGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlIHBhcnNlIG1vZGVzOgotICAgIC8v
IENPTVBBVCAtIHF1aXJrcyBtb2RlIGVtdWxhdGVzIFdpbklFCi0gICAgLy8gYW5kIE5TNC4gIENT
UyBwYXJzaW5nIGlzIGFsc28gcmVsYXhlZCBpbiB0aGlzIG1vZGUsIGUuZy4sIHVuaXQgdHlwZXMg
Y2FuCisgICAgLy8gQ09NUEFUIC0gcXVpcmtzIG1vZGUgZW11bGF0ZXMgV2luSUUgYW5kIE5TNC4g
IENTUyBwYXJzaW5nIGlzIGFsc28gcmVsYXhlZCBpbiB0aGlzIG1vZGUsIGUuZy4sIHVuaXQgdHlw
ZXMgY2FuCiAgICAgLy8gYmUgb21pdHRlZCBmcm9tIG51bWJlcnMuCi0gICAgLy8gQUxNT1NUIFNU
UklDVCAtIFRoaXMgbW9kZSBpcyBpZGVudGljYWwgdG8gc3RyaWN0IG1vZGUKLSAgICAvLyBleGNl
cHQgZm9yIGl0cyB0cmVhdG1lbnQgb2YgbGluZS1oZWlnaHQgaW4gdGhlIGlubGluZSBib3ggbW9k
ZWwuICBGb3IKLSAgICAvLyBub3cgKHVudGlsIHRoZSBpbmxpbmUgYm94IG1vZGVsIGlzIHJlLXdy
aXR0ZW4pLCB0aGlzIG1vZGUgaXMgaWRlbnRpY2FsCi0gICAgLy8gdG8gU1RBTkRBUkRTIG1vZGUu
Ci0gICAgLy8gU1RSSUNUIC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwgb2JleSB0
aGUgc3BlY2lmaWNhdGlvbnMgdG8KLSAgICAvLyB0aGUgbGV0dGVyLgotCi0gICAgU3RyaW5nIG5h
bWUsIHN5c3RlbUlELCBwdWJsaWNJRDsKLSAgICBpbnQgcmVzdWx0RmxhZ3MgPSAwOwotICAgIGlm
IChwYXJzZURvY1R5cGVEZWNsYXJhdGlvbihzdHIsICZyZXN1bHRGbGFncywgbmFtZSwgcHVibGlj
SUQsIHN5c3RlbUlEKSkgewotICAgICAgICBpZiAocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFW
RV9ET0NUWVBFKQotICAgICAgICAgICAgc2V0RG9jVHlwZShuZXcgRG9jdW1lbnRUeXBlKHRoaXMs
IG5hbWUsIHB1YmxpY0lELCBzeXN0ZW1JRCkpOwotICAgICAgICBpZiAoIShyZXN1bHRGbGFncyAm
IFBBUlNFTU9ERV9IQVZFX0RPQ1RZUEUpKSB7Ci0gICAgICAgICAgICAvLyBObyBkb2N0eXBlIGZv
dW5kIGF0IGFsbC4gIERlZmF1bHQgdG8gcXVpcmtzIG1vZGUgYW5kIEh0bWw0LgotICAgICAgICAg
ICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7
Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hB
VkVfSU5URVJOQUwpIHx8Ci0gICAgICAgICAgICAgICAgICEocmVzdWx0RmxhZ3MgJiBQQVJTRU1P
REVfSEFWRV9QVUJMSUNfSUQpKSB7Ci0gICAgICAgICAgICAvLyBJbnRlcm5hbCBzdWJzZXRzIGFs
d2F5cyBkZW5vdGUgZnVsbCBzdGFuZGFyZHMsIGFzIGRvZXMKLSAgICAgICAgICAgIC8vIGEgZG9j
dHlwZSB3aXRob3V0IGEgcHVibGljIElELgorICAgIC8vIEFMTU9TVCBTVFJJQ1QgLSBUaGlzIG1v
ZGUgaXMgaWRlbnRpY2FsIHRvIHN0cmljdCBtb2RlIGV4Y2VwdCBmb3IgaXRzIHRyZWF0bWVudCBv
ZiBsaW5lLWhlaWdodCBpbiB0aGUgaW5saW5lIGJveCBtb2RlbC4gIEZvcgorICAgIC8vIG5vdyAo
dW50aWwgdGhlIGlubGluZSBib3ggbW9kZWwgaXMgcmUtd3JpdHRlbiksIHRoaXMgbW9kZSBpcyBp
ZGVudGljYWwgdG8gU1RBTkRBUkRTIG1vZGUuCisgICAgLy8gU1RSSUNUIC0gbm8gcXVpcmtzIGFw
cGx5LiAgV2ViIHBhZ2VzIHdpbGwgb2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRl
ci4KKyAgICBib29sIHdhc0luQ29tcGF0TW9kZSA9IGluQ29tcGF0TW9kZSgpOworICAgIERvY3Vt
ZW50VHlwZSogZG9jVHlwZSA9IGRvY3R5cGUoKTsKKyAgICBpZiAoIWRvY1R5cGUgfHwgIWVxdWFs
SWdub3JpbmdDYXNlKGRvY1R5cGUtPm5hbWUoKSwgImh0bWwiKSkKKyAgICAgICAgLy8gTm8gZG9j
dHlwZSBmb3VuZCBhdCBhbGwgb3IgdGhlIGRvY3R5cGUgaXMgbm90IEhUTUwuICBEZWZhdWx0IHRv
IHF1aXJrcyBtb2RlIGFuZCBIdG1sNC4KKyAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Cisg
ICAgZWxzZSBpZiAoIWRvY3R5cGUoKS0+c3lzdGVtSWQoKS5pc0VtcHR5KCkgJiYgZXF1YWxJZ25v
cmluZ0Nhc2UoZG9jVHlwZS0+c3lzdGVtSWQoKSwgImh0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0
ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiKSkKKyAgICAgICAgLy8gQXNzdW1lIHF1
aXJrcyBtb2RlIGZvciB0aGlzIHBhcnRpY3VsYXIgc3lzdGVtIElELiAgSW4gdGhlIEhUTUw1IHNw
ZWMsIHRoaXMgaXMgdGhlIG9ubHkKKyAgICAgICAgLy8gc3lzdGVtIGlkZW50aWZpZXIgdGhhdCBp
cyBleGFtaW5lZC4KKyAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7CisgICAgZWxzZSBpZiAo
ZG9jVHlwZS0+cHVibGljSWQoKS5pc0VtcHR5KCkpCisgICAgICAgIC8vIEEgZG9jdHlwZSB3aXRo
b3V0IGEgcHVibGljIElEIG1lYW5zIHVzZSBzdHJpY3QgbW9kZS4KKyAgICAgICAgc2V0UGFyc2VN
b2RlKFN0cmljdCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFdlIGhhdmUgdG8gY2hlY2sgYSBs
aXN0IG9mIHB1YmxpYyBJRHMgdG8gc2VlIHdoYXQgd2UKKyAgICAgICAgLy8gc2hvdWxkIGRvLgor
ICAgICAgICBTdHJpbmcgbG93ZXJQdWJJRCA9IGRvY1R5cGUtPnB1YmxpY0lkKCkubG93ZXIoKTsK
KyAgICAgICAgQ1N0cmluZyBwdWJJRFN0ciA9IGxvd2VyUHViSUQubGF0aW4xKCk7CisgICAgICAg
CisgICAgICAgIC8vIExvb2sgdXAgdGhlIGVudHJ5IGluIG91ciBncGVyZi1nZW5lcmF0ZWQgdGFi
bGUuCisgICAgICAgIGNvbnN0IFB1YklESW5mbyogZG9jdHlwZUVudHJ5ID0gZmluZERvY3R5cGVF
bnRyeShwdWJJRFN0ci5kYXRhKCksIHB1YklEU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKCFk
b2N0eXBlRW50cnkpCisgICAgICAgICAgICAvLyBUaGUgRE9DVFlQRSBpcyBub3QgaW4gdGhlIGxp
c3QuICBBc3N1bWUgc3RyaWN0IG1vZGUuCiAgICAgICAgICAgICBzZXRQYXJzZU1vZGUoU3RyaWN0
KTsKLSAgICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKLSAgICAgICAgfQogICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gY2hlY2sgYSBsaXN0IG9mIHB1YmxpYyBJ
RHMgdG8gc2VlIHdoYXQgd2UKLSAgICAgICAgICAgIC8vIHNob3VsZCBkby4KLSAgICAgICAgICAg
IFN0cmluZyBsb3dlclB1YklEID0gcHVibGljSUQubG93ZXIoKTsKLSAgICAgICAgICAgIENTdHJp
bmcgcHViSURTdHIgPSBsb3dlclB1YklELmxhdGluMSgpOwotICAgICAgICAgICAKLSAgICAgICAg
ICAgIC8vIExvb2sgdXAgdGhlIGVudHJ5IGluIG91ciBncGVyZi1nZW5lcmF0ZWQgdGFibGUuCi0g
ICAgICAgICAgICBjb25zdCBQdWJJREluZm8qIGRvY3R5cGVFbnRyeSA9IGZpbmREb2N0eXBlRW50
cnkocHViSURTdHIuZGF0YSgpLCBwdWJJRFN0ci5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBpZiAo
IWRvY3R5cGVFbnRyeSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSBET0NUWVBFIGlzIG5vdCBp
biB0aGUgbGlzdC4gIEFzc3VtZSBzdHJpY3QgbW9kZS4KLSAgICAgICAgICAgICAgICBzZXRQYXJz
ZU1vZGUoU3RyaWN0KTsKLSAgICAgICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzd2l0Y2gg
KChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX1NZU1RFTV9JRCkgPwotICAgICAgICAgICAg
ICAgICAgICBkb2N0eXBlRW50cnktPm1vZGVfaWZfc3lzaWQgOgotICAgICAgICAgICAgICAgICAg
ICBkb2N0eXBlRW50cnktPm1vZGVfaWZfbm9fc3lzaWQpCi0gICAgICAgICAgICB7CisgICAgICAg
ICAgICBzd2l0Y2ggKGRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpID8KKyAgICAgICAgICAg
ICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkIDoKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lkKSB7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBQdWJJREluZm86OmVRdWlya3MzOgotICAgICAgICAgICAgICAgICAgICBzZXRQYXJzZU1vZGUo
Q29tcGF0KTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDMpOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIFB1YklESW5mbzo6ZVF1
aXJrczoKICAgICAgICAgICAgICAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHNldEhUTUxNb2RlKEh0bWw0KTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgY2FzZSBQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHM6CiAg
ICAgICAgICAgICAgICAgICAgIHNldFBhcnNlTW9kZShBbG1vc3RTdHJpY3QpOwotICAgICAgICAg
ICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
ZmFsc2UpOwogICAgICAgICAgICAgfQotICAgICAgICB9ICAgCi0gICAgfQotICAgIGVsc2Ugewot
ICAgICAgICAvLyBNYWxmb3JtZWQgZG9jdHlwZSBpbXBsaWVzIHF1aXJrcyBtb2RlLgotICAgICAg
ICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsKLSAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDMpOworICAg
ICAgICB9CiAgICAgfQotICAKLSAgICBzdHlsZVNlbGVjdG9yKCktPnN0cmljdFBhcnNpbmcgPSAh
aW5Db21wYXRNb2RlKCk7Ci0gCisgICAgCisgICAgaWYgKGluQ29tcGF0TW9kZSgpICE9IHdhc0lu
Q29tcGF0TW9kZSkKKyAgICAgICAgdXBkYXRlU3R5bGVTZWxlY3RvcigpOwogfQogICAgIAogfQpJ
bmRleDogaHRtbC9IVE1MRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxEb2N1bWVu
dC5oCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTERvY3VtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnQoY29uc3QgU3RyaW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2Rl
Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmluZyYp
OwotCiAgICAgdm9pZCBhZGROYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lk
IHJlbW92ZU5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIGJvb2wgaGFzTmFtZWRJ
dGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7CkBAIC04Miw2ICs4MCwxMCBAQCBwdWJsaWM6CiAgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCBpbnQ+IE5hbWVDb3VudE1hcDsKIAogcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIFBhcnNlTW9kZSBkZWZhdWx0UGFyc2VNb2RlKCkgY29uc3QgeyByZXR1
cm4gQ29tcGF0OyB9CisgICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZSgpOworCitw
cml2YXRlOgogICAgIE5hbWVDb3VudE1hcCBuYW1lZEl0ZW1Db3VudHM7CiAgICAgTmFtZUNvdW50
TWFwIGRvY0V4dHJhTmFtZWRJdGVtQ291bnRzOwogfTsKSW5kZXg6IGh0bWwvSFRNTE1hcEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAz
MDM4NykKKysrIGh0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCwx
NCArODAsMTQgQEAgdm9pZCBIVE1MTWFwRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dAogICAg
ICAgICBpZiAoYXR0ck5hbWUgPT0gaWRBdHRyKSB7CiAgICAgICAgICAgICAvLyBDYWxsIGJhc2Ug
Y2xhc3Mgc28gdGhhdCBoYXNJRCBiaXQgZ2V0cyBzZXQuCiAgICAgICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgICAgICBpZiAoZG9jLT5odG1s
TW9kZSgpICE9IERvY3VtZW50OjpYSHRtbCkKKyAgICAgICAgICAgIGlmIChkb2MtPmlzSFRNTERv
Y3VtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRv
Yy0+cmVtb3ZlSW1hZ2VNYXAodGhpcyk7CiAgICAgICAgIFN0cmluZyBtYXBOYW1lID0gYXR0ci0+
dmFsdWUoKTsKICAgICAgICAgaWYgKG1hcE5hbWVbMF0gPT0gJyMnKQogICAgICAgICAgICAgbWFw
TmFtZSA9IG1hcE5hbWUuc3Vic3RyaW5nKDEpOwotICAgICAgICBtX25hbWUgPSBkb2MtPmh0bWxN
b2RlKCkgPT0gRG9jdW1lbnQ6OlhIdG1sID8gbWFwTmFtZSA6IG1hcE5hbWUubG93ZXIoKTsKKyAg
ICAgICAgbV9uYW1lID0gZG9jLT5pc0hUTUxEb2N1bWVudCgpID8gbWFwTmFtZS5sb3dlcigpIDog
bWFwTmFtZTsKICAgICAgICAgZG9jLT5hZGRJbWFnZU1hcCh0aGlzKTsKICAgICB9IGVsc2UKICAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwpJbmRleDogaHRt
bC9IVE1MUGFyYW1FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxQYXJhbUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBIVE1MUGFyYW1FbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYgogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gaWRBdHRyKSB7CiAgICAgICAg
IC8vIE11c3QgY2FsbCBiYXNlIGNsYXNzIHNvIHRoYXQgaGFzSUQgYml0IGdldHMgc2V0LgogICAg
ICAgICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIGlm
IChkb2N1bWVudCgpLT5odG1sTW9kZSgpICE9IERvY3VtZW50OjpYSHRtbCkKKyAgICAgICAgaWYg
KGRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIG1fbmFtZSA9IGF0dHItPnZhbHVlKCk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gbmFtZUF0dHIpIHsKSW5kZXg6IGh0bWwvSFRNTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
aHRtbC9IVE1MUGFyc2VyLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKQEAg
LTI3MSw2ICsyNzIsMTYgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MUGFyc2VyOjpwYXJzZVRva2Vu
KAogICAgIHJldHVybiBuOwogfQogCit2b2lkIEhUTUxQYXJzZXI6OnBhcnNlRG9jdHlwZVRva2Vu
KERvY3R5cGVUb2tlbiogdCkKK3sKKyAgICAvLyBJZ25vcmUgYW55IGRvY3R5cGUgYWZ0ZXIgdGhl
IGZpcnN0LiAgSWdub3JlIGRvY3R5cGVzIGluIGZyYWdtZW50cy4KKyAgICBpZiAoZG9jdW1lbnQt
PmRvY3R5cGUoKSB8fCBtX2lzUGFyc2luZ0ZyYWdtZW50IHx8IGN1cnJlbnQgIT0gZG9jdW1lbnQp
CisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgLy8gTWFrZSBhIG5ldyBkb2N0eXBlIG5v
ZGUgYW5kIHNldCBpdCBhcyBvdXIgZG9jdHlwZS4KKyAgICBkb2N1bWVudC0+YWRkQ2hpbGQobmV3
IERvY3VtZW50VHlwZShkb2N1bWVudCwgU3RyaW5nOjphZG9wdCh0LT5tX25hbWUpLCBTdHJpbmc6
OmFkb3B0KHQtPm1fcHVibGljSUQpLCBTdHJpbmc6OmFkb3B0KHQtPm1fc3lzdGVtSUQpKSk7Cit9
CisKIHN0YXRpYyBib29sIGlzVGFibGVTZWN0aW9uKE5vZGUqIG4pCiB7CiAgICAgcmV0dXJuIG4t
Pmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IG4tPmhhc1RhZ05hbWUodGZvb3RUYWcpIHx8IG4tPmhh
c1RhZ05hbWUodGhlYWRUYWcpOwpJbmRleDogaHRtbC9IVE1MUGFyc2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MUGFyc2VyLmgJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1MUGFyc2Vy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEb2N0eXBlVG9rZW47CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERvY3VtZW50
RnJhZ21lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CkBAIC01Nyw2ICs1OCw5IEBAIHB1YmxpYzoK
ICAgICAgKi8KICAgICBQYXNzUmVmUHRyPE5vZGU+IHBhcnNlVG9rZW4oVG9rZW4qKTsKICAgICAK
KyAgICAvLyBQYXJzZXMgYSBkb2N0eXBlIHRva2VuLgorICAgIHZvaWQgcGFyc2VEb2N0eXBlVG9r
ZW4oRG9jdHlwZVRva2VuKik7CisKICAgICAvKioKICAgICAgKiB0b2tlbml6ZXIgc2F5cyBpdCdz
IG5vdCBnb2luZyB0byBiZSBzZW5kaW5nIHVzIGFueSBtb3JlIHRva2VucwogICAgICAqLwpJbmRl
eDogaHRtbC9IVE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxUb2tlbml6
ZXIuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFRva2VuaXplci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgwLDYgKzgwLDkgQEAgY29uc3QgZG91YmxlIHRva2VuaXplclRpbWVEZWxh
eSA9IDAuNTAwOwogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBjaGFyIGNvbW1lbnRTdGFydCBbXSA9
ICI8IS0tIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRvY3R5cGVTdGFydCBbXSA9ICI8IWRvY3R5cGUi
Oworc3RhdGljIGNvbnN0IGNoYXIgcHVibGljU3RhcnQgW10gPSAicHVibGljIjsKK3N0YXRpYyBj
b25zdCBjaGFyIHN5c3RlbVN0YXJ0IFtdID0gInN5c3RlbSI7CiBzdGF0aWMgY29uc3QgY2hhciBz
Y3JpcHRFbmQgW10gPSAiPC9zY3JpcHQiOwogc3RhdGljIGNvbnN0IGNoYXIgeG1wRW5kIFtdID0g
IjwveG1wIjsKIHN0YXRpYyBjb25zdCBjaGFyIHN0eWxlRW5kIFtdID0gICI8L3N0eWxlIjsKQEAg
LTIyMiw2ICsyMjUsOSBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OnJlc2V0KCkKICAgICBtX3N0YXRl
LnNldEZvcmNlU3luY2hyb25vdXMoZmFsc2UpOwogCiAgICAgY3VyclRva2VuLnJlc2V0KCk7Cisg
ICAgbV9kb2N0eXBlVG9rZW4ucmVzZXQoKTsKKyAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7
CisgICAgbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQgPSAwOwogfQogCiB2b2lkIEhUTUxU
b2tlbml6ZXI6OmJlZ2luKCkKQEAgLTg0NCw2ICs4NTAsMjIyIEBAIEhUTUxUb2tlbml6ZXI6OlN0
YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKK0hUTUxUb2tl
bml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlRG9jdHlwZShTZWdtZW50ZWRTdHJpbmcm
IHNyYywgU3RhdGUgc3RhdGUpCit7CisgICAgQVNTRVJUKHN0YXRlLmluRG9jdHlwZSgpKTsKKyAg
ICB3aGlsZSAoIXNyYy5pc0VtcHR5KCkgJiYgc3RhdGUuaW5Eb2N0eXBlKCkpIHsKKyAgICAgICAg
VUNoYXIgYyA9ICpzcmM7CisgICAgICAgIGJvb2wgaXNXaGl0ZXNwYWNlID0gYyA9PSAnXHInIHx8
IGMgPT0gJ1xuJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnICc7CisgICAgICAgIHN3aXRjaCAobV9k
b2N0eXBlVG9rZW4uc3RhdGUoKSkgeworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQmVnaW46IHsK
KyAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQmVmb3JlTmFt
ZSk7CisgICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAg
ICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUJlZm9yZU5h
bWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gTWFsZm9ybWVkLiAgSnVzdCBleGl0LgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2
YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9j
dHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmll
d1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1f
c291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZU5hbWUpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlTmFtZTog
eworICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAv
LyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0LgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlw
ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAg
ICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFBV
QkxJQworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9
IDA7IC8vIFVzZWQgbm93IHRvIHNjYW4gZm9yIFNZU1RFTQorICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJOYW1lKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRv
a2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAg
ICAgICAgIG1fZG9jdHlwZVRva2VuLm1fbmFtZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBl
QWZ0ZXJOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAg
ICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQuCisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUu
c2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVU
b2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzV2hpdGVzcGFjZSkgeworICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAg
ICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoYykgPT0gcHVibGljU3RhcnRbbV9kb2N0eXBlU2Vh
cmNoQ291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3Vu
dCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID09
IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgJ1BVQkxJQycgc2VxdWVu
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShE
b2N0eXBlQmVmb3JlUHVibGljSUQpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1f
ZG9jdHlwZVNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0
eXBlU2VhcmNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
ICh0b0FTQ0lJTG93ZXIoYykgPT0gc3lzdGVtU3RhcnRbbV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNo
Q291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFy
Y2hDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlY29uZGFy
eVNlYXJjaENvdW50ID09IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQg
J1NZU1RFTScgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVU
b2tlbi5zZXRTdGF0ZShEb2N0eXBlQmVmb3JlU3lzdGVtSUQpOworICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2Vjb25kYXJ5U2Vh
cmNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0
U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
bV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7IC8vIFdo
aXRlc3BhY2Uga2VlcHMgdXMgaW4gdGhlIGFmdGVyIG5hbWUgc3RhdGUuCisgICAgICAgICAgICAg
ICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0
eXBlQmVmb3JlUHVibGljSUQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXCInIHx8IGMg
PT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICB0cXVvdGUgPSBjID09ICdcIicgPyBEb3Vi
bGVRdW90ZSA6IFNpbmdsZVF1b3RlOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tl
bi5zZXRTdGF0ZShEb2N0eXBlUHVibGljSUQpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2
YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3Vy
Y2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJj
ZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAg
ICAgICAgICAgICAgICAgICAvLyBDb25zaWRlcmVkIGJvZ3VzLiAgRG9uJ3QgcHJvY2VzcyB0aGUg
ZG9jdHlwZS4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgp
OworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
aXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51
bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2Vu
LnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVQdWJsaWNJRDogeworICAgICAgICAgICAg
ICAgIGlmICgoYyA9PSAnXCInICYmIHRxdW90ZSA9PSBEb3VibGVRdW90ZSkgfHwgKGMgPT0gJ1wn
JyAmJiB0cXVvdGUgPT0gU2luZ2xlUXVvdGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5h
ZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4uc2V0U3RhdGUoRG9jdHlwZUFmdGVyUHVibGljSUQpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBl
VG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9
PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMuICBEb24n
dCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBh
c3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShm
YWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9wdWJsaWNJ
RC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJl
cik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJQdWJsaWNJRDoKKyAgICAgICAgICAgICAgICBpZiAo
YyA9PSAnXCInIHx8IGMgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICB0cXVvdGUgPSBj
ID09ICdcIicgPyBEb3VibGVRdW90ZSA6IFNpbmdsZVF1b3RlOworICAgICAgICAgICAgICAgICAg
ICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlU3lzdGVtSUQpOworICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5
cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChj
ID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0
IG5vdy4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAg
ICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9s
aW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChj
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBl
VG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgRG9jdHlwZUJlZm9yZVN5c3RlbUlEOgorICAgICAgICAgICAgICAgIGlm
IChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRxdW90ZSA9
IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7CisgICAgICAgICAgICAgICAg
ICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVTeXN0ZW1JRCk7CisgICAgICAgICAg
ICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9j
dHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMuICBE
b24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlw
ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJv
Z3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZVN5
c3RlbUlEOgorICAgICAgICAgICAgICAgIGlmICgoYyA9PSAnXCInICYmIHRxdW90ZSA9PSBEb3Vi
bGVRdW90ZSkgfHwgKGMgPT0gJ1wnJyAmJiB0cXVvdGUgPT0gU2luZ2xlUXVvdGUpKSB7CisgICAg
ICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUFmdGVyU3lzdGVtSUQpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENv
bnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAg
ICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZp
ZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRv
a2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlVG9rZW4ubV9zeXN0ZW1JRC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIHNy
Yy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdT
b3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3Nv
dXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQWZ0ZXJTeXN0ZW1JRDoKKyAgICAgICAgICAgICAg
ICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVmFsaWQgZG9jdHlwZS4g
RW1pdCBpdCBub3cuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlKG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VN
b2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5h
cHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCb2d1cyk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCb2d1czoKKyAgICAgICAgICAgICAgICBpZiAo
YyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRG9uZSB3aXRoIHRoZSBib2d1cyBk
b2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7
CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOyAvLyBKdXN0IGtlZXAg
c2Nhbm5pbmcgZm9yICc+JworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9k
ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBw
ZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIHN0YXRlOworfQorCiBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5p
emVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcgJnNyYywgU3RhdGUgc3RhdGUpCiB7CiAgICAg
QVNTRVJUKCFzdGF0ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKQEAgLTg2MiwxOSArMTA4NCwxMiBAQCBI
VE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBUYWdOYW1lOgogICAgICAgICB7Ci0jaWYgZGVmaW5lZChUT0tFTl9ERUJVRykgJiYg
VE9LRU5fREVCVUcgPiAxCi0gICAgICAgICAgICBxRGVidWcoIlRhZ05hbWUiKTsKLSNlbmRpZgot
ICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID4gMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKQotICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAgICAg
ICAgICBpZiAoKnNyYyA9PSBjb21tZW50U3RhcnRbc2VhcmNoQ291bnRdKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHNlYXJjaENvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hD
b3VudCA9PSA0KQotICAgICAgICAgICAgICAgICAgICB7Ci0jaWZkZWYgVE9LRU5fREVCVUcKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGtkRGVidWcoIDYwMzYgKSA8PCAiRm91bmQgY29tbWVudCIg
PDwgZW5kbDsKLSNlbmRpZgorICAgICAgICAgICAgICAgICAgICBpZiAoc2VhcmNoQ291bnQgPT0g
MikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50Kys7IC8vIEEg
JyEnIGlzIGFsc28gcGFydCBvZiBhIGRvY3R5cGUsIHNvIHdlIGFyZSBtb3ZpbmcgdGhyb3VnaCB0
aGF0IHN0aWxsIGFzIHdlbGwuCisgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA9
PSA0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnPCEtLScgc2VxdWVuY2UK
ICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBidWZmZXI7IC8vIGlnbm9yZSB0aGUgcHJldmlv
dXMgcGFydCBvZiB0aGlzIHRhZwpAQCAtODg1LDEyICsxMTAwLDExIEBAIEhUTUxUb2tlbml6ZXI6
OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDwh
LS0+IGFzIGEgdmFsaWQgY29tbWVudCwgc2luY2UgYm90aCBtb3ppbGxhIGFuZCBJRSBvbiB3aW5k
b3dzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFuZGxlIHRoaXMgY2FzZS4gIE9u
bHkgZG8gdGhpcyBpbiBxdWlya3MgbW9kZS4gLWR3aAogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFzcmMuaXNFbXB0eSgpICYmICpzcmMgPT0gJz4nICYmIG1fZG9jLT5pbkNvbXBhdE1vZGUo
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkNvbW1lbnQoZmFsc2Up
OwotICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3JjLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Db21tZW50KGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl
ID0gcGFyc2VDb21tZW50KHNyYywgc3RhdGUpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2NCdWZmZXJQb3MgPSBjQnVmZmVyUG9zOwpAQCAtODk5LDkgKzExMTMsMzAgQEAgSFRNTFRva2Vu
aXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICBjQnVm
ZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOwogICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDA7IC8vIFN0
b3AgbG9va2luZyBmb3IgJzwhLS0nIHNlcXVlbmNlCisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA+IDApIHsKKyAgICAgICAg
ICAgICAgICBpZiAodG9BU0NJSUxvd2VyKCpzcmMpID09IGRvY3R5cGVTdGFydFttX2RvY3R5cGVT
ZWFyY2hDb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQr
KzsKKyAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsKKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAg
ICAgICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPT0gOSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRm91bmQgJzwhRE9DVFlQRScgc2VxdWVuY2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlwZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLnNldFRhZ1N0YXRlKE5vVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVRva2VuLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3
U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2Vu
Lm1fc291cmNlLmFwcGVuZChjQnVmZmVyLCBjQnVmZmVyUG9zKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gcGFyc2VEb2N0eXBlKHNyYywgc3RhdGUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbV9jQnVmZmVyUG9zID0gY0J1ZmZlclBvczsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDA7IC8vIFN0b3AgbG9va2luZyBmb3IgJzwh
LS0nIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50ID0g
MDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCFET0NUWVBFJyBzZXF1ZW5jZQogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBib29sIGZpbmlzaCA9IGZhbHNlOwpAQCAtMTQwMyw2ICsxNjM4LDgg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZQogICAgICAgICAgICAg
ICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBp
ZiAoc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZUNvbW1l
bnQoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkRvY3R5cGUoKSkK
KyAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlRG9jdHlwZShzcmMsIHN0YXRlKTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHN0YXRlLmluU2VydmVyKCkpCiAgICAgICAgICAgICAgICAgc3RhdGUg
PSBwYXJzZVNlcnZlcihzcmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmlu
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpCkBAIC0xNDE2LDkgKzE2NTMsOSBAQCBib29sIEhUTUxU
b2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlCiAgICAgICAgICAgICAgICAgY2FzZSAnLyc6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgJyEnOiB7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIDwhLS0gY29tbWVudCAtLT4KLSAgICAgICAgICAgICAg
ICAgICAgc2VhcmNoQ291bnQgPSAxOyAvLyBMb29rIGZvciAnPCEtLScgc2VxdWVuY2UgdG8gc3Rh
cnQgY29tbWVudAotICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8g
PCEtLSBjb21tZW50IC0tPiBvciA8IURPQ1RZUEUgLi4uPgorICAgICAgICAgICAgICAgICAgICBz
ZWFyY2hDb3VudCA9IDE7IC8vIExvb2sgZm9yICc8IS0tJyBzZXF1ZW5jZSB0byBzdGFydCBjb21t
ZW50IG9yICc8IURPQ1RZUEUnIHNlcXVlbmNlIHRvIHN0YXJ0IGRvY3R5cGUKKyAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAxOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSAnPyc6IHsKQEAg
LTE1NjQsNyArMTgwMSw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6ZW5kKCkKIHZvaWQgSFRNTFRv
a2VuaXplcjo6ZmluaXNoKCkKIHsKICAgICAvLyBkbyB0aGlzIGFzIGxvbmcgYXMgd2UgZG9uJ3Qg
ZmluZCBtYXRjaGluZyBjb21tZW50IGVuZHMKLSAgICB3aGlsZSgobV9zdGF0ZS5pbkNvbW1lbnQo
KSB8fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUgJiYgc2NyaXB0Q29kZVNpemUp
IHsKKyAgICB3aGlsZSAoKG1fc3RhdGUuaW5Db21tZW50KCkgfHwgbV9zdGF0ZS5pblNlcnZlcigp
KSAmJiBzY3JpcHRDb2RlICYmIHNjcmlwdENvZGVTaXplKSB7CiAgICAgICAgIC8vIHdlJ3ZlIGZv
dW5kIGFuIHVubWF0Y2hlZCBjb21tZW50IHN0YXJ0CiAgICAgICAgIGlmIChtX3N0YXRlLmluQ29t
bWVudCgpKQogICAgICAgICAgICAgYnJva2VuQ29tbWVudHMgPSB0cnVlOwpAQCAtMTYzMyw2ICsx
ODcwLDE0IEBAIFBhc3NSZWZQdHI8Tm9kZT4gSFRNTFRva2VuaXplcjo6cHJvY2Vzc1QKICAgICBy
ZXR1cm4gbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0RvY3R5
cGVUb2tlbigpCit7CisgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8SFRNTFZpZXdTb3VyY2VEb2N1bWVudCo+KG1fZG9jKS0+YWRkVmlld1NvdXJjZURvY3R5
cGVUb2tlbigmbV9kb2N0eXBlVG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgcGFyc2VyLT5wYXJz
ZURvY3R5cGVUb2tlbigmbV9kb2N0eXBlVG9rZW4pOworfQorCiBIVE1MVG9rZW5pemVyOjp+SFRN
TFRva2VuaXplcigpCiB7CiAgICAgQVNTRVJUKCFpbldyaXRlKTsKSW5kZXg6IGh0bWwvSFRNTFRv
a2VuaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFRva2VuaXplci5oCShyZXZpc2lvbiAz
MDM4NykKKysrIGh0bWwvSFRNTFRva2VuaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4
Myw0NCBAQCBwdWJsaWM6CiAgICAgT3duUHRyPFZlY3RvcjxVQ2hhcj4gPiBtX3NvdXJjZUluZm87
CiB9OwogCitlbnVtIERvY3R5cGVTdGF0ZSB7CisgICAgRG9jdHlwZUJlZ2luLAorICAgIERvY3R5
cGVCZWZvcmVOYW1lLAorICAgIERvY3R5cGVOYW1lLAorICAgIERvY3R5cGVBZnRlck5hbWUsCisg
ICAgRG9jdHlwZUJlZm9yZVB1YmxpY0lELAorICAgIERvY3R5cGVQdWJsaWNJRCwKKyAgICBEb2N0
eXBlQWZ0ZXJQdWJsaWNJRCwKKyAgICBEb2N0eXBlQmVmb3JlU3lzdGVtSUQsCisgICAgRG9jdHlw
ZVN5c3RlbUlELAorICAgIERvY3R5cGVBZnRlclN5c3RlbUlELAorICAgIERvY3R5cGVCb2d1cwor
fTsKKworY2xhc3MgRG9jdHlwZVRva2VuIHsKK3B1YmxpYzoKKyAgICBEb2N0eXBlVG9rZW4oKSB7
fQorICAgIAorICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbV9uYW1lLmNsZWFyKCk7
CisgICAgICAgIG1fcHVibGljSUQuY2xlYXIoKTsKKyAgICAgICAgbV9zeXN0ZW1JRC5jbGVhcigp
OworICAgICAgICBtX3N0YXRlID0gRG9jdHlwZUJlZ2luOworICAgICAgICBtX3NvdXJjZS5jbGVh
cigpOworICAgIH0KKworICAgIERvY3R5cGVTdGF0ZSBzdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGU7
IH0KKyAgICB2b2lkIHNldFN0YXRlKERvY3R5cGVTdGF0ZSBzKSB7IG1fc3RhdGUgPSBzOyB9CisK
KyAgICBWZWN0b3I8VUNoYXI+IG1fbmFtZTsKKyAgICBWZWN0b3I8VUNoYXI+IG1fcHVibGljSUQ7
CisgICAgVmVjdG9yPFVDaGFyPiBtX3N5c3RlbUlEOworICAgIERvY3R5cGVTdGF0ZSBtX3N0YXRl
OworICAgIAorICAgIFZlY3RvcjxVQ2hhcj4gbV9zb3VyY2U7Cit9OworCiAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKIGNsYXNzIEhUTUxUb2tlbml6ZXIgOiBwdWJsaWMgVG9rZW5pemVyLCBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpAQCAtMTE4LDEwICsxNTYsMTMgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGVuZCgpOwogCiAgICAgdm9pZCByZXNldCgpOworCiAgICAgUGFzc1JlZlB0cjxO
b2RlPiBwcm9jZXNzVG9rZW4oKTsKKyAgICB2b2lkIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKIAog
ICAgIFN0YXRlIHByb2Nlc3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZywgU3RhdGUpOwogICAgIFN0
YXRlIHBhcnNlQ29tbWVudChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CisgICAgU3RhdGUgcGFy
c2VEb2N0eXBlKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVNlcnZl
cihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VUZXh0KFNlZ21lbnRl
ZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVNwZWNpYWwoU2VnbWVudGVkU3RyaW5n
JiwgU3RhdGUpOwpAQCAtMjIwLDYgKzI2MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0
SW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oYm9vbCB2KSB7IHJldHVybiBzZXRCaXQoSW5Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIHYpOyB9CiAgICAgICAgIGJvb2wgaW5Db21tZW50KCkgY29uc3QgeyBy
ZXR1cm4gdGVzdEJpdChJbkNvbW1lbnQpOyB9CiAgICAgICAgIHZvaWQgc2V0SW5Db21tZW50KGJv
b2wgdikgeyBzZXRCaXQoSW5Db21tZW50LCB2KTsgfQorICAgICAgICBib29sIGluRG9jdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoSW5Eb2N0eXBlKTsgfQorICAgICAgICB2b2lkIHNldElu
RG9jdHlwZShib29sIHYpIHsgc2V0Qml0KEluRG9jdHlwZSwgdik7IH0KICAgICAgICAgYm9vbCBp
blRleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJblRleHRBcmVhKTsgfQogICAgICAg
ICB2b2lkIHNldEluVGV4dEFyZWEoYm9vbCB2KSB7IHNldEJpdChJblRleHRBcmVhLCB2KTsgfQog
ICAgICAgICBib29sIGVzY2FwZWQoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEVzY2FwZWQpOyB9
CkBAIC0yNDMsNyArMjg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBoYXNUYWdTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFRhZ01hc2s7IH0KICAgICAgICAgYm9vbCBoYXNFbnRp
dHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIEVudGl0eU1hc2s7IH0KIAotICAgICAg
ICBib29sIG5lZWRzU3BlY2lhbFdyaXRlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
JiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRBcmVhIHwgSW5UaXRsZSB8IElu
SUZyYW1lIHwgVGFnTWFzayB8IEVudGl0eU1hc2sgfCBJblBsYWluVGV4dCB8IEluQ29tbWVudCB8
IEluU2VydmVyIHwgSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gfCBTdGFydFRhZyk7IH0KKyAgICAg
ICAgYm9vbCBuZWVkc1NwZWNpYWxXcml0ZUhhbmRsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9iaXRz
ICYgKEluU2NyaXB0IHwgSW5TdHlsZSB8IEluWG1wIHwgSW5UZXh0QXJlYSB8IEluVGl0bGUgfCBJ
bklGcmFtZSB8IFRhZ01hc2sgfCBFbnRpdHlNYXNrIHwgSW5QbGFpblRleHQgfCBJbkNvbW1lbnQg
fCBJbkRvY3R5cGUgfCBJblNlcnZlciB8IEluUHJvY2Vzc2luZ0luc3RydWN0aW9uIHwgU3RhcnRU
YWcpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50IEVudGl0eVNo
aWZ0ID0gNDsKQEAgLTI2Nyw3ICszMTAsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgQWxsb3dZ
aWVsZCA9IDEgPDwgMjEsCiAgICAgICAgICAgICBMb2FkaW5nRXh0U2NyaXB0ID0gMSA8PCAyMiwK
ICAgICAgICAgICAgIEZvcmNlU3luY2hyb25vdXMgPSAxIDw8IDIzLAotICAgICAgICAgICAgSW5J
RnJhbWUgPSAxIDw8IDI0CisgICAgICAgICAgICBJbklGcmFtZSA9IDEgPDwgMjQsCisgICAgICAg
ICAgICBJbkRvY3R5cGUgPSAxIDw8IDI1CiAgICAgICAgIH07CiAKICAgICAgICAgdm9pZCBzZXRC
aXQoU3RhdGVCaXRzIGJpdCwgYm9vbCB2YWx1ZSkKQEAgLTI4Myw2ICszMjcsMTAgQEAgcHJpdmF0
ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICAKKyAgICBEb2N0eXBlVG9rZW4g
bV9kb2N0eXBlVG9rZW47CisgICAgaW50IG1fZG9jdHlwZVNlYXJjaENvdW50OworICAgIGludCBt
X2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudDsKIAogICAgIGJvb2wgYnJva2VuU2VydmVyOwog
CkBAIC0zMDAsMTQgKzM0OCwxNCBAQCBwcml2YXRlOgogCiAgICAgLy8gU3RvcmVzIGNoYXJhY3Rl
cnMgaWYgd2UgYXJlIHNjYW5uaW5nIGZvciBhIHN0cmluZyBsaWtlICI8L3NjcmlwdD4iCiAgICAg
VUNoYXIgc2VhcmNoQnVmZmVyWzEwXTsKKyAgICAKICAgICAvLyBDb3VudHMgd2hlcmUgd2UgYXJl
IGluIHRoZSBzdHJpbmcgd2UgYXJlIHNjYW5uaW5nIGZvcgogICAgIGludCBzZWFyY2hDb3VudDsK
LSAgICAvLyBUaGUgc3RyaW5nIHdlIGFyZSBzZWFyY2hpbmcgZm9yCi0gICAgY29uc3QgVUNoYXIq
IHNlYXJjaEZvcjsKICAgICAvLyB0aGUgc3RvcHBlciBzdHJpbmcKICAgICBjb25zdCBjaGFyKiBz
ZWFyY2hTdG9wcGVyOwogICAgIC8vIHRoZSBzdG9wcGVyIGxlbgogICAgIGludCBzZWFyY2hTdG9w
cGVyTGVuOworICAgIAogICAgIC8vIGlmIG5vIG1vcmUgZGF0YSBpcyBjb21pbmcsIGp1c3QgcGFy
c2Ugd2hhdCB3ZSBoYXZlIChpbmNsdWRpbmcgZXh0IHNjcmlwdHMgdGhhdAogICAgIC8vIG1heSBi
ZSBzdGlsbCBkb3dubG9hZGluZykgYW5kIGZpbmlzaAogICAgIGJvb2wgbm9Nb3JlRGF0YTsKSW5k
ZXg6IGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9I
VE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBodG1sL0hUTUxW
aWV3U291cmNlRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOSArMTA4LDcgQEAg
dm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291cgogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gSGFuZGxlIHRoZSB0YWcuCi0gICAgICAgIGJvb2wgZG9jdHlw
ZSA9IHRva2VuLT50YWdOYW1lLnN0YXJ0c1dpdGgoIiFET0NUWVBFIiwgZmFsc2UpOwotICAgICAg
ICAKLSAgICAgICAgU3RyaW5nIGNsYXNzTmFtZVN0ciA9IGRvY3R5cGUgPyAid2Via2l0LWh0bWwt
ZG9jdHlwZSIgOiAid2Via2l0LWh0bWwtdGFnIjsKKyAgICAgICAgU3RyaW5nIGNsYXNzTmFtZVN0
ciA9ICJ3ZWJraXQtaHRtbC10YWciOwogICAgICAgICBtX2N1cnJlbnQgPSBhZGRTcGFuV2l0aENs
YXNzTmFtZShjbGFzc05hbWVTdHIpOwogCiAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjwiOwpAQCAt
MTQ1LDI4ICsxNDMsMjEgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291
cgogICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cikgewogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGd1aWRlLT5hdChpKSA9PSAnYScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmcgbmFtZSA9IGF0dHItPm5hbWUoKS50b1N0cmluZygpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChkb2N0eXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhZGRUZXh0KG5hbWUsICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3Vy
cmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRUZXh0KG5hbWUsICJ3ZWJraXQt
aHRtbC1hdHRyaWJ1dGUtbmFtZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9jdXJyZW50ICE9IG1fdGJvZHkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2N1cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9jdXJyZW50LT5wYXJlbnQo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IGFkZFNwYW5X
aXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFkZFRleHQobmFtZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCAhPSBtX3Rib2R5
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obV9jdXJyZW50LT5wYXJlbnQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGF0
dHItPnZhbHVlKCkuZG9tU3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGRvY3R5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQodmFsdWUs
ICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBYTUwgY291bGQg
dXNlIG5hbWVzcGFjZSBwcmVmaXhlcyBhbmQgY29uZnVzZSB1cy4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGF0dHItPm5hbWUoKS5sb2NhbE5h
bWUoKSwgInNyYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGF0dHItPm5hbWUoKS5sb2NhbE5hbWUo
KSwgImhyZWYiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVu
dCA9IGFkZExpbmsodmFsdWUsIGVxdWFsSWdub3JpbmdDYXNlKHRva2VuLT50YWdOYW1lLCAiYSIp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoIndl
YmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRUZXh0KHZhbHVlLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgIT0gbV90Ym9keSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19jYXN0
PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFhNTCBjb3VsZCB1
c2UgbmFtZXNwYWNlIHByZWZpeGVzIGFuZCBjb25mdXNlIHVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCks
ICJzcmMiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCksICJo
cmVmIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IGFkZExp
bmsodmFsdWUsIGVxdWFsSWdub3JpbmdDYXNlKHRva2VuLT50YWdOYW1lLCAiYSIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKCJ3ZWJraXQtaHRtbC1hdHRyaWJ1
dGUtdmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRUZXh0KHZhbHVlLCAi
d2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fY3VycmVudCAhPSBtX3Rib2R5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2N1cnJlbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9jdXJyZW50LT5wYXJlbnQo
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CkBAIC0xODQsNiArMTc1LDE3IEBAIHZvaWQgSFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6YWRkVmlld1NvdXIKICAgICB9CiB9CiAKK3ZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1
bWVudDo6YWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qIGRvY3R5cGVUb2tl
bikKK3sKKyAgICBpZiAoIW1fY3VycmVudCkKKyAgICAgICAgY3JlYXRlQ29udGFpbmluZ1RhYmxl
KCk7CisgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoIndlYmtpdC1odG1sLWRv
Y3R5cGUiKTsKKyAgICBTdHJpbmcgdGV4dCA9ICI8IjsKKyAgICB0ZXh0ICs9IFN0cmluZzo6YWRv
cHQoZG9jdHlwZVRva2VuLT5tX3NvdXJjZSk7CisgICAgdGV4dCArPSAiPiI7CisgICAgYWRkVGV4
dCh0ZXh0LCAid2Via2l0LWh0bWwtZG9jdHlwZSIpOworfQorCiBFbGVtZW50KiBIVE1MVmlld1Nv
dXJjZURvY3VtZW50OjphZGRTcGFuV2l0aENsYXNzTmFtZShjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSkKIHsKICAgICBpZiAobV9jdXJyZW50ID09IG1fdGJvZHkpIHsKSW5kZXg6IGh0bWwvSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5oCShyZXZpc2lvbiAzMDM4NykKKysrIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgRG9jdHlwZVRva2VuOwogY2xhc3MgVG9rZW47CiAKIGNsYXNzIEhUTUxWaWV3U291
cmNlRG9jdW1lbnQgOiBwdWJsaWMgSFRNTERvY3VtZW50CkBAIC0zOSw3ICs0MCw4IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihUb2tlbiopOyAvLyBVc2VkIGJ5
IHRoZSBIVE1MIHRva2VuaXplci4KICAgICB2b2lkIGFkZFZpZXdTb3VyY2VUZXh0KGNvbnN0IFN0
cmluZyYpOyAvLyBVc2VkIGJ5IHRoZSBwbGFpbnRleHQgdG9rZW5pemVyLgotICAgIAorICAgIHZv
aWQgYWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qKTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGNyZWF0ZUNvbnRhaW5pbmdUYWJsZSgpOwogICAgIEVsZW1lbnQqIGFkZFNwYW5X
aXRoQ2xhc3NOYW1lKGNvbnN0IFN0cmluZyYpOwpJbmRleDogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiAzMDM4NykK
KysrIGxvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5MCw3ICs5OTAs
NiBAQCB2b2lkIEZyYW1lTG9hZGVyOjp3cml0ZShjb25zdCBjaGFyKiBzdHIsCiAKICAgICBpZiAo
IW1fcmVjZWl2ZWREYXRhKSB7CiAgICAgICAgIG1fcmVjZWl2ZWREYXRhID0gdHJ1ZTsKLSAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGV0ZXJtaW5lUGFyc2VNb2RlKGRlY29kZWQpOwogICAg
ICAgICBpZiAobV9kZWNvZGVyLT5lbmNvZGluZygpLnVzZXNWaXN1YWxPcmRlcmluZygpKQogICAg
ICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0VmlzdWFsbHlPcmRlcmVkKCk7CiAgICAg
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsKQEAgLTQ4
MTAsNyArNDgwOSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN3aXRjaE91dExvd0JhbmR3aWR0aEQK
ICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTb3VyY2VJbkxvd0JhbmR3aWR0aERpc3BsYXkubGVu
Z3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyBzZXQgY2FjaGVQb2xpY3kgdG8gQ2FjaGUgdG8g
dXNlIHRoZSBsb2FkZWQgcmVzb3VyY2UKICAgICAgICAgICAgICAgICBuZXdEb2MtPmRvY0xvYWRl
cigpLT5zZXRDYWNoZVBvbGljeShDYWNoZVBvbGljeUNhY2hlKTsKLSAgICAgICAgICAgICAgICBu
ZXdEb2MtPmRldGVybWluZVBhcnNlTW9kZShtX3BlbmRpbmdTb3VyY2VJbkxvd0JhbmR3aWR0aERp
c3BsYXkpOwogICAgICAgICAgICAgICAgIGlmIChtX2RlY29kZXItPmVuY29kaW5nKCkudXNlc1Zp
c3VhbE9yZGVyaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIG5ld0RvYy0+c2V0VmlzdWFsbHlP
cmRlcmVkKCk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBuZXdEb2MtPnJl
Y2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsgICAgICAgICAgICAgICAgCkluZGV4OiBwYWdlL0ZyYW1l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBw
YWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5MCw3ICsxNjkwLDcgQEAgdm9pZCBG
cmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCiBTdHJpbmcgRnJhbWU6OmRvY3VtZW50VHlw
ZVN0cmluZygpIGNvbnN0CiB7CiAgICAgaWYgKERvY3VtZW50ICpkb2MgPSBkb2N1bWVudCgpKQot
ICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9jLT5yZWFsRG9jVHlwZSgpKQor
ICAgICAgICBpZiAoRG9jdW1lbnRUeXBlICpkb2N0eXBlID0gZG9jLT5kb2N0eXBlKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZG9jdHlwZS0+dG9TdHJpbmcoKTsKIAogICAgIHJldHVybiBTdHJpbmco
KTsKSW5kZXg6IHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdl
L2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHJldmlzaW9uIDMwMzg3KQorKysgcGFnZS9pbnNwZWN0
b3IvdXRpbGl0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MjUsNiArNDI1LDE4IEBAIGZ1bmN0
aW9uIG5vZGVEaXNwbGF5TmFtZSgpCiAKICAgICAgICAgY2FzZSBOb2RlLkNPTU1FTlRfTk9ERToK
ICAgICAgICAgICAgIHJldHVybiAiPCEtLSIgKyB0aGlzLm5vZGVWYWx1ZSArICItLT4iOworICAg
ICAgICAgICAgCisgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAg
ICAgICB2YXIgZG9jVHlwZSA9ICI8IURPQ1RZUEUgIiArIHRoaXMubm9kZU5hbWU7CisgICAgICAg
ICAgICBpZiAodGhpcy5wdWJsaWNJZCkgeworICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBQ
VUJMSUMgXCIiICsgdGhpcy5wdWJsaWNJZCArICJcIiI7CisgICAgICAgICAgICAgICAgaWYgKHRo
aXMuc3lzdGVtSWQpCisgICAgICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBcIiIgKyB0aGlz
LnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zeXN0ZW1JZCkK
KyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIgU1lTVEVNIFwiIiArIHRoaXMuc3lzdGVtSWQg
KyAiXCIiOworICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxTdWJzZXQpCisgICAgICAgICAg
ICAgICAgZG9jVHlwZSArPSAiIFsiICsgdGhpcy5pbnRlcm5hbFN1YnNldCArICJdIjsKKyAgICAg
ICAgICAgIHJldHVybiBkb2NUeXBlICsgIj4iOwogICAgIH0KIAogICAgIHJldHVybiB0aGlzLm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNlKCk7CkBAIC02NDMsNiArNjU1
LDE4IEBAIGZ1bmN0aW9uIG5vZGVUaXRsZUluZm8oaGFzQ2hpbGRyZW4sIGxpbmsKICAgICAgICAg
ICAgIGluZm8udGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC1jb21tZW50XCI+Jmx0
OyEtLSIgKyB0aGlzLm5vZGVWYWx1ZS5lc2NhcGVIVE1MKCkgKyAiLS0mZ3Q7PC9zcGFuPiI7CiAg
ICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RF
OgorICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRh
Z1wiPiZsdDshRE9DVFlQRSAiICsgdGhpcy5ub2RlTmFtZTsKKyAgICAgICAgICAgIGlmICh0aGlz
LnB1YmxpY0lkKSB7CisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFBVQkxJQyBcIiIg
KyB0aGlzLnB1YmxpY0lkICsgIlwiIjsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5zeXN0ZW1J
ZCkKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFwiIiArIHRoaXMuc3lzdGVt
SWQgKyAiXCIiOworICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN5c3RlbUlkKQorICAgICAg
ICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBTWVNURU0gXCIiICsgdGhpcy5zeXN0ZW1JZCArICJc
IiI7CisgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN1YnNldCkKKyAgICAgICAgICAgICAg
ICBpbmZvLnRpdGxlICs9ICIgWyIgKyB0aGlzLmludGVybmFsU3Vic2V0ICsgIl0iOworICAgICAg
ICAgICAgaW5mby50aXRsZSArPSAiJmd0Ozwvc3Bhbj4iOworICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpbmZvLnRpdGxlID0gdGhpcy5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2FwZUhUTUwoKTsKICAgICB9Cklu
ZGV4OiB4bWwvWFNMVFByb2Nlc3Nvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL1hTTFRQcm9jZXNz
b3IuY3BwCShyZXZpc2lvbiAzMDM4NykKKysrIHhtbC9YU0xUUHJvY2Vzc29yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjU4LDcgKzI1OCw2IEBAIFJlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nv
cjo6Y3JlYXRlRG8KICAgICAgICAgcmVzdWx0LT5zZXRVUkwob3duZXJEb2N1bWVudC0+dXJsKCkp
OwogICAgICAgICByZXN1bHQtPnNldEJhc2VVUkwob3duZXJEb2N1bWVudC0+YmFzZVVSTCgpKTsK
ICAgICB9Ci0gICAgcmVzdWx0LT5kZXRlcm1pbmVQYXJzZU1vZGUoZG9jdW1lbnRTb3VyY2UpOyAv
LyBNYWtlIHN1cmUgd2UgcGFyc2UgaW4gdGhlIGNvcnJlY3QgbW9kZS4KICAgICAKICAgICBSZWZQ
dHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IG5ldyBUZXh0UmVzb3VyY2VEZWNvZGVy
KHNvdXJjZU1JTUVUeXBlKTsKICAgICBkZWNvZGVyLT5zZXRFbmNvZGluZyhzb3VyY2VFbmNvZGlu
Zy5pc0VtcHR5KCkgPyBVVEY4RW5jb2RpbmcoKSA6IFRleHRFbmNvZGluZyhzb3VyY2VFbmNvZGlu
ZyksIFRleHRSZXNvdXJjZURlY29kZXI6OkVuY29kaW5nRnJvbVhNTEhlYWRlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19221</attachid>
            <date>2008-02-20 01:21:06 -0800</date>
            <delta_ts>2008-02-20 14:25:34 -0800</delta_ts>
            <desc>Ready for review.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>55245</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAgKzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgICAgIGRvYyA9IG5ldyBEb2N1bWVu
dCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5nIHBhcnRzIG9mIHRo
ZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAgICAgICAgZG9jLT5zZXREb2NUeXBlKGRv
Y3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1bWVudChkb2MuZ2V0KCkpOwotICAgIH0K
KyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5hZGRDaGlsZChkb2N0eXBlKTsKIAogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9j
LT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYykpOwpJbmRl
eDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxOCw4
ICszMTgsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRE9NSW1wbGVtZW50YXRpb24qIGltCiAgICAg
bV90b2tlbml6ZXIgPSAwOwogICAgIG1fd2VsbEZvcm1lZCA9IGZhbHNlOwogCi0gICAgcE1vZGUg
PSBTdHJpY3Q7Ci0gICAgaE1vZGUgPSBYSHRtbDsKKyAgICBzZXRQYXJzZU1vZGUoU3RyaWN0KTsK
KwogICAgIG1fdGV4dENvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgIG1fbGlzdGVuZXJUeXBlcyA9
IDA7CiAgICAgbV9pbkRvY3VtZW50ID0gdHJ1ZTsKQEAgLTMzMCwxMiArMzMwLDggQEAgRG9jdW1l
bnQ6OkRvY3VtZW50KERPTUltcGxlbWVudGF0aW9uKiBpbQogICAgIG1fdXNlc0ZpcnN0TGluZVJ1
bGVzID0gZmFsc2U7CiAgICAgbV91c2VzRmlyc3RMZXR0ZXJSdWxlcyA9IGZhbHNlOwogICAgIG1f
Z290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkID0gZmFsc2U7Ci0KLSAgICBib29s
IG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyA9IHRydWU7Ci0gICAgaWYgKFNldHRpbmdzKiBzZXR0
aW5ncyA9IHRoaXMtPnNldHRpbmdzKCkpCi0gICAgICAgIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxl
cyA9IHNldHRpbmdzLT5hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCgpOwotICAgIG1fc3R5bGVT
ZWxlY3RvciA9IG5ldyBDU1NTdHlsZVNlbGVjdG9yKHRoaXMsIHVzZXJTdHlsZVNoZWV0KCksIG1f
c3R5bGVTaGVldHMuZ2V0KCksIG1fbWFwcGVkRWxlbWVudFNoZWV0LmdldCgpLCAhaW5Db21wYXRN
b2RlKCksIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyk7Ci0KKyAKKyAgICBtX3N0eWxlU2VsZWN0
b3IgPSAwOwogICAgIG1fZGlkQ2FsY3VsYXRlU3R5bGVTZWxlY3RvciA9IGZhbHNlOwogICAgIG1f
cGVuZGluZ1N0eWxlc2hlZXRzID0gMDsKICAgICBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyA9
IGZhbHNlOwpAQCAtNDc1LDEyICs0NzEsMTUgQEAgdm9pZCBEb2N1bWVudDo6cmVzZXRBY3RpdmVM
aW5rQ29sb3IoKQogCiB2b2lkIERvY3VtZW50OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1l
bnRUeXBlPiBkb2NUeXBlKQogeworICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBt
b3JlIHRoYW4gb25jZS4KKyAgICAvLyBOb3RlOiBUaGlzIGlzIG5vdCBhIHB1YmxpYyBET00gbWV0
aG9kIGFuZCBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIHBhcnNlci4KKyAgICBBU1NFUlQoIW1f
ZG9jVHlwZSB8fCAhZG9jVHlwZSk7CisgICAgaWYgKG1fZG9jVHlwZSAmJiBkb2NUeXBlKQorICAg
ICAgICByZXR1cm47CiAgICAgbV9kb2NUeXBlID0gZG9jVHlwZTsKLX0KLQotRG9jdW1lbnRUeXBl
ICpEb2N1bWVudDo6ZG9jdHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZG9jVHlwZS5nZXQo
KTsKKyAgICBpZiAobV9kb2NUeXBlKQorICAgICAgICBtX2RvY1R5cGUtPnNldERvY3VtZW50KHRo
aXMpOworICAgIGRldGVybWluZVBhcnNlTW9kZSgpOwogfQogCiBET01JbXBsZW1lbnRhdGlvbiog
RG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKQEAgLTEyMDgsNiArMTIwNywxNSBAQCB2
b2lkIERvY3VtZW50OjphdHRhY2goKQogICAgIC8vIENyZWF0ZSB0aGUgcmVuZGVyaW5nIHRyZWUK
ICAgICBzZXRSZW5kZXJlcihuZXcgKG1fcmVuZGVyQXJlbmEpIFJlbmRlclZpZXcodGhpcywgdmll
dygpKSk7CiAKKyAgICBpZiAoIW1fc3R5bGVTZWxlY3RvcikgeworICAgICAgICBib29sIG1hdGNo
QXV0aG9yQW5kVXNlclN0eWxlcyA9IHRydWU7CisgICAgICAgIGlmIChTZXR0aW5ncyogZG9jU2V0
dGluZ3MgPSBzZXR0aW5ncygpKQorICAgICAgICAgICAgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVz
ID0gZG9jU2V0dGluZ3MtPmF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKCk7CisgICAgICAgIG1f
c3R5bGVTZWxlY3RvciA9IG5ldyBDU1NTdHlsZVNlbGVjdG9yKHRoaXMsIHVzZXJTdHlsZVNoZWV0
KCksIG1fc3R5bGVTaGVldHMuZ2V0KCksIG1fbWFwcGVkRWxlbWVudFNoZWV0LmdldCgpLCAhaW5D
b21wYXRNb2RlKCksIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyk7CisgICAgICAgIG1fc3R5bGVT
ZWxlY3Rvci0+c2V0RW5jb2RlZFVSTChtX3VybCk7CisgICAgICAgIG1fZGlkQ2FsY3VsYXRlU3R5
bGVTZWxlY3RvciA9IHRydWU7CisgICAgfQorCiAgICAgcmVjYWxjU3R5bGUoRm9yY2UpOwogCiAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXIgPSByZW5kZXJlcigpOwpAQCAtMTcwMiwxNCArMTcxMCw2
IEBAIENTU1N0eWxlU2hlZXQqIERvY3VtZW50OjptYXBwZWRFbGVtZW50U2gKICAgICByZXR1cm4g
bV9tYXBwZWRFbGVtZW50U2hlZXQuZ2V0KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRldGVybWlu
ZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmKQotewotICAgIC8vIEZvciBYTUwgZG9jdW1lbnRzIHVz
ZSBzdHJpY3QgcGFyc2UgbW9kZS4KLSAgICAvLyBIVE1MIG92ZXJyaWRlcyB0aGlzIG1ldGhvZCB0
byBkZXRlcm1pbmUgdGhlIHBhcnNlIG1vZGUuCi0gICAgcE1vZGUgPSBTdHJpY3Q7Ci0gICAgaE1v
ZGUgPSBYSHRtbDsKLX0KLQogc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aEV4YWN0VGFiSW5kZXgo
Tm9kZSogc3RhcnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAg
Ly8gU2VhcmNoIGlzIGluY2x1c2l2ZSBvZiBzdGFydApAQCAtMjc3Miw3ICsyNzcyLDcgQEAgSFRN
TE1hcEVsZW1lbnQgKkRvY3VtZW50OjpnZXRJbWFnZU1hcChjbwogICAgICAgICByZXR1cm4gMDsK
ICAgICBpbnQgaGFzaFBvcyA9IHVybC5maW5kKCcjJyk7CiAgICAgU3RyaW5nIG5hbWUgPSAoaGFz
aFBvcyA8IDAgPyB1cmwgOiB1cmwuc3Vic3RyaW5nKGhhc2hQb3MgKyAxKSkuaW1wbCgpOwotICAg
IEF0b21pY1N0cmluZyBtYXBOYW1lID0gaE1vZGUgPT0gWEh0bWwgPyBuYW1lIDogbmFtZS5sb3dl
cigpOworICAgIEF0b21pY1N0cmluZyBtYXBOYW1lID0gaXNIVE1MRG9jdW1lbnQoKSA/IG5hbWUu
bG93ZXIoKSA6IG5hbWU7CiAgICAgcmV0dXJuIG1faW1hZ2VNYXBzQnlOYW1lLmdldChtYXBOYW1l
LmltcGwoKSk7CiB9CiAKSW5kZXg6IGRvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9E
b2N1bWVudC5oCShyZXZpc2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzksOCArMTc5LDcgQEAgcHVibGljOgogCiAgICAgLy8gRE9NIG1ldGhvZHMgJiBh
dHRyaWJ1dGVzIGZvciBEb2N1bWVudAogCi0gICAgdmlydHVhbCBEb2N1bWVudFR5cGUqIGRvY3R5
cGUoKSBjb25zdDsgLy8gTWF5IHJldHVybiAwIGZvciBIVE1MIGRvY3VtZW50cwotICAgIERvY3Vt
ZW50VHlwZSogcmVhbERvY1R5cGUoKSBjb25zdCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0K
KyAgICBEb2N1bWVudFR5cGUqIGRvY3R5cGUoKSBjb25zdCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0
KCk7IH0KIAogICAgIERPTUltcGxlbWVudGF0aW9uKiBpbXBsZW1lbnRhdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBm
YWxzZSk7CkBAIC00MDIsMjAgKzQwMSwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGlu
Zyhib29sIHApIHsgbV9wcmludGluZyA9IHA7IH0KIAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29t
cGF0LCBBbG1vc3RTdHJpY3QsIFN0cmljdCB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRl
cm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRQYXJzZU1vZGUoUGFy
c2VNb2RlIG0pIHsgcE1vZGUgPSBtOyB9Ci0gICAgUGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNvbnN0
IHsgcmV0dXJuIHBNb2RlOyB9Ci0KLSAgICBib29sIGluQ29tcGF0TW9kZSgpIGNvbnN0IHsgcmV0
dXJuIHBNb2RlID09IENvbXBhdDsgfQotICAgIGJvb2wgaW5BbG1vc3RTdHJpY3RNb2RlKCkgY29u
c3QgeyByZXR1cm4gcE1vZGUgPT0gQWxtb3N0U3RyaWN0OyB9Ci0gICAgYm9vbCBpblN0cmljdE1v
ZGUoKSBjb25zdCB7IHJldHVybiBwTW9kZSA9PSBTdHJpY3Q7IH0KLSAgICAKLSAgICBlbnVtIEhU
TUxNb2RlIHsgSHRtbDMsIEh0bWw0LCBYSHRtbCB9OwogCi0gICAgdm9pZCBzZXRIVE1MTW9kZShI
VE1MTW9kZSBtKSB7IGhNb2RlID0gbTsgfQotICAgIEhUTUxNb2RlIGh0bWxNb2RlKCkgY29uc3Qg
eyByZXR1cm4gaE1vZGU7IH0KK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBh
cnNlTW9kZSgpIHt9CisgICAgCitwdWJsaWM6CisgICAgdm9pZCBzZXRQYXJzZU1vZGUoUGFyc2VN
b2RlIG0pIHsgbV9wYXJzZU1vZGUgPSBtOyB9CisgICAgUGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9CiAKKyAgICBib29sIGluQ29tcGF0TW9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlID09IENvbXBhdDsgfQorICAgIGJvb2wgaW5BbG1vc3RT
dHJpY3RNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZU1vZGUgPT0gQWxtb3N0U3RyaWN0OyB9
CisgICAgYm9vbCBpblN0cmljdE1vZGUoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlTW9kZSA9PSBT
dHJpY3Q7IH0KKyAgICAKICAgICB2b2lkIHNldFBhcnNpbmcoYm9vbCk7CiAgICAgYm9vbCBwYXJz
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9iUGFyc2luZzsgfQogICAgIGludCBtaW5pbXVtTGF5b3V0
RGVsYXkoKTsKQEAgLTczNSw4ICs3MzIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3ByaW50
aW5nOwogCi0gICAgUGFyc2VNb2RlIHBNb2RlOwotICAgIEhUTUxNb2RlIGhNb2RlOworICAgIFBh
cnNlTW9kZSBtX3BhcnNlTW9kZTsKIAogICAgIENvbG9yIG1fdGV4dENvbG9yOwogCkluZGV4OiBk
b20vRG9jdW1lbnRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnRUeXBlLmNwcAko
cmV2aXNpb24gMzAzODcpCisrKyBkb20vRG9jdW1lbnRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAwLDkgKzEwMCwyNiBAQCBOb2RlOjpOb2RlVHlwZSBEb2N1bWVudFR5cGU6Om5vZGVUeXBl
KCkgCiAKIFBhc3NSZWZQdHI8Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGUoYm9vbCAvKmRl
ZXAqLykKIHsKLSAgICAvLyBUaGUgRE9NIExldmVsIDIgc3BlY2lmaWNhdGlvbiBzYXlzIGNsb25p
bmcgRG9jdW1lbnRUeXBlIG5vZGVzIGlzICJpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQiLgotICAg
IC8vIEZvciBub3csIHdlIGRvIG5vdCBzdXBwb3J0IGl0LgotICAgIHJldHVybiAwOworICAgIHJl
dHVybiBuZXcgRG9jdW1lbnRUeXBlKGRvY3VtZW50KCksIG1fbmFtZSwgbV9wdWJsaWNJZCwgbV9z
eXN0ZW1JZCk7Cit9CisKK3ZvaWQgRG9jdW1lbnRUeXBlOjppbnNlcnRlZEludG9Eb2N1bWVudCgp
Cit7CisgICAgLy8gT3VyIGRvY3VtZW50IG5vZGUgY2FuIGJlIG51bGwgaWYgd2Ugd2VyZSBjcmVh
dGVkIGJ5IGEgRE9NSW1wbGVtZW50YXRpb24uICBXZSB1c2UgdGhlIHBhcmVudCgpIGluc3RlYWQu
CisgICAgQVNTRVJUKHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKTsKKyAg
ICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRG9jdW1lbnROb2RlKCkpIHsKKyAgICAgICAg
RG9jdW1lbnQqIGRvYyA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4ocGFyZW50KCkpOworICAgICAg
ICBpZiAoIWRvYy0+ZG9jdHlwZSgpKQorICAgICAgICAgICAgZG9jLT5zZXREb2NUeXBlKHRoaXMp
OworICAgIH0KKyAgICBOb2RlOjppbnNlcnRlZEludG9Eb2N1bWVudCgpOworfQorCit2b2lkIERv
Y3VtZW50VHlwZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgaWYgKGRvY3VtZW50KCkg
JiYgZG9jdW1lbnQoKS0+ZG9jdHlwZSgpID09IHRoaXMpCisgICAgICAgIGRvY3VtZW50KCktPnNl
dERvY1R5cGUoMCk7CisgICAgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB9Cklu
ZGV4OiBkb20vRG9jdW1lbnRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RvY3VtZW50VHlwZS5o
CShyZXZpc2lvbiAzMDM4NykKKysrIGRvbS9Eb2N1bWVudFR5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTgsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNs
b25lTm9kZShib29sIGRlZXApOwogICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOworCiBwcml2YXRlOgogICAgIFJlZlB0cjxET01J
bXBsZW1lbnRhdGlvbj4gbV9pbXBsZW1lbnRhdGlvbjsKICAgICBSZWZQdHI8TmFtZWROb2RlTWFw
PiBtX2VudGl0aWVzOwpJbmRleDogZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Ob2Rl
LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTczNiw3ICs3MzYsNyBAQCBib29sIE5vZGU6OmlzRGVzY2VuZGFudE9mKGNvbnN0IE5vZGUgKm90
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5vZGU6OmNoaWxkQWxsb3dlZCggTm9kZSAq
bmV3Q2hpbGQgKQorYm9vbCBOb2RlOjpjaGlsZEFsbG93ZWQoTm9kZSogbmV3Q2hpbGQpCiB7CiAg
ICAgcmV0dXJuIGNoaWxkVHlwZUFsbG93ZWQobmV3Q2hpbGQtPm5vZGVUeXBlKCkpOwogfQpJbmRl
eDogZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9TdHlsZWRFbGVtZW50
LmNwcAkocmV2aXNpb24gMzAzODcpCisrKyBkb20vU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoQXR0CiAgICAgaWYgKG5lZWRUb1BhcnNlKQogICAgICAgICBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShtYXBwZWRBdHRyKTsKIAotICAgIGlmIChlbnRyeSA9PSBlTm9uZSAmJiBvd25lckRvY3Vt
ZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoYXR0ci0+bmFt
ZSgpLmxvY2FsTmFtZSgpKSkKKyAgICBpZiAoZW50cnkgPT0gZU5vbmUgJiYgb3duZXJEb2N1bWVu
dCgpLT5hdHRhY2hlZCgpICYmIG93bmVyRG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvcigpLT5oYXNT
ZWxlY3RvckZvckF0dHJpYnV0ZShhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkpKQogICAgICAgICBz
ZXRDaGFuZ2VkKCk7CiAKICAgICBpZiAoY2hlY2tEZWNsICYmIG1hcHBlZEF0dHItPmRlY2woKSkg
ewpJbmRleDogZG9tL1hNTFRva2VuaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1hNTFRva2Vu
aXplci5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgZG9tL1hNTFRva2VuaXplci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwMDgsMTEgKzEwMDgsOCBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJu
YWxTdWJzZXQoY29uc3QgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgRG9jdW1l
bnQqIGRvYyA9IG1fZG9jOwotICAgIGlmICghZG9jKQotICAgICAgICByZXR1cm47Ci0KLSAgICBk
b2MtPnNldERvY1R5cGUobmV3IERvY3VtZW50VHlwZShkb2MsIHRvU3RyaW5nKG5hbWUpLCB0b1N0
cmluZyhleHRlcm5hbElEKSwgdG9TdHJpbmcoc3lzdGVtSUQpKSk7CisgICAgaWYgKG1fZG9jKQor
ICAgICAgICBtX2RvYy0+YWRkQ2hpbGQobmV3IERvY3VtZW50VHlwZShtX2RvYywgdG9TdHJpbmco
bmFtZSksIHRvU3RyaW5nKGV4dGVybmFsSUQpLCB0b1N0cmluZyhzeXN0ZW1JRCkpKTsKIH0KIAog
c3RhdGljIGlubGluZSBYTUxUb2tlbml6ZXIqIGdldFRva2VuaXplcih2b2lkKiBjbG9zdXJlKQpA
QCAtMjA5OCw3ICsyMDk1LDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlRHRkKCkKICAgICAg
ICAgc2V0SXNYSFRNTERvY3VtZW50KHRydWUpOyAvLyBjb250cm9scyBpZiB3ZSByZXBsYWNlIGVu
dGl0aWVzIG9yIG5vdC4KICAgICB9CiAgICAgaWYgKCFtX3BhcnNpbmdGcmFnbWVudCkKLSAgICAg
ICAgbV9kb2MtPnNldERvY1R5cGUobmV3IERvY3VtZW50VHlwZShtX2RvYywgbmFtZSwgcHVibGlj
SWQsIHN5c3RlbUlkKSk7CisgICAgICAgIG1fZG9jLT5hZGRDaGlsZChuZXcgRG9jdW1lbnRUeXBl
KG1fZG9jLCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpKTsKICAgICAKIH0KICNlbmRpZgpJbmRl
eDogZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGVkaXRpbmcvbWFya3VwLmNwcAko
cmV2aXNpb24gMzAzODcpCisrKyBlZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2OCwxNCArMzY4LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RhcnRNYXJrdXAoVmVjdG9yPFVD
aAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgICAgIGFwcGVuZChy
ZXN1bHQsIHN0YXRpY19jYXN0PGNvbnN0IENvbW1lbnQqPihub2RlKS0+dG9TdHJpbmcoKSk7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOiB7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogSSB0aGluayB0aGUgY29tbWVudCBiZWxvdyAoYW5kIHRoZXJl
Zm9yZSB0aGlzIGNvZGUpIGlzIHdyb25nIG5vdwotICAgICAgICAgICAgLy8gRG9jdW1lbnRzIGRv
IG5vdCBub3JtYWxseSBjb250YWluIGEgZG9jVHlwZSBhcyBhIGNoaWxkIG5vZGUsIGZvcmNlIGl0
IHRvIHByaW50IGhlcmUgaW5zdGVhZC4KLSAgICAgICAgICAgIGNvbnN0IERvY3VtZW50VHlwZSog
ZG9jVHlwZSA9IHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50Kj4obm9kZSktPmRvY3R5cGUoKTsK
LSAgICAgICAgICAgIGlmIChkb2NUeXBlKQotICAgICAgICAgICAgICAgIGFwcGVuZChyZXN1bHQs
IGRvY1R5cGUtPnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9UWVBFX05PREU6CkluZGV4OiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMzAzODcp
CisrKyBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcg
KzExNyw3IEBAIFJlbmRlck9iamVjdCogSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZVIKICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlQmFzZSA9IGdldEF0dHJpYnV0ZShjb2RlYmFzZUF0
dHIpOwogICAgICAgICBpZighY29kZUJhc2UuaXNOdWxsKCkpCiAgICAgICAgICAgICBhcmdzLnNl
dCgiY29kZUJhc2UiLCBjb2RlQmFzZSk7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSA9IGdldEF0dHJpYnV0ZShkb2N1bWVudCgpLT5odG1sTW9kZSgpICE9IERvY3VtZW50OjpYSHRt
bCA/IG5hbWVBdHRyIDogaWRBdHRyKTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
ID0gZ2V0QXR0cmlidXRlKGRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkgPyBuYW1lQXR0ciA6
IGlkQXR0cik7CiAgICAgICAgIGlmICghbmFtZS5pc051bGwoKSkKICAgICAgICAgICAgIGFyZ3Mu
c2V0KCJuYW1lIiwgbmFtZSk7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJjaGl2ZSA9
IGdldEF0dHJpYnV0ZShhcmNoaXZlQXR0cik7CkluZGV4OiBodG1sL0hUTUxEb2N1bWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gaHRtbC9IVE1MRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAzMDM4NykKKysr
IGh0bWwvSFRNTERvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsNyBAQCBI
VE1MRG9jdW1lbnQ6OkhUTUxEb2N1bWVudChET01JbXBsZW1lbnRhCiAgICAgOiBEb2N1bWVudChp
bXBsZW1lbnRhdGlvbiwgZnJhbWUpCiB7CiAgICAgY2xlYXJYTUxWZXJzaW9uKCk7CisgICAgc2V0
UGFyc2VNb2RlKENvbXBhdCk7CiB9CiAKIEhUTUxEb2N1bWVudDo6fkhUTUxEb2N1bWVudCgpCkBA
IC0yNzMsNyArMjc0LDcgQEAgVG9rZW5pemVyICpIVE1MRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXpl
cgogCiBib29sIEhUTUxEb2N1bWVudDo6Y2hpbGRBbGxvd2VkKE5vZGUgKm5ld0NoaWxkKQogewot
ICAgIHJldHVybiBuZXdDaGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8fCBuZXdDaGlsZC0+aXND
b21tZW50Tm9kZSgpOworICAgIHJldHVybiBuZXdDaGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8
fCBuZXdDaGlsZC0+aXNDb21tZW50Tm9kZSgpIHx8IChuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBE
T0NVTUVOVF9UWVBFX05PREUgJiYgIWRvY3R5cGUoKSk7CiB9CiAKIFBhc3NSZWZQdHI8RWxlbWVu
dD4gSFRNTERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGNvbnN0IFN0cmluZyAmbmFtZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0zNDYsMjI5ICszNDcsNjIgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6Omhh
c0RvY0V4dHJhTmFtZWRJdGVtKAogICAgIHJldHVybiBkb2NFeHRyYU5hbWVkSXRlbUNvdW50cy5n
ZXQobmFtZS5pbXBsKCkpICE9IDA7CiB9CiAKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9ET0NU
WVBFICAgICAgICA9ICAgICAgICgxPDwwKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9QVUJM
SUNfSUQgICAgICA9ICAgICAgICgxPDwxKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9TWVNU
RU1fSUQgICAgICA9ICAgICAgICgxPDwyKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9JTlRF
Uk5BTCAgICAgICA9ICAgICAgICgxPDwzKTsKLQotc3RhdGljIGludCBwYXJzZURvY1R5cGVQYXJ0
KGNvbnN0IFN0cmluZyYgYnVmZmVyLCBpbnQgaW5kZXgpCi17Ci0gICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgVUNoYXIgY2ggPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAoY2ggPT0gJyAn
IHx8IGNoID09ICdcdCcgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQotICAgICAgICAgICAg
KytpbmRleDsKLSAgICAgICAgZWxzZSBpZiAoY2ggPT0gJy0nKSB7Ci0gICAgICAgICAgICBpbnQg
dG1wSW5kZXg9aW5kZXg7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyW2luZGV4KzFdID09ICctJyAm
JgotICAgICAgICAgICAgICAgICgodG1wSW5kZXg9YnVmZmVyLmZpbmQoIi0tIiwgaW5kZXgrMikp
ICE9IC0xKSkKLSAgICAgICAgICAgICAgICBpbmRleCA9IHRtcEluZGV4KzI7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICB9Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci19Ci0KLXN0YXRpYyBib29s
IGNvbnRhaW5zU3RyaW5nKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgU3RyaW5nJiBidWZmZXIsIGlu
dCBvZmZzZXQpCit2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKCkKIHsKLSAg
ICBTdHJpbmcgc3RhcnRTdHJpbmcoc3RyKTsKLSAgICBpZiAob2Zmc2V0ICsgc3RhcnRTdHJpbmcu
bGVuZ3RoKCkgPiBidWZmZXIubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
LSAgICBTdHJpbmcgYnVmZmVyU3RyaW5nID0gYnVmZmVyLnN1YnN0cmluZyhvZmZzZXQsIHN0YXJ0
U3RyaW5nLmxlbmd0aCgpKS5sb3dlcigpOwotICAgIFN0cmluZyBsb3dlclN0YXJ0ID0gc3RhcnRT
dHJpbmcubG93ZXIoKTsKLQotICAgIHJldHVybiBidWZmZXJTdHJpbmcuc3RhcnRzV2l0aChsb3dl
clN0YXJ0KTsKLX0KLQotc3RhdGljIGJvb2wgcGFyc2VEb2NUeXBlRGVjbGFyYXRpb24oY29uc3Qg
U3RyaW5nJiBidWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQq
IHJlc3VsdEZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5n
JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBwdWJs
aWNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyYgc3lzdGVt
SUQpCi17Ci0gICAgYm9vbCBoYXZlRG9jVHlwZSA9IGZhbHNlOwotICAgICpyZXN1bHRGbGFncyA9
IDA7Ci0KLSAgICAvLyBTa2lwIHRocm91Z2ggYW55IGNvbW1lbnRzIGFuZCBwcm9jZXNzaW5nIGlu
c3RydWN0aW9ucy4KLSAgICBpbnQgaW5kZXggPSAwOwotICAgIGRvIHsKLSAgICAgICAgaW5kZXgg
PSBidWZmZXIuZmluZCgnPCcsIGluZGV4KTsKLSAgICAgICAgaWYgKGluZGV4ID09IC0xKSBicmVh
azsKLSAgICAgICAgVUNoYXIgbmV4dENoYXIgPSBidWZmZXJbaW5kZXgrMV07Ci0gICAgICAgIGlm
IChuZXh0Q2hhciA9PSAnIScpIHsKLSAgICAgICAgICAgIGlmIChjb250YWluc1N0cmluZygiZG9j
dHlwZSIsIGJ1ZmZlciwgaW5kZXgrMikpIHsKLSAgICAgICAgICAgICAgICBoYXZlRG9jVHlwZSA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgaW5kZXggKz0gOTsgLy8gU2tpcCAiPCFET0NUWVBFIgot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW5kZXgg
PSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlcixpbmRleCk7Ci0gICAgICAgICAgICBpbmRleCA9IGJ1
ZmZlci5maW5kKCc+JywgaW5kZXgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHRD
aGFyID09ICc/JykKLSAgICAgICAgICAgIGluZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0gd2hpbGUgKGluZGV4ICE9
IC0xKTsKLQotICAgIGlmICghaGF2ZURvY1R5cGUpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
ICpyZXN1bHRGbGFncyB8PSBQQVJTRU1PREVfSEFWRV9ET0NUWVBFOwotCi0gICAgaW5kZXggPSBw
YXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgpOwotICAgIGlmICghY29udGFpbnNTdHJpbmco
Imh0bWwiLCBidWZmZXIsIGluZGV4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAg
IG5hbWUgPSBidWZmZXIuc3Vic3RyaW5nKGluZGV4LCA0KTsKLSAgICBpbmRleCA9IHBhcnNlRG9j
VHlwZVBhcnQoYnVmZmVyLCBpbmRleCs0KTsKLSAgICBib29sIGhhc1B1YmxpYyA9IGNvbnRhaW5z
U3RyaW5nKCJwdWJsaWMiLCBidWZmZXIsIGluZGV4KTsKLSAgICBpZiAoaGFzUHVibGljKSB7Ci0g
ICAgICAgIGluZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIGluZGV4KzYpOwotCi0gICAg
ICAgIC8vIFdlJ3ZlIHJlYWQgPCFET0NUWVBFIEhUTUwgUFVCTElDIChub3QgY2FzZSBzZW5zaXRp
dmUpLgotICAgICAgICAvLyBOb3cgd2UgZmluZCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhl
IHB1YmxpYyBpZGVudGlmZXJzCi0gICAgICAgIC8vIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgKGFz
c3VtaW5nIHRoZXkncmUgZXZlbiBwcmVzZW50KS4KLSAgICAgICAgVUNoYXIgdGhlQ2hhciA9IGJ1
ZmZlcltpbmRleF07Ci0gICAgICAgIGlmICh0aGVDaGFyICE9ICdcIicgJiYgdGhlQ2hhciAhPSAn
XCcnKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgLy8gfHN0
YXJ0fCBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIChhZnRlciB0aGUgcXVvdGUpIGFuZCB8ZW5kfAot
ICAgICAgICAvLyBpcyB0aGUgZmluYWwgcXVvdGUsIHNvIHRoZXJlIGFyZSB8ZW5kfC18c3RhcnR8
IGNoYXJhY3RlcnMuCi0gICAgICAgIGludCBwdWJsaWNJRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAg
ICAgaW50IHB1YmxpY0lERW5kID0gYnVmZmVyLmZpbmQodGhlQ2hhciwgcHVibGljSURTdGFydCk7
Ci0gICAgICAgIGlmIChwdWJsaWNJREVuZCA9PSAtMSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgcHVibGljSURFbmQr
MSk7Ci0gICAgICAgIFVDaGFyIG5leHQgPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAobmV4
dCA9PSAnPicpIHsKLSAgICAgICAgICAgIC8vIFB1YmxpYyBpZGVudGlmaWVyIHByZXNlbnQsIGJ1
dCBubyBzeXN0ZW0gaWRlbnRpZmllci4KLSAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuICBOb3Rl
IHRoYXQgdGhpcyBpcyB0aGUgbW9zdCBjb21tb24KLSAgICAgICAgICAgIC8vIGNhc2UuCi0gICAg
ICAgIH0KLSAgICAgICAgZWxzZSBpZiAobmV4dCA9PSAnXCInIHx8IG5leHQgPT0gJ1wnJykgewot
ICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIHN5c3RlbSBpZGVudGlmaWVyLgotICAgICAgICAgICAg
KnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9ERV9IQVZFX1NZU1RFTV9JRDsKLSAgICAgICAgICAgIGlu
dCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9
IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3Rl
bUlERW5kID09IC0xKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmluZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAt
IHN5c3RlbUlEU3RhcnQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHQgPT0gJ1sn
KSB7Ci0gICAgICAgICAgICAvLyBXZSBmb3VuZCBhbiBpbnRlcm5hbCBzdWJzZXQuCi0gICAgICAg
ICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIH0K
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBTb21ldGhpbmcncyB3
cm9uZy4KLQotICAgICAgICAvLyBXZSBuZWVkIHRvIHRyaW0gd2hpdGVzcGFjZSBvZmYgdGhlIHB1
YmxpYyBpZGVudGlmaWVyLgotICAgICAgICBwdWJsaWNJRCA9IGJ1ZmZlci5zdWJzdHJpbmcocHVi
bGljSURTdGFydCwgcHVibGljSURFbmQgLSBwdWJsaWNJRFN0YXJ0KTsKLSAgICAgICAgcHVibGlj
SUQgPSBwdWJsaWNJRC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICAgICAgKnJlc3VsdEZsYWdzIHw9
IFBBUlNFTU9ERV9IQVZFX1BVQkxJQ19JRDsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoY29u
dGFpbnNTdHJpbmcoInN5c3RlbSIsIGJ1ZmZlciwgaW5kZXgpKSB7Ci0gICAgICAgICAgICAvLyBE
b2N0eXBlIGhhcyBhIHN5c3RlbSBJRCBidXQgbm8gcHVibGljIElECi0gICAgICAgICAgICAqcmVz
dWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEOwotICAgICAgICAgICAgaW5kZXgg
PSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgrNik7Ci0gICAgICAgICAgICBVQ2hhciBu
ZXh0ID0gYnVmZmVyW2luZGV4XTsKLSAgICAgICAgICAgIGlmIChuZXh0ICE9ICdcIicgJiYgbmV4
dCAhPSAnXCcnKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlu
dCBzeXN0ZW1JRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9
IGJ1ZmZlci5maW5kKG5leHQsIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3Rl
bUlERW5kID09IC0xKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHN5c3RlbUlEID0gYnVmZmVyLnN1YnN0cmluZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAt
IHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1
ZmZlciwgc3lzdGVtSURFbmQrMSk7Ci0gICAgICAgIH0KLQotICAgICAgICBVQ2hhciBuZXh0Q2hh
ciA9IGJ1ZmZlcltpbmRleF07Ci0gICAgICAgIGlmIChuZXh0Q2hhciA9PSAnWycpCi0gICAgICAg
ICAgICAqcmVzdWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIGVs
c2UgaWYgKG5leHRDaGFyICE9ICc+JykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
CisgICAgLy8gRklYTUU6IEl0J3MgdGVycmlibGUgdGhhdCB0aGlzIGNvZGUgcnVucyBzZXBhcmF0
ZWx5IGFuZCBpc24ndCBqdXN0IGJ1aWx0IGluIHRvIHRoZQorICAgIC8vIEhUTUwgdG9rZW5pemVy
L3BhcnNlci4KIAotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEhUTUxEb2N1bWVudDo6ZGV0
ZXJtaW5lUGFyc2VNb2RlKGNvbnN0IFN0cmluZyYgc3RyKQotewogICAgIC8vIFRoaXMgY29kZSBt
b3JlIG9yIGxlc3MgbWltaWNzIE1vemlsbGEncyBpbXBsZW1lbnRhdGlvbiAoc3BlY2lmaWNhbGx5
IHRoZQogICAgIC8vIGRvY3R5cGUgcGFyc2luZyBpbXBsZW1lbnRlZCBieSBEYXZpZCBCYXJvbiBp
biBNb3ppbGxhJ3MgbnNQYXJzZXIuY3BwKS4KICAgICAvLwogICAgIC8vIFRoZXJlIGFyZSB0aHJl
ZSBwb3NzaWJsZSBwYXJzZSBtb2RlczoKLSAgICAvLyBDT01QQVQgLSBxdWlya3MgbW9kZSBlbXVs
YXRlcyBXaW5JRQotICAgIC8vIGFuZCBOUzQuICBDU1MgcGFyc2luZyBpcyBhbHNvIHJlbGF4ZWQg
aW4gdGhpcyBtb2RlLCBlLmcuLCB1bml0IHR5cGVzIGNhbgorICAgIC8vIENPTVBBVCAtIHF1aXJr
cyBtb2RlIGVtdWxhdGVzIFdpbklFIGFuZCBOUzQuICBDU1MgcGFyc2luZyBpcyBhbHNvIHJlbGF4
ZWQgaW4gdGhpcyBtb2RlLCBlLmcuLCB1bml0IHR5cGVzIGNhbgogICAgIC8vIGJlIG9taXR0ZWQg
ZnJvbSBudW1iZXJzLgotICAgIC8vIEFMTU9TVCBTVFJJQ1QgLSBUaGlzIG1vZGUgaXMgaWRlbnRp
Y2FsIHRvIHN0cmljdCBtb2RlCi0gICAgLy8gZXhjZXB0IGZvciBpdHMgdHJlYXRtZW50IG9mIGxp
bmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVsLiAgRm9yCi0gICAgLy8gbm93ICh1bnRp
bCB0aGUgaW5saW5lIGJveCBtb2RlbCBpcyByZS13cml0dGVuKSwgdGhpcyBtb2RlIGlzIGlkZW50
aWNhbAotICAgIC8vIHRvIFNUQU5EQVJEUyBtb2RlLgotICAgIC8vIFNUUklDVCAtIG5vIHF1aXJr
cyBhcHBseS4gIFdlYiBwYWdlcyB3aWxsIG9iZXkgdGhlIHNwZWNpZmljYXRpb25zIHRvCi0gICAg
Ly8gdGhlIGxldHRlci4KLQotICAgIFN0cmluZyBuYW1lLCBzeXN0ZW1JRCwgcHVibGljSUQ7Ci0g
ICAgaW50IHJlc3VsdEZsYWdzID0gMDsKLSAgICBpZiAocGFyc2VEb2NUeXBlRGVjbGFyYXRpb24o
c3RyLCAmcmVzdWx0RmxhZ3MsIG5hbWUsIHB1YmxpY0lELCBzeXN0ZW1JRCkpIHsKLSAgICAgICAg
aWYgKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfRE9DVFlQRSkKLSAgICAgICAgICAgIHNl
dERvY1R5cGUobmV3IERvY3VtZW50VHlwZSh0aGlzLCBuYW1lLCBwdWJsaWNJRCwgc3lzdGVtSUQp
KTsKLSAgICAgICAgaWYgKCEocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9ET0NUWVBFKSkg
ewotICAgICAgICAgICAgLy8gTm8gZG9jdHlwZSBmb3VuZCBhdCBhbGwuICBEZWZhdWx0IHRvIHF1
aXJrcyBtb2RlIGFuZCBIdG1sNC4KLSAgICAgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwot
ICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2Ug
aWYgKChyZXN1bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0lOVEVSTkFMKSB8fAotICAgICAgICAg
ICAgICAgICAhKHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEKSkgewotICAg
ICAgICAgICAgLy8gSW50ZXJuYWwgc3Vic2V0cyBhbHdheXMgZGVub3RlIGZ1bGwgc3RhbmRhcmRz
LCBhcyBkb2VzCi0gICAgICAgICAgICAvLyBhIGRvY3R5cGUgd2l0aG91dCBhIHB1YmxpYyBJRC4K
KyAgICAvLyBBTE1PU1QgU1RSSUNUIC0gVGhpcyBtb2RlIGlzIGlkZW50aWNhbCB0byBzdHJpY3Qg
bW9kZSBleGNlcHQgZm9yIGl0cyB0cmVhdG1lbnQgb2YgbGluZS1oZWlnaHQgaW4gdGhlIGlubGlu
ZSBib3ggbW9kZWwuICBGb3IKKyAgICAvLyBub3cgKHVudGlsIHRoZSBpbmxpbmUgYm94IG1vZGVs
IGlzIHJlLXdyaXR0ZW4pLCB0aGlzIG1vZGUgaXMgaWRlbnRpY2FsIHRvIFNUQU5EQVJEUyBtb2Rl
LgorICAgIC8vIFNUUklDVCAtIG5vIHF1aXJrcyBhcHBseS4gIFdlYiBwYWdlcyB3aWxsIG9iZXkg
dGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIuCisgICAgYm9vbCB3YXNJbkNvbXBhdE1v
ZGUgPSBpbkNvbXBhdE1vZGUoKTsKKyAgICBEb2N1bWVudFR5cGUqIGRvY1R5cGUgPSBkb2N0eXBl
KCk7CisgICAgaWYgKCFkb2NUeXBlIHx8ICFlcXVhbElnbm9yaW5nQ2FzZShkb2NUeXBlLT5uYW1l
KCksICJodG1sIikpCisgICAgICAgIC8vIE5vIGRvY3R5cGUgZm91bmQgYXQgYWxsIG9yIHRoZSBk
b2N0eXBlIGlzIG5vdCBIVE1MLiAgRGVmYXVsdCB0byBxdWlya3MgbW9kZSBhbmQgSHRtbDQuCisg
ICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOworICAgIGVsc2UgaWYgKCFkb2N0eXBlKCktPnN5
c3RlbUlkKCkuaXNFbXB0eSgpICYmIGVxdWFsSWdub3JpbmdDYXNlKGRvY1R5cGUtPnN5c3RlbUlk
KCksICJodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9u
YWwuZHRkIikpCisgICAgICAgIC8vIEFzc3VtZSBxdWlya3MgbW9kZSBmb3IgdGhpcyBwYXJ0aWN1
bGFyIHN5c3RlbSBJRC4gIEluIHRoZSBIVE1MNSBzcGVjLCB0aGlzIGlzIHRoZSBvbmx5CisgICAg
ICAgIC8vIHN5c3RlbSBpZGVudGlmaWVyIHRoYXQgaXMgZXhhbWluZWQuCisgICAgICAgIHNldFBh
cnNlTW9kZShDb21wYXQpOworICAgIGVsc2UgaWYgKGRvY1R5cGUtPnB1YmxpY0lkKCkuaXNFbXB0
eSgpKQorICAgICAgICAvLyBBIGRvY3R5cGUgd2l0aG91dCBhIHB1YmxpYyBJRCBtZWFucyB1c2Ug
c3RyaWN0IG1vZGUuCisgICAgICAgIHNldFBhcnNlTW9kZShTdHJpY3QpOworICAgIGVsc2Ugewor
ICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRvIHNlZSB3
aGF0IHdlCisgICAgICAgIC8vIHNob3VsZCBkby4KKyAgICAgICAgU3RyaW5nIGxvd2VyUHViSUQg
PSBkb2NUeXBlLT5wdWJsaWNJZCgpLmxvd2VyKCk7CisgICAgICAgIENTdHJpbmcgcHViSURTdHIg
PSBsb3dlclB1YklELmxhdGluMSgpOworICAgICAgIAorICAgICAgICAvLyBMb29rIHVwIHRoZSBl
bnRyeSBpbiBvdXIgZ3BlcmYtZ2VuZXJhdGVkIHRhYmxlLgorICAgICAgICBjb25zdCBQdWJJRElu
Zm8qIGRvY3R5cGVFbnRyeSA9IGZpbmREb2N0eXBlRW50cnkocHViSURTdHIuZGF0YSgpLCBwdWJJ
RFN0ci5sZW5ndGgoKSk7CisgICAgICAgIGlmICghZG9jdHlwZUVudHJ5KQorICAgICAgICAgICAg
Ly8gVGhlIERPQ1RZUEUgaXMgbm90IGluIHRoZSBsaXN0LiAgQXNzdW1lIHN0cmljdCBtb2RlLgog
ICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7Ci0gICAgICAgICAgICBzZXRIVE1MTW9k
ZShIdG1sNCk7Ci0gICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBXZSBo
YXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRvIHNlZSB3aGF0IHdlCi0gICAgICAg
ICAgICAvLyBzaG91bGQgZG8uCi0gICAgICAgICAgICBTdHJpbmcgbG93ZXJQdWJJRCA9IHB1Ymxp
Y0lELmxvd2VyKCk7Ci0gICAgICAgICAgICBDU3RyaW5nIHB1YklEU3RyID0gbG93ZXJQdWJJRC5s
YXRpbjEoKTsKLSAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBMb29rIHVwIHRoZSBlbnRyeSBp
biBvdXIgZ3BlcmYtZ2VuZXJhdGVkIHRhYmxlLgotICAgICAgICAgICAgY29uc3QgUHViSURJbmZv
KiBkb2N0eXBlRW50cnkgPSBmaW5kRG9jdHlwZUVudHJ5KHB1YklEU3RyLmRhdGEoKSwgcHViSURT
dHIubGVuZ3RoKCkpOwotICAgICAgICAgICAgaWYgKCFkb2N0eXBlRW50cnkpIHsKLSAgICAgICAg
ICAgICAgICAvLyBUaGUgRE9DVFlQRSBpcyBub3QgaW4gdGhlIGxpc3QuICBBc3N1bWUgc3RyaWN0
IG1vZGUuCi0gICAgICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7Ci0gICAgICAgICAg
ICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgc3dpdGNoICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVf
SEFWRV9TWVNURU1fSUQpID8KLSAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2Rl
X2lmX3N5c2lkIDoKLSAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25v
X3N5c2lkKQotICAgICAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChkb2NUeXBlLT5zeXN0
ZW1JZCgpLmlzRW1wdHkoKSA/CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9k
ZV9pZl9ub19zeXNpZCA6CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9p
Zl9zeXNpZCkgewogICAgICAgICAgICAgICAgIGNhc2UgUHViSURJbmZvOjplUXVpcmtzMzoKLSAg
ICAgICAgICAgICAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHNldEhUTUxNb2RlKEh0bWwzKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgY2FzZSBQdWJJREluZm86OmVRdWlya3M6CiAgICAgICAgICAgICAgICAgICAg
IHNldFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICAgICAgICAgICAgICBzZXRIVE1MTW9kZShI
dG1sNCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
UHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzOgogICAgICAgICAgICAgICAgICAgICBzZXRQYXJz
ZU1vZGUoQWxtb3N0U3RyaWN0KTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRt
bDQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgfSAgIAotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgLy8gTWFsZm9ybWVkIGRvY3R5
cGUgaW1wbGllcyBxdWlya3MgbW9kZS4KLSAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0g
ICAgICAgIHNldEhUTUxNb2RlKEh0bWwzKTsKKyAgICAgICAgfQogICAgIH0KLSAgCi0gICAgc3R5
bGVTZWxlY3RvcigpLT5zdHJpY3RQYXJzaW5nID0gIWluQ29tcGF0TW9kZSgpOwotIAorICAgIAor
ICAgIGlmIChpbkNvbXBhdE1vZGUoKSAhPSB3YXNJbkNvbXBhdE1vZGUpCisgICAgICAgIHVwZGF0
ZVN0eWxlU2VsZWN0b3IoKTsKIH0KICAgICAKIH0KSW5kZXg6IGh0bWwvSFRNTERvY3VtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gaHRtbC9IVE1MRG9jdW1lbnQuaAkocmV2aXNpb24gMzAzODcpCisrKyBo
dG1sL0hUTUxEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2OSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0
IFN0cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRl
dGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmKTsKLQogICAgIHZvaWQgYWRkTmFtZWRJdGVt
KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVOYW1lZEl0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpOwpA
QCAtODIsNiArODAsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwq
LCBpbnQ+IE5hbWVDb3VudE1hcDsKIAogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJt
aW5lUGFyc2VNb2RlKCk7CisKK3ByaXZhdGU6CiAgICAgTmFtZUNvdW50TWFwIG5hbWVkSXRlbUNv
dW50czsKICAgICBOYW1lQ291bnRNYXAgZG9jRXh0cmFOYW1lZEl0ZW1Db3VudHM7CiB9OwpJbmRl
eDogaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MTWFwRWxl
bWVudC5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgwLDE0ICs4MCwxNCBAQCB2b2lkIEhUTUxNYXBFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBpZEF0dHIpIHsKICAgICAg
ICAgICAgIC8vIENhbGwgYmFzZSBjbGFzcyBzbyB0aGF0IGhhc0lEIGJpdCBnZXRzIHNldC4KICAg
ICAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKLSAgICAg
ICAgICAgIGlmIChkb2MtPmh0bWxNb2RlKCkgIT0gRG9jdW1lbnQ6OlhIdG1sKQorICAgICAgICAg
ICAgaWYgKGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgZG9jLT5yZW1vdmVJbWFnZU1hcCh0aGlzKTsKICAgICAgICAgU3Ry
aW5nIG1hcE5hbWUgPSBhdHRyLT52YWx1ZSgpOwogICAgICAgICBpZiAobWFwTmFtZVswXSA9PSAn
IycpCiAgICAgICAgICAgICBtYXBOYW1lID0gbWFwTmFtZS5zdWJzdHJpbmcoMSk7Ci0gICAgICAg
IG1fbmFtZSA9IGRvYy0+aHRtbE1vZGUoKSA9PSBEb2N1bWVudDo6WEh0bWwgPyBtYXBOYW1lIDog
bWFwTmFtZS5sb3dlcigpOworICAgICAgICBtX25hbWUgPSBkb2MtPmlzSFRNTERvY3VtZW50KCkg
PyBtYXBOYW1lLmxvd2VyKCkgOiBtYXBOYW1lOwogICAgICAgICBkb2MtPmFkZEltYWdlTWFwKHRo
aXMpOwogICAgIH0gZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CkluZGV4OiBodG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGh0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1M
UGFyYW1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCB2b2lkIEhU
TUxQYXJhbUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmliCiAgICAgaWYgKGF0dHItPm5hbWUoKSA9
PSBpZEF0dHIpIHsKICAgICAgICAgLy8gTXVzdCBjYWxsIGJhc2UgY2xhc3Mgc28gdGhhdCBoYXNJ
RCBiaXQgZ2V0cyBzZXQuCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKLSAgICAgICAgaWYgKGRvY3VtZW50KCktPmh0bWxNb2RlKCkgIT0gRG9jdW1lbnQ6
OlhIdG1sKQorICAgICAgICBpZiAoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgbV9uYW1lID0gYXR0ci0+dmFsdWUoKTsKICAgICB9IGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikgewpJbmRleDogaHRtbC9IVE1MUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxQYXJzZXIuY3BwCShyZXZpc2lvbiAzMDM4NykK
KysrIGh0bWwvSFRNTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxEb2N1bWVudC5oIgpAQCAtMjcxLDYgKzI3MiwxNiBAQCBQYXNzUmVmUHRyPE5vZGU+IEhU
TUxQYXJzZXI6OnBhcnNlVG9rZW4oCiAgICAgcmV0dXJuIG47CiB9CiAKK3ZvaWQgSFRNTFBhcnNl
cjo6cGFyc2VEb2N0eXBlVG9rZW4oRG9jdHlwZVRva2VuKiB0KQoreworICAgIC8vIElnbm9yZSBh
bnkgZG9jdHlwZSBhZnRlciB0aGUgZmlyc3QuICBJZ25vcmUgZG9jdHlwZXMgaW4gZnJhZ21lbnRz
LgorICAgIGlmIChkb2N1bWVudC0+ZG9jdHlwZSgpIHx8IG1faXNQYXJzaW5nRnJhZ21lbnQgfHwg
Y3VycmVudCAhPSBkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAvLyBN
YWtlIGEgbmV3IGRvY3R5cGUgbm9kZSBhbmQgc2V0IGl0IGFzIG91ciBkb2N0eXBlLgorICAgIGRv
Y3VtZW50LT5hZGRDaGlsZChuZXcgRG9jdW1lbnRUeXBlKGRvY3VtZW50LCBTdHJpbmc6OmFkb3B0
KHQtPm1fbmFtZSksIFN0cmluZzo6YWRvcHQodC0+bV9wdWJsaWNJRCksIFN0cmluZzo6YWRvcHQo
dC0+bV9zeXN0ZW1JRCkpKTsKK30KKwogc3RhdGljIGJvb2wgaXNUYWJsZVNlY3Rpb24oTm9kZSog
bikKIHsKICAgICByZXR1cm4gbi0+aGFzVGFnTmFtZSh0Ym9keVRhZykgfHwgbi0+aGFzVGFnTmFt
ZSh0Zm9vdFRhZykgfHwgbi0+aGFzVGFnTmFtZSh0aGVhZFRhZyk7CkluZGV4OiBodG1sL0hUTUxQ
YXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxQYXJzZXIuaAkocmV2aXNpb24gMzAzODcp
CisrKyBodG1sL0hUTUxQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3R5cGVUb2tlbjsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKQEAgLTU3
LDYgKzU4LDkgQEAgcHVibGljOgogICAgICAqLwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gcGFyc2VU
b2tlbihUb2tlbiopOwogICAgIAorICAgIC8vIFBhcnNlcyBhIGRvY3R5cGUgdG9rZW4uCisgICAg
dm9pZCBwYXJzZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qKTsKKwogICAgIC8qKgogICAgICAq
IHRva2VuaXplciBzYXlzIGl0J3Mgbm90IGdvaW5nIHRvIGJlIHNlbmRpbmcgdXMgYW55IG1vcmUg
dG9rZW5zCiAgICAgICovCkluZGV4OiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGh0bWwvSFRNTFRva2VuaXplci5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1M
VG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsOSBAQCBjb25zdCBkb3Vi
bGUgdG9rZW5pemVyVGltZURlbGF5ID0gMC41MDA7CiAjZW5kaWYKIAogc3RhdGljIGNvbnN0IGNo
YXIgY29tbWVudFN0YXJ0IFtdID0gIjwhLS0iOworc3RhdGljIGNvbnN0IGNoYXIgZG9jdHlwZVN0
YXJ0IFtdID0gIjwhZG9jdHlwZSI7CitzdGF0aWMgY29uc3QgY2hhciBwdWJsaWNTdGFydCBbXSA9
ICJwdWJsaWMiOworc3RhdGljIGNvbnN0IGNoYXIgc3lzdGVtU3RhcnQgW10gPSAic3lzdGVtIjsK
IHN0YXRpYyBjb25zdCBjaGFyIHNjcmlwdEVuZCBbXSA9ICI8L3NjcmlwdCI7CiBzdGF0aWMgY29u
c3QgY2hhciB4bXBFbmQgW10gPSAiPC94bXAiOwogc3RhdGljIGNvbnN0IGNoYXIgc3R5bGVFbmQg
W10gPSAgIjwvc3R5bGUiOwpAQCAtMjIyLDYgKzIyNSw5IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6
cmVzZXQoKQogICAgIG1fc3RhdGUuc2V0Rm9yY2VTeW5jaHJvbm91cyhmYWxzZSk7CiAKICAgICBj
dXJyVG9rZW4ucmVzZXQoKTsKKyAgICBtX2RvY3R5cGVUb2tlbi5yZXNldCgpOworICAgIG1fZG9j
dHlwZVNlYXJjaENvdW50ID0gMDsKKyAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9
IDA7CiB9CiAKIHZvaWQgSFRNTFRva2VuaXplcjo6YmVnaW4oKQpAQCAtODQ0LDYgKzg1MCwyMjIg
QEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgIHJldHVybiBz
dGF0ZTsKIH0KIAorSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VEb2N0
eXBlKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoc3Rh
dGUuaW5Eb2N0eXBlKCkpOworICAgIHdoaWxlICghc3JjLmlzRW1wdHkoKSAmJiBzdGF0ZS5pbkRv
Y3R5cGUoKSkgeworICAgICAgICBVQ2hhciBjID0gKnNyYzsKKyAgICAgICAgYm9vbCBpc1doaXRl
c3BhY2UgPSBjID09ICdccicgfHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1x0JyB8fCBjID09ICcgJzsK
KyAgICAgICAgc3dpdGNoIChtX2RvY3R5cGVUb2tlbi5zdGF0ZSgpKSB7CisgICAgICAgICAgICBj
YXNlIERvY3R5cGVCZWdpbjogeworICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0
YXRlKERvY3R5cGVCZWZvcmVOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNl
KSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y2FzZSBEb2N0eXBlQmVmb3JlTmFtZTogeworICAgICAgICAgICAgICAgIGlmIChjID09ICc+Jykg
eworICAgICAgICAgICAgICAgICAgICAvLyBNYWxmb3JtZWQuICBKdXN0IGV4aXQuCisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0
eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgewor
ICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBl
TmFtZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjYXNlIERvY3R5cGVOYW1lOiB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQuCisgICAgICAgICAg
ICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vz
c0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaGl0ZXNwYWNl
KSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50ID0gMDsgLy8gVXNl
ZCBub3cgdG8gc2NhbiBmb3IgUFVCTElDCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNl
Y29uZGFyeVNlYXJjaENvdW50ID0gMDsgLy8gVXNlZCBub3cgdG8gc2NhbiBmb3IgU1lTVEVNCisg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVBZnRlck5h
bWUpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9uYW1lLmFwcGVuZChj
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjYXNlIERvY3R5cGVBZnRlck5hbWU6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9
PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVmFsaWQgZG9jdHlwZS4gRW1pdCBpdC4K
KyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAg
ICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgh
aXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5l
d2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihjKSA9PSBwdWJs
aWNTdGFydFttX2RvY3R5cGVTZWFyY2hDb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVNlYXJjaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9k
b2N0eXBlU2VhcmNoQ291bnQgPT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
b3VuZCAnUFVCTElDJyBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9j
dHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCZWZvcmVQdWJsaWNJRCk7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPiAwKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKHRvQVNDSUlMb3dlcihjKSA9PSBzeXN0ZW1TdGFydFttX2Rv
Y3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQgPT0gNikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGb3VuZCAnU1lTVEVNJyBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCZWZvcmVTeXN0ZW1JRCk7
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAg
ICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2Uo
bV9saW5lTnVtYmVyKTsgLy8gV2hpdGVzcGFjZSBrZWVwcyB1cyBpbiB0aGUgYWZ0ZXIgbmFtZSBz
dGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZvcmVQdWJsaWNJRDogeworICAgICAgICAgICAgICAg
IGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRxdW90
ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7CisgICAgICAgICAgICAg
ICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVQdWJsaWNJRCk7CisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnNpZGVyZWQgYm9ndXMu
ICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2
YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9j
dHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmll
d1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1f
c291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZVB1Ymxp
Y0lEOiB7CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdcIicgJiYgdHF1b3RlID09IERvdWJs
ZVF1b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVRdW90ZSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJQdWJsaWNJRCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgLy8gQ29u
c2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAgICAgICAg
ICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmll
d1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9r
ZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVUb2tlbi5tX3B1YmxpY0lELmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgc3Jj
LmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1Nv
dXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291
cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRlclB1YmxpY0lEOgor
ICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xlUXVvdGU7
CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVTeXN0
ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFZh
bGlkIGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluRG9jdHlw
ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAg
ICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlQmVmb3JlU3lzdGVtSUQ6
CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBjID09ICdcJycpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91YmxlUXVvdGUgOiBTaW5nbGVRdW90
ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZVN5
c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgp
OworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8g
Q29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAgICAg
ICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVO
dW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tl
bi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBEb2N0eXBlU3lzdGVtSUQ6CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdc
IicgJiYgdHF1b3RlID09IERvdWJsZVF1b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBT
aW5nbGVRdW90ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0
eXBlQWZ0ZXJTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VN
b2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5h
cHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAg
ICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRv
Y3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3N5c3RlbUlELmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRlclN5c3Rl
bUlEOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAg
ICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0IG5vdy4KKyAgICAgICAgICAgICAgICAgICAgc3Jj
LmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJ
bkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2Vu
KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9j
dHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlwZUJvZ3VzKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jdHlwZUJvZ3VzOgor
ICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBE
b25lIHdpdGggdGhlIGJvZ3VzIGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0
eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlKG1fbGluZU51
bWJlcik7IC8vIEp1c3Qga2VlcCBzY2FubmluZyBmb3IgJz4nCisgICAgICAgICAgICAgICAgICAg
IGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5
cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3RhdGU7Cit9CisKIEhUTUxUb2tlbml6
ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNlZ21lbnRlZFN0cmluZyAmc3JjLCBT
dGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoIXN0YXRlLmhhc0VudGl0eVN0YXRlKCkpOwpAQCAt
ODYyLDE5ICsxMDg0LDEyIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBh
cnMKICAgICAgICAgfQogICAgICAgICBjYXNlIFRhZ05hbWU6CiAgICAgICAgIHsKLSNpZiBkZWZp
bmVkKFRPS0VOX0RFQlVHKSAmJiBUT0tFTl9ERUJVRyA+IDEKLSAgICAgICAgICAgIHFEZWJ1Zygi
VGFnTmFtZSIpOwotI2VuZGlmCi0gICAgICAgICAgICBpZiAoc2VhcmNoQ291bnQgPiAwKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICgqc3JjID09IGNvbW1lbnRTdGFydFtzZWFy
Y2hDb3VudF0pCi0gICAgICAgICAgICAgICAgeworICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50
ID4gMCkgeworICAgICAgICAgICAgICAgIGlmICgqc3JjID09IGNvbW1lbnRTdGFydFtzZWFyY2hD
b3VudF0pIHsKICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ291bnQrKzsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHNlYXJjaENvdW50ID09IDQpCi0gICAgICAgICAgICAgICAgICAgIHsKLSNp
ZmRlZiBUT0tFTl9ERUJVRwotICAgICAgICAgICAgICAgICAgICAgICAga2REZWJ1ZyggNjAzNiAp
IDw8ICJGb3VuZCBjb21tZW50IiA8PCBlbmRsOwotI2VuZGlmCisgICAgICAgICAgICAgICAgICAg
IGlmIChzZWFyY2hDb3VudCA9PSAyKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBl
U2VhcmNoQ291bnQrKzsgLy8gQSAnIScgaXMgYWxzbyBwYXJ0IG9mIGEgZG9jdHlwZSwgc28gd2Ug
YXJlIG1vdmluZyB0aHJvdWdoIHRoYXQgc3RpbGwgYXMgd2VsbC4KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHNlYXJjaENvdW50ID09IDQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZv
dW5kICc8IS0tJyBzZXF1ZW5jZQogICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQ
YXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCA9IGJ1ZmZlcjsg
Ly8gaWdub3JlIHRoZSBwcmV2aW91cyBwYXJ0IG9mIHRoaXMgdGFnCkBAIC04ODUsMTIgKzExMDAs
MTEgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gPCEtLT4gYXMgYSB2YWxpZCBjb21tZW50LCBzaW5jZSBib3RoIG1v
emlsbGEgYW5kIElFIG9uIHdpbmRvd3MKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbiBo
YW5kbGUgdGhpcyBjYXNlLiAgT25seSBkbyB0aGlzIGluIHF1aXJrcyBtb2RlLiAtZHdoCiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIXNyYy5pc0VtcHR5KCkgJiYgKnNyYyA9PSAnPicgJiYg
bV9kb2MtPmluQ29tcGF0TW9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl
LnNldEluQ29tbWVudChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY0J1ZmZlcltjQnVmZmVy
UG9zKytdID0gKnNyYzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkNv
bW1lbnQoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFz
dE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNyYy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBv
cysrXSA9ICpzcmM7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZUNvbW1lbnQoc3JjLCBzdGF0ZSk7CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNCdWZmZXJQb3M7CkBAIC04OTksOSAr
MTExMywzMCBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzCiAgICAg
ICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7CiAgICAgICAgICAg
ICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNl
YXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCEtLScgc2VxdWVuY2UKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1fZG9jdHlwZVNlYXJjaENv
dW50ID4gMCkgeworICAgICAgICAgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoKnNyYykgPT0gZG9j
dHlwZVN0YXJ0W21fZG9jdHlwZVNlYXJjaENvdW50XSkgeworICAgICAgICAgICAgICAgICAgICBt
X2RvY3R5cGVTZWFyY2hDb3VudCsrOworICAgICAgICAgICAgICAgICAgICBjQnVmZmVyW2NCdWZm
ZXJQb3MrK10gPSAqc3JjOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25O
ZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVTZWFyY2hDb3VudCA9
PSA5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnPCFET0NUWVBFJyBzZXF1
ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKHRydWUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0VGFnU3RhdGUoTm9UYWcpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ucmVzZXQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGNCdWZmZXIsIGNCdWZmZXJQb3Mp
OworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZURvY3R5cGUoc3JjLCBzdGF0
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2NCdWZmZXJQb3MgPSBjQnVmZmVyUG9zOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMDsgLy8g
U3RvcCBsb29raW5nIGZvciAnPCEtLScgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgbV9k
b2N0eXBlU2VhcmNoQ291bnQgPSAwOyAvLyBTdG9wIGxvb2tpbmcgZm9yICc8IURPQ1RZUEUnIHNl
cXVlbmNlCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgZmluaXNoID0gZmFsc2U7
CkBAIC0xNDAzLDYgKzE2MzgsOCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNl
Z21lbnRlCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7
CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkNvbW1lbnQoKSkKICAgICAgICAgICAgICAg
ICBzdGF0ZSA9IHBhcnNlQ29tbWVudChzcmMsIHN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KHN0YXRlLmluRG9jdHlwZSgpKQorICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VEb2N0eXBl
KHNyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5TZXJ2ZXIoKSkKICAg
ICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU2VydmVyKHNyYywgc3RhdGUpOwogICAgICAgICAg
ICAgZWxzZSBpZiAoc3RhdGUuaW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSkKQEAgLTE0MTYsOSAr
MTY1Myw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGUKICAgICAg
ICAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgY2FzZSAnISc6IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gPCEtLSBjb21tZW50
IC0tPgotICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3VudCA9IDE7IC8vIExvb2sgZm9yICc8
IS0tJyBzZXF1ZW5jZSB0byBzdGFydCBjb21tZW50Ci0gICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICAvLyA8IS0tIGNvbW1lbnQgLS0+IG9yIDwhRE9DVFlQRSAuLi4+Cisg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMTsgLy8gTG9vayBmb3IgJzwhLS0nIHNl
cXVlbmNlIHRvIHN0YXJ0IGNvbW1lbnQgb3IgJzwhRE9DVFlQRScgc2VxdWVuY2UgdG8gc3RhcnQg
ZG9jdHlwZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9IDE7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBjYXNlICc/JzogewpAQCAtMTU2NCw3ICsxODAxLDcgQEAgdm9pZCBIVE1MVG9rZW5pemVy
OjplbmQoKQogdm9pZCBIVE1MVG9rZW5pemVyOjpmaW5pc2goKQogewogICAgIC8vIGRvIHRoaXMg
YXMgbG9uZyBhcyB3ZSBkb24ndCBmaW5kIG1hdGNoaW5nIGNvbW1lbnQgZW5kcwotICAgIHdoaWxl
KChtX3N0YXRlLmluQ29tbWVudCgpIHx8IG1fc3RhdGUuaW5TZXJ2ZXIoKSkgJiYgc2NyaXB0Q29k
ZSAmJiBzY3JpcHRDb2RlU2l6ZSkgeworICAgIHdoaWxlICgobV9zdGF0ZS5pbkNvbW1lbnQoKSB8
fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUgJiYgc2NyaXB0Q29kZVNpemUpIHsK
ICAgICAgICAgLy8gd2UndmUgZm91bmQgYW4gdW5tYXRjaGVkIGNvbW1lbnQgc3RhcnQKICAgICAg
ICAgaWYgKG1fc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICBicm9rZW5Db21tZW50cyA9
IHRydWU7CkBAIC0xNjMzLDYgKzE4NzAsMTQgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MVG9rZW5p
emVyOjpwcm9jZXNzVAogICAgIHJldHVybiBuLnJlbGVhc2UoKTsKIH0KIAordm9pZCBIVE1MVG9r
ZW5pemVyOjpwcm9jZXNzRG9jdHlwZVRva2VuKCkKK3sKKyAgICBpZiAoaW5WaWV3U291cmNlTW9k
ZSgpKQorICAgICAgICBzdGF0aWNfY2FzdDxIVE1MVmlld1NvdXJjZURvY3VtZW50Kj4obV9kb2Mp
LT5hZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKCZtX2RvY3R5cGVUb2tlbik7CisgICAgZWxzZQor
ICAgICAgICBwYXJzZXItPnBhcnNlRG9jdHlwZVRva2VuKCZtX2RvY3R5cGVUb2tlbik7Cit9CisK
IEhUTUxUb2tlbml6ZXI6On5IVE1MVG9rZW5pemVyKCkKIHsKICAgICBBU1NFUlQoIWluV3JpdGUp
OwpJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MVG9r
ZW5pemVyLmgJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1MVG9rZW5pemVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTgzLDYgKzgzLDQ0IEBAIHB1YmxpYzoKICAgICBPd25QdHI8VmVjdG9yPFVD
aGFyPiA+IG1fc291cmNlSW5mbzsKIH07CiAKK2VudW0gRG9jdHlwZVN0YXRlIHsKKyAgICBEb2N0
eXBlQmVnaW4sCisgICAgRG9jdHlwZUJlZm9yZU5hbWUsCisgICAgRG9jdHlwZU5hbWUsCisgICAg
RG9jdHlwZUFmdGVyTmFtZSwKKyAgICBEb2N0eXBlQmVmb3JlUHVibGljSUQsCisgICAgRG9jdHlw
ZVB1YmxpY0lELAorICAgIERvY3R5cGVBZnRlclB1YmxpY0lELAorICAgIERvY3R5cGVCZWZvcmVT
eXN0ZW1JRCwKKyAgICBEb2N0eXBlU3lzdGVtSUQsCisgICAgRG9jdHlwZUFmdGVyU3lzdGVtSUQs
CisgICAgRG9jdHlwZUJvZ3VzCit9OworCitjbGFzcyBEb2N0eXBlVG9rZW4geworcHVibGljOgor
ICAgIERvY3R5cGVUb2tlbigpIHt9CisgICAgCisgICAgdm9pZCByZXNldCgpCisgICAgeworICAg
ICAgICBtX25hbWUuY2xlYXIoKTsKKyAgICAgICAgbV9wdWJsaWNJRC5jbGVhcigpOworICAgICAg
ICBtX3N5c3RlbUlELmNsZWFyKCk7CisgICAgICAgIG1fc3RhdGUgPSBEb2N0eXBlQmVnaW47Cisg
ICAgICAgIG1fc291cmNlLmNsZWFyKCk7CisgICAgfQorCisgICAgRG9jdHlwZVN0YXRlIHN0YXRl
KCkgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQgc2V0U3RhdGUoRG9jdHlwZVN0YXRlIHMp
IHsgbV9zdGF0ZSA9IHM7IH0KKworICAgIFZlY3RvcjxVQ2hhcj4gbV9uYW1lOworICAgIFZlY3Rv
cjxVQ2hhcj4gbV9wdWJsaWNJRDsKKyAgICBWZWN0b3I8VUNoYXI+IG1fc3lzdGVtSUQ7CisgICAg
RG9jdHlwZVN0YXRlIG1fc3RhdGU7CisgICAgCisgICAgVmVjdG9yPFVDaGFyPiBtX3NvdXJjZTsK
K307CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogY2xhc3MgSFRNTFRva2VuaXplciA6IHB1
YmxpYyBUb2tlbml6ZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CkBAIC0xMTgsMTAg
KzE1NiwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kKCk7CiAKICAgICB2b2lkIHJlc2V0KCk7
CisKICAgICBQYXNzUmVmUHRyPE5vZGU+IHByb2Nlc3NUb2tlbigpOworICAgIHZvaWQgcHJvY2Vz
c0RvY3R5cGVUb2tlbigpOwogCiAgICAgU3RhdGUgcHJvY2Vzc0xpc3RpbmcoU2VnbWVudGVkU3Ry
aW5nLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VDb21tZW50KFNlZ21lbnRlZFN0cmluZyYsIFN0
YXRlKTsKKyAgICBTdGF0ZSBwYXJzZURvY3R5cGUoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwog
ICAgIFN0YXRlIHBhcnNlU2VydmVyKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0
ZSBwYXJzZVRleHQoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlU3Bl
Y2lhbChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CkBAIC0yMjAsNiArMjYxLDggQEAgcHJpdmF0
ZToKICAgICAgICAgdm9pZCBzZXRJblByb2Nlc3NpbmdJbnN0cnVjdGlvbihib29sIHYpIHsgcmV0
dXJuIHNldEJpdChJblByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgdik7IH0KICAgICAgICAgYm9vbCBp
bkNvbW1lbnQoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEluQ29tbWVudCk7IH0KICAgICAgICAg
dm9pZCBzZXRJbkNvbW1lbnQoYm9vbCB2KSB7IHNldEJpdChJbkNvbW1lbnQsIHYpOyB9CisgICAg
ICAgIGJvb2wgaW5Eb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJbkRvY3R5cGUpOyB9
CisgICAgICAgIHZvaWQgc2V0SW5Eb2N0eXBlKGJvb2wgdikgeyBzZXRCaXQoSW5Eb2N0eXBlLCB2
KTsgfQogICAgICAgICBib29sIGluVGV4dEFyZWEoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KElu
VGV4dEFyZWEpOyB9CiAgICAgICAgIHZvaWQgc2V0SW5UZXh0QXJlYShib29sIHYpIHsgc2V0Qml0
KEluVGV4dEFyZWEsIHYpOyB9CiAgICAgICAgIGJvb2wgZXNjYXBlZCgpIGNvbnN0IHsgcmV0dXJu
IHRlc3RCaXQoRXNjYXBlZCk7IH0KQEAgLTI0Myw3ICsyODYsNyBAQCBwcml2YXRlOgogICAgICAg
ICBib29sIGhhc1RhZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVGFnTWFzazsgfQog
ICAgICAgICBib29sIGhhc0VudGl0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgRW50
aXR5TWFzazsgfQogCi0gICAgICAgIGJvb2wgbmVlZHNTcGVjaWFsV3JpdGVIYW5kbGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4
dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUgfCBUYWdNYXNrIHwgRW50aXR5TWFzayB8IEluUGxh
aW5UZXh0IHwgSW5Db21tZW50IHwgSW5TZXJ2ZXIgfCBJblByb2Nlc3NpbmdJbnN0cnVjdGlvbiB8
IFN0YXJ0VGFnKTsgfQorICAgICAgICBib29sIG5lZWRzU3BlY2lhbFdyaXRlSGFuZGxpbmcoKSBj
b25zdCB7IHJldHVybiBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRl
eHRBcmVhIHwgSW5UaXRsZSB8IEluSUZyYW1lIHwgVGFnTWFzayB8IEVudGl0eU1hc2sgfCBJblBs
YWluVGV4dCB8IEluQ29tbWVudCB8IEluRG9jdHlwZSB8IEluU2VydmVyIHwgSW5Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24gfCBTdGFydFRhZyk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRp
YyBjb25zdCBpbnQgRW50aXR5U2hpZnQgPSA0OwpAQCAtMjY3LDcgKzMxMCw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBBbGxvd1lpZWxkID0gMSA8PCAyMSwKICAgICAgICAgICAgIExvYWRpbmdF
eHRTY3JpcHQgPSAxIDw8IDIyLAogICAgICAgICAgICAgRm9yY2VTeW5jaHJvbm91cyA9IDEgPDwg
MjMsCi0gICAgICAgICAgICBJbklGcmFtZSA9IDEgPDwgMjQKKyAgICAgICAgICAgIEluSUZyYW1l
ID0gMSA8PCAyNCwKKyAgICAgICAgICAgIEluRG9jdHlwZSA9IDEgPDwgMjUKICAgICAgICAgfTsK
IAogICAgICAgICB2b2lkIHNldEJpdChTdGF0ZUJpdHMgYml0LCBib29sIHZhbHVlKQpAQCAtMjgz
LDYgKzMyNywxMCBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBTdGF0ZSBtX3N0YXRlOworICAg
IAorICAgIERvY3R5cGVUb2tlbiBtX2RvY3R5cGVUb2tlbjsKKyAgICBpbnQgbV9kb2N0eXBlU2Vh
cmNoQ291bnQ7CisgICAgaW50IG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50OwogCiAgICAg
Ym9vbCBicm9rZW5TZXJ2ZXI7CiAKQEAgLTMwMCwxNCArMzQ4LDE0IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBTdG9yZXMgY2hhcmFjdGVycyBpZiB3ZSBhcmUgc2Nhbm5pbmcgZm9yIGEgc3RyaW5nIGxp
a2UgIjwvc2NyaXB0PiIKICAgICBVQ2hhciBzZWFyY2hCdWZmZXJbMTBdOworICAgIAogICAgIC8v
IENvdW50cyB3aGVyZSB3ZSBhcmUgaW4gdGhlIHN0cmluZyB3ZSBhcmUgc2Nhbm5pbmcgZm9yCiAg
ICAgaW50IHNlYXJjaENvdW50OwotICAgIC8vIFRoZSBzdHJpbmcgd2UgYXJlIHNlYXJjaGluZyBm
b3IKLSAgICBjb25zdCBVQ2hhciogc2VhcmNoRm9yOwogICAgIC8vIHRoZSBzdG9wcGVyIHN0cmlu
ZwogICAgIGNvbnN0IGNoYXIqIHNlYXJjaFN0b3BwZXI7CiAgICAgLy8gdGhlIHN0b3BwZXIgbGVu
CiAgICAgaW50IHNlYXJjaFN0b3BwZXJMZW47CisgICAgCiAgICAgLy8gaWYgbm8gbW9yZSBkYXRh
IGlzIGNvbWluZywganVzdCBwYXJzZSB3aGF0IHdlIGhhdmUgKGluY2x1ZGluZyBleHQgc2NyaXB0
cyB0aGF0CiAgICAgLy8gbWF5IGJlIHN0aWxsIGRvd25sb2FkaW5nKSBhbmQgZmluaXNoCiAgICAg
Ym9vbCBub01vcmVEYXRhOwpJbmRleDogaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAz
MDM4NykKKysrIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwOCw5ICsxMDgsNyBAQCB2b2lkIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFZpZXdT
b3VyCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAvLyBIYW5kbGUgdGhlIHRhZy4K
LSAgICAgICAgYm9vbCBkb2N0eXBlID0gdG9rZW4tPnRhZ05hbWUuc3RhcnRzV2l0aCgiIURPQ1RZ
UEUiLCBmYWxzZSk7Ci0gICAgICAgIAotICAgICAgICBTdHJpbmcgY2xhc3NOYW1lU3RyID0gZG9j
dHlwZSA/ICJ3ZWJraXQtaHRtbC1kb2N0eXBlIiA6ICJ3ZWJraXQtaHRtbC10YWciOworICAgICAg
ICBTdHJpbmcgY2xhc3NOYW1lU3RyID0gIndlYmtpdC1odG1sLXRhZyI7CiAgICAgICAgIG1fY3Vy
cmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKGNsYXNzTmFtZVN0cik7CiAKICAgICAgICAgU3Ry
aW5nIHRleHQgPSAiPCI7CkBAIC0xNDUsMjggKzE0MywyMSBAQCB2b2lkIEhUTUxWaWV3U291cmNl
RG9jdW1lbnQ6OmFkZFZpZXdTb3VyCiAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3VpZGUtPmF0KGkpID09ICdhJykgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gYXR0ci0+bmFtZSgpLnRvU3RyaW5n
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3R5cGUpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQobmFtZSwgIndlYmtpdC1odG1sLWRvY3R5cGUi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoIndlYmtpdC1o
dG1sLWF0dHJpYnV0ZS1uYW1lIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFk
ZFRleHQobmFtZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgIT0gbV90Ym9keSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQq
PihtX2N1cnJlbnQtPnBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1u
YW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkVGV4dChuYW1lLCAid2Via2l0
LWh0bWwtYXR0cmlidXRlLW5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bV9jdXJyZW50ICE9IG1fdGJvZHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Y3VycmVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBhcmVudCgpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nIHZhbHVlID0gYXR0ci0+dmFsdWUoKS5kb21TdHJpbmcoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZG9jdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkVGV4dCh2YWx1ZSwgIndlYmtpdC1odG1sLWRvY3R5cGUiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFhNTCBjb3VsZCB1c2UgbmFtZXNwYWNlIHByZWZpeGVzIGFuZCBjb25mdXNlIHVz
LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
YXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpLCAic3JjIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoYXR0
ci0+bmFtZSgpLmxvY2FsTmFtZSgpLCAiaHJlZiIpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkTGluayh2YWx1ZSwgZXF1YWxJZ25vcmluZ0Nhc2Uo
dG9rZW4tPnRhZ05hbWUsICJhIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBhZGRT
cGFuV2l0aENsYXNzTmFtZSgid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQodmFsdWUsICJ3ZWJraXQtaHRtbC1hdHRy
aWJ1dGUtdmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3Vy
cmVudCAhPSBtX3Rib2R5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9j
dXJyZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1fY3VycmVudC0+cGFyZW50KCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogWE1MIGNvdWxkIHVzZSBuYW1lc3BhY2UgcHJlZml4ZXMgYW5kIGNvbmZ1c2UgdXMu
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGF0dHIt
Pm5hbWUoKS5sb2NhbE5hbWUoKSwgInNyYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGF0dHItPm5h
bWUoKS5sb2NhbE5hbWUoKSwgImhyZWYiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9jdXJyZW50ID0gYWRkTGluayh2YWx1ZSwgZXF1YWxJZ25vcmluZ0Nhc2UodG9rZW4tPnRh
Z05hbWUsICJhIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUo
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFkZFRleHQodmFsdWUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJyZW50ICE9IG1fdGJvZHkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQq
PihtX2N1cnJlbnQtPnBhcmVudCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTE4NCw2ICsxNzUsMTcgQEAg
dm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291cgogICAgIH0KIH0KIAordm9p
ZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKERvY3R5
cGVUb2tlbiogZG9jdHlwZVRva2VuKQoreworICAgIGlmICghbV9jdXJyZW50KQorICAgICAgICBj
cmVhdGVDb250YWluaW5nVGFibGUoKTsKKyAgICBtX2N1cnJlbnQgPSBhZGRTcGFuV2l0aENsYXNz
TmFtZSgid2Via2l0LWh0bWwtZG9jdHlwZSIpOworICAgIFN0cmluZyB0ZXh0ID0gIjwiOworICAg
IHRleHQgKz0gU3RyaW5nOjphZG9wdChkb2N0eXBlVG9rZW4tPm1fc291cmNlKTsKKyAgICB0ZXh0
ICs9ICI+IjsKKyAgICBhZGRUZXh0KHRleHQsICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7Cit9CisK
IEVsZW1lbnQqIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFNwYW5XaXRoQ2xhc3NOYW1lKGNv
bnN0IFN0cmluZyYgY2xhc3NOYW1lKQogewogICAgIGlmIChtX2N1cnJlbnQgPT0gbV90Ym9keSkg
ewpJbmRleDogaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRt
bC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmgJKHJldmlzaW9uIDMwMzg3KQorKysgaHRtbC9IVE1M
Vmlld1NvdXJjZURvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N0eXBlVG9rZW47CiBjbGFzcyBUb2tlbjsK
IAogY2xhc3MgSFRNTFZpZXdTb3VyY2VEb2N1bWVudCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQKQEAg
LTM5LDcgKzQwLDggQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgYWRkVmlld1NvdXJjZVRva2Vu
KFRva2VuKik7IC8vIFVzZWQgYnkgdGhlIEhUTUwgdG9rZW5pemVyLgogICAgIHZvaWQgYWRkVmll
d1NvdXJjZVRleHQoY29uc3QgU3RyaW5nJik7IC8vIFVzZWQgYnkgdGhlIHBsYWludGV4dCB0b2tl
bml6ZXIuCi0gICAgCisgICAgdm9pZCBhZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKERvY3R5cGVU
b2tlbiopOworCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQ29udGFpbmluZ1RhYmxlKCk7CiAg
ICAgRWxlbWVudCogYWRkU3BhbldpdGhDbGFzc05hbWUoY29uc3QgU3RyaW5nJik7CkluZGV4OiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHJldmlzaW9uIDMwMzg3KQorKysgbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTkwLDcgKzk5MCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OndyaXRlKGNvbnN0IGNo
YXIqIHN0ciwKIAogICAgIGlmICghbV9yZWNlaXZlZERhdGEpIHsKICAgICAgICAgbV9yZWNlaXZl
ZERhdGEgPSB0cnVlOwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kZXRlcm1pbmVQYXJz
ZU1vZGUoZGVjb2RlZCk7CiAgICAgICAgIGlmIChtX2RlY29kZXItPmVuY29kaW5nKCkudXNlc1Zp
c3VhbE9yZGVyaW5nKCkpCiAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRWaXN1
YWxseU9yZGVyZWQoKTsKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVjYWxjU3R5bGUo
Tm9kZTo6Rm9yY2UpOwpAQCAtNDgxMCw3ICs0ODA5LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3dp
dGNoT3V0TG93QmFuZHdpZHRoRAogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NvdXJjZUluTG93
QmFuZHdpZHRoRGlzcGxheS5sZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8vIHNldCBjYWNo
ZVBvbGljeSB0byBDYWNoZSB0byB1c2UgdGhlIGxvYWRlZCByZXNvdXJjZQogICAgICAgICAgICAg
ICAgIG5ld0RvYy0+ZG9jTG9hZGVyKCktPnNldENhY2hlUG9saWN5KENhY2hlUG9saWN5Q2FjaGUp
OwotICAgICAgICAgICAgICAgIG5ld0RvYy0+ZGV0ZXJtaW5lUGFyc2VNb2RlKG1fcGVuZGluZ1Nv
dXJjZUluTG93QmFuZHdpZHRoRGlzcGxheSk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZGVjb2Rl
ci0+ZW5jb2RpbmcoKS51c2VzVmlzdWFsT3JkZXJpbmcoKSkKICAgICAgICAgICAgICAgICAgICAg
bmV3RG9jLT5zZXRWaXN1YWxseU9yZGVyZWQoKTsgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIG5ld0RvYy0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOyAgICAgICAgICAgICAg
ICAKSW5kZXg6IHBhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuY3BwCShy
ZXZpc2lvbiAzMDM4NykKKysrIHBhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjkw
LDcgKzE2OTAsNyBAQCB2b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KCkKIFN0cmlu
ZyBGcmFtZTo6ZG9jdW1lbnRUeXBlU3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAoRG9jdW1lbnQg
KmRvYyA9IGRvY3VtZW50KCkpCi0gICAgICAgIGlmIChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBk
b2MtPnJlYWxEb2NUeXBlKCkpCisgICAgICAgIGlmIChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBk
b2MtPmRvY3R5cGUoKSkKICAgICAgICAgICAgIHJldHVybiBkb2N0eXBlLT50b1N0cmluZygpOwog
CiAgICAgcmV0dXJuIFN0cmluZygpOwpJbmRleDogcGFnZS9pbnNwZWN0b3IvdXRpbGl0aWVzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHBhZ2UvaW5zcGVjdG9yL3V0aWxpdGllcy5qcwkocmV2aXNpb24gMzAz
ODcpCisrKyBwYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQy
NSw2ICs0MjUsMTggQEAgZnVuY3Rpb24gbm9kZURpc3BsYXlOYW1lKCkKIAogICAgICAgICBjYXNl
IE5vZGUuQ09NTUVOVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICI8IS0tIiArIHRoaXMubm9k
ZVZhbHVlICsgIi0tPiI7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5U
X1RZUEVfTk9ERToKKyAgICAgICAgICAgIHZhciBkb2NUeXBlID0gIjwhRE9DVFlQRSAiICsgdGhp
cy5ub2RlTmFtZTsKKyAgICAgICAgICAgIGlmICh0aGlzLnB1YmxpY0lkKSB7CisgICAgICAgICAg
ICAgICAgZG9jVHlwZSArPSAiIFBVQkxJQyBcIiIgKyB0aGlzLnB1YmxpY0lkICsgIlwiIjsKKyAg
ICAgICAgICAgICAgICBpZiAodGhpcy5zeXN0ZW1JZCkKKyAgICAgICAgICAgICAgICAgICAgZG9j
VHlwZSArPSAiIFwiIiArIHRoaXMuc3lzdGVtSWQgKyAiXCIiOworICAgICAgICAgICAgfSBlbHNl
IGlmICh0aGlzLnN5c3RlbUlkKQorICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBTWVNURU0g
XCIiICsgdGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5h
bFN1YnNldCkKKyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIgWyIgKyB0aGlzLmludGVybmFs
U3Vic2V0ICsgIl0iOworICAgICAgICAgICAgcmV0dXJuIGRvY1R5cGUgKyAiPiI7CiAgICAgfQog
CiAgICAgcmV0dXJuIHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5jb2xsYXBzZVdoaXRlc3Bh
Y2UoKTsKQEAgLTY0Myw2ICs2NTUsMTggQEAgZnVuY3Rpb24gbm9kZVRpdGxlSW5mbyhoYXNDaGls
ZHJlbiwgbGluawogICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtp
dC1odG1sLWNvbW1lbnRcIj4mbHQ7IS0tIiArIHRoaXMubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSAr
ICItLSZndDs8L3NwYW4+IjsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgTm9k
ZS5ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFuIGNs
YXNzPVwid2Via2l0LWh0bWwtdGFnXCI+Jmx0OyFET0NUWVBFICIgKyB0aGlzLm5vZGVOYW1lOwor
ICAgICAgICAgICAgaWYgKHRoaXMucHVibGljSWQpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnRp
dGxlICs9ICIgUFVCTElDIFwiIiArIHRoaXMucHVibGljSWQgKyAiXCIiOworICAgICAgICAgICAg
ICAgIGlmICh0aGlzLnN5c3RlbUlkKQorICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9
ICIgXCIiICsgdGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRo
aXMuc3lzdGVtSWQpCisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFNZU1RFTSBcIiIg
KyB0aGlzLnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIGlmICh0aGlzLmludGVybmFsU3Vi
c2V0KQorICAgICAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBbIiArIHRoaXMuaW50ZXJuYWxT
dWJzZXQgKyAiXSI7CisgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7PC9zcGFuPiI7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGluZm8udGl0
bGUgPSB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNlKCkuZXNj
YXBlSFRNTCgpOwogICAgIH0KSW5kZXg6IHhtbC9YU0xUUHJvY2Vzc29yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSB4bWwvWFNMVFByb2Nlc3Nvci5jcHAJKHJldmlzaW9uIDMwMzg3KQorKysgeG1sL1hTTFRQ
cm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNyArMjU4LDYgQEAgUmVmUHRyPERv
Y3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVhdGVEbwogICAgICAgICByZXN1bHQtPnNldFVSTChv
d25lckRvY3VtZW50LT51cmwoKSk7CiAgICAgICAgIHJlc3VsdC0+c2V0QmFzZVVSTChvd25lckRv
Y3VtZW50LT5iYXNlVVJMKCkpOwogICAgIH0KLSAgICByZXN1bHQtPmRldGVybWluZVBhcnNlTW9k
ZShkb2N1bWVudFNvdXJjZSk7IC8vIE1ha2Ugc3VyZSB3ZSBwYXJzZSBpbiB0aGUgY29ycmVjdCBt
b2RlLgogICAgIAogICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVyID0gbmV3
IFRleHRSZXNvdXJjZURlY29kZXIoc291cmNlTUlNRVR5cGUpOwogICAgIGRlY29kZXItPnNldEVu
Y29kaW5nKHNvdXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/IFVURjhFbmNvZGluZygpIDogVGV4dEVu
Y29kaW5nKHNvdXJjZUVuY29kaW5nKSwgVGV4dFJlc291cmNlRGVjb2Rlcjo6RW5jb2RpbmdGcm9t
WE1MSGVhZGVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19235</attachid>
            <date>2008-02-20 13:16:40 -0800</date>
            <delta_ts>2008-02-20 14:25:34 -0800</delta_ts>
            <desc>doctype tests</desc>
            <filename>doctypeTests.diff</filename>
            <type>text/plain</type>
            <size>23317</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IGZhc3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRlci1jb21tZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWFmdGVyLWNvbW1lbnQuaHRtbAkocmV2aXNpb24g
MCkKKysrIGZhc3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRlci1jb21tZW50Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzIgQEAKKzwhLS0gQSBjb21tZW50IC0tPgorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKKyAgICAgICAgbG9nID0gZnVuY3Rpb24obXNnKQorICAgICAgICB7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1zZyArICJcbiIpKTsKKyAgICAgICAgfQorICAgIAorICAgICAg
ICBvbmxvYWQgPSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5kb2N0eXBlKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGFmdGVyIGEg
Y29tbWVudCB3YXMgbm90IGlnbm9yZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMOiBhIGRvY3R5cGUgYWZ0ZXIgYSBjb21tZW50IHdhcyBpZ25vcmVkLiIp
OworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSA9PSBkb2N1bWVudC5k
b2N0eXBlKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGFmdGVyIGEgY29t
bWVudCB3YXMgc2V0IGFzIHRoZSBzZWNvbmQgZWxlbWVudCBjb3JyZWN0bHkgYW5kIG5vdCBtb3Zl
ZCB0byBiZSB0aGUgZmlyc3QgY2hpbGQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMOiBhIGRvY3R5cGUgYWZ0ZXIgYSBjb21tZW50IHdhcyBub3Qgc2V0IGFz
IHRoZSBzZWNvbmQgZWxlbWVudCBjb3JyZWN0bHkuIik7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIFRoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgRG9j
dHlwZSBhZnRlciBhIGNvbW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQuLgor
ICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogZmFz
dC9kb2N0eXBlcy9kb2N0eXBlLWF0LWVuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3QvZG9jdHlw
ZXMvZG9jdHlwZS1hdC1lbmQuaHRtbAkocmV2aXNpb24gMCkKKysrIGZhc3QvZG9jdHlwZXMvZG9j
dHlwZS1hdC1lbmQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIGxvZyA9IGZ1bmN0aW9uKG1zZykKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtc2cgKyAiXG4iKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgb25sb2FkID0g
ZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWRvY3VtZW50LmRvY3R5cGUp
CisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBhIGRvY3R5cGUgYXQgdGhlIGVuZCBvZiB0aGUg
ZG9jdW1lbnQgd2FzIGlnbm9yZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgbG9nKCJGQUlMOiBhIGRvY3R5cGUgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2FzIG5v
dCBpZ25vcmVkLiIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICBUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBhIERvY3R5cGUgYXQgdGhlIGVuZCBvZiB0
aGUgZG9jdW1lbnQuCisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+Cis8IURPQ1RZUEUgSFRNTD4KSW5kZXg6IGZhc3QvZG9jdHlwZXMvZG9jdHlwZS1pbi1lbGVt
ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWluLWVsZW1lbnQu
aHRtbAkocmV2aXNpb24gMCkKKysrIGZhc3QvZG9jdHlwZXMvZG9jdHlwZS1pbi1lbGVtZW50Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBsb2cgPSBm
dW5jdGlvbihtc2cpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsg
IlxuIikpOworICAgICAgICB9CisgICAgCisgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5kb2N0eXBlKQorICAgICAgICAgICAg
ICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGluc2lkZSBhbiBFbGVtZW50IHdhcyBpZ25vcmVkLiIp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYSBkb2N0eXBl
IGluc2lkZSBhbiBFbGVtZW50IHdhcyBub3QgaWdub3JlZC4iKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPCFET0NUWVBFIEhUTUw+CisgICAgVGhpcyB0
ZXN0cyB0aGUgYmVoYXZpb3Igb2YgYSBEb2N0eXBlIGluc2lkZSBhbiBFbGVtZW50LgorICAgIDxw
cmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogZmFzdC9kb2N0
eXBlcy9kb2N0eXBlLXBhcnNpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3QvZG9j
dHlwZXMvZG9jdHlwZS1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIGZhc3Qv
ZG9jdHlwZXMvZG9jdHlwZS1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMDcgQEAKK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQ
QVNTOiB0aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERv
Y3R5cGUgd2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBT
dGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFz
IGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4K
K1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUg
RG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2Fz
IFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMg
YXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgQWxtb3N0IFN0YW5kYXJkcyBhcyBl
eHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBBbG1vc3QgU3RhbmRhcmRzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIEFsbW9zdCBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQu
CitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgQWxtb3N0IFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BB
U1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlw
ZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBh
cyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQ
QVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5
cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3Mg
YXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgor
UEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0
eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtz
IGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4K
K1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9j
dHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJr
cyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQu
CitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERv
Y3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWly
a3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVk
LgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBE
b2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVp
cmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3Rl
ZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUg
RG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1
aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0
ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhl
IERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBR
dWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRo
ZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMg
UXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBl
Y3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0
aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2Fz
IFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhw
ZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzog
dGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdh
cyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4
cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6
IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3
YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBl
eHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNT
OiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUg
d2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMg
ZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFT
UzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBl
IHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFz
IGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BB
U1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlw
ZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBh
cyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQ
QVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5
cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3Mg
YXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgor
UEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0
eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtz
IGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4K
K1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9j
dHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJr
cyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQu
CitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERv
Y3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWly
a3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRo
ZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3
YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBl
eHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNT
OiB0aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5
cGUgd2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWly
a3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVk
LgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBE
b2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVp
cmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3Rl
ZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitGQUlMOiB0aGUg
RG9jdHlwZSB3YXMgU3RhbmRhcmRzLiAgSXQgd2FzIGV4cGVjdGVkIHRvIGJlIFF1aXJrcy4gIERv
Y3R5cGU6IDwhLS0gY29tbWVudCAtLT48IURPQ1RZUEUgaHRtbD4KKwpJbmRleDogZmFzdC9kb2N0
eXBlcy9kb2N0eXBlLXBhcnNpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmYXN0L2RvY3R5cGVzL2Rv
Y3R5cGUtcGFyc2luZy5odG1sCShyZXZpc2lvbiAwKQorKysgZmFzdC9kb2N0eXBlcy9kb2N0eXBl
LXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNDMgQEAKKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9UZXN0RG9jdHlwZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB0ZXN0ID0gZnVuY3Rpb24obW9kZSwgZG9jdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAg
dmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXS5jb250
ZW50RG9jdW1lbnQKKyAgICAgICAgICAgIGRvYy5vcGVuKCk7CisgICAgICAgICAgICBkb2Mud3Jp
dGUoZG9jdHlwZSArICJcbjxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+IikKKyAgICAgICAgICAg
IGRvYy5jbG9zZSgpOworICAgICAgICAgICAgdGVzdERvY3R5cGUoZG9jLCBtb2RlLCBkb2N0eXBl
KTsKKyAgICAgICAgfQorCisgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgLy8gVGVzdCBObyBEb2N0eXBlCisgICAgICAgICAgICB0ZXN0KCdRdWlya3Mn
LCAnJyk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgRG9jdHlwZXMgdGhhdCBmb3JjZSBTdGFuZGFy
ZHMgbW9kZQorICAgICAgICAgICAgdGVzdCgnU3RhbmRhcmRzJywgJzwhRE9DVFlQRSBIVE1MPicp
OworICAgICAgICAgICAgdGVzdCgnU3RhbmRhcmRzJywgJzwhRE9DVFlQRSBIVE1MIFNZU1RFTSAi
aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9zdHJpY3QuZHRkIj4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMS8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnU3RhbmRhcmRzJywgJzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOIj4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycs
ICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIklTTy9JRUMgMTU0NDU6MjAwMC8vRFREIEh5cGVyVGV4
dCBNYXJrdXAgTGFuZ3VhZ2UvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycs
ICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIklTTy9JRUMgMTU0NDU6MjAwMC8vRFREIEhUTUwvL0VO
Ij4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MIGkxOG4vL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0
YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4nKTsKKworICAgICAg
ICAgICAgLy8gVGVzdCBEb2N0eXBlcyB0aGF0IGZvcmNlIEFsbW9zdC1TdGFuZGFyZHMgbW9kZQor
ICAgICAgICAgICAgdGVzdCgnQWxtb3N0IFN0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIj4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ0FsbW9zdCBTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ0Fs
bW9zdCBTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
IDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3Nl
LmR0ZCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdBbG1vc3QgU3RhbmRhcmRzJywgJzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIEZyYW1lc2V0Ly9FTiIgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L2ZyYW1lc2V0LmR0ZCI+Jyk7CisKKyAgICAgICAgICAgIC8v
IFRlc3QgRG9jdHlwZXMgdGhhdCBmb3JjZSBRdWlya3MgbW9kZQorICAgICAgICAgICAgdGVzdCgn
UXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIE5PVCBVTkRFUlNUT09EPicpOworICAgICAgICAgICAg
dGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFsgPCFFTEVNRU5UIFRFU1QgLSAtIChQKSA+
IF0+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Jyk7CisgICAgICAgICAg
ICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIGh0bWwgU1lTVEVNICJodHRwOi8vd3d3LmlibS5j
b20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBGcmFtZXNldC8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9F
TiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iPicpOworICAgICAgICAgICAgdGVz
dCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vU29mdFF1YWQgU29mdHdhcmUv
L0RURCBIb1RNZXRhTCBQUk8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBIVE1MIDQuMC8v
RU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vU29mdFF1YWQvL0RURCBIb1RNZXRhTCBQUk8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9u
cyB0byBIVE1MIDQuMC8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOLy8zLjAiPicpOworICAgICAg
ICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNPLy9EVEQg
VzMgSFRNTCAzLjAvL0VOLy8iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNPLy9EVEQgVzMgSFRNTCAzLjAvL0VOIj4nKTsKKyAgICAg
ICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgMyAxOTk1LTAzLTI0Ly9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAzLjAvL0VOIj4nKTsKKyAg
ICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MIDMuMC8vRU4vLyI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAzLy9FTiI+Jyk7CisgICAgICAg
ICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTCBMZXZlbCAzLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAzLy9FTi8vMy4wIj4nKTsK
KyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MIDMuMi8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vQWR2YVNvZnQgTHRkLy9EVEQgSFRNTCAzLjAgYXNXZWRp
dCArIGV4dGVuc2lvbnMvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdC8vRU4vLzMuMCI+Jyk7
CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M08vL0RURCBXMyBIVE1MIFN0cmljdCAzLjAvL0VOLy8iPicpOworICAgICAgICAgICAgdGVzdCgn
UXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0
IExldmVsIDMvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAzLy9FTi8vMy4wIj4n
KTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIkhU
TUwiPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycs
ICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTi8vMi4wIj4nKTsK
KyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MIDIuMC8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMi8vRU4iPicpOwor
ICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwgTGV2ZWwgMi8vRU4vLzIuMCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWly
a3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAgTGV2ZWwg
Mi8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMS8vRU4iPicpOworICAgICAgICAgICAgdGVz
dCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgTGV2
ZWwgMS8vRU4vLzIuMCIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAgTGV2ZWwgMS8vRU4iLicpOworICAg
ICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwgTGV2ZWwgMC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMC8vRU4vLzIuMCIu
Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJr
cycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdC8vRU4v
LzIuMCIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMi8vRU4iLicpOworICAgICAgICAg
ICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwgU3RyaWN0IExldmVsIDIvL0VOLy8yLjAiLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtz
JywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdC8v
RU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAyLy9FTiIuJyk7CisgICAgICAg
ICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTCBTdHJpY3QgTGV2ZWwgMS8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywg
JzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEv
L0VOLy8yLjAiLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAxLy9FTiIuJyk7Cisg
ICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVp
cmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExl
dmVsIDAvL0VOLy8yLjAiLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vV2ViVGVjaHMvL0RURCBNb3ppbGxhIEhUTUwvL0VOIi4nKTsKKyAg
ICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1dlYlRl
Y2hzLy9EVEQgTW96aWxsYSBIVE1MIDIuMC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVp
cmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vTmV0c2NhcGUgQ29tbS4gQ29ycC4vL0RU
RCBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9OZXRzY2FwZSBDb21tLiBDb3JwLi8vRFREIEhUTUwvL0VOIi4nKTsKKyAg
ICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL05ldHNj
YXBlIENvbW0uIENvcnAuLy9EVEQgU3RyaWN0IEhUTUwvL0VOIi4nKTsKKyAgICAgICAgICAgIHRl
c3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL01pY3Jvc29mdC8vRFREIElu
dGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWly
a3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBF
eHBsb3JlciAyLjAgSFRNTCBTdHJpY3QvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJr
cycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4
cGxvcmVyIDIuMCBUYWJsZXMvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVy
IDMuMCBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgSFRN
TCBTdHJpY3QvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBUYWJs
ZXMvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMgQ29ycC4vL0RURCBIb3RKYXZhIEhUTUwvL0VOIi4n
KTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1N1biBNaWNyb3N5c3RlbXMgQ29ycC4vL0RURCBIb3RKYXZhIFN0cmljdCBIVE1MLy9FTiIuJyk7
CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTCAyLjFFLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9PXCdSZWlsbHkgYW5kIEFzc29jaWF0ZXMvL0RURCBI
VE1MIEV4dGVuZGVkIDEuMC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vT1wnUmVpbGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRN
TCBFeHRlbmRlZCBSZWxheGVkIDEuMC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtz
JywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vT1wnUmVpbGx5IGFuZCBBc3NvY2lhdGVzLy9E
VEQgSFRNTCAyLjAvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL1NRLy9EVEQgSFRNTCAyLjAgSG9UTWV0YUwgKyBleHRlbnNpb25z
Ly9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9TcHlnbGFzcy8vRFREIEhUTUwgMi4wIEV4dGVuZGVkLy9FTiIuJyk7CisgICAgICAg
ICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICIrLy9TaWxtYXJpbC8v
RFREIEhUTUwgUHJvIHYwcjExIDE5OTcwMTAxLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdR
dWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIEV4cGVyaW1l
bnRhbCAxOTk2MDcxMi8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIvL0VOIi4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgMy4yIEZpbmFsLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBEcmFmdC8vRU4iLicpOworICAg
ICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9E
VEQgSFRNTCBFeHBlcmltZW50YWwgOTcwNDIxLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdR
dWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMlMgRHJh
ZnQvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL1czQy8vRFREIFczIEhUTUwvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1
aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL01ldHJpdXMvL0RURCBNZXRyaXVzIFBy
ZXNlbnRhdGlvbmFsLy9FTiIuJyk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgbWFsZm9ybWVkIERv
Y3R5cGVzCisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFPicpOworICAgICAg
ICAgICAgdGVzdCgnU3RhbmRhcmRzJywgJzwhRE9DVFlQRWh0bWw+Jyk7CisgICAgICAgICAgICB0
ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFZm9vPicpOworICAgICAgICAgICAgdGVzdCgnU3RhbmRh
cmRzJywgJzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCBUcmFuc2l0aW9u
YWwgNC4wMS8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBo
dG1sIFBVQkxJQycpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBodG1s
IFBVQkxJQyBcJycpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBodG1s
IFBVQkxJQyBcJ3gnKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUg
aHRtbCBTWVNURU0gIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOIj4nKTsK
KyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOIiAiLS8vVzNDLy9EVEQgSFRNTCBU
cmFuc2l0aW9uYWwgNC4wMS8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBodG1sIFBVQkxJQyBcIj54Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIGh0bWwgUFVCTElDIFwnPngnKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycs
ICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgImZvbyIgXCI+eCcpOworICAgICAgICAgICAgdGVzdCgn
UXVpcmtzJywgJzwhRE9DVFlQRSBodG1sIFBVQkxJQyBcJ2Zvb1wnIFwnPngnKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgaHRtbCAnKTsKKworICAgICAgICAgICAgLy8g
VGVzdCBEb2N0eXBlcyBub3QgYXQgdGhlIGJlZ2luaW5nIG9mIHRoZSBEb2N1bWVudAorICAgICAg
ICAgICAgdGVzdCgnUXVpcmtzJywgJzxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+PCFET0NUWVBF
IGh0bWw+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPGh0bWw+PGJvZHk+PCFET0NU
WVBFIGh0bWw+PC9ib2R5PjwvaHRtbD4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8
IS0tIGNvbW1lbnQgLS0+PCFET0NUWVBFIGh0bWw+Jyk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwcmUgaWQ9J2NvbnNvbGUnPjwvcHJlPgorICAgIDxp
ZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3ViZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBmYXN0L2RvY3R5cGVzL2h0bWwtZG9jdHlwZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGZhc3QvZG9jdHlwZXMvaHRtbC1kb2N0eXBlLmh0bWwJKHJldmlzaW9uIDApCisrKyBmYXN0
L2RvY3R5cGVzL2h0bWwtZG9jdHlwZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBA
Cis8IURPQ1RZUEUgSFRNTD4KKzxodG1sID4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgbG9nID0gZnVuY3Rpb24obXNnKQor
ICAgICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZyArICJcbiIpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKGRvY3VtZW50LmRvY3R5cGUpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBhIGRv
Y3R5cGUgaW4gYSBIVE1MIGRvY3VtZW50IGlzIG5vdCBpZ25vcmVkLiIpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYSBkb2N0eXBlIGluIGEgSFRNTCBkb2N1
bWVudCBpcyBpZ25vcmVkLiIpOworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZmlyc3RDaGls
ZCA9PSBkb2N1bWVudC5kb2N0eXBlKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0
eXBlIGluIGFuIEhUTUwgZG9jdW1lbnQgaXMgY29ycmVjdGx5IHNldCB0byB0aGUgZmlyc3QgY2hp
bGQgb2YgdGhlIERvY3VtZW50LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGxvZygiRkFJTDogYSBkb2N0eXBlIGluIGFuIEhUTUwgZG9jdW1lbnQgaXMgbm90IGNvcnJlY3Rs
eSBzZXQgdG8gdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBEb2N1bWVudC4iKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgVGhpcyB0ZXN0cyB0aGUgYmVoYXZp
b3Igb2YgYSBEb2N0eXBlIGluIGEgSFRNTCBkb2N1bWVudC4KKyAgICA8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IGZhc3QvZG9jdHlwZXMveG1sLWRvY3R5
cGUueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gZmFzdC9kb2N0eXBlcy94bWwtZG9jdHlwZS54aHRtbAko
cmV2aXNpb24gMCkKKysrIGZhc3QvZG9jdHlwZXMveG1sLWRvY3R5cGUueGh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBsb2cgPSBmdW5jdGlvbihtc2cpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworICAgICAg
ICB9CisKKyAgICAgICAgb25sb2FkID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoZG9jdW1lbnQuZG9jdHlwZSkKKyAgICAgICAgICAgICAgICBsb2coIlBBU1M6IGEgZG9j
dHlwZSBpbiBhIFhNTCBkb2N1bWVudCBpcyBub3QgaWdub3JlZC4iKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGEgZG9jdHlwZSBpbiBhIFhNTCBkb2N1bWVu
dCBpcyBpZ25vcmVkLiIpOworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZmlyc3RDaGlsZCA9
PSBkb2N1bWVudC5kb2N0eXBlKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBl
IGluIGFuIFhNTCBkb2N1bWVudCBpcyBjb3JyZWN0bHkgc2V0IHRvIHRoZSBmaXJzdCBjaGlsZCBv
ZiB0aGUgRG9jdW1lbnQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9n
KCJGQUlMOiBhIGRvY3R5cGUgaW4gYW4gWE1MIGRvY3VtZW50IGlzIG5vdCBjb3JyZWN0bHkgc2V0
IHRvIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgRG9jdW1lbnQuIik7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIFRoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9m
IGEgRG9jdHlwZSBpbiBhbiBYTUwgZG9jdW1lbnQuCisgICAgPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBmYXN0L2RvY3R5cGVzL3Jlc291cmNlcy9UZXN0
RG9jdHlwZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmYXN0L2RvY3R5cGVzL3Jlc291cmNlcy9UZXN0RG9j
dHlwZS5qcwkocmV2aXNpb24gMCkKKysrIGZhc3QvZG9jdHlwZXMvcmVzb3VyY2VzL1Rlc3REb2N0
eXBlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACitsb2cgPSBmdW5jdGlvbihtc2cp
Cit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cgKyAiXG4iKSk7Cit9CisKK2hhc0FsbW9zdFN0YW5k
YXJkc01vZGVRdWlyayA9IGZ1bmN0aW9uKGRvYykKK3sKKyAgICB2YXIgZGl2ID0gZG9jLmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5pbm5lckhUTUwgPSAiPGltZyBzcmM9J2h0dHA6Ly93
d3cuZ29vZ2xlLmNvbS9pbnRsL2VuX0FMTC9pbWFnZXMvbG9nby5naWYnIHN0eWxlPSdiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Jz48YnI+PGltZyBz
cmM9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuX0FMTC9pbWFnZXMvbG9nby5naWYnIHN0
eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
Jz4iOworICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgdmFyIGhhc1F1aXJrID0g
ZG9jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZGl2LCAiIikuZ2V0UHJvcGVydHlWYWx1
ZSgiaGVpZ2h0IikgPT0gIjIwMHB4IjsKKyAgICBkb2MuYm9keS5yZW1vdmVDaGlsZChkaXYpOwor
ICAgIHJldHVybiBoYXNRdWlyazsKK30KKwordGVzdERvY3R5cGUgPSBmdW5jdGlvbihkb2MsIGV4
cGVjdGVkLCBkb2N0eXBlKQoreworICAgIHZhciBtb2RlID0gIk5PVCBTRVQiOworICAgIGlmIChk
b2MuY29tcGF0TW9kZSA9PSAiQ1NTMUNvbXBhdCIpIHsKKyAgICAgICAgaWYgKGhhc0FsbW9zdFN0
YW5kYXJkc01vZGVRdWlyayhkb2MpKSB7CisgICAgICAgICAgICBtb2RlID0gIkFsbW9zdCBTdGFu
ZGFyZHMiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbW9kZSA9ICJTdGFuZGFyZHMi
OworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkb2MuY29tcGF0TW9kZSA9PSAiQmFja0NvbXBh
dCIpIHsKKyAgICAgICAgbW9kZSA9ICJRdWlya3MiOworICAgIH0gZWxzZSB7CisgICAgICAgIG1v
ZGUgPSAiWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZG9jdW1lbnQuY29tcGF0TW9kZSI7
CisgICAgfQorCisgICAgaWYgKG1vZGUgPT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgbG9nKCJQQVNT
OiB0aGUgRG9jdHlwZSB3YXMgIiArIG1vZGUgKyAiIGFzIGV4cGVjdGVkLiIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGxvZygiRkFJTDogdGhlIERvY3R5cGUgd2FzICIgKyBtb2RlICsgIi4gIEl0
IHdhcyBleHBlY3RlZCB0byBiZSAiICsgZXhwZWN0ZWQgKyAiLiAgRG9jdHlwZTogIiArIGRvY3R5
cGUpOworICAgIH0KK30KSW5kZXg6IGZhc3QvZG9jdHlwZXMvcmVzb3VyY2VzL3N1YmZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZmFzdC9kb2N0eXBlcy9yZXNvdXJjZXMvc3ViZnJhbWUuaHRtbAko
cmV2aXNpb24gMCkKKysrIGZhc3QvZG9jdHlwZXMvcmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK05vIFBhZ2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19241</attachid>
            <date>2008-02-20 14:25:34 -0800</date>
            <delta_ts>2008-02-20 14:38:49 -0800</delta_ts>
            <desc>Final patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>266795</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDMwNDI5KQorKysgV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsMTAg
KzI4NCw4IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAg
ICAgICAgIGRvYyA9IG5ldyBEb2N1bWVudCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhl
IGludGVyZXN0aW5nIHBhcnRzIG9mIHRoZSBkb2N0eXBlCi0gICAgaWYgKGRvY3R5cGUpIHsKLSAg
ICAgICAgZG9jLT5zZXREb2NUeXBlKGRvY3R5cGUpOwotICAgICAgICBkb2N0eXBlLT5zZXREb2N1
bWVudChkb2MuZ2V0KCkpOwotICAgIH0KKyAgICBpZiAoZG9jdHlwZSkKKyAgICAgICAgZG9jLT5h
ZGRDaGlsZChkb2N0eXBlKTsKIAogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpCiAg
ICAgICAgIGRvYy0+YWRkQ2hpbGQoZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBx
dWFsaWZpZWROYW1lLCBlYykpOwpAQCAtMzQ3LDcgKzM0NSw3IEBAIFBhc3NSZWZQdHI8SFRNTERv
Y3VtZW50PiBET01JbXBsZW1lbnRhdGkKIHsKICAgICBSZWZQdHI8SFRNTERvY3VtZW50PiBkID0g
bmV3IEhUTUxEb2N1bWVudCh0aGlzLCAwKTsKICAgICBkLT5vcGVuKCk7Ci0gICAgZC0+d3JpdGUo
IjxodG1sPjxoZWFkPjx0aXRsZT4iICsgdGl0bGUgKyAiPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9i
b2R5PjwvaHRtbD4iKTsKKyAgICBkLT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+
PHRpdGxlPiIgKyB0aXRsZSArICI8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiIp
OwogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIApJbmRleDogV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24g
MzA0MjkpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMx
OCw4ICszMTgsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRE9NSW1wbGVtZW50YXRpb24qIGltCiAg
ICAgbV90b2tlbml6ZXIgPSAwOwogICAgIG1fd2VsbEZvcm1lZCA9IGZhbHNlOwogCi0gICAgcE1v
ZGUgPSBTdHJpY3Q7Ci0gICAgaE1vZGUgPSBYSHRtbDsKKyAgICBzZXRQYXJzZU1vZGUoU3RyaWN0
KTsKKwogICAgIG1fdGV4dENvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgIG1fbGlzdGVuZXJUeXBl
cyA9IDA7CiAgICAgbV9pbkRvY3VtZW50ID0gdHJ1ZTsKQEAgLTMzMCwxMiArMzMwLDggQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KERPTUltcGxlbWVudGF0aW9uKiBpbQogICAgIG1fdXNlc0ZpcnN0TGlu
ZVJ1bGVzID0gZmFsc2U7CiAgICAgbV91c2VzRmlyc3RMZXR0ZXJSdWxlcyA9IGZhbHNlOwogICAg
IG1fZ290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkID0gZmFsc2U7Ci0KLSAgICBi
b29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyA9IHRydWU7Ci0gICAgaWYgKFNldHRpbmdzKiBz
ZXR0aW5ncyA9IHRoaXMtPnNldHRpbmdzKCkpCi0gICAgICAgIG1hdGNoQXV0aG9yQW5kVXNlclN0
eWxlcyA9IHNldHRpbmdzLT5hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCgpOwotICAgIG1fc3R5
bGVTZWxlY3RvciA9IG5ldyBDU1NTdHlsZVNlbGVjdG9yKHRoaXMsIHVzZXJTdHlsZVNoZWV0KCks
IG1fc3R5bGVTaGVldHMuZ2V0KCksIG1fbWFwcGVkRWxlbWVudFNoZWV0LmdldCgpLCAhaW5Db21w
YXRNb2RlKCksIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyk7Ci0KKyAKKyAgICBtX3N0eWxlU2Vs
ZWN0b3IgPSAwOwogICAgIG1fZGlkQ2FsY3VsYXRlU3R5bGVTZWxlY3RvciA9IGZhbHNlOwogICAg
IG1fcGVuZGluZ1N0eWxlc2hlZXRzID0gMDsKICAgICBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyA9IGZhbHNlOwpAQCAtNDc1LDEyICs0NzEsMTUgQEAgdm9pZCBEb2N1bWVudDo6cmVzZXRBY3Rp
dmVMaW5rQ29sb3IoKQogCiB2b2lkIERvY3VtZW50OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9j
dW1lbnRUeXBlPiBkb2NUeXBlKQogeworICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIGNhbGxl
ZCBtb3JlIHRoYW4gb25jZS4KKyAgICAvLyBOb3RlOiBUaGlzIGlzIG5vdCBhIHB1YmxpYyBET00g
bWV0aG9kIGFuZCBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIHBhcnNlci4KKyAgICBBU1NFUlQo
IW1fZG9jVHlwZSB8fCAhZG9jVHlwZSk7CisgICAgaWYgKG1fZG9jVHlwZSAmJiBkb2NUeXBlKQor
ICAgICAgICByZXR1cm47CiAgICAgbV9kb2NUeXBlID0gZG9jVHlwZTsKLX0KLQotRG9jdW1lbnRU
eXBlICpEb2N1bWVudDo6ZG9jdHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZG9jVHlwZS5n
ZXQoKTsKKyAgICBpZiAobV9kb2NUeXBlKQorICAgICAgICBtX2RvY1R5cGUtPnNldERvY3VtZW50
KHRoaXMpOworICAgIGRldGVybWluZVBhcnNlTW9kZSgpOwogfQogCiBET01JbXBsZW1lbnRhdGlv
biogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKQEAgLTEyMDgsNiArMTIwNywxNSBA
QCB2b2lkIERvY3VtZW50OjphdHRhY2goKQogICAgIC8vIENyZWF0ZSB0aGUgcmVuZGVyaW5nIHRy
ZWUKICAgICBzZXRSZW5kZXJlcihuZXcgKG1fcmVuZGVyQXJlbmEpIFJlbmRlclZpZXcodGhpcywg
dmlldygpKSk7CiAKKyAgICBpZiAoIW1fc3R5bGVTZWxlY3RvcikgeworICAgICAgICBib29sIG1h
dGNoQXV0aG9yQW5kVXNlclN0eWxlcyA9IHRydWU7CisgICAgICAgIGlmIChTZXR0aW5ncyogZG9j
U2V0dGluZ3MgPSBzZXR0aW5ncygpKQorICAgICAgICAgICAgbWF0Y2hBdXRob3JBbmRVc2VyU3R5
bGVzID0gZG9jU2V0dGluZ3MtPmF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKCk7CisgICAgICAg
IG1fc3R5bGVTZWxlY3RvciA9IG5ldyBDU1NTdHlsZVNlbGVjdG9yKHRoaXMsIHVzZXJTdHlsZVNo
ZWV0KCksIG1fc3R5bGVTaGVldHMuZ2V0KCksIG1fbWFwcGVkRWxlbWVudFNoZWV0LmdldCgpLCAh
aW5Db21wYXRNb2RlKCksIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyk7CisgICAgICAgIG1fc3R5
bGVTZWxlY3Rvci0+c2V0RW5jb2RlZFVSTChtX3VybCk7CisgICAgICAgIG1fZGlkQ2FsY3VsYXRl
U3R5bGVTZWxlY3RvciA9IHRydWU7CisgICAgfQorCiAgICAgcmVjYWxjU3R5bGUoRm9yY2UpOwog
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXIgPSByZW5kZXJlcigpOwpAQCAtMTcwMiwxNCArMTcx
MCw2IEBAIENTU1N0eWxlU2hlZXQqIERvY3VtZW50OjptYXBwZWRFbGVtZW50U2gKICAgICByZXR1
cm4gbV9tYXBwZWRFbGVtZW50U2hlZXQuZ2V0KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRldGVy
bWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmKQotewotICAgIC8vIEZvciBYTUwgZG9jdW1lbnRz
IHVzZSBzdHJpY3QgcGFyc2UgbW9kZS4KLSAgICAvLyBIVE1MIG92ZXJyaWRlcyB0aGlzIG1ldGhv
ZCB0byBkZXRlcm1pbmUgdGhlIHBhcnNlIG1vZGUuCi0gICAgcE1vZGUgPSBTdHJpY3Q7Ci0gICAg
aE1vZGUgPSBYSHRtbDsKLX0KLQogc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aEV4YWN0VGFiSW5k
ZXgoTm9kZSogc3RhcnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAg
ICAgLy8gU2VhcmNoIGlzIGluY2x1c2l2ZSBvZiBzdGFydApAQCAtMjc3Miw3ICsyNzcyLDcgQEAg
SFRNTE1hcEVsZW1lbnQgKkRvY3VtZW50OjpnZXRJbWFnZU1hcChjbwogICAgICAgICByZXR1cm4g
MDsKICAgICBpbnQgaGFzaFBvcyA9IHVybC5maW5kKCcjJyk7CiAgICAgU3RyaW5nIG5hbWUgPSAo
aGFzaFBvcyA8IDAgPyB1cmwgOiB1cmwuc3Vic3RyaW5nKGhhc2hQb3MgKyAxKSkuaW1wbCgpOwot
ICAgIEF0b21pY1N0cmluZyBtYXBOYW1lID0gaE1vZGUgPT0gWEh0bWwgPyBuYW1lIDogbmFtZS5s
b3dlcigpOworICAgIEF0b21pY1N0cmluZyBtYXBOYW1lID0gaXNIVE1MRG9jdW1lbnQoKSA/IG5h
bWUubG93ZXIoKSA6IG5hbWU7CiAgICAgcmV0dXJuIG1faW1hZ2VNYXBzQnlOYW1lLmdldChtYXBO
YW1lLmltcGwoKSk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMzA0MjkpCisrKyBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksOCArMTc5LDcgQEAgcHVibGlj
OgogCiAgICAgLy8gRE9NIG1ldGhvZHMgJiBhdHRyaWJ1dGVzIGZvciBEb2N1bWVudAogCi0gICAg
dmlydHVhbCBEb2N1bWVudFR5cGUqIGRvY3R5cGUoKSBjb25zdDsgLy8gTWF5IHJldHVybiAwIGZv
ciBIVE1MIGRvY3VtZW50cwotICAgIERvY3VtZW50VHlwZSogcmVhbERvY1R5cGUoKSBjb25zdCB7
IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KKyAgICBEb2N1bWVudFR5cGUqIGRvY3R5cGUoKSBj
b25zdCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KIAogICAgIERPTUltcGxlbWVudGF0aW9u
KiBpbXBsZW1lbnRhdGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSk7CkBAIC00MDIsMjAgKzQwMSwxOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQcmludGluZyhib29sIHApIHsgbV9wcmludGluZyA9IHA7IH0K
IAogICAgIGVudW0gUGFyc2VNb2RlIHsgQ29tcGF0LCBBbG1vc3RTdHJpY3QsIFN0cmljdCB9Owot
ICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQYXJzZU1vZGUoY29uc3QgU3RyaW5nJik7
Ci0gICAgdm9pZCBzZXRQYXJzZU1vZGUoUGFyc2VNb2RlIG0pIHsgcE1vZGUgPSBtOyB9Ci0gICAg
UGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHBNb2RlOyB9Ci0KLSAgICBib29s
IGluQ29tcGF0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHBNb2RlID09IENvbXBhdDsgfQotICAgIGJv
b2wgaW5BbG1vc3RTdHJpY3RNb2RlKCkgY29uc3QgeyByZXR1cm4gcE1vZGUgPT0gQWxtb3N0U3Ry
aWN0OyB9Ci0gICAgYm9vbCBpblN0cmljdE1vZGUoKSBjb25zdCB7IHJldHVybiBwTW9kZSA9PSBT
dHJpY3Q7IH0KLSAgICAKLSAgICBlbnVtIEhUTUxNb2RlIHsgSHRtbDMsIEh0bWw0LCBYSHRtbCB9
OwogCi0gICAgdm9pZCBzZXRIVE1MTW9kZShIVE1MTW9kZSBtKSB7IGhNb2RlID0gbTsgfQotICAg
IEhUTUxNb2RlIGh0bWxNb2RlKCkgY29uc3QgeyByZXR1cm4gaE1vZGU7IH0KK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZSgpIHt9CisgICAgCitwdWJsaWM6Cisg
ICAgdm9pZCBzZXRQYXJzZU1vZGUoUGFyc2VNb2RlIG0pIHsgbV9wYXJzZU1vZGUgPSBtOyB9Cisg
ICAgUGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9CiAK
KyAgICBib29sIGluQ29tcGF0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlID09IENv
bXBhdDsgfQorICAgIGJvb2wgaW5BbG1vc3RTdHJpY3RNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9w
YXJzZU1vZGUgPT0gQWxtb3N0U3RyaWN0OyB9CisgICAgYm9vbCBpblN0cmljdE1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3BhcnNlTW9kZSA9PSBTdHJpY3Q7IH0KKyAgICAKICAgICB2b2lkIHNldFBh
cnNpbmcoYm9vbCk7CiAgICAgYm9vbCBwYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV9iUGFyc2lu
ZzsgfQogICAgIGludCBtaW5pbXVtTGF5b3V0RGVsYXkoKTsKQEAgLTczNSw4ICs3MzIsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX3ByaW50aW5nOwogCi0gICAgUGFyc2VNb2RlIHBNb2RlOwot
ICAgIEhUTUxNb2RlIGhNb2RlOworICAgIFBhcnNlTW9kZSBtX3BhcnNlTW9kZTsKIAogICAgIENv
bG9yIG1fdGV4dENvbG9yOwogCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAJKHJldmlzaW9uIDMwNDI5
KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAw
LDkgKzEwMCwyNiBAQCBOb2RlOjpOb2RlVHlwZSBEb2N1bWVudFR5cGU6Om5vZGVUeXBlKCkgCiAK
IFBhc3NSZWZQdHI8Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGUoYm9vbCAvKmRlZXAqLykK
IHsKLSAgICAvLyBUaGUgRE9NIExldmVsIDIgc3BlY2lmaWNhdGlvbiBzYXlzIGNsb25pbmcgRG9j
dW1lbnRUeXBlIG5vZGVzIGlzICJpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQiLgotICAgIC8vIEZv
ciBub3csIHdlIGRvIG5vdCBzdXBwb3J0IGl0LgotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
ZXcgRG9jdW1lbnRUeXBlKGRvY3VtZW50KCksIG1fbmFtZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1J
ZCk7Cit9CisKK3ZvaWQgRG9jdW1lbnRUeXBlOjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7Cisg
ICAgLy8gT3VyIGRvY3VtZW50IG5vZGUgY2FuIGJlIG51bGwgaWYgd2Ugd2VyZSBjcmVhdGVkIGJ5
IGEgRE9NSW1wbGVtZW50YXRpb24uICBXZSB1c2UgdGhlIHBhcmVudCgpIGluc3RlYWQuCisgICAg
QVNTRVJUKHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0RvY3VtZW50Tm9kZSgpKTsKKyAgICBpZiAo
cGFyZW50KCkgJiYgcGFyZW50KCktPmlzRG9jdW1lbnROb2RlKCkpIHsKKyAgICAgICAgRG9jdW1l
bnQqIGRvYyA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4ocGFyZW50KCkpOworICAgICAgICBpZiAo
IWRvYy0+ZG9jdHlwZSgpKQorICAgICAgICAgICAgZG9jLT5zZXREb2NUeXBlKHRoaXMpOworICAg
IH0KKyAgICBOb2RlOjppbnNlcnRlZEludG9Eb2N1bWVudCgpOworfQorCit2b2lkIERvY3VtZW50
VHlwZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgaWYgKGRvY3VtZW50KCkgJiYgZG9j
dW1lbnQoKS0+ZG9jdHlwZSgpID09IHRoaXMpCisgICAgICAgIGRvY3VtZW50KCktPnNldERvY1R5
cGUoMCk7CisgICAgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB9CkluZGV4OiBX
ZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1
bWVudFR5cGUuaAkocmV2aXNpb24gMzA0MjkpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwogICAgIHZpcnR1YWwgU3RyaW5n
IHRvU3RyaW5nKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1l
bnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOworCiBwcml2YXRl
OgogICAgIFJlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gbV9pbXBsZW1lbnRhdGlvbjsKICAgICBS
ZWZQdHI8TmFtZWROb2RlTWFwPiBtX2VudGl0aWVzOwpJbmRleDogV2ViQ29yZS9kb20vTm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDMwNDI5KQor
KysgV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBA
QCBib29sIE5vZGU6OmlzRGVzY2VuZGFudE9mKGNvbnN0IE5vZGUgKm90CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIE5vZGU6OmNoaWxkQWxsb3dlZCggTm9kZSAqbmV3Q2hpbGQgKQorYm9v
bCBOb2RlOjpjaGlsZEFsbG93ZWQoTm9kZSogbmV3Q2hpbGQpCiB7CiAgICAgcmV0dXJuIGNoaWxk
VHlwZUFsbG93ZWQobmV3Q2hpbGQtPm5vZGVUeXBlKCkpOwogfQpJbmRleDogV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDMwNDI5KQorKysgV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoQXR0CiAgICAgaWYgKG5lZWRUb1BhcnNlKQogICAgICAgICBwYXJzZU1h
cHBlZEF0dHJpYnV0ZShtYXBwZWRBdHRyKTsKIAotICAgIGlmIChlbnRyeSA9PSBlTm9uZSAmJiBv
d25lckRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUo
YXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpKSkKKyAgICBpZiAoZW50cnkgPT0gZU5vbmUgJiYgb3du
ZXJEb2N1bWVudCgpLT5hdHRhY2hlZCgpICYmIG93bmVyRG9jdW1lbnQoKS0+c3R5bGVTZWxlY3Rv
cigpLT5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZShhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkpKQog
ICAgICAgICBzZXRDaGFuZ2VkKCk7CiAKICAgICBpZiAoY2hlY2tEZWNsICYmIG1hcHBlZEF0dHIt
PmRlY2woKSkgewpJbmRleDogV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzMDQyOSkKKysrIFdl
YkNvcmUvZG9tL1hNTFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDgsMTEgKzEw
MDgsOCBAQCB2b2lkIFhNTFRva2VuaXplcjo6aW50ZXJuYWxTdWJzZXQoY29uc3QgCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCi0gICAgRG9jdW1lbnQqIGRvYyA9IG1fZG9jOwotICAgIGlm
ICghZG9jKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkb2MtPnNldERvY1R5cGUobmV3IERvY3Vt
ZW50VHlwZShkb2MsIHRvU3RyaW5nKG5hbWUpLCB0b1N0cmluZyhleHRlcm5hbElEKSwgdG9TdHJp
bmcoc3lzdGVtSUQpKSk7CisgICAgaWYgKG1fZG9jKQorICAgICAgICBtX2RvYy0+YWRkQ2hpbGQo
bmV3IERvY3VtZW50VHlwZShtX2RvYywgdG9TdHJpbmcobmFtZSksIHRvU3RyaW5nKGV4dGVybmFs
SUQpLCB0b1N0cmluZyhzeXN0ZW1JRCkpKTsKIH0KIAogc3RhdGljIGlubGluZSBYTUxUb2tlbml6
ZXIqIGdldFRva2VuaXplcih2b2lkKiBjbG9zdXJlKQpAQCAtMjA5OCw3ICsyMDk1LDcgQEAgdm9p
ZCBYTUxUb2tlbml6ZXI6OnBhcnNlRHRkKCkKICAgICAgICAgc2V0SXNYSFRNTERvY3VtZW50KHRy
dWUpOyAvLyBjb250cm9scyBpZiB3ZSByZXBsYWNlIGVudGl0aWVzIG9yIG5vdC4KICAgICB9CiAg
ICAgaWYgKCFtX3BhcnNpbmdGcmFnbWVudCkKLSAgICAgICAgbV9kb2MtPnNldERvY1R5cGUobmV3
IERvY3VtZW50VHlwZShtX2RvYywgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSk7CisgICAgICAg
IG1fZG9jLT5hZGRDaGlsZChuZXcgRG9jdW1lbnRUeXBlKG1fZG9jLCBuYW1lLCBwdWJsaWNJZCwg
c3lzdGVtSWQpKTsKICAgICAKIH0KICNlbmRpZgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9u
IDMwNDI5KQorKysgV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2OCwxNCArMzY4LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RhcnRNYXJrdXAoVmVjdG9yPFVD
aAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgICAgIGFwcGVuZChy
ZXN1bHQsIHN0YXRpY19jYXN0PGNvbnN0IENvbW1lbnQqPihub2RlKS0+dG9TdHJpbmcoKSk7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOiB7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogSSB0aGluayB0aGUgY29tbWVudCBiZWxvdyAoYW5kIHRoZXJl
Zm9yZSB0aGlzIGNvZGUpIGlzIHdyb25nIG5vdwotICAgICAgICAgICAgLy8gRG9jdW1lbnRzIGRv
IG5vdCBub3JtYWxseSBjb250YWluIGEgZG9jVHlwZSBhcyBhIGNoaWxkIG5vZGUsIGZvcmNlIGl0
IHRvIHByaW50IGhlcmUgaW5zdGVhZC4KLSAgICAgICAgICAgIGNvbnN0IERvY3VtZW50VHlwZSog
ZG9jVHlwZSA9IHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50Kj4obm9kZSktPmRvY3R5cGUoKTsK
LSAgICAgICAgICAgIGlmIChkb2NUeXBlKQotICAgICAgICAgICAgICAgIGFwcGVuZChyZXN1bHQs
IGRvY1R5cGUtPnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9UWVBFX05PREU6CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDMwNDI5KQorKysgV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIFJlbmRlck9iamVjdCogSFRNTEFwcGxl
dEVsZW1lbnQ6OmNyZWF0ZVIKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlQmFzZSA9
IGdldEF0dHJpYnV0ZShjb2RlYmFzZUF0dHIpOwogICAgICAgICBpZighY29kZUJhc2UuaXNOdWxs
KCkpCiAgICAgICAgICAgICBhcmdzLnNldCgiY29kZUJhc2UiLCBjb2RlQmFzZSk7Ci0gICAgICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGdldEF0dHJpYnV0ZShkb2N1bWVudCgpLT5odG1s
TW9kZSgpICE9IERvY3VtZW50OjpYSHRtbCA/IG5hbWVBdHRyIDogaWRBdHRyKTsKKyAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gZ2V0QXR0cmlidXRlKGRvY3VtZW50KCktPmlzSFRN
TERvY3VtZW50KCkgPyBuYW1lQXR0ciA6IGlkQXR0cik7CiAgICAgICAgIGlmICghbmFtZS5pc051
bGwoKSkKICAgICAgICAgICAgIGFyZ3Muc2V0KCJuYW1lIiwgbmFtZSk7CiAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXJjaGl2ZSA9IGdldEF0dHJpYnV0ZShhcmNoaXZlQXR0cik7CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMzA0MjkpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsNyBAQCBIVE1MRG9jdW1l
bnQ6OkhUTUxEb2N1bWVudChET01JbXBsZW1lbnRhCiAgICAgOiBEb2N1bWVudChpbXBsZW1lbnRh
dGlvbiwgZnJhbWUpCiB7CiAgICAgY2xlYXJYTUxWZXJzaW9uKCk7CisgICAgc2V0UGFyc2VNb2Rl
KENvbXBhdCk7CiB9CiAKIEhUTUxEb2N1bWVudDo6fkhUTUxEb2N1bWVudCgpCkBAIC0yNzMsNyAr
Mjc0LDcgQEAgVG9rZW5pemVyICpIVE1MRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcgogCiBib29s
IEhUTUxEb2N1bWVudDo6Y2hpbGRBbGxvd2VkKE5vZGUgKm5ld0NoaWxkKQogewotICAgIHJldHVy
biBuZXdDaGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8fCBuZXdDaGlsZC0+aXNDb21tZW50Tm9k
ZSgpOworICAgIHJldHVybiBuZXdDaGlsZC0+aGFzVGFnTmFtZShodG1sVGFnKSB8fCBuZXdDaGls
ZC0+aXNDb21tZW50Tm9kZSgpIHx8IChuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBET0NVTUVOVF9U
WVBFX05PREUgJiYgIWRvY3R5cGUoKSk7CiB9CiAKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTERv
Y3VtZW50OjpjcmVhdGVFbGVtZW50KGNvbnN0IFN0cmluZyAmbmFtZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCkBAIC0zNDYsMjI5ICszNDcsNjIgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6Omhhc0RvY0V4dHJh
TmFtZWRJdGVtKAogICAgIHJldHVybiBkb2NFeHRyYU5hbWVkSXRlbUNvdW50cy5nZXQobmFtZS5p
bXBsKCkpICE9IDA7CiB9CiAKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9ET0NUWVBFICAgICAg
ICA9ICAgICAgICgxPDwwKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9QVUJMSUNfSUQgICAg
ICA9ICAgICAgICgxPDwxKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9TWVNURU1fSUQgICAg
ICA9ICAgICAgICgxPDwyKTsKLWNvbnN0IGludCBQQVJTRU1PREVfSEFWRV9JTlRFUk5BTCAgICAg
ICA9ICAgICAgICgxPDwzKTsKLQotc3RhdGljIGludCBwYXJzZURvY1R5cGVQYXJ0KGNvbnN0IFN0
cmluZyYgYnVmZmVyLCBpbnQgaW5kZXgpCi17Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
VUNoYXIgY2ggPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAoY2ggPT0gJyAnIHx8IGNoID09
ICdcdCcgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQotICAgICAgICAgICAgKytpbmRleDsK
LSAgICAgICAgZWxzZSBpZiAoY2ggPT0gJy0nKSB7Ci0gICAgICAgICAgICBpbnQgdG1wSW5kZXg9
aW5kZXg7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyW2luZGV4KzFdID09ICctJyAmJgotICAgICAg
ICAgICAgICAgICgodG1wSW5kZXg9YnVmZmVyLmZpbmQoIi0tIiwgaW5kZXgrMikpICE9IC0xKSkK
LSAgICAgICAgICAgICAgICBpbmRleCA9IHRtcEluZGV4KzI7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci19Ci0KLXN0YXRpYyBib29sIGNvbnRhaW5z
U3RyaW5nKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgU3RyaW5nJiBidWZmZXIsIGludCBvZmZzZXQp
Cit2b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFyc2VNb2RlKCkKIHsKLSAgICBTdHJpbmcg
c3RhcnRTdHJpbmcoc3RyKTsKLSAgICBpZiAob2Zmc2V0ICsgc3RhcnRTdHJpbmcubGVuZ3RoKCkg
PiBidWZmZXIubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJp
bmcgYnVmZmVyU3RyaW5nID0gYnVmZmVyLnN1YnN0cmluZyhvZmZzZXQsIHN0YXJ0U3RyaW5nLmxl
bmd0aCgpKS5sb3dlcigpOwotICAgIFN0cmluZyBsb3dlclN0YXJ0ID0gc3RhcnRTdHJpbmcubG93
ZXIoKTsKLQotICAgIHJldHVybiBidWZmZXJTdHJpbmcuc3RhcnRzV2l0aChsb3dlclN0YXJ0KTsK
LX0KLQotc3RhdGljIGJvb2wgcGFyc2VEb2NUeXBlRGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBi
dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIHJlc3VsdEZs
YWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBuYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBwdWJsaWNJRCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyYgc3lzdGVtSUQpCi17Ci0g
ICAgYm9vbCBoYXZlRG9jVHlwZSA9IGZhbHNlOwotICAgICpyZXN1bHRGbGFncyA9IDA7Ci0KLSAg
ICAvLyBTa2lwIHRocm91Z2ggYW55IGNvbW1lbnRzIGFuZCBwcm9jZXNzaW5nIGluc3RydWN0aW9u
cy4KLSAgICBpbnQgaW5kZXggPSAwOwotICAgIGRvIHsKLSAgICAgICAgaW5kZXggPSBidWZmZXIu
ZmluZCgnPCcsIGluZGV4KTsKLSAgICAgICAgaWYgKGluZGV4ID09IC0xKSBicmVhazsKLSAgICAg
ICAgVUNoYXIgbmV4dENoYXIgPSBidWZmZXJbaW5kZXgrMV07Ci0gICAgICAgIGlmIChuZXh0Q2hh
ciA9PSAnIScpIHsKLSAgICAgICAgICAgIGlmIChjb250YWluc1N0cmluZygiZG9jdHlwZSIsIGJ1
ZmZlciwgaW5kZXgrMikpIHsKLSAgICAgICAgICAgICAgICBoYXZlRG9jVHlwZSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgaW5kZXggKz0gOTsgLy8gU2tpcCAiPCFET0NUWVBFIgotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURv
Y1R5cGVQYXJ0KGJ1ZmZlcixpbmRleCk7Ci0gICAgICAgICAgICBpbmRleCA9IGJ1ZmZlci5maW5k
KCc+JywgaW5kZXgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHRDaGFyID09ICc/
JykKLSAgICAgICAgICAgIGluZGV4ID0gYnVmZmVyLmZpbmQoJz4nLCBpbmRleCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0gd2hpbGUgKGluZGV4ICE9IC0xKTsKLQot
ICAgIGlmICghaGF2ZURvY1R5cGUpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgICpyZXN1bHRG
bGFncyB8PSBQQVJTRU1PREVfSEFWRV9ET0NUWVBFOwotCi0gICAgaW5kZXggPSBwYXJzZURvY1R5
cGVQYXJ0KGJ1ZmZlciwgaW5kZXgpOwotICAgIGlmICghY29udGFpbnNTdHJpbmcoImh0bWwiLCBi
dWZmZXIsIGluZGV4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIG5hbWUgPSBi
dWZmZXIuc3Vic3RyaW5nKGluZGV4LCA0KTsKLSAgICBpbmRleCA9IHBhcnNlRG9jVHlwZVBhcnQo
YnVmZmVyLCBpbmRleCs0KTsKLSAgICBib29sIGhhc1B1YmxpYyA9IGNvbnRhaW5zU3RyaW5nKCJw
dWJsaWMiLCBidWZmZXIsIGluZGV4KTsKLSAgICBpZiAoaGFzUHVibGljKSB7Ci0gICAgICAgIGlu
ZGV4ID0gcGFyc2VEb2NUeXBlUGFydChidWZmZXIsIGluZGV4KzYpOwotCi0gICAgICAgIC8vIFdl
J3ZlIHJlYWQgPCFET0NUWVBFIEhUTUwgUFVCTElDIChub3QgY2FzZSBzZW5zaXRpdmUpLgotICAg
ICAgICAvLyBOb3cgd2UgZmluZCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHB1YmxpYyBp
ZGVudGlmZXJzCi0gICAgICAgIC8vIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgKGFzc3VtaW5nIHRo
ZXkncmUgZXZlbiBwcmVzZW50KS4KLSAgICAgICAgVUNoYXIgdGhlQ2hhciA9IGJ1ZmZlcltpbmRl
eF07Ci0gICAgICAgIGlmICh0aGVDaGFyICE9ICdcIicgJiYgdGhlQ2hhciAhPSAnXCcnKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgLy8gfHN0YXJ0fCBpcyB0
aGUgZmlyc3QgY2hhcmFjdGVyIChhZnRlciB0aGUgcXVvdGUpIGFuZCB8ZW5kfAotICAgICAgICAv
LyBpcyB0aGUgZmluYWwgcXVvdGUsIHNvIHRoZXJlIGFyZSB8ZW5kfC18c3RhcnR8IGNoYXJhY3Rl
cnMuCi0gICAgICAgIGludCBwdWJsaWNJRFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgaW50IHB1
YmxpY0lERW5kID0gYnVmZmVyLmZpbmQodGhlQ2hhciwgcHVibGljSURTdGFydCk7Ci0gICAgICAg
IGlmIChwdWJsaWNJREVuZCA9PSAtMSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgcHVibGljSURFbmQrMSk7Ci0gICAg
ICAgIFVDaGFyIG5leHQgPSBidWZmZXJbaW5kZXhdOwotICAgICAgICBpZiAobmV4dCA9PSAnPicp
IHsKLSAgICAgICAgICAgIC8vIFB1YmxpYyBpZGVudGlmaWVyIHByZXNlbnQsIGJ1dCBubyBzeXN0
ZW0gaWRlbnRpZmllci4KLSAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuICBOb3RlIHRoYXQgdGhp
cyBpcyB0aGUgbW9zdCBjb21tb24KLSAgICAgICAgICAgIC8vIGNhc2UuCi0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSBpZiAobmV4dCA9PSAnXCInIHx8IG5leHQgPT0gJ1wnJykgewotICAgICAgICAg
ICAgLy8gV2UgaGF2ZSBhIHN5c3RlbSBpZGVudGlmaWVyLgotICAgICAgICAgICAgKnJlc3VsdEZs
YWdzIHw9IFBBUlNFTU9ERV9IQVZFX1NZU1RFTV9JRDsKLSAgICAgICAgICAgIGludCBzeXN0ZW1J
RFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5m
aW5kKG5leHQsIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09
IC0xKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlE
ID0gYnVmZmVyLnN1YnN0cmluZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlE
U3RhcnQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKG5leHQgPT0gJ1snKSB7Ci0gICAg
ICAgICAgICAvLyBXZSBmb3VuZCBhbiBpbnRlcm5hbCBzdWJzZXQuCi0gICAgICAgICAgICAqcmVz
dWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIH0KLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBTb21ldGhpbmcncyB3cm9uZy4KLQot
ICAgICAgICAvLyBXZSBuZWVkIHRvIHRyaW0gd2hpdGVzcGFjZSBvZmYgdGhlIHB1YmxpYyBpZGVu
dGlmaWVyLgotICAgICAgICBwdWJsaWNJRCA9IGJ1ZmZlci5zdWJzdHJpbmcocHVibGljSURTdGFy
dCwgcHVibGljSURFbmQgLSBwdWJsaWNJRFN0YXJ0KTsKLSAgICAgICAgcHVibGljSUQgPSBwdWJs
aWNJRC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICAgICAgKnJlc3VsdEZsYWdzIHw9IFBBUlNFTU9E
RV9IQVZFX1BVQkxJQ19JRDsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoY29udGFpbnNTdHJp
bmcoInN5c3RlbSIsIGJ1ZmZlciwgaW5kZXgpKSB7Ci0gICAgICAgICAgICAvLyBEb2N0eXBlIGhh
cyBhIHN5c3RlbSBJRCBidXQgbm8gcHVibGljIElECi0gICAgICAgICAgICAqcmVzdWx0RmxhZ3Mg
fD0gUEFSU0VNT0RFX0hBVkVfU1lTVEVNX0lEOwotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURv
Y1R5cGVQYXJ0KGJ1ZmZlciwgaW5kZXgrNik7Ci0gICAgICAgICAgICBVQ2hhciBuZXh0ID0gYnVm
ZmVyW2luZGV4XTsKLSAgICAgICAgICAgIGlmIChuZXh0ICE9ICdcIicgJiYgbmV4dCAhPSAnXCcn
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1J
RFN0YXJ0ID0gaW5kZXgrMTsKLSAgICAgICAgICAgIGludCBzeXN0ZW1JREVuZCA9IGJ1ZmZlci5m
aW5kKG5leHQsIHN5c3RlbUlEU3RhcnQpOwotICAgICAgICAgICAgaWYgKHN5c3RlbUlERW5kID09
IC0xKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHN5c3RlbUlE
ID0gYnVmZmVyLnN1YnN0cmluZyhzeXN0ZW1JRFN0YXJ0LCBzeXN0ZW1JREVuZCAtIHN5c3RlbUlE
U3RhcnQpOwotICAgICAgICAgICAgaW5kZXggPSBwYXJzZURvY1R5cGVQYXJ0KGJ1ZmZlciwgc3lz
dGVtSURFbmQrMSk7Ci0gICAgICAgIH0KLQotICAgICAgICBVQ2hhciBuZXh0Q2hhciA9IGJ1ZmZl
cltpbmRleF07Ci0gICAgICAgIGlmIChuZXh0Q2hhciA9PSAnWycpCi0gICAgICAgICAgICAqcmVz
dWx0RmxhZ3MgfD0gUEFSU0VNT0RFX0hBVkVfSU5URVJOQUw7Ci0gICAgICAgIGVsc2UgaWYgKG5l
eHRDaGFyICE9ICc+JykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgLy8g
RklYTUU6IEl0J3MgdGVycmlibGUgdGhhdCB0aGlzIGNvZGUgcnVucyBzZXBhcmF0ZWx5IGFuZCBp
c24ndCBqdXN0IGJ1aWx0IGluIHRvIHRoZQorICAgIC8vIEhUTUwgdG9rZW5pemVyL3BhcnNlci4K
IAotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEhUTUxEb2N1bWVudDo6ZGV0ZXJtaW5lUGFy
c2VNb2RlKGNvbnN0IFN0cmluZyYgc3RyKQotewogICAgIC8vIFRoaXMgY29kZSBtb3JlIG9yIGxl
c3MgbWltaWNzIE1vemlsbGEncyBpbXBsZW1lbnRhdGlvbiAoc3BlY2lmaWNhbGx5IHRoZQogICAg
IC8vIGRvY3R5cGUgcGFyc2luZyBpbXBsZW1lbnRlZCBieSBEYXZpZCBCYXJvbiBpbiBNb3ppbGxh
J3MgbnNQYXJzZXIuY3BwKS4KICAgICAvLwogICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBwb3NzaWJs
ZSBwYXJzZSBtb2RlczoKLSAgICAvLyBDT01QQVQgLSBxdWlya3MgbW9kZSBlbXVsYXRlcyBXaW5J
RQotICAgIC8vIGFuZCBOUzQuICBDU1MgcGFyc2luZyBpcyBhbHNvIHJlbGF4ZWQgaW4gdGhpcyBt
b2RlLCBlLmcuLCB1bml0IHR5cGVzIGNhbgorICAgIC8vIENPTVBBVCAtIHF1aXJrcyBtb2RlIGVt
dWxhdGVzIFdpbklFIGFuZCBOUzQuICBDU1MgcGFyc2luZyBpcyBhbHNvIHJlbGF4ZWQgaW4gdGhp
cyBtb2RlLCBlLmcuLCB1bml0IHR5cGVzIGNhbgogICAgIC8vIGJlIG9taXR0ZWQgZnJvbSBudW1i
ZXJzLgotICAgIC8vIEFMTU9TVCBTVFJJQ1QgLSBUaGlzIG1vZGUgaXMgaWRlbnRpY2FsIHRvIHN0
cmljdCBtb2RlCi0gICAgLy8gZXhjZXB0IGZvciBpdHMgdHJlYXRtZW50IG9mIGxpbmUtaGVpZ2h0
IGluIHRoZSBpbmxpbmUgYm94IG1vZGVsLiAgRm9yCi0gICAgLy8gbm93ICh1bnRpbCB0aGUgaW5s
aW5lIGJveCBtb2RlbCBpcyByZS13cml0dGVuKSwgdGhpcyBtb2RlIGlzIGlkZW50aWNhbAotICAg
IC8vIHRvIFNUQU5EQVJEUyBtb2RlLgotICAgIC8vIFNUUklDVCAtIG5vIHF1aXJrcyBhcHBseS4g
IFdlYiBwYWdlcyB3aWxsIG9iZXkgdGhlIHNwZWNpZmljYXRpb25zIHRvCi0gICAgLy8gdGhlIGxl
dHRlci4KLQotICAgIFN0cmluZyBuYW1lLCBzeXN0ZW1JRCwgcHVibGljSUQ7Ci0gICAgaW50IHJl
c3VsdEZsYWdzID0gMDsKLSAgICBpZiAocGFyc2VEb2NUeXBlRGVjbGFyYXRpb24oc3RyLCAmcmVz
dWx0RmxhZ3MsIG5hbWUsIHB1YmxpY0lELCBzeXN0ZW1JRCkpIHsKLSAgICAgICAgaWYgKHJlc3Vs
dEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfRE9DVFlQRSkKLSAgICAgICAgICAgIHNldERvY1R5cGUo
bmV3IERvY3VtZW50VHlwZSh0aGlzLCBuYW1lLCBwdWJsaWNJRCwgc3lzdGVtSUQpKTsKLSAgICAg
ICAgaWYgKCEocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9ET0NUWVBFKSkgewotICAgICAg
ICAgICAgLy8gTm8gZG9jdHlwZSBmb3VuZCBhdCBhbGwuICBEZWZhdWx0IHRvIHF1aXJrcyBtb2Rl
IGFuZCBIdG1sNC4KLSAgICAgICAgICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwotICAgICAgICAg
ICAgc2V0SFRNTE1vZGUoSHRtbDQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKChyZXN1
bHRGbGFncyAmIFBBUlNFTU9ERV9IQVZFX0lOVEVSTkFMKSB8fAotICAgICAgICAgICAgICAgICAh
KHJlc3VsdEZsYWdzICYgUEFSU0VNT0RFX0hBVkVfUFVCTElDX0lEKSkgewotICAgICAgICAgICAg
Ly8gSW50ZXJuYWwgc3Vic2V0cyBhbHdheXMgZGVub3RlIGZ1bGwgc3RhbmRhcmRzLCBhcyBkb2Vz
Ci0gICAgICAgICAgICAvLyBhIGRvY3R5cGUgd2l0aG91dCBhIHB1YmxpYyBJRC4KKyAgICAvLyBB
TE1PU1QgU1RSSUNUIC0gVGhpcyBtb2RlIGlzIGlkZW50aWNhbCB0byBzdHJpY3QgbW9kZSBleGNl
cHQgZm9yIGl0cyB0cmVhdG1lbnQgb2YgbGluZS1oZWlnaHQgaW4gdGhlIGlubGluZSBib3ggbW9k
ZWwuICBGb3IKKyAgICAvLyBub3cgKHVudGlsIHRoZSBpbmxpbmUgYm94IG1vZGVsIGlzIHJlLXdy
aXR0ZW4pLCB0aGlzIG1vZGUgaXMgaWRlbnRpY2FsIHRvIFNUQU5EQVJEUyBtb2RlLgorICAgIC8v
IFNUUklDVCAtIG5vIHF1aXJrcyBhcHBseS4gIFdlYiBwYWdlcyB3aWxsIG9iZXkgdGhlIHNwZWNp
ZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIuCisgICAgYm9vbCB3YXNJbkNvbXBhdE1vZGUgPSBpbkNv
bXBhdE1vZGUoKTsKKyAgICBEb2N1bWVudFR5cGUqIGRvY1R5cGUgPSBkb2N0eXBlKCk7CisgICAg
aWYgKCFkb2NUeXBlIHx8ICFlcXVhbElnbm9yaW5nQ2FzZShkb2NUeXBlLT5uYW1lKCksICJodG1s
IikpCisgICAgICAgIC8vIE5vIGRvY3R5cGUgZm91bmQgYXQgYWxsIG9yIHRoZSBkb2N0eXBlIGlz
IG5vdCBIVE1MLiAgRGVmYXVsdCB0byBxdWlya3MgbW9kZSBhbmQgSHRtbDQuCisgICAgICAgIHNl
dFBhcnNlTW9kZShDb21wYXQpOworICAgIGVsc2UgaWYgKCFkb2N0eXBlKCktPnN5c3RlbUlkKCku
aXNFbXB0eSgpICYmIGVxdWFsSWdub3JpbmdDYXNlKGRvY1R5cGUtPnN5c3RlbUlkKCksICJodHRw
Oi8vd3d3LmlibS5jb20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkIikp
CisgICAgICAgIC8vIEFzc3VtZSBxdWlya3MgbW9kZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIHN5c3Rl
bSBJRC4gIEluIHRoZSBIVE1MNSBzcGVjLCB0aGlzIGlzIHRoZSBvbmx5CisgICAgICAgIC8vIHN5
c3RlbSBpZGVudGlmaWVyIHRoYXQgaXMgZXhhbWluZWQuCisgICAgICAgIHNldFBhcnNlTW9kZShD
b21wYXQpOworICAgIGVsc2UgaWYgKGRvY1R5cGUtPnB1YmxpY0lkKCkuaXNFbXB0eSgpKQorICAg
ICAgICAvLyBBIGRvY3R5cGUgd2l0aG91dCBhIHB1YmxpYyBJRCBtZWFucyB1c2Ugc3RyaWN0IG1v
ZGUuCisgICAgICAgIHNldFBhcnNlTW9kZShTdHJpY3QpOworICAgIGVsc2UgeworICAgICAgICAv
LyBXZSBoYXZlIHRvIGNoZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRvIHNlZSB3aGF0IHdlCisg
ICAgICAgIC8vIHNob3VsZCBkby4KKyAgICAgICAgU3RyaW5nIGxvd2VyUHViSUQgPSBkb2NUeXBl
LT5wdWJsaWNJZCgpLmxvd2VyKCk7CisgICAgICAgIENTdHJpbmcgcHViSURTdHIgPSBsb3dlclB1
YklELmxhdGluMSgpOworICAgICAgIAorICAgICAgICAvLyBMb29rIHVwIHRoZSBlbnRyeSBpbiBv
dXIgZ3BlcmYtZ2VuZXJhdGVkIHRhYmxlLgorICAgICAgICBjb25zdCBQdWJJREluZm8qIGRvY3R5
cGVFbnRyeSA9IGZpbmREb2N0eXBlRW50cnkocHViSURTdHIuZGF0YSgpLCBwdWJJRFN0ci5sZW5n
dGgoKSk7CisgICAgICAgIGlmICghZG9jdHlwZUVudHJ5KQorICAgICAgICAgICAgLy8gVGhlIERP
Q1RZUEUgaXMgbm90IGluIHRoZSBsaXN0LiAgQXNzdW1lIHN0cmljdCBtb2RlLgogICAgICAgICAg
ICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7Ci0gICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7
Ci0gICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGNo
ZWNrIGEgbGlzdCBvZiBwdWJsaWMgSURzIHRvIHNlZSB3aGF0IHdlCi0gICAgICAgICAgICAvLyBz
aG91bGQgZG8uCi0gICAgICAgICAgICBTdHJpbmcgbG93ZXJQdWJJRCA9IHB1YmxpY0lELmxvd2Vy
KCk7Ci0gICAgICAgICAgICBDU3RyaW5nIHB1YklEU3RyID0gbG93ZXJQdWJJRC5sYXRpbjEoKTsK
LSAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBMb29rIHVwIHRoZSBlbnRyeSBpbiBvdXIgZ3Bl
cmYtZ2VuZXJhdGVkIHRhYmxlLgotICAgICAgICAgICAgY29uc3QgUHViSURJbmZvKiBkb2N0eXBl
RW50cnkgPSBmaW5kRG9jdHlwZUVudHJ5KHB1YklEU3RyLmRhdGEoKSwgcHViSURTdHIubGVuZ3Ro
KCkpOwotICAgICAgICAgICAgaWYgKCFkb2N0eXBlRW50cnkpIHsKLSAgICAgICAgICAgICAgICAv
LyBUaGUgRE9DVFlQRSBpcyBub3QgaW4gdGhlIGxpc3QuICBBc3N1bWUgc3RyaWN0IG1vZGUuCi0g
ICAgICAgICAgICAgICAgc2V0UGFyc2VNb2RlKFN0cmljdCk7Ci0gICAgICAgICAgICAgICAgc2V0
SFRNTE1vZGUoSHRtbDQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgc3dpdGNoICgocmVzdWx0RmxhZ3MgJiBQQVJTRU1PREVfSEFWRV9TWVNU
RU1fSUQpID8KLSAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX3N5c2lk
IDoKLSAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUVudHJ5LT5tb2RlX2lmX25vX3N5c2lkKQot
ICAgICAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChkb2NUeXBlLT5zeXN0ZW1JZCgpLmlz
RW1wdHkoKSA/CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9ub19z
eXNpZCA6CisgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVFbnRyeS0+bW9kZV9pZl9zeXNpZCkg
ewogICAgICAgICAgICAgICAgIGNhc2UgUHViSURJbmZvOjplUXVpcmtzMzoKLSAgICAgICAgICAg
ICAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhU
TUxNb2RlKEh0bWwzKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgY2FzZSBQdWJJREluZm86OmVRdWlya3M6CiAgICAgICAgICAgICAgICAgICAgIHNldFBhcnNl
TW9kZShDb21wYXQpOwotICAgICAgICAgICAgICAgICAgICBzZXRIVE1MTW9kZShIdG1sNCk7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgUHViSURJbmZv
OjplQWxtb3N0U3RhbmRhcmRzOgogICAgICAgICAgICAgICAgICAgICBzZXRQYXJzZU1vZGUoQWxt
b3N0U3RyaWN0KTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SFRNTE1vZGUoSHRtbDQpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSAg
IAotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgLy8gTWFsZm9ybWVkIGRvY3R5cGUgaW1wbGll
cyBxdWlya3MgbW9kZS4KLSAgICAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7Ci0gICAgICAgIHNl
dEhUTUxNb2RlKEh0bWwzKTsKKyAgICAgICAgfQogICAgIH0KLSAgCi0gICAgc3R5bGVTZWxlY3Rv
cigpLT5zdHJpY3RQYXJzaW5nID0gIWluQ29tcGF0TW9kZSgpOwotIAorICAgIAorICAgIGlmIChp
bkNvbXBhdE1vZGUoKSAhPSB3YXNJbkNvbXBhdE1vZGUpCisgICAgICAgIHVwZGF0ZVN0eWxlU2Vs
ZWN0b3IoKTsKIH0KICAgICAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJKHJldmlzaW9uIDMwNDI5
KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4
ICs2OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVh
dGVFbGVtZW50KGNvbnN0IFN0cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAg
dmlydHVhbCB2b2lkIGRldGVybWluZVBhcnNlTW9kZShjb25zdCBTdHJpbmcmKTsKLQogICAgIHZv
aWQgYWRkTmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVOYW1l
ZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBT
dHJpbmcmIG5hbWUpOwpAQCAtODIsNiArODAsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZ0ltcGwqLCBpbnQ+IE5hbWVDb3VudE1hcDsKIAogcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIHZvaWQgZGV0ZXJtaW5lUGFyc2VNb2RlKCk7CisKK3ByaXZhdGU6CiAgICAgTmFtZUNvdW50
TWFwIG5hbWVkSXRlbUNvdW50czsKICAgICBOYW1lQ291bnRNYXAgZG9jRXh0cmFOYW1lZEl0ZW1D
b3VudHM7CiB9OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzMDQyOSkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgw
LDE0ICs4MCwxNCBAQCB2b2lkIEhUTUxNYXBFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0CiAg
ICAgICAgIGlmIChhdHRyTmFtZSA9PSBpZEF0dHIpIHsKICAgICAgICAgICAgIC8vIENhbGwgYmFz
ZSBjbGFzcyBzbyB0aGF0IGhhc0lEIGJpdCBnZXRzIHNldC4KICAgICAgICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgICAgIGlmIChkb2MtPmh0
bWxNb2RlKCkgIT0gRG9jdW1lbnQ6OlhIdG1sKQorICAgICAgICAgICAgaWYgKGRvYy0+aXNIVE1M
RG9jdW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
ZG9jLT5yZW1vdmVJbWFnZU1hcCh0aGlzKTsKICAgICAgICAgU3RyaW5nIG1hcE5hbWUgPSBhdHRy
LT52YWx1ZSgpOwogICAgICAgICBpZiAobWFwTmFtZVswXSA9PSAnIycpCiAgICAgICAgICAgICBt
YXBOYW1lID0gbWFwTmFtZS5zdWJzdHJpbmcoMSk7Ci0gICAgICAgIG1fbmFtZSA9IGRvYy0+aHRt
bE1vZGUoKSA9PSBEb2N1bWVudDo6WEh0bWwgPyBtYXBOYW1lIDogbWFwTmFtZS5sb3dlcigpOwor
ICAgICAgICBtX25hbWUgPSBkb2MtPmlzSFRNTERvY3VtZW50KCkgPyBtYXBOYW1lLmxvd2VyKCkg
OiBtYXBOYW1lOwogICAgICAgICBkb2MtPmFkZEltYWdlTWFwKHRoaXMpOwogICAgIH0gZWxzZQog
ICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCShyZXZpc2lvbiAzMDQyOSkKKysrIFdlYkNvcmUvaHRt
bC9IVE1MUGFyYW1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCB2
b2lkIEhUTUxQYXJhbUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmliCiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBpZEF0dHIpIHsKICAgICAgICAgLy8gTXVzdCBjYWxsIGJhc2UgY2xhc3Mgc28gdGhh
dCBoYXNJRCBiaXQgZ2V0cyBzZXQuCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgaWYgKGRvY3VtZW50KCktPmh0bWxNb2RlKCkgIT0gRG9j
dW1lbnQ6OlhIdG1sKQorICAgICAgICBpZiAoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9uYW1lID0gYXR0ci0+dmFsdWUoKTsKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikgewpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2Vy
LmNwcAkocmV2aXNpb24gMzA0MjkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRz
LmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAtMjcxLDYg
KzI3MiwxNiBAQCBQYXNzUmVmUHRyPE5vZGU+IEhUTUxQYXJzZXI6OnBhcnNlVG9rZW4oCiAgICAg
cmV0dXJuIG47CiB9CiAKK3ZvaWQgSFRNTFBhcnNlcjo6cGFyc2VEb2N0eXBlVG9rZW4oRG9jdHlw
ZVRva2VuKiB0KQoreworICAgIC8vIElnbm9yZSBhbnkgZG9jdHlwZSBhZnRlciB0aGUgZmlyc3Qu
ICBJZ25vcmUgZG9jdHlwZXMgaW4gZnJhZ21lbnRzLgorICAgIGlmIChkb2N1bWVudC0+ZG9jdHlw
ZSgpIHx8IG1faXNQYXJzaW5nRnJhZ21lbnQgfHwgY3VycmVudCAhPSBkb2N1bWVudCkKKyAgICAg
ICAgcmV0dXJuOworICAgICAgICAKKyAgICAvLyBNYWtlIGEgbmV3IGRvY3R5cGUgbm9kZSBhbmQg
c2V0IGl0IGFzIG91ciBkb2N0eXBlLgorICAgIGRvY3VtZW50LT5hZGRDaGlsZChuZXcgRG9jdW1l
bnRUeXBlKGRvY3VtZW50LCBTdHJpbmc6OmFkb3B0KHQtPm1fbmFtZSksIFN0cmluZzo6YWRvcHQo
dC0+bV9wdWJsaWNJRCksIFN0cmluZzo6YWRvcHQodC0+bV9zeXN0ZW1JRCkpKTsKK30KKwogc3Rh
dGljIGJvb2wgaXNUYWJsZVNlY3Rpb24oTm9kZSogbikKIHsKICAgICByZXR1cm4gbi0+aGFzVGFn
TmFtZSh0Ym9keVRhZykgfHwgbi0+aGFzVGFnTmFtZSh0Zm9vdFRhZykgfHwgbi0+aGFzVGFnTmFt
ZSh0aGVhZFRhZyk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmgJKHJldmlzaW9uIDMwNDI5KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3R5cGVUb2tlbjsKIGNsYXNzIERvY3VtZW50
OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKQEAgLTU3LDYg
KzU4LDkgQEAgcHVibGljOgogICAgICAqLwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gcGFyc2VUb2tl
bihUb2tlbiopOwogICAgIAorICAgIC8vIFBhcnNlcyBhIGRvY3R5cGUgdG9rZW4uCisgICAgdm9p
ZCBwYXJzZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4qKTsKKwogICAgIC8qKgogICAgICAqIHRv
a2VuaXplciBzYXlzIGl0J3Mgbm90IGdvaW5nIHRvIGJlIHNlbmRpbmcgdXMgYW55IG1vcmUgdG9r
ZW5zCiAgICAgICovCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzMDQyOSkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAs
NiArODAsOSBAQCBjb25zdCBkb3VibGUgdG9rZW5pemVyVGltZURlbGF5ID0gMC41MDA7CiAjZW5k
aWYKIAogc3RhdGljIGNvbnN0IGNoYXIgY29tbWVudFN0YXJ0IFtdID0gIjwhLS0iOworc3RhdGlj
IGNvbnN0IGNoYXIgZG9jdHlwZVN0YXJ0IFtdID0gIjwhZG9jdHlwZSI7CitzdGF0aWMgY29uc3Qg
Y2hhciBwdWJsaWNTdGFydCBbXSA9ICJwdWJsaWMiOworc3RhdGljIGNvbnN0IGNoYXIgc3lzdGVt
U3RhcnQgW10gPSAic3lzdGVtIjsKIHN0YXRpYyBjb25zdCBjaGFyIHNjcmlwdEVuZCBbXSA9ICI8
L3NjcmlwdCI7CiBzdGF0aWMgY29uc3QgY2hhciB4bXBFbmQgW10gPSAiPC94bXAiOwogc3RhdGlj
IGNvbnN0IGNoYXIgc3R5bGVFbmQgW10gPSAgIjwvc3R5bGUiOwpAQCAtMjIyLDYgKzIyNSw5IEBA
IHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAgIG1fc3RhdGUuc2V0Rm9yY2VTeW5jaHJv
bm91cyhmYWxzZSk7CiAKICAgICBjdXJyVG9rZW4ucmVzZXQoKTsKKyAgICBtX2RvY3R5cGVUb2tl
bi5yZXNldCgpOworICAgIG1fZG9jdHlwZVNlYXJjaENvdW50ID0gMDsKKyAgICBtX2RvY3R5cGVT
ZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7CiB9CiAKIHZvaWQgSFRNTFRva2VuaXplcjo6YmVnaW4o
KQpAQCAtODQ0LDYgKzg1MCwyMjIgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXpl
cjo6cGFycwogICAgIHJldHVybiBzdGF0ZTsKIH0KIAorSFRNTFRva2VuaXplcjo6U3RhdGUgSFRN
TFRva2VuaXplcjo6cGFyc2VEb2N0eXBlKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0
ZSkKK3sKKyAgICBBU1NFUlQoc3RhdGUuaW5Eb2N0eXBlKCkpOworICAgIHdoaWxlICghc3JjLmlz
RW1wdHkoKSAmJiBzdGF0ZS5pbkRvY3R5cGUoKSkgeworICAgICAgICBVQ2hhciBjID0gKnNyYzsK
KyAgICAgICAgYm9vbCBpc1doaXRlc3BhY2UgPSBjID09ICdccicgfHwgYyA9PSAnXG4nIHx8IGMg
PT0gJ1x0JyB8fCBjID09ICcgJzsKKyAgICAgICAgc3dpdGNoIChtX2RvY3R5cGVUb2tlbi5zdGF0
ZSgpKSB7CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWdpbjogeworICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCZWZvcmVOYW1lKTsKKyAgICAgICAgICAg
ICAgICBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNl
KG1fbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2Rl
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBl
bmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY2FzZSBEb2N0eXBlQmVmb3JlTmFtZTogeworICAgICAgICAg
ICAgICAgIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAvLyBNYWxmb3JtZWQu
ICBKdXN0IGV4aXQuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xp
bmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMp
OworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVU
b2tlbi5zZXRTdGF0ZShEb2N0eXBlTmFtZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVOYW1lOiB7CisgICAgICAgICAgICAg
ICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUu
IEVtaXQgaXQuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNl
YXJjaENvdW50ID0gMDsgLy8gVXNlZCBub3cgdG8gc2NhbiBmb3IgUFVCTElDCisgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50ID0gMDsgLy8gVXNlZCBub3cg
dG8gc2NhbiBmb3IgU1lTVEVNCisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNl
dFN0YXRlKERvY3R5cGVBZnRlck5hbWUpOworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5j
ZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9k
ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBw
ZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNy
Yy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBl
VG9rZW4ubV9uYW1lLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1Nv
dXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291
cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVBZnRlck5hbWU6IHsKKyAg
ICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVmFs
aWQgZG9jdHlwZS4gRW1pdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0
Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFs
c2UpOworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmICghaXNXaGl0ZXNwYWNlKSB7CisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRv
QVNDSUlMb3dlcihjKSA9PSBwdWJsaWNTdGFydFttX2RvY3R5cGVTZWFyY2hDb3VudF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlYXJjaENvdW50Kys7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2VhcmNoQ291bnQgPT0gNikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnUFVCTElDJyBzZXF1ZW5jZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5cGVCZWZvcmVQdWJs
aWNJRCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobV9kb2N0eXBlU2VhcmNoQ291
bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0
eXBlQm9ndXMpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRvQVNDSUlMb3dlcihj
KSA9PSBzeXN0ZW1TdGFydFttX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50Kys7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAobV9kb2N0eXBlU2Vjb25kYXJ5U2VhcmNoQ291bnQgPT0g
NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCAnU1lTVEVNJyBzZXF1ZW5j
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERv
Y3R5cGVCZWZvcmVTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWNvbmRhcnlTZWFyY2hDb3VudCA9IDA7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9n
dXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZp
ZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5t
X3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsgLy8gV2hpdGVzcGFjZSBrZWVwcyB1
cyBpbiB0aGUgYWZ0ZXIgbmFtZSBzdGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmll
d1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1f
c291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERvY3R5cGVCZWZvcmVQdWJsaWNJ
RDogeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9PSAnXCcnKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJsZVF1b3RlIDogU2luZ2xl
UXVvdGU7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLnNldFN0YXRlKERvY3R5
cGVQdWJsaWNJRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xp
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIENvbnNpZGVyZWQgYm9ndXMuICBEb24ndCBwcm9jZXNzIHRoZSBkb2N0eXBlLgorICAgICAg
ICAgICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRG9j
dHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1doaXRlc3BhY2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0U3RhdGUoRG9jdHlw
ZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNhc2UgRG9jdHlwZVB1YmxpY0lEOiB7CisgICAgICAgICAgICAgICAgaWYgKChjID09ICdc
IicgJiYgdHF1b3RlID09IERvdWJsZVF1b3RlKSB8fCAoYyA9PSAnXCcnICYmIHRxdW90ZSA9PSBT
aW5nbGVRdW90ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0
eXBlQWZ0ZXJQdWJsaWNJRCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VN
b2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5h
cHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICc+JykgeworICAgICAg
ICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhlIGRv
Y3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3B1YmxpY0lELmFwcGVuZChjKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIERv
Y3R5cGVBZnRlclB1YmxpY0lEOgorICAgICAgICAgICAgICAgIGlmIChjID09ICdcIicgfHwgYyA9
PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRxdW90ZSA9IGMgPT0gJ1wiJyA/IERvdWJs
ZVF1b3RlIDogU2luZ2xlUXVvdGU7CisgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2Vu
LnNldFN0YXRlKERvY3R5cGVTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJj
ZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNl
LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIFZhbGlkIGRvY3R5cGUuIEVtaXQgaXQgbm93LgorICAgICAgICAg
ICAgICAgICAgICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLnNldEluRG9jdHlwZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFj
ZSkgeworICAgICAgICAgICAgICAgICAgICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShE
b2N0eXBlQm9ndXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBE
b2N0eXBlQmVmb3JlU3lzdGVtSUQ6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wiJyB8fCBj
ID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAgICAgdHF1b3RlID0gYyA9PSAnXCInID8gRG91
YmxlUXVvdGUgOiBTaW5nbGVRdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9r
ZW4uc2V0U3RhdGUoRG9jdHlwZVN5c3RlbUlEKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFk
dmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5WaWV3U291
cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3Vy
Y2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPicpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4gIERvbid0IHByb2Nlc3MgdGhl
IGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgICAgICAg
ICBzcmMuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW5W
aWV3U291cmNlTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4u
bV9zb3VyY2UuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgICAgICBtX2RvY3R5cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQm9ndXMpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2N0eXBlU3lzdGVtSUQ6CisgICAgICAg
ICAgICAgICAgaWYgKChjID09ICdcIicgJiYgdHF1b3RlID09IERvdWJsZVF1b3RlKSB8fCAoYyA9
PSAnXCcnICYmIHRxdW90ZSA9PSBTaW5nbGVRdW90ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5
cGVUb2tlbi5zZXRTdGF0ZShEb2N0eXBlQWZ0ZXJTeXN0ZW1JRCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2Rv
Y3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgLy8gQ29uc2lkZXJlZCBib2d1cy4g
IERvbid0IHByb2Nlc3MgdGhlIGRvY3R5cGUuCisgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5Eb2N0
eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4oKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3N5
c3RlbUlELmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5l
TnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIERvY3R5cGVBZnRlclN5c3RlbUlEOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+Jykg
eworICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBkb2N0eXBlLiBFbWl0IGl0IG5vdy4KKyAg
ICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAg
ICAgICAgICAgICBzdGF0ZS5zZXRJbkRvY3R5cGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzRG9jdHlwZVRva2VuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1do
aXRlc3BhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjLmFkdmFuY2UobV9saW5lTnVtYmVy
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZG9jdHlwZVRva2VuLm1fc291cmNlLmFwcGVuZChjKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4uc2V0
U3RhdGUoRG9jdHlwZUJvZ3VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgRG9jdHlwZUJvZ3VzOgorICAgICAgICAgICAgICAgIGlmIChjID09ICc+JykgeworICAg
ICAgICAgICAgICAgICAgICAvLyBEb25lIHdpdGggdGhlIGJvZ3VzIGRvY3R5cGUuCisgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0SW5Eb2N0eXBlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGluVmlld1NvdXJjZU1vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RvY3R5
cGVUb2tlbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IHNyYy5hZHZhbmNlKG1fbGluZU51bWJlcik7IC8vIEp1c3Qga2VlcCBzY2FubmluZyBmb3IgJz4n
CisgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX2RvY3R5cGVUb2tlbi5tX3NvdXJjZS5hcHBlbmQoYyk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3Rh
dGU7Cit9CisKIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNl
Z21lbnRlZFN0cmluZyAmc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoIXN0YXRlLmhh
c0VudGl0eVN0YXRlKCkpOwpAQCAtODYyLDE5ICsxMDg0LDEyIEBAIEhUTUxUb2tlbml6ZXI6OlN0
YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnMKICAgICAgICAgfQogICAgICAgICBjYXNlIFRhZ05hbWU6
CiAgICAgICAgIHsKLSNpZiBkZWZpbmVkKFRPS0VOX0RFQlVHKSAmJiBUT0tFTl9ERUJVRyA+IDEK
LSAgICAgICAgICAgIHFEZWJ1ZygiVGFnTmFtZSIpOwotI2VuZGlmCi0gICAgICAgICAgICBpZiAo
c2VhcmNoQ291bnQgPiAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICgqc3Jj
ID09IGNvbW1lbnRTdGFydFtzZWFyY2hDb3VudF0pCi0gICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgaWYgKHNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGlmICgqc3JjID09
IGNvbW1lbnRTdGFydFtzZWFyY2hDb3VudF0pIHsKICAgICAgICAgICAgICAgICAgICAgc2VhcmNo
Q291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID09IDQpCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSNpZmRlZiBUT0tFTl9ERUJVRwotICAgICAgICAgICAgICAgICAg
ICAgICAga2REZWJ1ZyggNjAzNiApIDw8ICJGb3VuZCBjb21tZW50IiA8PCBlbmRsOwotI2VuZGlm
CisgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hDb3VudCA9PSAyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQrKzsgLy8gQSAnIScgaXMgYWxzbyBwYXJ0
IG9mIGEgZG9jdHlwZSwgc28gd2UgYXJlIG1vdmluZyB0aHJvdWdoIHRoYXQgc3RpbGwgYXMgd2Vs
bC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaENvdW50ID09IDQpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZvdW5kICc8IS0tJyBzZXF1ZW5jZQogICAgICAgICAgICAgICAg
ICAgICAgICAgc3JjLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgZGVzdCA9IGJ1ZmZlcjsgLy8gaWdub3JlIHRoZSBwcmV2aW91cyBwYXJ0IG9mIHRoaXMg
dGFnCkBAIC04ODUsMTIgKzExMDAsMTEgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2Vu
aXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gPCEtLT4gYXMgYSB2YWxpZCBj
b21tZW50LCBzaW5jZSBib3RoIG1vemlsbGEgYW5kIElFIG9uIHdpbmRvd3MKICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGNhbiBoYW5kbGUgdGhpcyBjYXNlLiAgT25seSBkbyB0aGlzIGluIHF1
aXJrcyBtb2RlLiAtZHdoCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNyYy5pc0VtcHR5
KCkgJiYgKnNyYyA9PSAnPicgJiYgbV9kb2MtPmluQ29tcGF0TW9kZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlLnNldEluQ29tbWVudChmYWxzZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFzcmMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY0J1ZmZlcltjQnVmZmVyUG9zKytdID0gKnNyYzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZS5zZXRJbkNvbW1lbnQoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXNyYy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNCdWZmZXJbY0J1ZmZlclBvcysrXSA9ICpzcmM7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZUNvbW1lbnQo
c3JjLCBzdGF0ZSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNC
dWZmZXJQb3M7CkBAIC04OTksOSArMTExMywzMCBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1M
VG9rZW5pemVyOjpwYXJzCiAgICAgICAgICAgICAgICAgICAgIGNCdWZmZXJbY0J1ZmZlclBvcysr
XSA9ICpzcmM7CiAgICAgICAgICAgICAgICAgICAgIHNyYy5hZHZhbmNlUGFzdE5vbk5ld2xpbmUo
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAn
PCEtLScgc2VxdWVuY2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKG1fZG9jdHlwZVNlYXJjaENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGlmICh0b0FT
Q0lJTG93ZXIoKnNyYykgPT0gZG9jdHlwZVN0YXJ0W21fZG9jdHlwZVNlYXJjaENvdW50XSkgewor
ICAgICAgICAgICAgICAgICAgICBtX2RvY3R5cGVTZWFyY2hDb3VudCsrOworICAgICAgICAgICAg
ICAgICAgICBjQnVmZmVyW2NCdWZmZXJQb3MrK10gPSAqc3JjOworICAgICAgICAgICAgICAgICAg
ICBzcmMuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICht
X2RvY3R5cGVTZWFyY2hDb3VudCA9PSA5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
b3VuZCAnPCFET0NUWVBFJyBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUu
c2V0SW5Eb2N0eXBlKHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0VGFn
U3RhdGUoTm9UYWcpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ucmVz
ZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpblZpZXdTb3VyY2VNb2RlKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlVG9rZW4ubV9zb3VyY2UuYXBwZW5k
KGNCdWZmZXIsIGNCdWZmZXJQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBw
YXJzZURvY3R5cGUoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2NCdWZm
ZXJQb3MgPSBjQnVmZmVyUG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRl
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHNlYXJjaENvdW50ID0gMDsgLy8gU3RvcCBsb29raW5nIGZvciAnPCEtLScgc2VxdWVuY2UKKyAg
ICAgICAgICAgICAgICAgICAgbV9kb2N0eXBlU2VhcmNoQ291bnQgPSAwOyAvLyBTdG9wIGxvb2tp
bmcgZm9yICc8IURPQ1RZUEUnIHNlcXVlbmNlCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGJvb2wgZmluaXNoID0gZmFsc2U7CkBAIC0xNDAzLDYgKzE2MzgsOCBAQCBib29sIEhUTUxUb2tl
bml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJz
ZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkNvbW1l
bnQoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlQ29tbWVudChzcmMsIHN0YXRlKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluRG9jdHlwZSgpKQorICAgICAgICAgICAgICAg
IHN0YXRlID0gcGFyc2VEb2N0eXBlKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBpZiAo
c3RhdGUuaW5TZXJ2ZXIoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU2VydmVyKHNy
Yywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oKSkKQEAgLTE0MTYsOSArMTY1Myw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6d3JpdGUo
Y29uc3QgU2VnbWVudGUKICAgICAgICAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSAnISc6IHsKLSAgICAgICAgICAgICAg
ICAgICAgLy8gPCEtLSBjb21tZW50IC0tPgotICAgICAgICAgICAgICAgICAgICBzZWFyY2hDb3Vu
dCA9IDE7IC8vIExvb2sgZm9yICc8IS0tJyBzZXF1ZW5jZSB0byBzdGFydCBjb21tZW50Ci0gICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyA8IS0tIGNvbW1lbnQgLS0+
IG9yIDwhRE9DVFlQRSAuLi4+CisgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvdW50ID0gMTsg
Ly8gTG9vayBmb3IgJzwhLS0nIHNlcXVlbmNlIHRvIHN0YXJ0IGNvbW1lbnQgb3IgJzwhRE9DVFlQ
RScgc2VxdWVuY2UgdG8gc3RhcnQgZG9jdHlwZQorICAgICAgICAgICAgICAgICAgICBtX2RvY3R5
cGVTZWFyY2hDb3VudCA9IDE7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBjYXNlICc/JzogewpAQCAtMTU2NCw3ICsxODAxLDcg
QEAgdm9pZCBIVE1MVG9rZW5pemVyOjplbmQoKQogdm9pZCBIVE1MVG9rZW5pemVyOjpmaW5pc2go
KQogewogICAgIC8vIGRvIHRoaXMgYXMgbG9uZyBhcyB3ZSBkb24ndCBmaW5kIG1hdGNoaW5nIGNv
bW1lbnQgZW5kcwotICAgIHdoaWxlKChtX3N0YXRlLmluQ29tbWVudCgpIHx8IG1fc3RhdGUuaW5T
ZXJ2ZXIoKSkgJiYgc2NyaXB0Q29kZSAmJiBzY3JpcHRDb2RlU2l6ZSkgeworICAgIHdoaWxlICgo
bV9zdGF0ZS5pbkNvbW1lbnQoKSB8fCBtX3N0YXRlLmluU2VydmVyKCkpICYmIHNjcmlwdENvZGUg
JiYgc2NyaXB0Q29kZVNpemUpIHsKICAgICAgICAgLy8gd2UndmUgZm91bmQgYW4gdW5tYXRjaGVk
IGNvbW1lbnQgc3RhcnQKICAgICAgICAgaWYgKG1fc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAg
ICAgICBicm9rZW5Db21tZW50cyA9IHRydWU7CkBAIC0xNjMzLDYgKzE4NzAsMTQgQEAgUGFzc1Jl
ZlB0cjxOb2RlPiBIVE1MVG9rZW5pemVyOjpwcm9jZXNzVAogICAgIHJldHVybiBuLnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRG9jdHlwZVRva2VuKCkKK3sKKyAg
ICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKQorICAgICAgICBzdGF0aWNfY2FzdDxIVE1MVmlld1Nv
dXJjZURvY3VtZW50Kj4obV9kb2MpLT5hZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKCZtX2RvY3R5
cGVUb2tlbik7CisgICAgZWxzZQorICAgICAgICBwYXJzZXItPnBhcnNlRG9jdHlwZVRva2VuKCZt
X2RvY3R5cGVUb2tlbik7Cit9CisKIEhUTUxUb2tlbml6ZXI6On5IVE1MVG9rZW5pemVyKCkKIHsK
ICAgICBBU1NFUlQoIWluV3JpdGUpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCShyZXZpc2lvbiAz
MDQyOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTgzLDYgKzgzLDQ0IEBAIHB1YmxpYzoKICAgICBPd25QdHI8VmVjdG9yPFVDaGFyPiA+IG1fc291
cmNlSW5mbzsKIH07CiAKK2VudW0gRG9jdHlwZVN0YXRlIHsKKyAgICBEb2N0eXBlQmVnaW4sCisg
ICAgRG9jdHlwZUJlZm9yZU5hbWUsCisgICAgRG9jdHlwZU5hbWUsCisgICAgRG9jdHlwZUFmdGVy
TmFtZSwKKyAgICBEb2N0eXBlQmVmb3JlUHVibGljSUQsCisgICAgRG9jdHlwZVB1YmxpY0lELAor
ICAgIERvY3R5cGVBZnRlclB1YmxpY0lELAorICAgIERvY3R5cGVCZWZvcmVTeXN0ZW1JRCwKKyAg
ICBEb2N0eXBlU3lzdGVtSUQsCisgICAgRG9jdHlwZUFmdGVyU3lzdGVtSUQsCisgICAgRG9jdHlw
ZUJvZ3VzCit9OworCitjbGFzcyBEb2N0eXBlVG9rZW4geworcHVibGljOgorICAgIERvY3R5cGVU
b2tlbigpIHt9CisgICAgCisgICAgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBtX25hbWUu
Y2xlYXIoKTsKKyAgICAgICAgbV9wdWJsaWNJRC5jbGVhcigpOworICAgICAgICBtX3N5c3RlbUlE
LmNsZWFyKCk7CisgICAgICAgIG1fc3RhdGUgPSBEb2N0eXBlQmVnaW47CisgICAgICAgIG1fc291
cmNlLmNsZWFyKCk7CisgICAgfQorCisgICAgRG9jdHlwZVN0YXRlIHN0YXRlKCkgeyByZXR1cm4g
bV9zdGF0ZTsgfQorICAgIHZvaWQgc2V0U3RhdGUoRG9jdHlwZVN0YXRlIHMpIHsgbV9zdGF0ZSA9
IHM7IH0KKworICAgIFZlY3RvcjxVQ2hhcj4gbV9uYW1lOworICAgIFZlY3RvcjxVQ2hhcj4gbV9w
dWJsaWNJRDsKKyAgICBWZWN0b3I8VUNoYXI+IG1fc3lzdGVtSUQ7CisgICAgRG9jdHlwZVN0YXRl
IG1fc3RhdGU7CisgICAgCisgICAgVmVjdG9yPFVDaGFyPiBtX3NvdXJjZTsKK307CisKIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAogY2xhc3MgSFRNTFRva2VuaXplciA6IHB1YmxpYyBUb2tlbml6
ZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CkBAIC0xMTgsMTAgKzE1NiwxMyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZW5kKCk7CiAKICAgICB2b2lkIHJlc2V0KCk7CisKICAgICBQYXNz
UmVmUHRyPE5vZGU+IHByb2Nlc3NUb2tlbigpOworICAgIHZvaWQgcHJvY2Vzc0RvY3R5cGVUb2tl
bigpOwogCiAgICAgU3RhdGUgcHJvY2Vzc0xpc3RpbmcoU2VnbWVudGVkU3RyaW5nLCBTdGF0ZSk7
CiAgICAgU3RhdGUgcGFyc2VDb21tZW50KFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKKyAgICBT
dGF0ZSBwYXJzZURvY3R5cGUoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBh
cnNlU2VydmVyKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVRleHQo
U2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlU3BlY2lhbChTZWdtZW50
ZWRTdHJpbmcmLCBTdGF0ZSk7CkBAIC0yMjAsNiArMjYxLDggQEAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBzZXRJblByb2Nlc3NpbmdJbnN0cnVjdGlvbihib29sIHYpIHsgcmV0dXJuIHNldEJpdChJ
blByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgdik7IH0KICAgICAgICAgYm9vbCBpbkNvbW1lbnQoKSBj
b25zdCB7IHJldHVybiB0ZXN0Qml0KEluQ29tbWVudCk7IH0KICAgICAgICAgdm9pZCBzZXRJbkNv
bW1lbnQoYm9vbCB2KSB7IHNldEJpdChJbkNvbW1lbnQsIHYpOyB9CisgICAgICAgIGJvb2wgaW5E
b2N0eXBlKCkgY29uc3QgeyByZXR1cm4gdGVzdEJpdChJbkRvY3R5cGUpOyB9CisgICAgICAgIHZv
aWQgc2V0SW5Eb2N0eXBlKGJvb2wgdikgeyBzZXRCaXQoSW5Eb2N0eXBlLCB2KTsgfQogICAgICAg
ICBib29sIGluVGV4dEFyZWEoKSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEluVGV4dEFyZWEpOyB9
CiAgICAgICAgIHZvaWQgc2V0SW5UZXh0QXJlYShib29sIHYpIHsgc2V0Qml0KEluVGV4dEFyZWEs
IHYpOyB9CiAgICAgICAgIGJvb2wgZXNjYXBlZCgpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoRXNj
YXBlZCk7IH0KQEAgLTI0Myw3ICsyODYsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhc1Rh
Z1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVGFnTWFzazsgfQogICAgICAgICBib29s
IGhhc0VudGl0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgRW50aXR5TWFzazsgfQog
Ci0gICAgICAgIGJvb2wgbmVlZHNTcGVjaWFsV3JpdGVIYW5kbGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRp
dGxlIHwgSW5JRnJhbWUgfCBUYWdNYXNrIHwgRW50aXR5TWFzayB8IEluUGxhaW5UZXh0IHwgSW5D
b21tZW50IHwgSW5TZXJ2ZXIgfCBJblByb2Nlc3NpbmdJbnN0cnVjdGlvbiB8IFN0YXJ0VGFnKTsg
fQorICAgICAgICBib29sIG5lZWRzU3BlY2lhbFdyaXRlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRBcmVhIHwgSW5U
aXRsZSB8IEluSUZyYW1lIHwgVGFnTWFzayB8IEVudGl0eU1hc2sgfCBJblBsYWluVGV4dCB8IElu
Q29tbWVudCB8IEluRG9jdHlwZSB8IEluU2VydmVyIHwgSW5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
fCBTdGFydFRhZyk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
RW50aXR5U2hpZnQgPSA0OwpAQCAtMjY3LDcgKzMxMCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBBbGxvd1lpZWxkID0gMSA8PCAyMSwKICAgICAgICAgICAgIExvYWRpbmdFeHRTY3JpcHQgPSAx
IDw8IDIyLAogICAgICAgICAgICAgRm9yY2VTeW5jaHJvbm91cyA9IDEgPDwgMjMsCi0gICAgICAg
ICAgICBJbklGcmFtZSA9IDEgPDwgMjQKKyAgICAgICAgICAgIEluSUZyYW1lID0gMSA8PCAyNCwK
KyAgICAgICAgICAgIEluRG9jdHlwZSA9IDEgPDwgMjUKICAgICAgICAgfTsKIAogICAgICAgICB2
b2lkIHNldEJpdChTdGF0ZUJpdHMgYml0LCBib29sIHZhbHVlKQpAQCAtMjgzLDYgKzMyNywxMCBA
QCBwcml2YXRlOgogICAgIH07CiAKICAgICBTdGF0ZSBtX3N0YXRlOworICAgIAorICAgIERvY3R5
cGVUb2tlbiBtX2RvY3R5cGVUb2tlbjsKKyAgICBpbnQgbV9kb2N0eXBlU2VhcmNoQ291bnQ7Cisg
ICAgaW50IG1fZG9jdHlwZVNlY29uZGFyeVNlYXJjaENvdW50OwogCiAgICAgYm9vbCBicm9rZW5T
ZXJ2ZXI7CiAKQEAgLTMwMCwxNCArMzQ4LDE0IEBAIHByaXZhdGU6CiAKICAgICAvLyBTdG9yZXMg
Y2hhcmFjdGVycyBpZiB3ZSBhcmUgc2Nhbm5pbmcgZm9yIGEgc3RyaW5nIGxpa2UgIjwvc2NyaXB0
PiIKICAgICBVQ2hhciBzZWFyY2hCdWZmZXJbMTBdOworICAgIAogICAgIC8vIENvdW50cyB3aGVy
ZSB3ZSBhcmUgaW4gdGhlIHN0cmluZyB3ZSBhcmUgc2Nhbm5pbmcgZm9yCiAgICAgaW50IHNlYXJj
aENvdW50OwotICAgIC8vIFRoZSBzdHJpbmcgd2UgYXJlIHNlYXJjaGluZyBmb3IKLSAgICBjb25z
dCBVQ2hhciogc2VhcmNoRm9yOwogICAgIC8vIHRoZSBzdG9wcGVyIHN0cmluZwogICAgIGNvbnN0
IGNoYXIqIHNlYXJjaFN0b3BwZXI7CiAgICAgLy8gdGhlIHN0b3BwZXIgbGVuCiAgICAgaW50IHNl
YXJjaFN0b3BwZXJMZW47CisgICAgCiAgICAgLy8gaWYgbm8gbW9yZSBkYXRhIGlzIGNvbWluZywg
anVzdCBwYXJzZSB3aGF0IHdlIGhhdmUgKGluY2x1ZGluZyBleHQgc2NyaXB0cyB0aGF0CiAgICAg
Ly8gbWF5IGJlIHN0aWxsIGRvd25sb2FkaW5nKSBhbmQgZmluaXNoCiAgICAgYm9vbCBub01vcmVE
YXRhOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkocmV2aXNp
b24gMzA0MjkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsNyBAQCB2b2lkIEhUTUxWaWV3U291cmNlRG9jdW1l
bnQ6OmFkZFZpZXdTb3VyCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAvLyBIYW5k
bGUgdGhlIHRhZy4KLSAgICAgICAgYm9vbCBkb2N0eXBlID0gdG9rZW4tPnRhZ05hbWUuc3RhcnRz
V2l0aCgiIURPQ1RZUEUiLCBmYWxzZSk7Ci0gICAgICAgIAotICAgICAgICBTdHJpbmcgY2xhc3NO
YW1lU3RyID0gZG9jdHlwZSA/ICJ3ZWJraXQtaHRtbC1kb2N0eXBlIiA6ICJ3ZWJraXQtaHRtbC10
YWciOworICAgICAgICBTdHJpbmcgY2xhc3NOYW1lU3RyID0gIndlYmtpdC1odG1sLXRhZyI7CiAg
ICAgICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKGNsYXNzTmFtZVN0cik7CiAK
ICAgICAgICAgU3RyaW5nIHRleHQgPSAiPCI7CkBAIC0xNDUsMjggKzE0MywyMSBAQCB2b2lkIEhU
TUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFZpZXdTb3VyCiAgICAgICAgICAgICAgICAgICAgIGlm
IChhdHRyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3VpZGUtPmF0KGkpID09ICdh
JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gYXR0ci0+bmFt
ZSgpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3R5cGUp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQobmFtZSwgIndlYmtpdC1o
dG1sLWRvY3R5cGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05h
bWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFkZFRleHQobmFtZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgIT0gbV90Ym9keSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3BhbldpdGhDbGFzc05hbWUoIndlYmtpdC1odG1s
LWF0dHJpYnV0ZS1uYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkVGV4dChu
YW1lLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobV9jdXJyZW50ICE9IG1fdGJvZHkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBh
cmVudCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gYXR0ci0+dmFsdWUoKS5kb21TdHJpbmcoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdHlwZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRkVGV4dCh2YWx1ZSwgIndlYmtpdC1odG1sLWRvY3R5cGUiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IFhNTCBjb3VsZCB1c2UgbmFtZXNwYWNlIHByZWZpeGVzIGFu
ZCBjb25mdXNlIHVzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UoYXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpLCAic3JjIikgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UoYXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpLCAiaHJlZiIpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkTGluayh2YWx1ZSwgZXF1YWxJ
Z25vcmluZ0Nhc2UodG9rZW4tPnRhZ05hbWUsICJhIikpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1
cnJlbnQgPSBhZGRTcGFuV2l0aENsYXNzTmFtZSgid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVl
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRleHQodmFsdWUsICJ3ZWJr
aXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fY3VycmVudCAhPSBtX3Rib2R5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9jdXJyZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1fY3VycmVudC0+cGFy
ZW50KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogWE1MIGNvdWxkIHVzZSBuYW1lc3BhY2UgcHJlZml4ZXMgYW5k
IGNvbmZ1c2UgdXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKGF0dHItPm5hbWUoKS5sb2NhbE5hbWUoKSwgInNyYyIpIHx8IGVxdWFsSWdub3JpbmdD
YXNlKGF0dHItPm5hbWUoKS5sb2NhbE5hbWUoKSwgImhyZWYiKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkTGluayh2YWx1ZSwgZXF1YWxJZ25vcmluZ0Nh
c2UodG9rZW4tPnRhZ05hbWUsICJhIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gYWRkU3Bhbldp
dGhDbGFzc05hbWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFkZFRleHQodmFsdWUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFs
dWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJyZW50ICE9IG1fdGJv
ZHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihtX2N1cnJlbnQtPnBhcmVudCgpKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTE4NCw2
ICsxNzUsMTcgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291cgogICAg
IH0KIH0KIAordm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRWaWV3U291cmNlRG9jdHlw
ZVRva2VuKERvY3R5cGVUb2tlbiogZG9jdHlwZVRva2VuKQoreworICAgIGlmICghbV9jdXJyZW50
KQorICAgICAgICBjcmVhdGVDb250YWluaW5nVGFibGUoKTsKKyAgICBtX2N1cnJlbnQgPSBhZGRT
cGFuV2l0aENsYXNzTmFtZSgid2Via2l0LWh0bWwtZG9jdHlwZSIpOworICAgIFN0cmluZyB0ZXh0
ID0gIjwiOworICAgIHRleHQgKz0gU3RyaW5nOjphZG9wdChkb2N0eXBlVG9rZW4tPm1fc291cmNl
KTsKKyAgICB0ZXh0ICs9ICI+IjsKKyAgICBhZGRUZXh0KHRleHQsICJ3ZWJraXQtaHRtbC1kb2N0
eXBlIik7Cit9CisKIEVsZW1lbnQqIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFNwYW5XaXRo
Q2xhc3NOYW1lKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lKQogewogICAgIGlmIChtX2N1cnJlbnQg
PT0gbV90Ym9keSkgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oCShy
ZXZpc2lvbiAzMDQyOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBEb2N0eXBlVG9rZW47CiBjbGFzcyBUb2tlbjsKIAogY2xhc3MgSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQKQEAgLTM5LDcgKzQwLDggQEAgcHVibGlj
OgogICAgIAogICAgIHZvaWQgYWRkVmlld1NvdXJjZVRva2VuKFRva2VuKik7IC8vIFVzZWQgYnkg
dGhlIEhUTUwgdG9rZW5pemVyLgogICAgIHZvaWQgYWRkVmlld1NvdXJjZVRleHQoY29uc3QgU3Ry
aW5nJik7IC8vIFVzZWQgYnkgdGhlIHBsYWludGV4dCB0b2tlbml6ZXIuCi0gICAgCisgICAgdm9p
ZCBhZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKERvY3R5cGVUb2tlbiopOworCiBwcml2YXRlOgog
ICAgIHZvaWQgY3JlYXRlQ29udGFpbmluZ1RhYmxlKCk7CiAgICAgRWxlbWVudCogYWRkU3Bhbldp
dGhDbGFzc05hbWUoY29uc3QgU3RyaW5nJik7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShy
ZXZpc2lvbiAzMDQyOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTkwLDcgKzk5MCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OndyaXRlKGNvbnN0
IGNoYXIqIHN0ciwKIAogICAgIGlmICghbV9yZWNlaXZlZERhdGEpIHsKICAgICAgICAgbV9yZWNl
aXZlZERhdGEgPSB0cnVlOwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kZXRlcm1pbmVQ
YXJzZU1vZGUoZGVjb2RlZCk7CiAgICAgICAgIGlmIChtX2RlY29kZXItPmVuY29kaW5nKCkudXNl
c1Zpc3VhbE9yZGVyaW5nKCkpCiAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRW
aXN1YWxseU9yZGVyZWQoKTsKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVjYWxjU3R5
bGUoTm9kZTo6Rm9yY2UpOwpAQCAtNDgxMCw3ICs0ODA5LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
c3dpdGNoT3V0TG93QmFuZHdpZHRoRAogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NvdXJjZUlu
TG93QmFuZHdpZHRoRGlzcGxheS5sZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8vIHNldCBj
YWNoZVBvbGljeSB0byBDYWNoZSB0byB1c2UgdGhlIGxvYWRlZCByZXNvdXJjZQogICAgICAgICAg
ICAgICAgIG5ld0RvYy0+ZG9jTG9hZGVyKCktPnNldENhY2hlUG9saWN5KENhY2hlUG9saWN5Q2Fj
aGUpOwotICAgICAgICAgICAgICAgIG5ld0RvYy0+ZGV0ZXJtaW5lUGFyc2VNb2RlKG1fcGVuZGlu
Z1NvdXJjZUluTG93QmFuZHdpZHRoRGlzcGxheSk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZGVj
b2Rlci0+ZW5jb2RpbmcoKS51c2VzVmlzdWFsT3JkZXJpbmcoKSkKICAgICAgICAgICAgICAgICAg
ICAgbmV3RG9jLT5zZXRWaXN1YWxseU9yZGVyZWQoKTsgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIG5ld0RvYy0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOyAgICAgICAgICAg
ICAgICAKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMzA0MjkpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjkwLDcgKzE2OTAsNyBAQCB2b2lkIEZyYW1lOjpkaXNj
b25uZWN0T3duZXJFbGVtZW50KCkKIFN0cmluZyBGcmFtZTo6ZG9jdW1lbnRUeXBlU3RyaW5nKCkg
Y29uc3QKIHsKICAgICBpZiAoRG9jdW1lbnQgKmRvYyA9IGRvY3VtZW50KCkpCi0gICAgICAgIGlm
IChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBkb2MtPnJlYWxEb2NUeXBlKCkpCisgICAgICAgIGlm
IChEb2N1bWVudFR5cGUgKmRvY3R5cGUgPSBkb2MtPmRvY3R5cGUoKSkKICAgICAgICAgICAgIHJl
dHVybiBkb2N0eXBlLT50b1N0cmluZygpOwogCiAgICAgcmV0dXJuIFN0cmluZygpOwpJbmRleDog
V2ViQ29yZS9wYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHJldmlzaW9uIDMwNDI5KQorKysgV2ViQ29y
ZS9wYWdlL2luc3BlY3Rvci91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyNSw2ICs0
MjUsMTggQEAgZnVuY3Rpb24gbm9kZURpc3BsYXlOYW1lKCkKIAogICAgICAgICBjYXNlIE5vZGUu
Q09NTUVOVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICI8IS0tIiArIHRoaXMubm9kZVZhbHVl
ICsgIi0tPiI7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX1RZUEVf
Tk9ERToKKyAgICAgICAgICAgIHZhciBkb2NUeXBlID0gIjwhRE9DVFlQRSAiICsgdGhpcy5ub2Rl
TmFtZTsKKyAgICAgICAgICAgIGlmICh0aGlzLnB1YmxpY0lkKSB7CisgICAgICAgICAgICAgICAg
ZG9jVHlwZSArPSAiIFBVQkxJQyBcIiIgKyB0aGlzLnB1YmxpY0lkICsgIlwiIjsKKyAgICAgICAg
ICAgICAgICBpZiAodGhpcy5zeXN0ZW1JZCkKKyAgICAgICAgICAgICAgICAgICAgZG9jVHlwZSAr
PSAiIFwiIiArIHRoaXMuc3lzdGVtSWQgKyAiXCIiOworICAgICAgICAgICAgfSBlbHNlIGlmICh0
aGlzLnN5c3RlbUlkKQorICAgICAgICAgICAgICAgIGRvY1R5cGUgKz0gIiBTWVNURU0gXCIiICsg
dGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN1YnNl
dCkKKyAgICAgICAgICAgICAgICBkb2NUeXBlICs9ICIgWyIgKyB0aGlzLmludGVybmFsU3Vic2V0
ICsgIl0iOworICAgICAgICAgICAgcmV0dXJuIGRvY1R5cGUgKyAiPiI7CiAgICAgfQogCiAgICAg
cmV0dXJuIHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5jb2xsYXBzZVdoaXRlc3BhY2UoKTsK
QEAgLTY0Myw2ICs2NTUsMTggQEAgZnVuY3Rpb24gbm9kZVRpdGxlSW5mbyhoYXNDaGlsZHJlbiwg
bGluawogICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1s
LWNvbW1lbnRcIj4mbHQ7IS0tIiArIHRoaXMubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICItLSZn
dDs8L3NwYW4+IjsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgTm9kZS5ET0NV
TUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFuIGNsYXNzPVwi
d2Via2l0LWh0bWwtdGFnXCI+Jmx0OyFET0NUWVBFICIgKyB0aGlzLm5vZGVOYW1lOworICAgICAg
ICAgICAgaWYgKHRoaXMucHVibGljSWQpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9
ICIgUFVCTElDIFwiIiArIHRoaXMucHVibGljSWQgKyAiXCIiOworICAgICAgICAgICAgICAgIGlm
ICh0aGlzLnN5c3RlbUlkKQorICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICIgXCIi
ICsgdGhpcy5zeXN0ZW1JZCArICJcIiI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3lz
dGVtSWQpCisgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiIFNZU1RFTSBcIiIgKyB0aGlz
LnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAgICAgIGlmICh0aGlzLmludGVybmFsU3Vic2V0KQor
ICAgICAgICAgICAgICAgIGluZm8udGl0bGUgKz0gIiBbIiArIHRoaXMuaW50ZXJuYWxTdWJzZXQg
KyAiXSI7CisgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7PC9zcGFuPiI7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGluZm8udGl0bGUgPSB0
aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkuY29sbGFwc2VXaGl0ZXNwYWNlKCkuZXNjYXBlSFRN
TCgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCShyZXZpc2lvbiAzMDQyOSkKKysr
IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNyAr
MjU4LDYgQEAgUmVmUHRyPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVhdGVEbwogICAgICAg
ICByZXN1bHQtPnNldFVSTChvd25lckRvY3VtZW50LT51cmwoKSk7CiAgICAgICAgIHJlc3VsdC0+
c2V0QmFzZVVSTChvd25lckRvY3VtZW50LT5iYXNlVVJMKCkpOwogICAgIH0KLSAgICByZXN1bHQt
PmRldGVybWluZVBhcnNlTW9kZShkb2N1bWVudFNvdXJjZSk7IC8vIE1ha2Ugc3VyZSB3ZSBwYXJz
ZSBpbiB0aGUgY29ycmVjdCBtb2RlLgogICAgIAogICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNv
ZGVyPiBkZWNvZGVyID0gbmV3IFRleHRSZXNvdXJjZURlY29kZXIoc291cmNlTUlNRVR5cGUpOwog
ICAgIGRlY29kZXItPnNldEVuY29kaW5nKHNvdXJjZUVuY29kaW5nLmlzRW1wdHkoKSA/IFVURjhF
bmNvZGluZygpIDogVGV4dEVuY29kaW5nKHNvdXJjZUVuY29kaW5nKSwgVGV4dFJlc291cmNlRGVj
b2Rlcjo6RW5jb2RpbmdGcm9tWE1MSGVhZGVyKTsKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGdldGRvY3R5cGUwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50Z2V0ZG9jdHlw
ZTAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRnZXRkb2N0eXBlMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50Z2V0ZG9jdHlwZTAxCi1TdGF0dXMJZXJyb3IK
LU1lc3NhZ2UJRXJyb3I6IE5PVF9GT1VORF9FUlI6IERPTSBFeGNlcHRpb24gOAorU3RhdHVzCWZh
aWx1cmUKK01lc3NhZ2UJbmV3U3lzSWROdWxsOiBhc3NlcnROdWxsIGZhaWxlZCwgYWN0dWFsIG51
bGwKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlYXBwZW5kY2hp
bGQwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVhcHBlbmRjaGlsZDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0Mjkp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWFwcGVuZGNoaWxkMDEt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVhcHBlbmRjaGls
ZDAxCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19ISUVSQVJDSFlfUkVRVUVTVF9PUl9O
T1RfU1VQUE9SVEVEOiBmYWlsCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjAyLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkK
KysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24wMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzIEBACiBU
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMDIKIFN0YXR1cwllcnJvcgotTWVzc2FnZQlFcnJvcjog
Tk9UX0ZPVU5EX0VSUjogRE9NIEV4Y2VwdGlvbiA4CitNZXNzYWdlCVR5cGVFcnJvcjogVmFsdWUg
dW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVzc2lvbiBkb2MuY29tcGFyZURvY3VtZW50UG9zaXRp
b24pIGlzIG5vdCBvYmplY3QuCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWluc2VydGJlZm9yZTAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTAyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMDIKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlFcnJvcjogTk9U
X0ZPVU5EX0VSUjogRE9NIEV4Y2VwdGlvbiA4CitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUwNS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVp
bnNlcnRiZWZvcmUwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUwNS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTA1Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJRXJyb3I6IE5PVF9GT1VORF9FUlI6IERPTSBFeGNlcHRpb24gOAorU3Rh
dHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
aXNlcXVhbG5vZGUwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpc2VxdWFsbm9kZTAxLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWlzZXF1
YWxub2RlMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAogVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVp
c2VxdWFsbm9kZTAxCi1TdGF0dXMJU3VjY2VzcworU3RhdHVzCWZhaWx1cmUKK01lc3NhZ2UJbm9k
ZWlzZXF1YWxub2RlMDE6IGFzc2VydFRydWUgZmFpbGVkCkluZGV4OiBMYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMDQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQw
NC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDA0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdl
CUVycm9yOiBOT1RfRk9VTkRfRVJSOiBET00gRXhjZXB0aW9uIDgKK1N0YXR1cwlTdWNjZXNzCklu
ZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMDUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQwNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysg
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDA1LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQwNQot
U3RhdHVzCWVycm9yCi1NZXNzYWdlCUVycm9yOiBOT1RfRk9VTkRfRVJSOiBET00gRXhjZXB0aW9u
IDgKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDEzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDEzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDEzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTMKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlFcnJvcjogTk9U
X0ZPVU5EX0VSUjogRE9NIEV4Y2VwdGlvbiA4CitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQ0MC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQ0MC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQ0MC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDQwCi1TdGF0dXMJ
ZmFpbHVyZQotTWVzc2FnZQl0aHJvd19ISUVSQVJDSFlfUkVRVUVTVF9PUl9OT1RfU1VQUE9SVEVE
OiBmYWlsCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9k
b2N0eXBlLWFmdGVyLWNvbW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRlci1jb21tZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRlci1jb21t
ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBhIERvY3R5cGUgYWZ0ZXIgYSBjb21tZW50IGF0IHRoZSBiZWdpbm5p
bmcgb2YgdGhlIGRvY3VtZW50Li4KK1BBU1M6IGEgZG9jdHlwZSBhZnRlciBhIGNvbW1lbnQgd2Fz
IG5vdCBpZ25vcmVkLgorUEFTUzogYSBkb2N0eXBlIGFmdGVyIGEgY29tbWVudCB3YXMgc2V0IGFz
IHRoZSBzZWNvbmQgZWxlbWVudCBjb3JyZWN0bHkgYW5kIG5vdCBtb3ZlZCB0byBiZSB0aGUgZmly
c3QgY2hpbGQuCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRl
ci1jb21tZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9k
b2N0eXBlLWFmdGVyLWNvbW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9jdHlwZXMvZG9jdHlwZS1hZnRlci1jb21tZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzIgQEAKKzwhLS0gQSBjb21tZW50IC0tPgorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
KyAgICAgICAgbG9nID0gZnVuY3Rpb24obXNnKQorICAgICAgICB7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1zZyArICJcbiIpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBvbmxvYWQg
PSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5kb2N0eXBl
KQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGFmdGVyIGEgY29tbWVudCB3
YXMgbm90IGlnbm9yZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9n
KCJGQUlMOiBhIGRvY3R5cGUgYWZ0ZXIgYSBjb21tZW50IHdhcyBpZ25vcmVkLiIpOworCisgICAg
ICAgICAgICBpZiAoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSA9PSBkb2N1bWVudC5kb2N0eXBlKQor
ICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGFmdGVyIGEgY29tbWVudCB3YXMg
c2V0IGFzIHRoZSBzZWNvbmQgZWxlbWVudCBjb3JyZWN0bHkgYW5kIG5vdCBtb3ZlZCB0byBiZSB0
aGUgZmlyc3QgY2hpbGQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9n
KCJGQUlMOiBhIGRvY3R5cGUgYWZ0ZXIgYSBjb21tZW50IHdhcyBub3Qgc2V0IGFzIHRoZSBzZWNv
bmQgZWxlbWVudCBjb3JyZWN0bHkuIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIFRoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgRG9jdHlwZSBhZnRl
ciBhIGNvbW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQuLgorICAgIDxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWF0LWVuZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWF0LWVuZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5cGUtYXQtZW5kLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBhIERvY3R5cGUgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuCitQQVNTOiBh
IGRvY3R5cGUgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2FzIGlnbm9yZWQuCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1hdC1lbmQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5cGUtYXQtZW5kLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5cGUtYXQtZW5kLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBsb2cgPSBmdW5j
dGlvbihtc2cpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxu
IikpOworICAgICAgICB9CisgICAgCisgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5kb2N0eXBlKQorICAgICAgICAgICAgICAg
IGxvZygiUEFTUzogYSBkb2N0eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IHdhcyBpZ25v
cmVkLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYSBk
b2N0eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IHdhcyBub3QgaWdub3JlZC4iKTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgVGhpcyB0ZXN0cyB0
aGUgYmVoYXZpb3Igb2YgYSBEb2N0eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LgorICAg
IDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgorPCFET0NUWVBFIEhU
TUw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5cGUtaW4tZWxlbWVudC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9kb2N0
eXBlLWluLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWluLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgRG9jdHlwZSBp
bnNpZGUgYW4gRWxlbWVudC4KK1BBU1M6IGEgZG9jdHlwZSBpbnNpZGUgYW4gRWxlbWVudCB3YXMg
aWdub3JlZC4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9kb2N0eXBlLWluLWVs
ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5
cGUtaW4tZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb2N0
eXBlcy9kb2N0eXBlLWluLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCisgICAgICAgIGxvZyA9IGZ1bmN0aW9uKG1zZykKKyAgICAgICAgeworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cgKyAiXG4iKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAg
ICAgb25sb2FkID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWRvY3Vt
ZW50LmRvY3R5cGUpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBhIGRvY3R5cGUgaW5zaWRl
IGFuIEVsZW1lbnQgd2FzIGlnbm9yZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMOiBhIGRvY3R5cGUgaW5zaWRlIGFuIEVsZW1lbnQgd2FzIG5vdCBpZ25v
cmVkLiIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
IURPQ1RZUEUgSFRNTD4KKyAgICBUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBhIERvY3R5cGUg
aW5zaWRlIGFuIEVsZW1lbnQuCisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2RvY3R5cGUtcGFyc2lu
Zy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9k
b2N0eXBlLXBhcnNpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb2N0eXBlcy9kb2N0eXBlLXBhcnNpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwNyBAQAorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3Rl
ZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0
aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUg
d2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFy
ZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6
IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlw
ZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFN0YW5k
YXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBBbG1vc3QgU3RhbmRhcmRz
IGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIEFsbW9zdCBTdGFuZGFyZHMgYXMg
ZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgQWxtb3N0IFN0YW5kYXJkcyBhcyBleHBl
Y3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBBbG1vc3QgU3RhbmRhcmRzIGFzIGV4cGVjdGVk
LgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBE
b2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVp
cmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3Rl
ZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUg
RG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1
aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0
ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhl
IERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBR
dWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRo
ZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMg
UXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBl
Y3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0
aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2Fz
IFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhw
ZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzog
dGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdh
cyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4
cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6
IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3
YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBl
eHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNT
OiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUg
d2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMg
ZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFT
UzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBl
IHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFz
IGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BB
U1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlw
ZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBh
cyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQ
QVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5
cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3Mg
YXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgor
UEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0
eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtz
IGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4K
K1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9j
dHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJr
cyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQu
CitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERv
Y3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWly
a3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVk
LgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBE
b2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVp
cmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3Rl
ZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUg
RG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1
aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0
ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhl
IERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBR
dWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVj
dGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRo
ZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMg
UXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBl
Y3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0
aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2Fz
IFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMg
ZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFT
UzogdGhlIERvY3R5cGUgd2FzIFN0YW5kYXJkcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0
eXBlIHdhcyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtz
IGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4K
K1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUg
RG9jdHlwZSB3YXMgU3RhbmRhcmRzIGFzIGV4cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2Fz
IFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdhcyBRdWlya3MgYXMgZXhw
ZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4cGVjdGVkLgorUEFTUzog
dGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6IHRoZSBEb2N0eXBlIHdh
cyBRdWlya3MgYXMgZXhwZWN0ZWQuCitQQVNTOiB0aGUgRG9jdHlwZSB3YXMgUXVpcmtzIGFzIGV4
cGVjdGVkLgorUEFTUzogdGhlIERvY3R5cGUgd2FzIFF1aXJrcyBhcyBleHBlY3RlZC4KK1BBU1M6
IHRoZSBEb2N0eXBlIHdhcyBTdGFuZGFyZHMgYXMgZXhwZWN0ZWQuCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1wYXJzaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9kb2N0eXBlLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvZG9jdHlwZS1wYXJzaW5nLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTQzIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvVGVzdERvY3R5cGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdGVzdCA9IGZ1bmN0aW9uKG1v
ZGUsIGRvY3R5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uY29udGVudERvY3VtZW50CisgICAgICAg
ICAgICBkb2Mub3BlbigpOworICAgICAgICAgICAgZG9jLndyaXRlKGRvY3R5cGUgKyAiXG48aHRt
bD48Ym9keT48L2JvZHk+PC9odG1sPiIpCisgICAgICAgICAgICBkb2MuY2xvc2UoKTsKKyAgICAg
ICAgICAgIHRlc3REb2N0eXBlKGRvYywgbW9kZSwgZG9jdHlwZSk7CisgICAgICAgIH0KKworICAg
ICAgICBvbmxvYWQgPSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRlc3Qg
Tm8gRG9jdHlwZQorICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJycpOworCisgICAgICAgICAg
ICAvLyBUZXN0IERvY3R5cGVzIHRoYXQgZm9yY2UgU3RhbmRhcmRzIG1vZGUKKyAgICAgICAgICAg
IHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTD4nKTsKKyAgICAgICAgICAgIHRlc3Qo
J1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBTWVNURU0gImh0dHA6Ly93d3cudzMub3JnL1RS
L1JFQy1odG1sNDAvc3RyaWN0LmR0ZCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdTdGFuZGFyZHMn
LCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIj4nKTsK
KyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdTdGFuZGFyZHMn
LCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVC
TElDICJJU08vSUVDIDE1NDQ1OjIwMDAvL0RURCBIeXBlclRleHQgTWFya3VwIExhbmd1YWdlLy9F
TiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVC
TElDICJJU08vSUVDIDE1NDQ1OjIwMDAvL0RURCBIVE1MLy9FTiI+Jyk7CisgICAgICAgICAgICB0
ZXN0KCdTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TCBpMThuLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdTdGFuZGFyZHMnLCAnPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5v
cmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Jyk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgRG9jdHlw
ZXMgdGhhdCBmb3JjZSBBbG1vc3QtU3RhbmRhcmRzIG1vZGUKKyAgICAgICAgICAgIHRlc3QoJ0Fs
bW9zdCBTdGFuZGFyZHMnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgVHJhbnNpdGlvbmFsLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdBbG1vc3QgU3Rh
bmRhcmRzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIEZy
YW1lc2V0Ly9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdBbG1vc3QgU3RhbmRhcmRzJywgJzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPicpOworICAgICAgICAg
ICAgdGVzdCgnQWxtb3N0IFN0YW5kYXJkcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1cz
Qy8vRFREIEhUTUwgNC4wMSBGcmFtZXNldC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1s
NC9mcmFtZXNldC5kdGQiPicpOworCisgICAgICAgICAgICAvLyBUZXN0IERvY3R5cGVzIHRoYXQg
Zm9yY2UgUXVpcmtzIG1vZGUKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUg
SFRNTCBOT1QgVU5ERVJTVE9PRD4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURP
Q1RZUEUgSFRNTCBbIDwhRUxFTUVOVCBURVNUIC0gLSAoUCkgPiBdPicpOworICAgICAgICAgICAg
dGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwh
RE9DVFlQRSBodG1sIFNZU1RFTSAiaHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14
aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgRnJhbWVzZXQvL0VO
Ij4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPicpOworICAgICAgICAgICAg
dGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAgRnJhbWVzZXQvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL1NvZnRRdWFkIFNvZnR3YXJlLy9EVEQgSG9UTWV0YUwgUFJPIDYu
MDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAvL0VOIj4nKTsKKyAgICAgICAgICAg
IHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1NvZnRRdWFkLy9EVEQg
SG9UTWV0YUwgUFJPIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAvL0VOIj4n
KTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTi8vMy4wIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycs
ICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czTy8vRFREIFczIEhUTUwgMy4wLy9FTi8vIj4n
KTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czTy8vRFREIFczIEhUTUwgMy4wLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3Mn
LCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMgMTk5NS0wMy0yNC8v
RU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwgMy4wLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWly
a3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAzLjAvL0VOLy8i
PicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwgMy8vRU4iPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywg
JzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMy8vRU4iPicp
OworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwgTGV2ZWwgMy8vRU4vLzMuMCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdR
dWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAzLjIvL0VO
Ij4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0FkdmFTb2Z0IEx0ZC8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNpb25zLy9FTiI+
Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvL0VOLy8zLjAiPicpOworICAgICAgICAgICAgdGVzdCgn
UXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNPLy9EVEQgVzMgSFRNTCBTdHJp
Y3QgMy4wLy9FTi8vIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAzLy9FTiI+Jyk7Cisg
ICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMy8vRU4vLzMuMCI+Jyk7CisgICAgICAgICAgICB0ZXN0
KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICJIVE1MIj4nKTsKKyAgICAgICAgICAg
IHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4vLzIuMCI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdR
dWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VO
Ij4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MIExldmVsIDIvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1
aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDIv
L0VOLy8yLjAiPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgMi4wIExldmVsIDIvL0VOIj4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MIExldmVsIDEvL0VOIj4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDEvL0VOLy8yLjAiLicpOwor
ICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwgMi4wIExldmVsIDEvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJr
cycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDAvL0VO
Ii4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MIExldmVsIDAvL0VOLy8yLjAiLicpOworICAgICAgICAgICAgdGVz
dCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3Ry
aWN0Ly9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvL0VOLy8yLjAiLicpOworICAgICAgICAg
ICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwgU3RyaWN0IExldmVsIDIvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAyLy9F
Ti8vMi4wIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIDIuMCBTdHJpY3QvL0VOIi4nKTsKKyAgICAgICAgICAg
IHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
IDIuMCBTdHJpY3QgTGV2ZWwgMi8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywg
JzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEv
L0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAxLy9FTi8vMi4wIi4nKTsKKyAgICAg
ICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MIDIuMCBTdHJpY3QgTGV2ZWwgMS8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVp
cmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExl
dmVsIDAvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAwLy9FTi8vMi4wIi4nKTsK
KyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1dl
YlRlY2hzLy9EVEQgTW96aWxsYSBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWly
a3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XZWJUZWNocy8vRFREIE1vemlsbGEgSFRN
TCAyLjAvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL05ldHNjYXBlIENvbW0uIENvcnAuLy9EVEQgSFRNTC8vRU4iLicpOworICAg
ICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vTmV0c2Nh
cGUgQ29tbS4gQ29ycC4vL0RURCBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWly
a3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9OZXRzY2FwZSBDb21tLiBDb3JwLi8vRFRE
IFN0cmljdCBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAyLjAg
SFRNTC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwgU3Ry
aWN0Ly9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAyLjAgVGFibGVzLy9F
TiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgSFRNTC8vRU4iLicpOwor
ICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vTWlj
cm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwgU3RyaWN0Ly9FTiIuJyk7Cisg
ICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9NaWNy
b3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgVGFibGVzLy9FTiIuJyk7CisgICAgICAg
ICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9TdW4gTWljcm9z
eXN0ZW1zIENvcnAuLy9EVEQgSG90SmF2YSBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0
KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zIENv
cnAuLy9EVEQgSG90SmF2YSBTdHJpY3QgSFRNTC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgn
UXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwgMi4xRS8v
RU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vT1wnUmVpbGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRNTCBFeHRlbmRlZCAxLjAvL0VO
Ii4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL09cJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgRXh0ZW5kZWQgUmVsYXhlZCAx
LjAvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL09cJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgMi4wLy9FTiIuJyk7
CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9T
US8vRFREIEhUTUwgMi4wIEhvVE1ldGFMICsgZXh0ZW5zaW9ucy8vRU4iLicpOworICAgICAgICAg
ICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vU3B5Z2xhc3MvL0RU
RCBIVE1MIDIuMCBFeHRlbmRlZC8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywg
JzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiKy8vU2lsbWFyaWwvL0RURCBIVE1MIFBybyB2MHIxMSAx
OTk3MDEwMS8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCBFeHBlcmltZW50YWwgMTk5NjA3MTIvL0VOIi4n
KTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgMy4yLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iLicp
OworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
VzNDLy9EVEQgSFRNTCAzLjIgRHJhZnQvL0VOIi4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJr
cycsICc8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgRXhwZXJpbWVudGFs
IDk3MDQyMS8vRU4iLicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjJTIERyYWZ0Ly9FTiIuJyk7CisgICAgICAg
ICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBX
MyBIVE1MLy9FTiIuJyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9NZXRyaXVzLy9EVEQgTWV0cml1cyBQcmVzZW50YXRpb25hbC8vRU4iLicp
OworCisgICAgICAgICAgICAvLyBUZXN0IG1hbGZvcm1lZCBEb2N0eXBlcworICAgICAgICAgICAg
dGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRT4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJk
cycsICc8IURPQ1RZUEVodG1sPicpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9D
VFlQRWZvbz4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1N0YW5kYXJkcycsICc8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOIj4nKTsKKyAg
ICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMnKTsKKyAgICAg
ICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgXCcnKTsKKyAgICAg
ICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgXCd4Jyk7CisgICAg
ICAgICAgICB0ZXN0KCdTdGFuZGFyZHMnLCAnPCFET0NUWVBFIGh0bWwgU1lTVEVNICItLy9XM0Mv
L0RURCBIVE1MIFRyYW5zaXRpb25hbCA0LjAxLy9FTiI+Jyk7CisgICAgICAgICAgICB0ZXN0KCdT
dGFuZGFyZHMnLCAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIFRyYW5z
aXRpb25hbCA0LjAxLy9FTiIgIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VO
Ij4nKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMg
XCI+eCcpOworICAgICAgICAgICAgdGVzdCgnUXVpcmtzJywgJzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyBcJz54Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAnPCFET0NUWVBFIGh0bWwgUFVC
TElDICJmb28iIFwiPngnKTsKKyAgICAgICAgICAgIHRlc3QoJ1F1aXJrcycsICc8IURPQ1RZUEUg
aHRtbCBQVUJMSUMgXCdmb29cJyBcJz54Jyk7CisgICAgICAgICAgICB0ZXN0KCdRdWlya3MnLCAn
PCFET0NUWVBFIGh0bWwgJyk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgRG9jdHlwZXMgbm90IGF0
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIERvY3VtZW50CisgICAgICAgICAgICB0ZXN0KCdRdWlya3Mn
LCAnPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD48IURPQ1RZUEUgaHRtbD4nKTsKKyAgICAgICAg
ICAgIHRlc3QoJ1F1aXJrcycsICc8aHRtbD48Ym9keT48IURPQ1RZUEUgaHRtbD48L2JvZHk+PC9o
dG1sPicpOworICAgICAgICAgICAgdGVzdCgnU3RhbmRhcmRzJywgJzwhLS0gY29tbWVudCAtLT48
IURPQ1RZUEUgaHRtbD4nKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHByZSBpZD0nY29uc29sZSc+PC9wcmU+CisgICAgPGlmcmFtZSBzcmM9InJlc291
cmNlcy9zdWJmcmFtZS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvaHRtbC1kb2N0eXBlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2h0bWwtZG9jdHlwZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL2h0bWwtZG9jdHlw
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0cyB0
aGUgYmVoYXZpb3Igb2YgYSBEb2N0eXBlIGluIGEgSFRNTCBkb2N1bWVudC4KK1BBU1M6IGEgZG9j
dHlwZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgbm90IGlnbm9yZWQuCitQQVNTOiBhIGRvY3R5cGUg
aW4gYW4gSFRNTCBkb2N1bWVudCBpcyBjb3JyZWN0bHkgc2V0IHRvIHRoZSBmaXJzdCBjaGlsZCBv
ZiB0aGUgRG9jdW1lbnQuCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvaHRtbC1k
b2N0eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9odG1s
LWRvY3R5cGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMv
aHRtbC1kb2N0eXBlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWwgPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICBsb2cgPSBmdW5jdGlvbihtc2cpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworICAgICAgICB9CisKKyAg
ICAgICAgb25sb2FkID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZG9j
dW1lbnQuZG9jdHlwZSkKKyAgICAgICAgICAgICAgICBsb2coIlBBU1M6IGEgZG9jdHlwZSBpbiBh
IEhUTUwgZG9jdW1lbnQgaXMgbm90IGlnbm9yZWQuIik7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbG9nKCJGQUlMOiBhIGRvY3R5cGUgaW4gYSBIVE1MIGRvY3VtZW50IGlzIGln
bm9yZWQuIik7CisKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5maXJzdENoaWxkID09IGRvY3Vt
ZW50LmRvY3R5cGUpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBhIGRvY3R5cGUgaW4gYW4g
SFRNTCBkb2N1bWVudCBpcyBjb3JyZWN0bHkgc2V0IHRvIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUg
RG9jdW1lbnQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGQUlM
OiBhIGRvY3R5cGUgaW4gYW4gSFRNTCBkb2N1bWVudCBpcyBub3QgY29ycmVjdGx5IHNldCB0byB0
aGUgZmlyc3QgY2hpbGQgb2YgdGhlIERvY3VtZW50LiIpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBhIERv
Y3R5cGUgaW4gYSBIVE1MIGRvY3VtZW50LgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy94bWwtZG9j
dHlwZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBl
cy94bWwtZG9jdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvY3R5cGVzL3htbC1kb2N0eXBlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBhIERvY3R5cGUgaW4gYW4gWE1M
IGRvY3VtZW50LgorUEFTUzogYSBkb2N0eXBlIGluIGEgWE1MIGRvY3VtZW50IGlzIG5vdCBpZ25v
cmVkLgorUEFTUzogYSBkb2N0eXBlIGluIGFuIFhNTCBkb2N1bWVudCBpcyBjb3JyZWN0bHkgc2V0
IHRvIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgRG9jdW1lbnQuCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9jdHlwZXMveG1sLWRvY3R5cGUueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb2N0eXBlcy94bWwtZG9jdHlwZS54aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9jdHlwZXMveG1sLWRvY3R5cGUueGh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICBsb2cgPSBmdW5jdGlvbihtc2cpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworICAgICAgICB9CisKKyAg
ICAgICAgb25sb2FkID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZG9j
dW1lbnQuZG9jdHlwZSkKKyAgICAgICAgICAgICAgICBsb2coIlBBU1M6IGEgZG9jdHlwZSBpbiBh
IFhNTCBkb2N1bWVudCBpcyBub3QgaWdub3JlZC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBsb2coIkZBSUw6IGEgZG9jdHlwZSBpbiBhIFhNTCBkb2N1bWVudCBpcyBpZ25v
cmVkLiIpOworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZmlyc3RDaGlsZCA9PSBkb2N1bWVu
dC5kb2N0eXBlKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogYSBkb2N0eXBlIGluIGFuIFhN
TCBkb2N1bWVudCBpcyBjb3JyZWN0bHkgc2V0IHRvIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgRG9j
dW1lbnQuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBh
IGRvY3R5cGUgaW4gYW4gWE1MIGRvY3VtZW50IGlzIG5vdCBjb3JyZWN0bHkgc2V0IHRvIHRoZSBm
aXJzdCBjaGlsZCBvZiB0aGUgRG9jdW1lbnQuIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIFRoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgRG9jdHlw
ZSBpbiBhbiBYTUwgZG9jdW1lbnQuCisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL3Jlc291cmNlcy9U
ZXN0RG9jdHlwZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvY3R5cGVzL3Jl
c291cmNlcy9UZXN0RG9jdHlwZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9jdHlwZXMvcmVzb3VyY2VzL1Rlc3REb2N0eXBlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDM2IEBACitsb2cgPSBmdW5jdGlvbihtc2cpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cgKyAi
XG4iKSk7Cit9CisKK2hhc0FsbW9zdFN0YW5kYXJkc01vZGVRdWlyayA9IGZ1bmN0aW9uKGRvYykK
K3sKKyAgICB2YXIgZGl2ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5pbm5l
ckhUTUwgPSAiPGltZyBzcmM9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuX0FMTC9pbWFn
ZXMvbG9nby5naWYnIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4Jz48YnI+PGltZyBzcmM9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9pbnRs
L2VuX0FMTC9pbWFnZXMvbG9nby5naWYnIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Jz4iOworICAgIGRvYy5ib2R5LmFwcGVuZENoaWxk
KGRpdik7CisgICAgdmFyIGhhc1F1aXJrID0gZG9jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoZGl2LCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0IikgPT0gIjIwMHB4IjsKKyAgICBk
b2MuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgIHJldHVybiBoYXNRdWlyazsKK30KKwordGVz
dERvY3R5cGUgPSBmdW5jdGlvbihkb2MsIGV4cGVjdGVkLCBkb2N0eXBlKQoreworICAgIHZhciBt
b2RlID0gIk5PVCBTRVQiOworICAgIGlmIChkb2MuY29tcGF0TW9kZSA9PSAiQ1NTMUNvbXBhdCIp
IHsKKyAgICAgICAgaWYgKGhhc0FsbW9zdFN0YW5kYXJkc01vZGVRdWlyayhkb2MpKSB7CisgICAg
ICAgICAgICBtb2RlID0gIkFsbW9zdCBTdGFuZGFyZHMiOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbW9kZSA9ICJTdGFuZGFyZHMiOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChk
b2MuY29tcGF0TW9kZSA9PSAiQmFja0NvbXBhdCIpIHsKKyAgICAgICAgbW9kZSA9ICJRdWlya3Mi
OworICAgIH0gZWxzZSB7CisgICAgICAgIG1vZGUgPSAiWW91ciBicm93c2VyIGRvZXMgbm90IHN1
cHBvcnQgZG9jdW1lbnQuY29tcGF0TW9kZSI7CisgICAgfQorCisgICAgaWYgKG1vZGUgPT0gZXhw
ZWN0ZWQpIHsKKyAgICAgICAgbG9nKCJQQVNTOiB0aGUgRG9jdHlwZSB3YXMgIiArIG1vZGUgKyAi
IGFzIGV4cGVjdGVkLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZygiRkFJTDogdGhlIERv
Y3R5cGUgd2FzICIgKyBtb2RlICsgIi4gIEl0IHdhcyBleHBlY3RlZCB0byBiZSAiICsgZXhwZWN0
ZWQgKyAiLiAgRG9jdHlwZTogIiArIGRvY3R5cGUpOworICAgIH0KK30KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9jdHlwZXMvcmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb2N0eXBlcy9yZXNvdXJjZXMvc3ViZnJhbWUuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9jdHlwZXMvcmVzb3VyY2VzL3N1YmZyYW1lLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK05vIFBhZ2UKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RhdGUtRFNULXRpbWUtY3VzcHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGF0ZS1EU1Qt
dGltZS1jdXNwcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9kYXRlLURTVC10aW1lLWN1c3BzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNSw4ICs1LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQog
CiBQQVNTIChuZXcgRGF0ZSgxOTgyLCAyLCAxNCwgMiwgMTApKS5nZXRIb3VycygpIGlzIDEKIFBB
U1MgKG5ldyBEYXRlKDE5ODIsIDIsIDE0LCAyKSkuZ2V0SG91cnMoKSBpcyAxCi1QQVNTIChuZXcg
RGF0ZSgxOTgyLCAxMSwgNywgMSwgMTApKS5nZXRUaW1lem9uZU9mZnNldCgpIGlzIDQ4MAotUEFT
UyAobmV3IERhdGUoMTk4MiwgMTEsIDcsIDEpKS5nZXRUaW1lem9uZU9mZnNldCgpIGlzIDQ4MAor
RkFJTCAobmV3IERhdGUoMTk4MiwgMTEsIDcsIDEsIDEwKSkuZ2V0VGltZXpvbmVPZmZzZXQoKSBz
aG91bGQgYmUgNDgwLiBXYXMgMzYwLgorRkFJTCAobmV3IERhdGUoMTk4MiwgMTEsIDcsIDEpKS5n
ZXRUaW1lem9uZU9mZnNldCgpIHNob3VsZCBiZSA0ODAuIFdhcyAzNjAuCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL3N2Zy9XM0MtU1ZHLTEuMS90ZXh0LXRzZWxlY3QtMDItZi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQv
c3ZnL1czQy1TVkctMS4xL3RleHQtdHNlbGVjdC0wMi1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvVzNDLVNWRy0x
LjEvdGV4dC10c2VsZWN0LTAyLWYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw1
ICszNiw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdp
ZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS4yICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDAuNTAsMC41MCkgc2l6ZSA0Nzl4MzU5IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAs
MzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMyBvZiBjaGlsZCAwIHsjdGV4dH0g
b2YgY2hpbGQgMyB7dGV4dH0gb2YgY2hpbGQgMyB7Z30gb2YgY2hpbGQgMzUge2d9IG9mIGNoaWxk
IDAge3N2Z30gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTIgb2YgY2hp
bGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNoaWxkIDMge2d9IG9mIGNoaWxkIDM1
IHtnfSBvZiBjaGlsZCAwIHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0
aW9uIDMgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNoaWxkIDMge2d9
IG9mIGNoaWxkIDM1IHtnfSBvZiBjaGlsZCAxIHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24g
ZW5kOiAgIHBvc2l0aW9uIDEyIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBv
ZiBjaGlsZCAzIHtnfSBvZiBjaGlsZCAzNSB7Z30gb2YgY2hpbGQgMSB7c3ZnfSBvZiBkb2N1bWVu
dApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL2N1c3RvbS9mb3Jl
aWduT2JqZWN0LWNyYXNoLW9uLWhvdmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvY3VzdG9tL2ZvcmVpZ25PYmplY3QtY3Jh
c2gtb24taG92ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy9jdXN0b20vZm9yZWlnbk9iamVjdC1jcmFzaC1vbi1o
b3Zlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDQgKzExLDQgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4ODAwCiAgICAgICAgIFJlbmRlckJSIHtodG1sOmJyfSBhdCAoMTA4
LDApIHNpemUgMHgxOAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
MTgpIHNpemUgMjQ2eDM2CiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoOTkuMTksMTI5LjUw
KSBzaXplIDIwMS42MngyMDEuNjIgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZG
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik01MC4wMCw4
MC4wMEwyNTAuMDAsODAuMDBMMTUwLjAwLDI4MC4wMCJdCi1jYXJldDogcG9zaXRpb24gNyBvZiBj
aGlsZCAzIHsjdGV4dH0gb2YgY2hpbGQgNSB7Zm9yZWlnbk9iamVjdH0gb2YgY2hpbGQgMSB7Z30g
b2YgY2hpbGQgMCB7c3ZnfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9uIDcgb2YgY2hpbGQg
MyB7I3RleHR9IG9mIGNoaWxkIDUge2ZvcmVpZ25PYmplY3R9IG9mIGNoaWxkIDEge2d9IG9mIGNo
aWxkIDEge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
ZW9wYXJkL3N2Zy9jdXN0b20vdGV4dC1kb20tMDEtZi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL2N1c3RvbS90ZXh0LWRvbS0w
MS1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGVvcGFyZC9zdmcvY3VzdG9tL3RleHQtZG9tLTAxLWYtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw1ICs1OCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAog
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYK
ICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0
IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS4xICQiCiAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDAuNTAsMC41MCkgc2l6ZSA0Nzl4MzU5IFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0
NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMTEg
b2YgY2hpbGQgMiB7I3RleHR9IG9mIGNoaWxkIDcge3RleHR9IG9mIGNoaWxkIDMge2d9IG9mIGNo
aWxkIDM1IHtnfSBvZiBjaGlsZCAwIHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAg
IHBvc2l0aW9uIDE0IG9mIGNoaWxkIDIgeyN0ZXh0fSBvZiBjaGlsZCA3IHt0ZXh0fSBvZiBjaGls
ZCAzIHtnfSBvZiBjaGlsZCAzNSB7Z30gb2YgY2hpbGQgMCB7c3ZnfSBvZiBkb2N1bWVudAorc2Vs
ZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAxMSBvZiBjaGlsZCAyIHsjdGV4dH0gb2YgY2hpbGQgNyB7
dGV4dH0gb2YgY2hpbGQgMyB7Z30gb2YgY2hpbGQgMzUge2d9IG9mIGNoaWxkIDEge3N2Z30gb2Yg
ZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTQgb2YgY2hpbGQgMiB7I3RleHR9
IG9mIGNoaWxkIDcge3RleHR9IG9mIGNoaWxkIDMge2d9IG9mIGNoaWxkIDM1IHtnfSBvZiBjaGls
ZCAxIHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVv
cGFyZC9zdmcvY3VzdG9tL3RleHQtaGl0LXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy9jdXN0b20vdGV4dC1oaXQtdGVz
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvc3ZnL2N1c3RvbS90ZXh0LWhpdC10ZXN0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIsNCArMTIsNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg5MCwxMzApIHNpemUgNDN4MTggY29udGFpbnMg
MSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0
KSBzaXplIDQzeDE4CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg5MC4wMCwxMzAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDYgd2lkdGggNDMuMDA6ICJQYXNzZWQiCi1jYXJl
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hp
bGQgMyB7Z30gb2YgY2hpbGQgMCB7c3ZnfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDMge2d9IG9mIGNo
aWxkIDEge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
ZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1hbGlnbi0w
MS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWFsaWduLTAxLWItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw1ICszNSw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYK
ICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0
IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS41ICQiCiAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAs
MS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRp
b24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9
IG9mIGNoaWxkIDI2IHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9u
IDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjYge3N2
Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI3IHtzdmd9
IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjcge3N2Z30gb2YgZG9jdW1lbnQKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWxpZ24t
MDItYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1hbGlnbi0wMi1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0
LWFsaWduLTAyLWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MSw1ICs0MSw1IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4w
MDogIiRSZXZpc2lvbjogMS41ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44
Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5
LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2Yg
Y2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI2IHtzdmd9IG9mIGRvY3Vt
ZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBj
aGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjYge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBz
dGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2Yg
Y2hpbGQgMTMge2d9IG9mIGNoaWxkIDI3IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5k
OiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2Yg
Y2hpbGQgMjcge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDMtYi1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1hbGln
bi0wMy1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWFsaWduLTAzLWItZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw1ICsyMSw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4
NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zm
c2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS41ICQiCiAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0Nzku
MDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9z
aXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMg
e2d9IG9mIGNoaWxkIDI3IHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0
aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjcg
e3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAw
IHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI4IHtz
dmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAg
eyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjgge3N2Z30gb2YgZG9jdW1lbnQK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWxp
Z24tMDQtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1hbGlnbi0wNC1iLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90
ZXh0LWFsaWduLTA0LWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00Miw1ICs0Miw1
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4
dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2
NC4wMDogIiRSZXZpc2lvbjogMS41ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMs
MC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAs
MzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0g
b2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI3IHtzdmd9IG9mIGRv
Y3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjcge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlv
biBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0g
b2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI4IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24g
ZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0g
b2YgY2hpbGQgMjgge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDUtYi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1h
bGlnbi0wNS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWFsaWduLTA1LWItZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw1ICsyNyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAy
NjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0
T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS41ICQiCiAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0
NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQg
MTMge2d9IG9mIGNoaWxkIDI2IHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBv
c2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQg
MjYge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI3
IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxk
IDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjcge3N2Z30gb2YgZG9jdW1l
bnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQt
YWxpZ24tMDYtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC1hbGlnbi0wNi1iLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4
dC90ZXh0LWFsaWduLTA2LWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MCw1ICs1
MCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0
IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRo
IDI2NC4wMDogIiRSZXZpc2lvbjogMS41ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAu
ODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEu
MDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4
dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI2IHtzdmd9IG9m
IGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0
fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMjYge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVj
dGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4
dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDI3IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4
dH0gb2YgY2hpbGQgMjcge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtYWx0Z2x5cGgtMDEtYi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQv
dGV4dC1hbHRnbHlwaC0wMS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWFsdGdseXBoLTAxLWIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw1ICsyMiw1IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgw
LC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwz
NDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lv
bjogMS41ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTgu
MzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVj
dGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4
dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDMxIHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4
dH0gb2YgY2hpbGQgMzEge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRp
b24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9
IG9mIGNoaWxkIDMyIHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9u
IDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMzIge3N2
Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2
Zy90ZXh0L3RleHQtZGVjby0wMS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWRlY28tMDEtYi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvc3ZnL3RleHQvdGV4dC1kZWNvLTAxLWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC00NSw1ICs0NSw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVy
U1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS45ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAs
MzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDEz
IHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxk
IDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMTMge3N2Z30gb2YgZG9jdW1l
bnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDE0IHtzdmd9IG9mIGRvY3VtZW50
CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGls
ZCAxNSB7dGV4dH0gb2YgY2hpbGQgMTQge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtZm9udHMtMDEtdC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3Zn
L3RleHQvdGV4dC1mb250cy0wMS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWZvbnRzLTAxLXQt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw1ICszMCw1IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgw
LC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwz
NDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lv
bjogMS41ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTgu
MzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVj
dGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4
dH0gb2YgY2hpbGQgMSB7Z30gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDMzIHtzdmd9IG9mIGRv
Y3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMzMge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlv
biBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0g
b2YgY2hpbGQgMSB7Z30gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDM0IHtzdmd9IG9mIGRvY3Vt
ZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBj
aGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMzQge3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtZm9udHMtMDItdC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQv
c3ZnL3RleHQvdGV4dC1mb250cy0wMi10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LWZvbnRzLTAy
LXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00OCw1ICs0OCw1IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0
ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4w
MCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZp
c2lvbjogMS43ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3
OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0
YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNl
bGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7
dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDE2IHtzdmd9IG9mIGRvY3VtZW50Ci1zZWxl
Y3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7
dGV4dH0gb2YgY2hpbGQgMTYge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9z
aXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMg
e2d9IG9mIGNoaWxkIDE3IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0
aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4dH0gb2YgY2hpbGQgMTcg
e3N2Z30gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJk
L3N2Zy90ZXh0L3RleHQtcGF0aC0wMS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXBhdGgtMDEtYi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxl
b3BhcmQvc3ZnL3RleHQvdGV4dC1wYXRoLTAxLWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC01OCw1ICs1OCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVu
ZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zm
c2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS45ICQiCiAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0Nzku
MDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dFBhdGh9IG9mIGNoaWxkIDMge3RleHR9IG9m
IGNoaWxkIDMge2d9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyOSB7c3ZnfSBvZiBkb2N1bWVu
dAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMTUge3RleHR9IG9mIGNoaWxkIDI5IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHRQYXRofSBv
ZiBjaGlsZCAzIHt0ZXh0fSBvZiBjaGlsZCAzIHtnfSBvZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQg
MzAge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hp
bGQgMCB7I3RleHR9IG9mIGNoaWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCAzMCB7c3ZnfSBvZiBkb2N1
bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4
dC1zcGFjaW5nLTAxLWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtc3BhY2luZy0wMS1iLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9z
dmcvdGV4dC90ZXh0LXNwYWNpbmctMDEtYi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDUgKzI2LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTYpIHNpemUgNDJ4OAogICAgICAgICBjaHVuayAx
IHRleHQgcnVuIDEgYXQgKDUuMDAsNTcuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdp
ZHRoIDQyLjAwOiAiJFJldmlzaW9uOiAxLjYgJCIKICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NSw1KSBzaXplIDc5MHg1OTAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSJNMS4wMCwxLjAwTDc5LjAwLDEuMDBMNzkuMDAsNTkuMDBMMS4wMCw1OS4wMCJdCi1z
ZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEg
e3RleHR9IG9mIGNoaWxkIDEge2d9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAxOCB7c3ZnfSBv
ZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4
dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDE4IHtzdmd9IG9mIGRvY3VtZW50CitzZWxl
Y3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3Rl
eHR9IG9mIGNoaWxkIDEge2d9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAxOSB7c3ZnfSBvZiBk
b2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0g
b2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDE5IHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDEtYi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvc3ZnL3RleHQvdGV4dC10ZXh0LTAxLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtdGV4dC0w
MS1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDUgKzEyNSw1IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9
IGF0ICgwLC03KSBzaXplIDUyeDkKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1LjAw
LDExNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTYgd2lkdGggNTIuMDA6ICIkUmV2aXNp
b246IDEuNyAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyLjUwLDIuNTApIHNpemUgNzk1
eDU5NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAw
LDEuMDBMMTU5LjAwLDEuMDBMMTU5LjAwLDExOS4wMEwxLjAwLDExOS4wMCJdCi1zZWxlY3Rpb24g
c3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9m
IGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyNSB7c3ZnfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVu
ZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9m
IGNoaWxkIDI1IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBj
aGlsZCAyNiB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDI2IHtzdmd9IG9m
IGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4
dC90ZXh0LXRleHQtMDMtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10ZXh0LTAzLWItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2
Zy90ZXh0L3RleHQtdGV4dC0wMy1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NSArMzcsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CiAgICAgICAgIGNodW5rIDEg
dGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxNiB3
aWR0aCAyNjQuMDA6ICIkUmV2aXNpb246IDEuOCAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAwLDEuMDBMNDc5LjAwLDEuMDBMNDc5LjAwLDM1OS4w
MEwxLjAwLDM1OS4wMCJdCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAzMSB7c3Zn
fSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDMxIHtzdmd9IG9mIGRvY3VtZW50Citz
ZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEg
e3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAzMiB7c3ZnfSBvZiBkb2N1bWVudAorc2Vs
ZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUg
e3RleHR9IG9mIGNoaWxkIDMyIHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDQtdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQv
dGV4dC10ZXh0LTA0LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtdGV4dC0wNC10LWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjkxLDUgKzI5MSw1IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikg
c2l6ZSAyODR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE3IHdpZHRoIDI4NC4wMDogIiRSZXZpc2lvbjogMS4x
MyAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5
OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAw
LDEuMDBMNDc5LjAwLDEuMDBMNDc5LjAwLDM1OS4wMEwxLjAwLDM1OS4wMCJdCi1zZWxlY3Rpb24g
c3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9m
IGNoaWxkIDEge2d9IG9mIGNoaWxkIDE1IHtnfSBvZiBjaGlsZCAxNCB7c3ZnfSBvZiBkb2N1bWVu
dAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNyBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMTcge3RleHR9IG9mIGNoaWxkIDE0IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNo
aWxkIDEge2d9IG9mIGNoaWxkIDE1IHtnfSBvZiBjaGlsZCAxNSB7c3ZnfSBvZiBkb2N1bWVudAor
c2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNyBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQg
MTcge3RleHR9IG9mIGNoaWxkIDE1IHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDUtdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3Rl
eHQvdGV4dC10ZXh0LTA1LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtdGV4dC0wNS10LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTU3LDUgKzU1Nyw1IEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0z
Nikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNTAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjog
MS44ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAuODMsMC44Mykgc2l6ZSA3OTguMzN4
NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEu
MDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAwTDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlv
biBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0g
b2YgY2hpbGQgNSB7Z30gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDgge3N2Z30gb2YgZG9jdW1l
bnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCA4IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNo
aWxkIDUge2d9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCA5IHtzdmd9IG9mIGRvY3VtZW50Citz
ZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAx
NSB7dGV4dH0gb2YgY2hpbGQgOSB7c3ZnfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10ZXh0LTA2LXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0
L3RleHQtdGV4dC0wNi10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDYtdC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw1ICsxMzUsNSBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYp
IHNpemUgMjY0eDQ2CiAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAw
KSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxNiB3aWR0aCAyNjQuMDA6ICIkUmV2aXNpb246IDEu
OSAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5
OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAw
LDEuMDBMNDc5LjAwLDEuMDBMNDc5LjAwLDM1OS4wMEwxLjAwLDM1OS4wMCJdCi1zZWxlY3Rpb24g
c3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9m
IGNoaWxkIDEge2d9IG9mIGNoaWxkIDUge2d9IG9mIGNoaWxkIDMge2d9IG9mIGNoaWxkIDExIHtz
dmd9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAg
eyN0ZXh0fSBvZiBjaGlsZCA1IHt0ZXh0fSBvZiBjaGlsZCAxMSB7c3ZnfSBvZiBkb2N1bWVudAor
c2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAx
IHt0ZXh0fSBvZiBjaGlsZCAxIHtnfSBvZiBjaGlsZCA1IHtnfSBvZiBjaGlsZCAzIHtnfSBvZiBj
aGlsZCAxMiB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgNSB7dGV4dH0gb2YgY2hpbGQgMTIge3N2Z30gb2Yg
ZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0
L3RleHQtdGV4dC0wNy10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDctdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3Zn
L3RleHQvdGV4dC10ZXh0LTA3LXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw1
ICszNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0zNikgc2l6ZSAyNjR4NDYKICAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdp
ZHRoIDI2NC4wMDogIiRSZXZpc2lvbjogMS44ICQiCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDAuODMsMC44Mykgc2l6ZSA3OTguMzN4NTk4LjMzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTEuMDAsMS4wMEw0NzkuMDAsMS4wMEw0NzkuMDAsMzU5LjAw
TDEuMDAsMzU5LjAwIl0KLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMSB7dGV4dH0gb2YgY2hpbGQgMTMge2d9IG9mIGNoaWxkIDgge3N2Z30g
b2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3Rl
eHR9IG9mIGNoaWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCA4IHtzdmd9IG9mIGRvY3VtZW50CitzZWxl
Y3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3Rl
eHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCA5IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxNSB7dGV4
dH0gb2YgY2hpbGQgOSB7c3ZnfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10ZXh0LTA4LWItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQt
dGV4dC0wOC1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRleHQtMDgtYi1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDUgKzE5LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTM2KSBzaXplIDI2
NHg0NgogICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDEwLjAwLDM0MC4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgMTYgd2lkdGggMjY0LjAwOiAiJFJldmlzaW9uOiAxLjMgJCIKICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMC44MywwLjgzKSBzaXplIDc5OC4zM3g1OTguMzMgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMS4wMCwxLjAwTDQ3
OS4wMCwxLjAwTDQ3OS4wMCwzNTkuMDBMMS4wMCwzNTkuMDAiXQotc2VsZWN0aW9uIHN0YXJ0OiBw
b3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHt0ZXh0fSBvZiBjaGlsZCAx
MyB7Z30gb2YgY2hpbGQgMTMge3N2Z30gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9z
aXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCAx
MyB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxk
IDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHt0ZXh0fSBvZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQgMTQg
e3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCAxNCB7c3ZnfSBvZiBkb2N1bWVu
dApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10
cmVmLTAxLWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtdHJlZi0wMS1iLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90
ZXh0LXRyZWYtMDEtYi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDUgKzE3LDUg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDAsLTM2KSBzaXplIDI2NHg0NgogICAgICAgICBjaHVuayAxIHRleHQgcnVu
IDEgYXQgKDEwLjAwLDM0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTYgd2lkdGggMjY0
LjAwOiAiJFJldmlzaW9uOiAxLjYgJCIKICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMC44Myww
LjgzKSBzaXplIDc5OC4zM3g1OTguMzMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMS4wMCwxLjAwTDQ3OS4wMCwxLjAwTDQ3OS4wMCwzNTkuMDBMMS4wMCwz
NTkuMDAiXQotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAzIHt0ZXh0fSBvZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQgMjkge3N2Z30gb2YgZG9j
dW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9m
IGNoaWxkIDE1IHt0ZXh0fSBvZiBjaGlsZCAyOSB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9u
IHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBv
ZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQgMzAge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBl
bmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDE1IHt0ZXh0fSBv
ZiBjaGlsZCAzMCB7c3ZnfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10c2VsZWN0LTAxLWItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQt
dHNlbGVjdC0wMS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRzZWxlY3QtMDEtYi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQzLDUgKzQzLDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYp
IHNpemUgMjY0eDQ2CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDI2NC4wMDogIiRSZXZpc2lvbjog
MS44ICQiCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMC44MywwLjgzKSBzaXplIDc5OC4z
M3g1OTguMzMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
MS4wMCwxLjAwTDQ3OS4wMCwxLjAwTDQ3OS4wMCwzNTkuMDBMMS4wMCwzNTkuMDAiXQotc2VsZWN0
aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHt0ZXh0
fSBvZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQgMjQge3N2Z30gb2YgZG9jdW1lbnQKLXNlbGVjdGlv
biBlbmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDUge3RleHR9
IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyNCB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9u
IHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHt0ZXh0fSBv
ZiBjaGlsZCAxMyB7Z30gb2YgY2hpbGQgMjUge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBl
bmQ6ICAgcG9zaXRpb24gMTYgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDUge3RleHR9IG9m
IGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyNSB7c3ZnfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10c2VsZWN0LTAyLWYtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJk
L3N2Zy90ZXh0L3RleHQtdHNlbGVjdC0wMi1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0Mjkp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRzZWxl
Y3QtMDItZi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM2LDUgKzM2LDUgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDAsLTM2KSBzaXplIDI2NHg0NgogICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQg
KDEwLjAwLDM0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTYgd2lkdGggMjY0LjAwOiAi
JFJldmlzaW9uOiAxLjIgJCIKICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMC44MywwLjgzKSBz
aXplIDc5OC4zM3g1OTguMzMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSJNMS4wMCwxLjAwTDQ3OS4wMCwxLjAwTDQ3OS4wMCwzNTkuMDBMMS4wMCwzNTkuMDAi
XQotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAzIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGls
ZCAzIHt0ZXh0fSBvZiBjaGlsZCAzIHtnfSBvZiBjaGlsZCAzNSB7Z30gb2YgY2hpbGQgMCB7c3Zn
fSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxMiBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0gb2YgY2hpbGQgMyB7Z30gb2YgY2hpbGQgMzUge2d9IG9m
IGNoaWxkIDAge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMyBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0gb2YgY2hpbGQgMyB7Z30gb2YgY2hp
bGQgMzUge2d9IG9mIGNoaWxkIDEge3N2Z30gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAg
cG9zaXRpb24gMTIgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNoaWxk
IDMge2d9IG9mIGNoaWxkIDM1IHtnfSBvZiBjaGlsZCAxIHtzdmd9IG9mIGRvY3VtZW50CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXRzcGFuLTAx
LWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
ZW9wYXJkL3N2Zy90ZXh0L3RleHQtdHNwYW4tMDEtYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMw
NDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC10
c3Bhbi0wMS1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODAsNSArODAsNSBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CiAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBh
dCAoMTAuMDAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxNiB3aWR0aCAyNjQuMDA6
ICIkUmV2aXNpb246IDEuNyAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLjgzLDAuODMp
IHNpemUgNzk4LjMzeDU5OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0xLjAwLDEuMDBMNDc5LjAwLDEuMDBMNDc5LjAwLDM1OS4wMEwxLjAwLDM1OS4w
MCJdCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAzNCB7c3ZnfSBvZiBkb2N1bWVu
dAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMTUge3RleHR9IG9mIGNoaWxkIDM0IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNo
aWxkIDEzIHtnfSBvZiBjaGlsZCAzNSB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDog
ICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNo
aWxkIDM1IHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bGVvcGFyZC9zdmcvdGV4dC90ZXh0LXdzLTAxLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2Zy90ZXh0L3RleHQtd3MtMDEtdC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxlb3BhcmQvc3ZnL3RleHQvdGV4dC13cy0wMS10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNSArMzMsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CiAgICAgICAg
IGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9m
ZnNldCAxNiB3aWR0aCAyNjQuMDA6ICIkUmV2aXNpb246IDEuNyAkIgogICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5OC4zMyBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAwLDEuMDBMNDc5LjAwLDEuMDBMNDc5
LjAwLDM1OS4wMEwxLjAwLDM1OS4wMCJdCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2Yg
Y2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGls
ZCAyOCB7c3ZnfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDI4IHtzdmd9IG9mIGRv
Y3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9m
IGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyOSB7c3ZnfSBvZiBkb2N1
bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2Yg
Y2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDI5IHtzdmd9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvdGV4dC90ZXh0LXdzLTAyLXQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL3N2
Zy90ZXh0L3RleHQtd3MtMDItdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL3RleHQvdGV4dC13cy0wMi10LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzMsNSArMzMsNSBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYp
IHNpemUgMjY0eDQ2CiAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAw
KSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxNiB3aWR0aCAyNjQuMDA6ICIkUmV2aXNpb246IDEu
OCAkIgogICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5
OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xLjAw
LDEuMDBMNDc5LjAwLDEuMDBMNDc5LjAwLDM1OS4wMEwxLjAwLDM1OS4wMCJdCi1zZWxlY3Rpb24g
c3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9m
IGNoaWxkIDEzIHtnfSBvZiBjaGlsZCAyOCB7c3ZnfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVu
ZDogICBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9m
IGNoaWxkIDI4IHtzdmd9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge3RleHR9IG9mIGNoaWxkIDEzIHtnfSBvZiBj
aGlsZCAyOSB7c3ZnfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNiBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMTUge3RleHR9IG9mIGNoaWxkIDI5IHtzdmd9IG9m
IGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJv
YXJkLzQ2MzE5NzItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDYzMTk3Mi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC80
NjMxOTcyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJB
TUV9IGF0ICgwLDApIHNpemUgMTAyeDUyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCiAg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEwMHg1MAogICAgICAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgMTAweDUwCi0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDEwMHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDEwMHg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA4
NHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEwMHg1MAorICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMDB4NTAKKyAgICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDg0eDM0CiBjYXJldDogcG9zaXRpb24g
MSBvZiBjaGlsZCAxIHtJRlJBTUV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0g
b2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUteG1sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXht
bC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS14bWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw0ICsyNyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDcyCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTQsMTQpIHNpemUgNDB4MjgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxMTQsMTQpIHdpZHRoIDQwOiAiIGJheiIKICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi1jYXJldDogcG9zaXRpb24gMyBvZiBjaGlsZCAx
IHsjdGV4dH0gb2YgY2hpbGQgMSB7c3Bhbn0gb2YgY2hpbGQgMSB7ZGl2fSBvZiBjaGlsZCAzIHti
b2R5fSBvZiBjaGlsZCAwIHtodG1sfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9uIDMgb2Yg
Y2hpbGQgMSB7I3RleHR9IG9mIGNoaWxkIDEge3NwYW59IG9mIGNoaWxkIDEge2Rpdn0gb2YgY2hp
bGQgMyB7Ym9keX0gb2YgY2hpbGQgMSB7aHRtbH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9ob3Zlci1zdHlsZS1j
aGFuZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9ob3Zlci1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy1nZW5lcmF0ZWQtY29udGVudC9ob3Zlci1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw0ICszNCw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDIwOAog
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc1NTogIlRvIHJlcHJvZHVjZSB0aGUg
YnVnIG91dHNpZGUgb2YgRHVtcFJlbmRlclRyZWUsIG1vdXNlIG92ZXIgdGhlIGRpdiBzZXZlcmFs
IHRpbWVzLCBhbmQgdGhlIHN0eWxlIGNoYW5nZSB3b24ndCB1cGRhdGUiCiAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMTgpIHdpZHRoIDcwOiAiZXZlcnkgdGltZSAiCiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcwLDE4KSB3aWR0aCA4NTogImxpa2UgaXQgc2hvdWxkLiIKLWNhcmV0OiBwb3NpdGlv
biAzIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9
IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJldDogcG9zaXRpb24gMyBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAx
IHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L3Bvc2l0aW9uZWQtYmFja2dyb3VuZC1oaXQtdGVzdC1jcmFz
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3Bvc2l0aW9uZWQtYmFja2dyb3VuZC1oaXQtdGVzdC1j
cmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3Bvc2l0aW9uZWQtYmFja2dyb3VuZC1o
aXQtdGVzdC1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwLDQgKzEwLDQg
QEAgbGF5ZXIgYXQgKDgsMjEpIHNpemUgNzg0eDM3CiBsYXllciBhdCAoOCwyMSkgc2l6ZSAyMDJ4
MjAyCiAgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSBhdCAoMCwwKSBzaXplIDIwMngyMDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUg
MHgwCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7SDF9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJldDog
cG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7SDF9IG9mIGNoaWxkIDEg
e0JPRFl9IG9mIGNoaWxkIDEge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9kb2N0eXBlcy8wMDMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvY3R5cGVzLzAwMy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9jdHlw
ZXMvMDAzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMCArMSwyMSBAQAogbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgxNzYKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDE3NgotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDE1MgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1NzYKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDEw
MAogICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTAwKSBzaXplIDc4NHgxOAog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0ODl4MTgKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDk6ICJUaGlzIGZpbGUgaGFzIGEgZG9jIHR5cGUg
d2l0aCBubyBwdWJsaWMgaWRlbnRpZmllci4gIgogICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDks
MCkgd2lkdGggMTgwOiAiV2Ugc2hvdWxkIGJlIGluIHN0cmljdCBtb2RlLiIKLSAgICAgIFJlbmRl
ckJsb2NrIHtVTH0gYXQgKDAsMTM0KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJMaXN0SXRl
bSB7TEl9IGF0ICg0MCwwKSBzaXplIDc0NHgxOAotICAgICAgICAgIFJlbmRlckJsb2NrIHtVTH0g
YXQgKDAsMCkgc2l6ZSA3NDR4MTgKKyAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDAsMTM0KSBz
aXplIDc4NHgzNgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDc0
NHgzNgorICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzQ0
eDE4CisgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBi
dWxsZXQKKyAgICAgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDE4KSBzaXplIDc0NHgxOAog
ICAgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3MDR4MTgKLSAg
ICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTU3LDApIHNpemUgN3gxODogYnVsbGV0
CiAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IHdo
aXRlIGJ1bGxldAogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyNTF4MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNTE6ICJC
b3RoIGJ1bGxldHMgc2hvdWxkIGJlIG9uIHRoZSBzYW1lIGxpbmUuIgotbGF5ZXIgYXQgKDgsOCkg
c2l6ZSA4MHg4MAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDgsOCkgc2l6
ZSA4MHg4MCBbYmdjb2xvcj0jMDA4MDAwXQorbGF5ZXIgYXQgKDEwLDEwKSBzaXplIDgweDgwCisg
IFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMTAsMTApIHNpemUgODB4ODAgW2Jn
Y29sb3I9IzAwODAwMF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9h
dHRyX2RlYWRfZG9jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9kb20vYXR0cl9kZWFkX2RvYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMw
NDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL2F0dHJfZGVhZF9kb2Mt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDkgKzYsOSBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkg
c2l6ZSAzMDR4MTU0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCiAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAzMDB4MTUwCi0gICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDgKLSAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMDB4OAotICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyODR4MAorICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDMwMHgxNTAKKyAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAz
MDB4MTUwCisgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgx
MzQKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS9kb20tcGFyc2Utc2VyaWFsaXplLWRpc3BsYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9kb20tcGFyc2Utc2VyaWFsaXpl
LWRpc3BsYXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2RvbS9kb20tcGFyc2Utc2VyaWFsaXplLWRpc3BsYXktZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAog
ICAgICAgICBSZW5kZXJCbG9jayB7UFJFfSBhdCAoMjcsMzIpIHNpemUgNzU2eDYwCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTc2eDYwCi0gICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzY6ICI8IURPQ1RZUEUgZG9jPjw/eG1sLXN0eWxlc2hl
ZXQgaHJlZj1cImRpc3BsYXkuY3NzXCIgdHlwZT1cInRleHQvY3NzXCI/Pjxkb2M+IgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTc2OiAiPD94bWwtc3R5bGVzaGVldCBocmVm
PVwiZGlzcGxheS5jc3NcIiB0eXBlPVwidGV4dC9jc3NcIj8+PCFET0NUWVBFIGRvYz48ZG9jPiIK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1NzYsMCkgd2lkdGggMDogIiAiCiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwxNSkgd2lkdGggNTM2OiAiICA8Zm9vIHhtbG5zPVwiZm9vYmFyXCI+
T25lPC9mb28+IDx4OmJhciB4bWxuczp4PVwiYmFyZm9vXCI+VHdvPC94OmJhcj4iCiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTM2LDE1KSB3aWR0aCAwOiAiICIKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2R5bmFtaWMvc2VsZWN0aW9uLWhpZ2hsaWdodC1hZGp1c3QtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2R5
bmFtaWMvc2VsZWN0aW9uLWhpZ2hsaWdodC1hZGp1c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAz
MDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2R5bmFtaWMvc2VsZWN0aW9u
LWhpZ2hsaWdodC1hZGp1c3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw1ICsy
Nyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDE1NgogICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDMwOSw1Mikgc2l6ZSA0eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDMwOSw1
Mikgd2lkdGggNDogIiAiCiAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDMxMyw1Mikgc2l6ZSAw
eDE4Ci1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDYge1NQQU59IG9mIGNoaWxkIDUge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQg
MCB7SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gNTEgb2YgY2hp
bGQgMCB7I3RleHR9IG9mIGNoaWxkIDYge1NQQU59IG9mIGNoaWxkIDUge0RJVn0gb2YgY2hpbGQg
MSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgNiB7U1BBTn0gb2YgY2hpbGQg
NSB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAxIHtIVE1MfSBvZiBkb2N1bWVudAor
c2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA1MSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQg
NiB7U1BBTn0gb2YgY2hpbGQgNSB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAxIHtI
VE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZmxl
eGJveC8wMTYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2ZsZXhib3gvMDE2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mbGV4Ym94LzAxNi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE1LDkgKzE1LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MTJ4NjAw
CiAgICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsNTQpIHNpemUgODEyeDUy
OCBbYmdjb2xvcj0jMDA4MDAwXSBbYm9yZGVyOiAoMTBweCBzb2xpZCAjODA4MDAwKV0KICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc5Mng1MDgKICAgICAgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA3OTJ4NTA4Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3OTJ4
OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzkyeDgKLSAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3NzZ4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzkyeDUwOAorICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgNzkyeDUwOAorICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc3Nng0OTIKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsNTgyKSBzaXplIDgwMHgxOAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDY2NHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDA3OiAi
VGhpcyBmb290ZXIgc2hvdWxkIHJlbWFpbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBicm93c2VyIHdp
bmRvdy4gIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvaW5wdXQt
ZG91YmxlLWNsaWNrLXNlbGVjdGlvbi1nYXAtYnVnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9pbnB1dC1kb3VibGUtY2xpY2st
c2VsZWN0aW9uLWdhcC1idWctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL2lucHV0LWRvdWJsZS1jbGljay1zZWxlY3Rp
b24tZ2FwLWJ1Zy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI3LDUgKzI3LDUgQEAg
bGF5ZXIgYXQgKDM1LDQwOSkgc2l6ZSAxNDJ4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMs
Mykgc2l6ZSAxNDJ4MTMKICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAzOXgx
MwogICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMzk6ICJmb28gYmFyIgotc2VsZWN0aW9u
IHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9m
IGNoaWxkIDEge0lOUFVUfSBvZiBjaGlsZCAxIHtURH0gb2YgY2hpbGQgMCB7VFJ9IG9mIGNoaWxk
IDEge1RCT0RZfSBvZiBjaGlsZCAzIHtUQUJMRX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQg
MCB7SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gNyBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgY2hpbGQg
MSB7VER9IG9mIGNoaWxkIDAge1RSfSBvZiBjaGlsZCAxIHtUQk9EWX0gb2YgY2hpbGQgMyB7VEFC
TEV9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxl
Y3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJ
Vn0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGNoaWxkIDEge1REfSBvZiBjaGlsZCAwIHtUUn0gb2Yg
Y2hpbGQgMSB7VEJPRFl9IG9mIGNoaWxkIDMge1RBQkxFfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBj
aGlsZCAxIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA3IG9m
IGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge0lOUFVUfSBvZiBj
aGlsZCAxIHtURH0gb2YgY2hpbGQgMCB7VFJ9IG9mIGNoaWxkIDEge1RCT0RZfSBvZiBjaGlsZCAz
IHtUQUJMRX0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMSB7SFRNTH0gb2YgZG9jdW1lbnQK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL3RhYmJpbmctaW5wdXQt
aWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9mb3Jtcy90YWJiaW5nLWlucHV0LWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvdGFiYmluZy1p
bnB1dC1pZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw5ICsxMiw5IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZS
QU1FfSBhdCAoMTU2LDE4KSBzaXplIDMwMngxNTIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAw
KV0KICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKLSAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAz
MDB4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwMHg4Ci0g
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgwCisgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMjg0eDEzNAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NTgsMTU2
KSBzaXplIDR4MTgKICAgICAgICAgdGV4dCBydW4gYXQgKDQ1OCwxNTYpIHdpZHRoIDQ6ICIgIgog
ICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNDY0LDE1Nikgc2l6ZSAxNDh4MTkg
W2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2ZyYW1lcy8wMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05LDI0ICs5LDI0IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZS
QU1FfSBhdCAoMCwxOCkgc2l6ZSAxNzB4MTcwIFtib3JkZXI6ICgxMHB4IHNvbGlkICNGRjAwMDAp
XQogICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgMTAweDEwMAotICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEw
MHg4Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTAweDgKLSAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgODR4MAorICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAxMDB4MTAwCisgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDg0eDg0CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE3MCwxNzQpIHNp
emUgNHgxOAogICAgICAgICB0ZXh0IHJ1biBhdCAoMTcwLDE3NCkgd2lkdGggNDogIiAiCiAgICAg
ICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgxNzQsMTgpIHNpemUgMTcweDE3MCBbYm9y
ZGVyOiAoMTBweCBzb2xpZCAjRkYwMDAwKV0KICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCiAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEwMHgxMDAKLSAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMDB4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDEwMHg4Ci0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDg0eDAKKyAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCisgICAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTAweDEwMAorICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA4NHg4NAogICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgzNDQsMTc0KSBzaXplIDR4MTgKICAgICAgICAgdGV4dCBydW4gYXQgKDM0
NCwxNzQpIHdpZHRoIDQ6ICIgIgogICAgICAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAo
MzQ4LDE4KSBzaXplIDE3MHgxNzAgW2JvcmRlcjogKDEwcHggc29saWQgI0ZGMDAwMCldCiAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTAweDEwMAogICAgICAgICAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSAxMDB4MTAwCi0gICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTAweDgKLSAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMDB4OAotICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA4NHgwCisgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTAweDEwMAorICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDEwMHgxMDAKKyAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgODR4ODQKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvMDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvMDAyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMv
MDAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiwxOSArNiwxOSBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkg
c2l6ZSAzOTd4NjAwCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzk3eDYwMAogICAgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzOTd4NjAwCi0gICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMzk3eDgKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAzOTd4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAzODF4
MAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM5N3g2MDAKKyAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzOTd4NjAwCisgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDM4MXg1ODQKICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFN
RVNFVH0gYXQgKDQwMywwKSBzaXplIDM5N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCwwKSBzaXplIDM5N3gyOTcKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM5
N3gyOTcKICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzOTd4Mjk3Ci0gICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzOTd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgMzk3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSAzODF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzk3
eDI5NworICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzk3eDI5
NworICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDM4MXgyODEK
ICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwzMDMpIHNpemUgMzk3eDI5NwogICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzk3eDI5NwogICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDM5N3gyOTcKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM5
N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzOTd4OAot
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDM4MXgwCisgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzOTd4Mjk3CisgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzOTd4Mjk3CisgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMzgxeDI4MQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZnJhbWVzL2NhbGN1bGF0ZS1maXhlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2NhbGN1bGF0ZS1maXhlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZnJhbWVzL2NhbGN1bGF0ZS1maXhlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgsODIgKzgsODIgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDM2eDUwMAogICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDM2eDUwMAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NTAwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDM2eDUwMAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgMjB4NDg0CiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNF
VH0gYXQgKDQyLDApIHNpemUgMzZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCwwKSBzaXplIDM2eDUwMAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng1
MDAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDM2eDUwMAotICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MzZ4NTAwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2
eDUwMAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4
NDg0CiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDg0LDApIHNpemUgMzZ4
NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDM2eDUwMAog
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDM2eDUwMAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDM2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIw
eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NTAwCisgICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDUwMAorICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4NDg0CiAgICAgICAgIFJlbmRlckZy
YW1lU2V0IHtGUkFNRVNFVH0gYXQgKDEyNiwwKSBzaXplIDM2eDUwMAogICAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMzZ4NTAwCiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAzNng1MDAKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgwCisgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDM2eDUwMAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAzNng1MDAKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDIweDQ4NAogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0
ICgxNjgsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgw
LDApIHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0Nwog
ICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4MjQ3Ci0gICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngy
NDcKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4MjQ3
CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgyMzEK
ICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1Mykgc2l6ZSAzNngyNDcKICAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSAzNngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAz
Nng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgw
CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0NworICAgICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNngyNDcKKyAgICAgICAgICAgICAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDIzMQogICAgICAgICBSZW5kZXJGcmFt
ZVNldCB7RlJBTUVTRVR9IGF0ICgyMTAsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5kZXJG
cmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDM2eDI0NwogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
MzZ4MjQ3Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAzNngyNDcKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMzZ4MjQ3CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSAyMHgyMzEKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1
Mykgc2l6ZSAzNngyNDcKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjQ3CiAg
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzNngyNDcKLSAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSAyMHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0
NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNngyNDcK
KyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDIzMQog
ICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICgyNTIsMCkgc2l6ZSAzNng1MDAK
ICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4MjQ3CiAgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0NwogICAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgMzZ4MjQ3Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDM2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4
OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAor
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNDcKKyAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4MjQ3CisgICAgICAgICAgICAgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgyMzEKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDI1Mykgc2l6ZSAzNngyNDcKICAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAz
NngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgwCisgICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDM2eDI0NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAzNngyNDcKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDIweDIzMQogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICgy
OTQsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDAp
IHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0NwogICAg
ICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4MjQ3Ci0gICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNDcK
KyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4MjQ3Cisg
ICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgyMzEKICAg
ICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1Mykgc2l6ZSAzNngyNDcKICAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAzNngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng4
Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgwCisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0NworICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNngyNDcKKyAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDIzMQogICAgICAgICBSZW5kZXJGcmFtZVNl
dCB7RlJBTUVTRVR9IGF0ICgzMzYsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAyMXg4CkBAIC05NCw5ICs5NCw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNikgc2l6ZSAzNng0OTQKICAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NDk0CiAgICAgICAgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAzNng0OTQKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng4
Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgwCisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDQ5NAorICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng0OTQKKyAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDQ3OAogICAgICAgICBSZW5kZXJGcmFtZVNl
dCB7RlJBTUVTRVR9IGF0ICgzNzgsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAyMXg4CkBAIC0xMDcsOSArMTA3LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw2KSBzaXplIDM2eDQ5NAogICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng0OTQKICAgICAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDM2eDQ5NAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2
eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDAK
KyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NDk0CisgICAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDQ5NAorICAgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4NDc4CiAgICAgICAgIFJlbmRlckZyYW1l
U2V0IHtGUkFNRVNFVH0gYXQgKDQyMCwwKSBzaXplIDM2eDUwMAogICAgICAgICAgIFJlbmRlckZy
YW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSAzNngwCiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDIxeDgKQEAgLTEyMCwyOSArMTIwLDI5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNikgc2l6ZSAzNng0OTQK
ICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NDk0CiAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzNng0OTQKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAzNng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAy
MHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDQ5NAorICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng0OTQKKyAgICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDQ3OAogICAgICAgICBSZW5kZXJG
cmFtZVNldCB7RlJBTUVTRVR9IGF0ICg0NjIsMCkgc2l6ZSAzNng1MDAKICAgICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4NDQKICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMzZ4NDQKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDM2eDQ0Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAzNng0NAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAzNng0NAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgMjB4MjgKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDUwKSBz
aXplIDM2eDQ1MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng0NTAKICAgICAg
ICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDM2eDQ1MAotICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDIweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NDUwCisg
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDQ1MAorICAg
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4NDM0CiAgICAg
ICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDUwNCwwKSBzaXplIDM2eDUwMAogICAg
ICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSAzNng0OTQKICAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4NDk0CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSAzNng0OTQKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4
OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng4Ci0g
ICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgwCisgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDQ5NAorICAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzNng0OTQKKyAgICAgICAgICAgICAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDQ3OAogICAgICAgICAgIFJlbmRlckZyYW1lIHtG
UkFNRX0gYXQgKDAsNTAwKSBzaXplIDM2eDAKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMjF4OAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjF4MApAQCAt
MTUzLDQ4ICsxNTMsNDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDM2eDI1MAogICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNTAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDM2eDI1MAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjUwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDM2eDI1MAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgMjB4MjM0CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCwyNTYpIHNpemUgMzZ4MjQ0CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2
eDI0NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4MjQ0Ci0gICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAzNngyNDQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
MzZ4MjQ0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAy
MHgyMjgKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNTg4LDApIHNpemUg
MzZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDM2eDI1
MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNTAKICAgICAgICAgICAgICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDM2eDI1MAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDM2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDIweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjUwCisgICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDI1MAorICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MjM0CiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTYpIHNpemUgMzZ4MjQ0CiAgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDM2eDI0NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMzZ4MjQ0Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAg
ICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNDQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMzZ4MjQ0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSAyMHgyMjgKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VU
fSBhdCAoNjMwLDApIHNpemUgMzZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCwwKSBzaXplIDM2eDI1MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngy
NTAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDM2eDI1MAotICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MzZ4MjUwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2
eDI1MAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4
MjM0CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTYpIHNpemUgMzZ4MjQ0
CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDI0NAogICAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4MjQ0Ci0gICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDM2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMzZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
MjB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNngyNDQKKyAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4MjQ0CisgICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHgyMjgKICAgICAgICAgUmVuZGVy
RnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNjcyLDApIHNpemUgMzZ4NTAwCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDM2eDQ5NAogICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAzNng0OTQKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDM2eDQ5NAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMzZ4NDk0CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDM2eDQ5NAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMjB4NDc4CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCw1MDApIHNpemUgMzZ4MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMXg4CiAg
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAyMXgwCkBAIC0yMDUsNDMgKzIw
NSw0MyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMzZ4Mzc1CiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDM2eDM3NQogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4
Mzc1Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjB4MAorICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAzNngzNzUKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgMzZ4Mzc1CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAyMHgzNTkKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDM4MSkg
c2l6ZSAzNng5MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng5MAogICAgICAg
ICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzZ4OTAKLSAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMzZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAzNng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAyMHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDM2eDkwCisgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDkwCisgICAgICAg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyMHg3NAogICAgICAgICAg
IFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNDc3KSBzaXplIDM2eDIzCiAgICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDM2eDIzCiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSAzNngyMwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDM2eDgKLSAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDIweDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzZ4MjMKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMzZ4MjMKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDIweDcKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBh
dCAoNzU2LDApIHNpemUgNDR4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwwKSBzaXplIDQ0eDI1MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NHgyNTAK
ICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDQ0eDI1MAotICAgICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDQ0eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDI4eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNDR4
MjUwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDQ0eDI1
MAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjh4MjM0
CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTYpIHNpemUgNDR4MTE5CiAg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDQ0eDExOQogICAgICAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgNDR4MTE5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDQ0eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
NDR4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjh4
MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NHgxMTkKKyAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNDR4MTE5CisgICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyOHgxMDMKICAgICAgICAgICBSZW5kZXJG
cmFtZSB7RlJBTUV9IGF0ICgwLDM4MSkgc2l6ZSA0NHgxMTkKICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNDR4MTE5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA0NHgxMTkKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNDR4OAotICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA0NHg4Ci0gICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyOHgwCisgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDQ0eDExOQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA0NHgxMTkKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDI4eDEwMwogICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw1MDYp
IHNpemUgODAweDk0CiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgODAweDk0CiAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg5NAotICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg4Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDgKLSAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAK
KyAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKKyAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKKyAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDc4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9mcmFtZXMvY2FsY3VsYXRlLW9yZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvY2FsY3VsYXRlLW9yZGVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9mcmFtZXMvY2FsY3VsYXRlLW9yZGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
OCw5ICs4LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVy
RnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NXg0ODgKICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTU1eDQ4OAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgMTU1eDQ4OAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDQ4OAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4NDg4CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4NDcyCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCw0OTQpIHNpemUgMTU1eDAKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTQweDgKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE0MHgwCkBAIC0z
MywyOCArMzMsMjggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw2KSBzaXplIDE1NXgxMjIKICAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU1eDEyMgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMTU1eDEyMgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDEyMgorICAgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4MTIyCisgICAgICAgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MTA2CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZS
QU1FfSBhdCAoMCwxMzQpIHNpemUgMTU1eDM2NgogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxNTV4MzY2CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4
MzY2Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTV4MzY2CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDE1NXgzNjYKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDEzOXgzNTAKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBh
dCAoMzIyLDApIHNpemUgMTU1eDUwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQg
KDAsMCkgc2l6ZSAxNTV4MjUwCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgy
NTAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1NXgyNTAKLSAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDE1NXgyNTAKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU1eDI1MAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgMTM5eDIzNAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMjU2KSBzaXpl
IDE1NXgyMzgKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDIzOAogICAgICAg
ICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDIzOAotICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDIz
OAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4MjM4
CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MjIy
CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw1MDApIHNpemUgMTU1eDAKICAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTQweDgKICAgICAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDE0MHgwCkBAIC02NSwxNSArNjUsMTUgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBz
aXplIDE1NXgyNTAKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDI1MAogICAg
ICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDI1MAotICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1
eDI1MAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4
MjUwCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4
MjM0CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTYpIHNpemUgMTU1eDIz
OAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MjM4CiAgICAgICAgICAgICAg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4MjM4Ci0gICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MjM4CisgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXgyMzgKKyAgICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgyMjIKICAgICAg
ICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDUwMCkgc2l6ZSAxNTV4MAogICAgICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNDB4OAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgMTQweDAKQEAgLTg0LDI0ICs4NCwyNCBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMTU2
eDI1MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4MjUwCiAgICAgICAgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4MjUwCi0gICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDE1Nng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAxNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4MjUwCisg
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NngyNTAKKyAg
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgyMzQKICAg
ICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1Nikgc2l6ZSAxNTZ4MTIyCiAgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NngxMjIKICAgICAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDE1NngxMjIKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
MTU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0
MHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NngxMjIKKyAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDEyMgorICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDEwNgogICAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMzg0KSBzaXplIDE1NngxMTYKICAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMTU2eDExNgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgMTU2eDExNgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAot
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAg
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKKyAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDExNgorICAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4MTE2CisgICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MTAwCiAgICAgICBSZW5kZXJGcmFtZSB7RlJB
TUV9IGF0ICgwLDUwNikgc2l6ZSA4MDB4OTQKICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4OTQKICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDgKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3ODR4MAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAorICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg5NAorICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NzgKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9jYWxjdWxhdGUtcGVyY2VudGFnZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2Nh
bGN1bGF0ZS1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0MjkpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvY2FsY3VsYXRlLXBlcmNlbnRhZ2UtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDgyICs4LDgyIEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6
ZSA1Nng1MDAKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4NTAwCiAgICAgICAg
ICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1Nng1MDAKLSAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA0MHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDUwMAorICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng1MDAKKyAgICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDQ4NAogICAgICAg
ICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg2MiwwKSBzaXplIDU2eDUwMAogICAgICAg
ICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA1Nng1MDAKICAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgNTZ4NTAwCiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA1Nng1MDAKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4OAot
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisgICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDUwMAorICAgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng1MDAKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDQ4NAogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJB
TUVTRVR9IGF0ICgxMjQsMCkgc2l6ZSA1Nng1MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJB
TUV9IGF0ICgwLDApIHNpemUgNTZ4NTAwCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDU2eDUwMAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNTZ4NTAwCi0g
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA1Nng1MDAKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNTZ4NTAwCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA0MHg0ODQKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoMTg2LDApIHNp
emUgNTZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDU2
eDUwMAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1Nng1MDAKICAgICAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDU2eDUwMAotICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDQweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4NTAwCisgICAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2eDUwMAorICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4NDg0CiAgICAgICAgIFJl
bmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDI0OCwwKSBzaXplIDU2eDUwMAogICAgICAgICAg
IFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKICAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNTZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA1NngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4OAotICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisgICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDQweDIzMQogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsMjUzKSBzaXplIDU2eDI0NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1
NngyNDcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDU2eDI0NwotICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgNTZ4MjQ3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDU2eDI0NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NDB4MjMxCiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDMxMCwwKSBzaXpl
IDU2eDUwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA1Nngy
NDcKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4MjQ3CiAgICAgICAgICAgICAg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1NngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA1Nng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA0MHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKKyAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDIzMQogICAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMjUzKSBzaXplIDU2eDI0NwogICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA1NngyNDcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDU2eDI0NwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgNTZ4MjQ3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNDB4MjMxCiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNF
VH0gYXQgKDM3MiwwKSBzaXplIDU2eDUwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsMCkgc2l6ZSA1NngyNDcKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4
MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1NngyNDcKLSAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDU2eDI0NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1
NngyNDcKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQw
eDIzMQogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMjUzKSBzaXplIDU2eDI0
NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1NngyNDcKICAgICAgICAgICAgICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDU2eDI0NwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDQweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4MjQ3CisgICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4MjMxCiAgICAgICAgIFJlbmRl
ckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDQzNCwwKSBzaXplIDU2eDUwMAogICAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKICAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNTZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA1NngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAg
ICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisgICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDQweDIzMQogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQg
KDAsMjUzKSBzaXplIDU2eDI0NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1Nngy
NDcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDU2eDI0NwotICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDQweDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
NTZ4MjQ3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDU2
eDI0NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4
MjMxCiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDQ5NiwwKSBzaXplIDU2
eDUwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA1NngwCiAg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDQxeDgKQEAgLTk0LDQyICs5NCw0MiBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDYpIHNpemUgNTZ4NDk0CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2
eDQ5NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNTZ4NDk0Ci0gICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA1Nng0OTQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
NTZ4NDk0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0
MHg0NzgKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNTU4LDApIHNpemUg
NTZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDU2eDQ5
CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDQ5CiAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1Nng0OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDU2eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQw
eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4NDkKKyAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4NDkKKyAgICAgICAgICAgICAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDMzCiAgICAgICAgICAgUmVuZGVyRnJh
bWUge0ZSQU1FfSBhdCAoMCw1NSkgc2l6ZSA1Nng0NDUKICAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNTZ4NDQ1CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1
Nng0NDUKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4Ci0gICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisgICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDU2eDQ0NQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA1Nng0NDUKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDQweDQyOQogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg2
MjAsMCkgc2l6ZSA1Nng1MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDAp
IHNpemUgNTZ4MjQ3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDI0NwogICAg
ICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNTZ4MjQ3Ci0gICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1NngyNDcK
KyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4MjQ3Cisg
ICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgyMzEKICAg
ICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1Mykgc2l6ZSA1NngyNDcKICAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTZ4MjQ3CiAgICAgICAgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA1NngyNDcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
NTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1Nng4
Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0MHgwCisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDI0NworICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA1NngyNDcKKyAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQweDIzMQogICAgICAgICBSZW5kZXJGcmFtZVNl
dCB7RlJBTUVTRVR9IGF0ICg2ODIsMCkgc2l6ZSA1Nng1MDAKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgNTZ4NDk0CiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDU2eDQ5NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNTZ4
NDk0Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA1Nng0OTQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNTZ4NDk0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA0MHg0NzgKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDUwMCkg
c2l6ZSA1NngwCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDQxeDgKICAgICAgICAg
ICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDQxeDAKQEAgLTE0MCw5ICsxNDAsOSBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDApIHNpemUgNTZ4NDk0CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2
eDQ5NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNTZ4NDk0Ci0gICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNTZ4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNDB4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA1Nng0OTQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
NTZ4NDk0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0
MHg0NzgKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDUwMCkgc2l6ZSA1Nngw
CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDQxeDgKICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDQxeDAKQEAgLTE1Miw2ICsxNTIsNiBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNTA2KSBz
aXplIDgwMHg5NAogICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAogICAgICAgICAg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg4Ci0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCisg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgODAweDk0CisgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk0CisgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg3OApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZnJhbWVzL2NhbGN1bGF0ZS1yZWxhdGl2ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2NhbGN1bGF0ZS1yZWxhdGl2ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZnJhbWVzL2NhbGN1bGF0ZS1yZWxhdGl2ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTgsODkgKzgsODkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAg
ICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDc0eDUwMAogICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg1MDAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDc0eDUwMAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4eDAKKyAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzR4NTAwCisgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDUwMAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4NDg0CiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFN
RVNFVH0gYXQgKDgwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCwwKSBzaXplIDc0eDUwMAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
NHg1MDAKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDc0eDUwMAotICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgNzR4NTAwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDc0eDUwMAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTh4NDg0CiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDE2MCwwKSBzaXpl
IDc0eDUwMAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA3NHg1
MDAKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgICAg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3NHg1MDAKLSAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNzR4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA3NHg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1OHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDUwMAorICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3NHg1MDAKKyAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4eDQ4NAogICAgICAgICBSZW5k
ZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICgyNDAsMCkgc2l6ZSA3NHg1MDAKICAgICAgICAgICBS
ZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDc0eDUwMAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNzR4NTAwCi0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAg
ICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4OAotICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4MAorICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg1MDAKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzR4NTAwCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1OHg0ODQKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VU
fSBhdCAoMzIwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCwwKSBzaXplIDc0eDI0NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHgy
NDcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDc0eDI0NwotICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDU4eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
NzR4MjQ3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0
eDI0NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4
MjMxCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTMpIHNpemUgNzR4MjQ3
CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDI0NwogICAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzR4MjQ3Ci0gICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNzR4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTh4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHgyNDcKKyAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4MjQ3CisgICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1OHgyMzEKICAgICAgICAgUmVuZGVy
RnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNDAwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDc0eDI0NwogICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA3NHgyNDcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDc0eDI0NwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0gICAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4eDAKKyAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNzR4MjQ3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDc0eDI0NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgNTh4MjMxCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwyNTMpIHNpemUgNzR4MjQ3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDI0
NwogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzR4MjQ3Ci0gICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgNzR4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNTh4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
NHgyNDcKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4
MjQ3CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1OHgy
MzEKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNDgwLDApIHNpemUgNzR4
NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDc0eDM5NQog
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHgzOTUKICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDc0eDM5NQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA3NHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDc0eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4
eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzR4Mzk1CisgICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDM5NQorICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4Mzc5CiAgICAgICAgICAgUmVuZGVy
RnJhbWUge0ZSQU1FfSBhdCAoMCw0MDEpIHNpemUgNzR4OTkKICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNzR4OTkKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDc0eDk5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4OAotICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4MAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA3NHg5OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA3NHg5OQorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNTh4ODMKICAgICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNTYw
LDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBz
aXplIDc0eDE5NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHgxOTcKICAgICAg
ICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDc0eDE5NwotICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDU4eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzR4MTk3Cisg
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDE5NworICAg
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4MTgxCiAgICAg
ICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyMDMpIHNpemUgNzR4Mjk3CiAgICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0eDI5NwogICAgICAgICAgICAgICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgNzR4Mjk3Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDc0
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4OAot
ICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTh4MAorICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHgyOTcKKyAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzR4Mjk3CisgICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1OHgyODEKICAgICAgICAgUmVuZGVyRnJhbWVTZXQg
e0ZSQU1FU0VUfSBhdCAoNjQwLDApIHNpemUgNzR4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUg
e0ZSQU1FfSBhdCAoMCwwKSBzaXplIDc0eDQ4OAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA3NHg0ODgKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDc0eDQ4
OAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3NHg4Ci0gICAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc0eDgKLSAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU4eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNzR4NDg4CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDc0eDQ4OAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNTh4NDcyCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0OTQpIHNp
emUgNzR4MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1OXg4CiAgICAgICAgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1OXgwCkBAIC0xMDcsMjQgKzEwNywyNCBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDApIHNpemUgODB4MjQ0CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgw
eDI0NAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODB4MjQ0Ci0gICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgweDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODB4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNjR4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MHgyNDQKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODB4MjQ0CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA2
NHgyMjgKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1MCkgc2l6ZSA4MHg4
MQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MHg4MQogICAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODB4ODEKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgODB4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MHg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA2
NHgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgweDgxCisgICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgweDgxCisgICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA2NHg2NQogICAgICAgICAgIFJlbmRlckZy
YW1lIHtGUkFNRX0gYXQgKDAsMzM3KSBzaXplIDgweDE2MwogICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MHgxNjMKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgweDE2MwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MHg4Ci0gICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgweDgKLSAgICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDY0eDAKKyAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgODB4MTYzCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgweDE2MworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNjR4MTQ3CiAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDUwNikg
c2l6ZSA4MDB4OTQKICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKICAgICAgICAg
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDgKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAor
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAorICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg5NAorICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NzgKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2ZyYW1lcy9jYWxjdWxhdGUtcm91bmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9jYWxjdWxhdGUtcm91bmQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2ZyYW1lcy9jYWxjdWxhdGUtcm91bmQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04
LDQxMiArOCw0MTIgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NXg3OAogICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTV4NzgKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDE1NXg3OAotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDc4CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDE1NXg3OAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgMTM5eDYyCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCw4NCkgc2l6ZSAxNTV4NzgKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1
eDc4CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4NzgKLSAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDE1NXg3OAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxNTV4NzgKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDEzOXg2MgogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTY4KSBzaXplIDE1
NXg3OAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NzgKICAgICAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1NXg3OAotICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDc4CisgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg3OAorICAgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDYyCiAgICAgICAg
ICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTIpIHNpemUgMTU1eDc4CiAgICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg3OAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgMTU1eDc4Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4
Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0g
ICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NzgKKyAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDc4CisgICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4NjIKICAgICAgICAgICBSZW5kZXJGcmFtZSB7
RlJBTUV9IGF0ICgwLDMzNikgc2l6ZSAxNTV4NzgKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU1eDc4CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4
NzgKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1NXg3OAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAxNTV4NzgKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDEzOXg2MgogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNDIw
KSBzaXplIDE1NXg4MAogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4ODAKICAg
ICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1NXg4MAotICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1
eDgwCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4
MAorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDY0
CiAgICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDE2MSwwKSBzaXplIDE1NXg1
MDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgMTU1eDY2CiAg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg2NgogICAgICAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDY2Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAx
Mzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NjYKKyAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDY2CisgICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4NTAKICAgICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDcyKSBzaXplIDE1NXg2NgogICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTV4NjYKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDE1NXg2NgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDY2CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDE1NXg2NgorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgMTM5eDUwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBh
dCAoMCwxNDQpIHNpemUgMTU1eDY2CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1
NXg2NgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDY2Ci0gICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxNTV4NjYKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU1eDY2CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSAxMzl4NTAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDIxNikgc2l6ZSAx
NTV4NjYKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDY2CiAgICAgICAgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4NjYKLSAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg2NgorICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4NjYKKyAgICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXg1MAogICAgICAg
ICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMjg4KSBzaXplIDE1NXg2NgogICAgICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NjYKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDE1NXg2NgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4
OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAot
ICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDY2CisgICAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg2NgorICAgICAgICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDUwCiAgICAgICAgICAgUmVuZGVyRnJhbWUg
e0ZSQU1FfSBhdCAoMCwzNjApIHNpemUgMTU1eDY2CiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDE1NXg2NgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1
eDY2Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTV4NjYKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMTU1eDY2CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSAxMzl4NTAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQz
Mikgc2l6ZSAxNTV4NjgKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDY4CiAg
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4NjgKLSAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1
NXg2OAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4
NjgKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXg1
MgogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICgzMjIsMCkgc2l6ZSAxNTV4
NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NXg1Nwog
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NTcKICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1NXg1NwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
MTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDU3CisgICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg1NworICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDQxCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw2Mykgc2l6ZSAxNTV4NTcKICAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU1eDU3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSAxNTV4NTcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAg
ICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg1NworICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4NTcKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDEzOXg0MQogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsMTI2KSBzaXplIDE1NXg1NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTV4NTcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1NXg1NwotICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU1eDU3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDE1NXg1NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgMTM5eDQxCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwxODkpIHNpemUg
MTU1eDU3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg1NwogICAgICAgICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDU3Ci0gICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4NTcKKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDU3CisgICAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4NDEKICAgICAg
ICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI1Mikgc2l6ZSAxNTV4NTcKICAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDU3CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSAxNTV4NTcKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgK
LSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg1NworICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4NTcKKyAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXg0MQogICAgICAgICAgIFJlbmRlckZyYW1l
IHtGUkFNRX0gYXQgKDAsMzE1KSBzaXplIDE1NXg1NwogICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAxNTV4NTcKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1
NXg1NwotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU1eDU3CisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDE1NXg1NworICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMTM5eDQxCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwz
NzgpIHNpemUgMTU1eDU3CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg1Nwog
ICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDU3Ci0gICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTV4NTcKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1
eDU3CisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4
NDEKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQ0MSkgc2l6ZSAxNTV4NTkK
ICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDU5CiAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4NTkKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg1OQorICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4NTkKKyAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXg0MwogICAgICAgICBSZW5k
ZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg0ODMsMCkgc2l6ZSAxNTV4NTAwCiAgICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NXgzMgogICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDE1NXgzMgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDE2CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCwzOCkgc2l6ZSAxNTV4MzIKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTU1eDMyCiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKLSAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSAxNTV4MzIKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDEzOXgxNgogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNzYpIHNpemUg
MTU1eDMyCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgzMgogICAgICAgICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDMyCi0gICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MTYKICAgICAg
ICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDExNCkgc2l6ZSAxNTV4MzIKICAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCiAgICAgICAgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSAxNTV4MzIKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgK
LSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4MzIKKyAgICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgxNgogICAgICAgICAgIFJlbmRlckZyYW1l
IHtGUkFNRX0gYXQgKDAsMTUyKSBzaXplIDE1NXgzMgogICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAxNTV4MzIKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1
NXgzMgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMTM5eDE2CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwx
OTApIHNpemUgMTU1eDMyCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgzMgog
ICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDMyCi0gICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTV4MzIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU1
eDMyCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4
MTYKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDIyOCkgc2l6ZSAxNTV4MzIK
ICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCiAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4MzIKKyAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgxNgogICAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMjY2KSBzaXplIDE1NXgzMgogICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDE1NXgzMgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4OAotICAgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAKKyAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDE2CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCwzMDQpIHNpemUgMTU1eDMyCiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDE1NXgzMgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU1eDMyCi0g
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAxNTV4MzIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMTU1eDMyCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSAxMzl4MTYKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDM0Mikgc2l6
ZSAxNTV4MzIKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCiAgICAgICAg
ICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKLSAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXgzMgor
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4MzIKKyAg
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEzOXgxNgogICAg
ICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMzgwKSBzaXplIDE1NXgzMgogICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKICAgICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDE1NXgzMgotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTV4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTV4
OAotICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDAK
KyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXgzMgorICAgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTM5eDE2CiAgICAgICAgICAgUmVuZGVyRnJh
bWUge0ZSQU1FfSBhdCAoMCw0MTgpIHNpemUgMTU1eDMyCiAgICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDE1NXgzMgogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
MTU1eDMyCi0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1NXg4Ci0gICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMzl4MAorICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxNTV4MzIKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMTU1eDMyCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSAxMzl4MTYKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgw
LDQ1Nikgc2l6ZSAxNTV4NDQKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDQ0
CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTV4NDQKLSAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgMTU1eDgKLSAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDEzOXgwCisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDE1NXg0NAorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAx
NTV4NDQKKyAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEz
OXgyOAogICAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg2NDQsMCkgc2l6ZSAx
NTZ4NTAwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDE1Nng5
CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDE1KSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgw
LDMwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAg
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4
OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAK
ICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQ1KSBzaXplIDE1Nng5CiAgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4
OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDYwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4
OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDc1KSBz
aXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAg
ICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQor
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAg
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAg
ICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDkwKSBzaXplIDE1Nng5CiAgICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAot
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJB
TUV9IGF0ICgwLDEwNSkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAxNTZ4OQogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMTU2eDkKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMTU2eDkKICAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDE0MHgwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwxMjApIHNpemUg
MTU2eDkKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDE1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDE1Nng4CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAg
IFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTM1KSBzaXplIDE1Nng5CiAgICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDE1MCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
NTZ4OQogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU2eDkKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU2eDkKICAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDE0MHgwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwxNjUpIHNpemUgMTU2
eDkKICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDE1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDE1Nng4CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAg
ICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTgwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0
ICgwLDE5NSkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4
OQogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMTU2eDkKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
MTU2eDkKICAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0
MHgwCiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyMTApIHNpemUgMTU2eDkK
ICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDE1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDE1Nng4CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMjI1KSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAxNTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgw
LDI0MCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQog
ICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTU2eDkKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2
eDkKICAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgw
CiAgICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyNTUpIHNpemUgMTU2eDkKICAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDE1Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1
Nng4CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRlckZy
YW1lIHtGUkFNRX0gYXQgKDAsMjcwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAx
NTZ4OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDI4
NSkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAg
ICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2
eDkKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDkK
ICAgICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgwCiAg
ICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwzMDApIHNpemUgMTU2eDkKICAgICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1
Nng4Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng4
CisgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRlckZyYW1l
IHtGUkFNRX0gYXQgKDAsMzE1KSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4
OQotICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDMzMCkg
c2l6ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAg
ICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkK
KyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDkKICAg
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgwCiAgICAg
ICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwzNDUpIHNpemUgMTU2eDkKICAgICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng4
Ci0gICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng4Cisg
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRlckZyYW1lIHtG
UkFNRX0gYXQgKDAsMzYwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQot
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDM3NSkgc2l6
ZSAxNTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKKyAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgwCiAgICAgICAg
ICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwzOTApIHNpemUgMTU2eDkKICAgICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng4CisgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFN
RX0gYXQgKDAsNDA1KSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDE1Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgMTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQyMCkgc2l6ZSAx
NTZ4OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAg
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKKyAgICAg
ICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgwCiAgICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0MzUpIHNpemUgMTU2eDkKICAgICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDE1Nng5Ci0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng4CisgICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng5CisgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAogICAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsNDUwKSBzaXplIDE1Nng5CiAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1
Nng5CiAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTZ4OQotICAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OAotICAgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTZ4OAorICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxNTZ4OQorICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxNTZ4OQogICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
MTQweDAKICAgICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQ2NSkgc2l6ZSAxNTZ4
OQogICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4OQogICAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU2eDkKLSAgICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTU2eDgKLSAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTU2eDgKKyAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU2eDkKKyAgICAgICAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDkKICAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE0MHgwCiAgICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0ODApIHNpemUgMTU2eDIwCiAgICAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDE1NngyMAogICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMTU2eDIwCi0gICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1Nng4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1Nng4Ci0gICAgICAg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4MAorICAgICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTZ4MjAKKyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgMTU2eDIwCisgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxNDB4NAogICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCw1MDYpIHNpemUgODAweDk0CiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgODAweDk0CiAg
ICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg5NAotICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg4Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDgKLSAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDAKKyAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKKyAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKKyAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDc4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9mcmFtZXMvY29udGVudFdpbmRvd19GcmFtZS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2NvbnRlbnRXaW5k
b3dfRnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9jb250ZW50V2luZG93X0ZyYW1lLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTUsNiArMTUsNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTg0KSBzaXplIDgwMHg0MTYKICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDE2CiAgICAgICAgICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg0MTYKLSAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OAot
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4Ci0gICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCisgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDQxNgorICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg0MTYKKyAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDQwMApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVz
L2NvbnRlbnRXaW5kb3dfaUZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvY29udGVudFdpbmRvd19pRnJhbWUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2ZyYW1lcy9jb250ZW50V2luZG93X2lGcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTksOSArOSw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5k
ZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMjQsMCkgc2l6ZSAyMDR4MjA0IFtib3JkZXI6ICgy
cHggaW5zZXQgIzAwMDAwMCldCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMDB4MjAw
CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjAweDIwMAotICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMjAweDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDIwMHg4Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgMTg0eDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDIwMHgyMDAK
KyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxODR4MTg0CiAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMjA4KSBzaXplIDc4NHgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA3NHgxOApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZnJhbWVzL2VtcHR5LWZyYW1lLXNyYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2VtcHR5LWZyYW1lLXNyYy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
ZnJhbWVzL2VtcHR5LWZyYW1lLXNyYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4
LDYgKzE4LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJGcmFt
ZSB7RlJBTUV9IGF0ICgwLDQwNCkgc2l6ZSA4MDB4MTk2CiAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDE5NgogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4MTk2
Ci0gICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgODAweDgKLSAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHgx
OTYKKyAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTk2Cisg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgxODAKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9pZnJhbWUtb3B0aW9uLWNyYXNo
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9mcmFtZXMvaWZyYW1lLW9wdGlvbi1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2lmcmFtZS1vcHRpb24t
Y3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw2IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDE5MgogICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtpZnJhbWV9
IGF0ICgwLDApIHNpemUgMzA0eDE1NCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQogICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMw
MHg4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMDB4OAot
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgwCisgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0eDEzNApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZnJhbWVzL2lmcmFtZS10ZXh0LWNvbnRlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvaWZyYW1lLXRleHQt
Y29udGVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9pZnJhbWUtdGV4dC1jb250ZW50cy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDMwNHgxNTQg
W2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAzMDB4MTUwCiAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKLSAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDMwMHg4Ci0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDI4NHgwCisgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAor
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0eDEzNAogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9mcmFtZXMvaWZyYW1lLXdpdGgtZnJhbWVib3JkZXItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9pZnJh
bWUtd2l0aC1mcmFtZWJvcmRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2lmcmFtZS13aXRoLWZyYW1lYm9yZGVy
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOSw5ICs5LDkgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDE4
KSBzaXplIDMwNHgxNTQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDMwMHgxNTAKLSAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4OAotICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwMHg4Ci0gICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgwCisgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMzAweDE1MAorICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDMwMHgxNTAKKyAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0
eDEzNAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMDQsMTU4KSBzaXplIDR4MTgKICAg
ICAgICAgdGV4dCBydW4gYXQgKDMwNCwxNTgpIHdpZHRoIDQ6ICIgIgogICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMCwwKSBzaXplIDB4MApAQCAtMjEsOSArMjEsOSBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMTk0KSBz
aXplIDMwMHgxNTAKICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKLSAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAzMDB4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDMwMHg4Ci0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgw
CisgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0eDEzNAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgzMDAsMzMwKSBzaXplIDR4MTgKICAgICAgICAgdGV4dCBydW4gYXQgKDMwMCwzMzApIHdpZHRo
IDQ6ICIgIgogICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMzA0LDM0NCkgc2l6ZSAweDAKQEAgLTMz
LDcgKzMzLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXJ0
T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDM2Nikgc2l6ZSAzMDR4MTU0IFtib3JkZXI6ICgycHggaW5z
ZXQgIzAwMDAwMCldCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCi0gICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMzAweDgKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAzMDB4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyODR4
MAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI4NHgxMzQKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJh
bWVzL2ludmFsaWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2ZyYW1lcy9pbnZhbGlkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzA0Mjkp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvaW52YWxpZC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNjYgKzcsNjYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA2N3gy
OTcKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDI5NwogICAgICAgICAgICAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDI5NwotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4
OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDI5NworICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4Mjk3CisgICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MjgxCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsMzAzKSBzaXplIDY3eDI5NwogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4
Mjk3CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjd4Mjk3Ci0gICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4Mjk3Cisg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gyOTcKKyAgICAg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgyODEKICAgICAgIFJl
bmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDczLDApIHNpemUgNjd4NjAwCiAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA2N3g0NDUKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDY3eDQ0NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDY3eDQ0NQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDQ0NQorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4NDQ1CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTF4NDI5CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNDUxKSBzaXplIDY3eDE0
OQogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ5CiAgICAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgNjd4MTQ5Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA2N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4
Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ5CisgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gxNDkKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgxMzMKICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNF
VH0gYXQgKDE0NiwwKSBzaXplIDY3eDYwMAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0
ICgwLDApIHNpemUgNjd4MTAwCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxMDAK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxMDAKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxMDAKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDEwMAorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDg0CiAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMTA2KSBzaXplIDY3eDMwMAogICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNjd4MzAwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
Njd4MzAwCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgNjd4MzAwCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2N3gzMDAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1
MXgyODQKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0MTIpIHNpemUgNjd4MTg4
CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxODgKICAgICAgICAgICAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxODgKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDgK
LSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxODgKKyAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE4OAorICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDUxeDE3MgogICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1FU0VU
fSBhdCAoMjE5LDApIHNpemUgNjd4NjAwCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQg
KDAsMCkgc2l6ZSA2N3gzMDAKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDMwMAog
ICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDMwMAotICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDMwMAorICAgICAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MzAwCisgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4Mjg0CiAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMzA2KSBzaXplIDY3eDEwMAogICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNjd4MTAwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
Njd4MTAwCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgNjd4MTAwCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2N3gxMDAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1
MXg4NAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQxMikgc2l6ZSA2N3gxODgK
ICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE4OAogICAgICAgICAgICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDY3eDE4OAotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
Njd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAot
ICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE4OAorICAgICAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTg4CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNTF4MTcyCiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9
IGF0ICgyOTIsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwwKSBzaXplIDY3eDQKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDUyeDgKQEAgLTc3
LDEyNiArNzcsMTI2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDEwKSBzaXplIDY3eDUyCiAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA2N3g1MgogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3
eDUyCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgNjd4NTIKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDUyCisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MzYK
ICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw2OCkgc2l6ZSA2N3g1MzIKICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDUzMgogICAgICAgICAgICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDY3eDUzMgotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAot
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDUzMgorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgNjd4NTMyCisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNTF4NTE2CiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICgz
NjUsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBz
aXplIDY3eDY1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g2NQogICAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDY1Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4
MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4NjUKKyAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDY1CisgICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4NDkKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCw3MSkgc2l6ZSA2N3g1MjkKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3
eDUyOQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDUyOQotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDUyOQor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4NTI5CisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4NTEzCiAgICAgICBS
ZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg0MzgsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDE5NgogICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNjd4MTk2CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNjd4MTk2Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNjd4MTk2CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA2N3gxOTYKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1MXgxODAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyMDIpIHNpemUgNjd4
MTk2CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE5NgorICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4MAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDQwNCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3
eDE5NgogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDE5NgotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE5Ngor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTk2CisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MTgwCiAgICAgICBS
ZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg1MTEsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDE5NgogICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNjd4MTk2CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNjd4MTk2Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNjd4MTk2CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA2N3gxOTYKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1MXgxODAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwyMDIpIHNpemUgNjd4
MTk2CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE5NgorICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4MAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDQwNCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3
eDE5NgogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDE5NgotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE5Ngor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTk2CisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MTgwCiAgICAgICBS
ZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg1ODQsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDM5NAogICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNjd4Mzk0CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNjd4Mzk0Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNjd4Mzk0CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA2N3gzOTQKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1MXgzNzgKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0MDApIHNpemUgNjd4
MjAwCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gyMDAKICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gyMDAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gyMDAKKyAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDIwMAorICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4NAogICAgICAgUmVuZGVyRnJhbWVTZXQge0ZSQU1F
U0VUfSBhdCAoNjU3LDApIHNpemUgNjd4NjAwCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0g
YXQgKDAsMCkgc2l6ZSA2N3gxNDUKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE0
NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDE0NQotICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE0NQorICAg
ICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTQ1CisgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MTI5CiAgICAgICAgIFJl
bmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTUxKSBzaXplIDY3eDE0NQogICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNjd4MTQ1CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNjd4MTQ1Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNjd4MTQ1CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA2N3gxNDUKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1MXgxMjkKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwzMDIpIHNpemUgNjd4
MTQ1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxNDUKICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxNDUKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxNDUKKyAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE0NQorICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDEyOQogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDQ1Mykgc2l6ZSA2N3gxNDcKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3
eDE0NwogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDE0NwotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE0Nwor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTQ3CisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MTMxCiAgICAgICBS
ZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg3MzAsMCkgc2l6ZSA3MHg2MDAKICAgICAgICAg
UmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDcweDE0NQogICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNzB4MTQ1CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNzB4MTQ1Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHg4Ci0gICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHg4Ci0gICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTR4MAorICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNzB4MTQ1CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA3MHgxNDUKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA1NHgxMjkKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwxNTEpIHNpemUgNzB4
MTQ1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHgxNDUKICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3MHgxNDUKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDcweDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDcw
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1NHgwCisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHgxNDUKKyAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDcweDE0NQorICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU0eDEyOQogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9
IGF0ICgwLDMwMikgc2l6ZSA3MHgxNDUKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDcw
eDE0NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDcweDE0NQotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzB4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDU0eDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDcweDE0NQor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzB4MTQ1CisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTR4MTI5CiAgICAgICAg
IFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNDUzKSBzaXplIDcweDE0NwogICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNzB4MTQ3CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNzB4MTQ3Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHg4Ci0gICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHg4Ci0gICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTR4MAorICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNzB4MTQ3CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA3MHgxNDcKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA1NHgxMzEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9u
by1mcmFtZS1ib3JkZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvbm8tZnJhbWUtYm9yZGVycy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL25v
LWZyYW1lLWJvcmRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDE5ICs2LDE5
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyRnJhbWUge0ZSQU1F
fSBhdCAoMCwwKSBzaXplIDgwMHg4NAogICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4
NAogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4ODQKLSAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHgwCi0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoMTAsMCkg
c2l6ZSA3ODB4MAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4NAorICAgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4NAorICAgICAgICAgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDEwLDApIHNpemUgNzgweDg0CiAgICAgICBSZW5kZXJGcmFtZVNl
dCB7RlJBTUVTRVR9IGF0ICgwLDEwNCkgc2l6ZSA4MDB4NDk2CiAgICAgICAgIFJlbmRlckZyYW1l
IHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSAxODB4NDk2CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxODB4NDk2CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTgweDQ5
NgotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTgweDAKLSAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE4MHgwCi0gICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICgxMCwwKSBzaXplIDE2MHgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxODB4NDk2CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxODB4NDk2CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICgxMCwwKSBzaXpl
IDE2MHg0OTYKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMjAwLDApIHNpemUgNjAw
eDQ5NgogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjAweDQ5NgogICAgICAgICAgICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDYwMHg0OTYKLSAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDYwMHgwCi0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2MDB4MAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoMCwwKSBzaXplIDYw
MHgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MDB4NDk2CisgICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MDB4NDk2CisgICAgICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICgwLDApIHNpemUgNjAweDQ5NgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL3ZhbGlkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvdmFsaWQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1l
cy92YWxpZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNjYgKzcsNjYgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQg
KDAsMCkgc2l6ZSA2N3gyOTcKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDI5Nwog
ICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDI5NwotICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDI5NworICAgICAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4Mjk3CisgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MjgxCiAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMzAzKSBzaXplIDY3eDI5NwogICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNjd4Mjk3CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
Njd4Mjk3Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgNjd4Mjk3CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2N3gyOTcKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1
MXgyODEKICAgICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDczLDApIHNpemUgNjd4
NjAwCiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA2N3g0NDUKICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDQ0NQogICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDY3eDQ0NQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4
OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAg
ICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDQ0NQorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjd4NDQ1CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgNTF4NDI5CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAs
NDUxKSBzaXplIDY3eDE0OQogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ5CiAg
ICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjd4MTQ5Ci0gICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ5CisgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gxNDkKKyAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgxMzMKICAgICAgIFJlbmRlckZy
YW1lU2V0IHtGUkFNRVNFVH0gYXQgKDE0NiwwKSBzaXplIDY3eDYwMAogICAgICAgICBSZW5kZXJG
cmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgNjd4MTAwCiAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA2N3gxMDAKICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gx
MDAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA2N3gxMDAKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3
eDEwMAorICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDg0
CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTA2KSBzaXplIDY3eDMwMAogICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MzAwCiAgICAgICAgICAgICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgNjd4MzAwCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4
Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgNjd4MzAwCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA2N3gzMDAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA1MXgyODQKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw0
MTIpIHNpemUgNjd4MTg4CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxODgKICAg
ICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxODgKLSAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxODgKKyAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE4OAorICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE3MgogICAgICAgUmVuZGVyRnJh
bWVTZXQge0ZSQU1FU0VUfSBhdCAoMjE5LDApIHNpemUgNjd4NjAwCiAgICAgICAgIFJlbmRlckZy
YW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA2N3gzMDAKICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDMwMAogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDMw
MAotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDY3eDMwMAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4
MzAwCisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4Mjg0
CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMzA2KSBzaXplIDY3eDEwMAogICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTAwCiAgICAgICAgICAgICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgNjd4MTAwCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4
Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTAwCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA2N3gxMDAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA1MXg4NAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQx
Mikgc2l6ZSA2N3gxODgKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE4OAogICAg
ICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDE4OAotICAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDE4OAorICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4MTg4CisgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MTcyCiAgICAgICBSZW5kZXJGcmFt
ZVNldCB7RlJBTUVTRVR9IGF0ICgyOTIsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAgUmVuZGVyRnJh
bWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDQKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDUyeDgKQEAgLTc3LDEyNiArNzcsMTI2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDEwKSBzaXplIDY3eDUyCiAgICAg
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g1MgogICAgICAgICAgICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDY3eDUyCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0g
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNjd4NTIKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDUyCisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNTF4MzYKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw2OCkgc2l6
ZSA2N3g1MzIKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDUzMgogICAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDUzMgotICAgICAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUx
eDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDY3eDUzMgorICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4NTMyCisgICAgICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4NTE2CiAgICAgICBSZW5kZXJGcmFtZVNldCB7
RlJBTUVTRVR9IGF0ICgzNjUsMCkgc2l6ZSA2N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZS
QU1FfSBhdCAoMCwwKSBzaXplIDY3eDY1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
N3g2NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3eDY1Ci0gICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNTF4MAorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4NjUKKyAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDY1CisgICAgICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4NDkKICAgICAgICAgUmVu
ZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCw3MSkgc2l6ZSA2N3g1MjkKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDY3eDUyOQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDY3eDUyOQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDUyOQorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4NTI5CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTF4NTEzCiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg0MzgsMCkgc2l6ZSA2
N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDE5Ngog
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTk2CiAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgNjd4MTk2Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTk2CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1MXgxODAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwyMDIpIHNpemUgNjd4MTk2CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE5NgorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4MAogICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQwNCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDY3eDE5NgogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDY3eDE5NgotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDE5NgorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4MTk2CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTF4MTgwCiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg1MTEsMCkgc2l6ZSA2
N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDE5Ngog
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTk2CiAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgNjd4MTk2Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTk2CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1MXgxODAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwyMDIpIHNpemUgNjd4MTk2CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxOTYKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE5NgorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4MAogICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQwNCkgc2l6ZSA2N3gxOTYKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDY3eDE5NgogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDY3eDE5NgotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDE5NgorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4MTk2CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTF4MTgwCiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg1ODQsMCkgc2l6ZSA2
N3g2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDY3eDM5NAog
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4Mzk0CiAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgNjd4Mzk0Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4Mzk0CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gzOTQKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1MXgzNzgKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCw0MDApIHNpemUgNjd4MjAwCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gyMDAK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gyMDAKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gyMDAKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDIwMAorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDE4NAogICAgICAgUmVuZGVy
RnJhbWVTZXQge0ZSQU1FU0VUfSBhdCAoNjU3LDApIHNpemUgNjd4NjAwCiAgICAgICAgIFJlbmRl
ckZyYW1lIHtGUkFNRX0gYXQgKDAsMCkgc2l6ZSA2N3gxNDUKICAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDY3eDE0NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDY3
eDE0NQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDY3eDE0NQorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
Njd4MTQ1CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4
MTI5CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsMTUxKSBzaXplIDY3eDE0NQog
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ1CiAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgNjd4MTQ1Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
N3g4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3g4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTF4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4MTQ1CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA2N3gxNDUKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1MXgxMjkKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwzMDIpIHNpemUgNjd4MTQ1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxNDUK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2N3gxNDUKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDY3eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1MXgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2N3gxNDUKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDY3eDE0NQorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDEyOQogICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDQ1Mykgc2l6ZSA2N3gxNDcKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDY3eDE0NwogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDY3eDE0NwotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjd4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDUxeDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDY3eDE0NworICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjd4MTQ3CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTF4MTMxCiAgICAgICBSZW5kZXJGcmFtZVNldCB7RlJBTUVTRVR9IGF0ICg3MzAsMCkgc2l6ZSA3
MHg2MDAKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAoMCwwKSBzaXplIDcweDE0NQog
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4MTQ1CiAgICAgICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgNzB4MTQ1Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
MHg4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHg4Ci0g
ICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTR4MAorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4MTQ1CisgICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHgxNDUKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA1NHgxMjkKICAgICAgICAgUmVuZGVyRnJhbWUge0ZSQU1FfSBhdCAo
MCwxNTEpIHNpemUgNzB4MTQ1CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHgxNDUK
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3MHgxNDUKLSAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDcweDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDcweDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA1NHgwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3MHgxNDUKKyAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDcweDE0NQorICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU0eDEyOQogICAgICAgICBSZW5k
ZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDMwMikgc2l6ZSA3MHgxNDUKICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDcweDE0NQogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDcweDE0NQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4OAotICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzB4OAotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDU0eDAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDcweDE0NQorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNzB4MTQ1CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
NTR4MTI5CiAgICAgICAgIFJlbmRlckZyYW1lIHtGUkFNRX0gYXQgKDAsNDUzKSBzaXplIDcweDE0
NwogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4MTQ3CiAgICAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgNzB4MTQ3Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA3MHg4Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHg4
Ci0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNTR4MAorICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzB4MTQ3CisgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3MHgxNDcKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA1NHgxMzEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2xpc3RzL21hcmtlcnMtaW4tc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9saXN0cy9tYXJrZXJzLWluLXNlbGVj
dGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvbGlzdHMvbWFya2Vycy1pbi1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw1ICs2Niw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNo
aWxkIDcge0hSfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVu
dAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxIG9mIGNoaWxkIDIxIHtIUn0gb2YgY2hpbGQg
MSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMCBvZiBjaGlsZCA3IHtIUn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMSB7
SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMSBvZiBjaGlsZCAy
MSB7SFJ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDEge0hUTUx9IG9mIGRvY3VtZW50Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9tZWRpYS9tcS1qcy1zdHlsZXNoZWV0
LW1lZGlhLTA0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9tZWRpYS9tcS1qcy1zdHlsZXNoZWV0LW1lZGlhLTA0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9tZWRpYS9t
cS1qcy1zdHlsZXNoZWV0LW1lZGlhLTA0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MywxMiArMywxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTc2Ci0gICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwwKSBzaXplIDc4NHgxOCBbY29sb3I9IzAwODAwMF0KICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDQ1eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNDQ1OiAiVGhpcyB0ZXh0IHNob3VsZCBiZSBncmVlbiBhbmQgYmVsb3cgc2hvdWxkIHJl
YWQgXCJtZWRpYSBsaXN0IGlzIGVtcHR5XCIuIgotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDM0KSBzaXplIDc4NHgxOAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDc4
NHgxOCBbY29sb3I9IzAwODAwMF0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMTE3eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTE3OiAibWVk
aWEgbGlzdCBpcyBlbXB0eSIKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw2OCkgc2l6ZSA3
ODR4MTgKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw2OCkgc2l6ZSA3ODR4MTggW2NvbG9y
PSMwMDgwMDBdCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE3N3gx
OAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE3NzogIkV4cGVjdGVkIHRvIGZh
aWwgKDI0LjcuMjAwNSkiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBh
aW50L2lubGluZS1vdXRsaW5lLXJlcGFpbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvaW5saW5lLW91dGxpbmUtcmVwYWlu
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9pbmxpbmUtb3V0bGluZS1yZXBhaW50LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNCArMzUsNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyMTAK
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4OHgzNgogICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODg6ICJMb3JlbSBpcHN1bSAiCiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMzc6ICJkb2xvciAiCi1jYXJldDogcG9zaXRp
b24gMTggb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDcge0RJ
Vn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK2NhcmV0
OiBwb3NpdGlvbiAxOCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hp
bGQgNyB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAxIHtIVE1MfSBvZiBkb2N1bWVu
dApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwbGFjZWQvcmVwbGFjZWQt
YnJlYWtpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3JlcGxhY2VkL3JlcGxhY2VkLWJyZWFraW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBsYWNlZC9yZXBs
YWNlZC1icmVha2luZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDE1ICs0OSwx
NSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGFydE9iamVj
dCB7SUZSQU1FfSBhdCAoMSw0MjkpIHNpemUgMjd4MjcgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAw
MDAwKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI1eDI1CiAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjV4MjUKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDI1eDgKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI1
eDgKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA5eDAKKyAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI1eDI1CisgICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyNXgyNQorICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDl4OQogICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9
IGF0ICgxLDQ1Nikgc2l6ZSAyN3gyNyBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQogICAg
ICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjV4MjUKICAgICAgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSAyNXgyNQotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjV4OAot
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMjV4OAotICAgICAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDl4MAorICAgICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMjV4MjUKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDI1eDI1CisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgOXg5CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAogICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtFTUJFRH0gYXQgKDEsNDgzKSBzaXplIDI3eDI3
IFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCiAgICAgICAgIFJlbmRlclBhcnRPYmplY3Qg
e0VNQkVEfSBhdCAoMSw1MTApIHNpemUgMjd4MjcgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAw
KV0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NlbGVjdG9ycy8xNTktZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Nl
bGVjdG9ycy8xNTktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3NlbGVjdG9ycy8xNTktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC02LDUgKzYsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MAogICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDUwM3gxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDUwMzogIlRyeSBzZWxlY3Rpbmcgc29tZSB0ZXh0IGluIHRoaXMgZG9jdW1lbnQuIEl0IHNo
b3VsZCBiZSBoYXZlIGEgZ3JlZW4gYmFja2dyb3VuZC4iCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0
aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge1B9IG9mIGNoaWxkIDEge0JPRFl9
IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9u
IDc5IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtQfSBvZiBjaGlsZCAxIHtCT0RZfSBv
ZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAw
IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtQfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBj
aGlsZCAxIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA3OSBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7UH0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hp
bGQgMSB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3NlbGVjdG9ycy8xNzdhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zZWxlY3RvcnMvMTc3YS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc2VsZWN0b3JzLzE3N2Et
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDUgKzYsNSBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg1MAogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4
CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4M3gxOAogICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4MzogIldoZW4geW91IHNlbGVjdCB0aGlzIHRl
eHQsIGl0IHNob3VsZG4ndCBnbyByZWQuIgotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9m
IGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtQfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGls
ZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA0NyBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7UH0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQg
MCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7UH0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMSB7
SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gNDcgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDEge1B9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDEge0hU
TUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0
L3NlbGVjdGlvbi1oYXJkLWxpbmVicmVhay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9zZWxlY3Rpb24taGFyZC1saW5lYnJlYWst
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L3RleHQvc2VsZWN0aW9uLWhhcmQtbGluZWJyZWFrLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsOSArMjMsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
ICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoNCw0KSBzaXplIDYyeDcyIFtib3Jk
ZXI6ICgxcHggc29saWQgIzAwMDBGRildCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
MHg3MAogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDYweDcwCi0gICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNjB4NjEKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA0NHg0NQorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjB4NzAK
KyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDYweDcwCisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNDR4NTQKICAgICAgICAg
ICAgICAgICBSZW5kZXJCbG9jayB7UFJFfSBhdCAoMCwwKSBzaXplIDQ0eDQ1CiAgICAgICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHg0NQogICAgICAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNDogImZvbyIKQEAgLTM1LDkgKzM1
LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclBhcnRPYmpl
Y3Qge0lGUkFNRX0gYXQgKDc0LDQpIHNpemUgNjJ4NzIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAw
MEZGKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDcwCiAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjB4NzAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDYweDYxCi0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2
MHg2MQotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0eDQ1
CisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NzAKKyAgICAgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0NHg1NAogICAgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtQUkV9IGF0ICgwLDApIHNpemUgNDR4NDUKICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDQ1CiAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDI0OiAiZm9vIgpAQCAtNDcsOSArNDcsOSBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTQ0
LDQpIHNpemUgNjJ4NzIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDYweDcwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNjB4NzAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDYxCi0gICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0eDQ1CisgICAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNjB4NzAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA0NHg1NAogICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQUkV9IGF0ICgwLDApIHNp
emUgNDR4NDUKICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDI0eDQ1CiAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0
OiAiZm9vIgpAQCAtNTksOSArNTksOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
ICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMjE0LDQpIHNpemUgNjJ4NzIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDYweDcwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjB4NzAKLSAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDYxCi0gICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDQ0eDQ1CisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg3
MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NzAKKyAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0NHg1NAogICAgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtQUkV9IGF0ICgwLDApIHNpemUgNDR4NDUKICAgICAgICAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDQ1CiAgICAgICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0OiAiZm9vIgpAQCAtNzEsOSAr
NzEsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGFydE9i
amVjdCB7SUZSQU1FfSBhdCAoMjg0LDQpIHNpemUgNjJ4NzIgW2JvcmRlcjogKDFweCBzb2xpZCAj
MDAwMEZGKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDcwCiAgICAgICAgICAg
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjB4NzAKLSAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDYweDYxCi0gICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA2MHg2MQotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0
eDQ1CisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NzAKKyAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0NHg1NAogICAgICAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtQUkV9IGF0ICgwLDApIHNpemUgNDR4NDUKICAgICAgICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDQ1CiAgICAgICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI0OiAiZm9vIgpAQCAtODMsOSArODMsOSBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAo
MzU0LDQpIHNpemUgNjJ4NzIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDYweDcwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgNjB4NzAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDYxCi0gICAg
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0eDQ1CisgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNjB4NzAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA0NHg1NAogICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQUkV9IGF0ICgwLDAp
IHNpemUgNDR4NDUKICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDI0eDQ1CiAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI0OiAiZm9vIgpAQCAtOTUsOSArOTUsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoNDI0LDQpIHNpemUgNjJ4NzIg
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDYweDcwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjB4NzAKLSAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDYxCi0gICAgICAgICAgICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDQ0eDQ1CisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2
MHg3MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NzAK
KyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0NHg1NAogICAg
ICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQUkV9IGF0ICgwLDApIHNpemUgNDR4NDUKICAgICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0eDQ1CiAgICAg
ICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0OiAiZm9vIgpAQCAtMTA3
LDkgKzEwNyw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJQ
YXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICg0OTQsNCkgc2l6ZSA2Mng3MiBbYm9yZGVyOiAoMXB4IHNv
bGlkICMwMDAwRkYpXQogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjB4NzAKICAgICAg
ICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2MHg3MAotICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNjB4NjEKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDYweDYxCi0gICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNDR4NDUKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDcwCisgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0eDU0CiAgICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1BSRX0gYXQgKDAsMCkgc2l6ZSA0NHg0NQogICAgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjR4NDUKICAgICAgICAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJmb28iCkBAIC0xMTksOSArMTE5LDkgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFN
RX0gYXQgKDU2NCw0KSBzaXplIDYyeDcyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDBGRildCiAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg3MAogICAgICAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDYweDcwCi0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MHg2
MQotICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NjEKLSAg
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0NHg0NQorICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjB4NzAKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDYweDcwCisgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgNDR4NTQKICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UFJFfSBh
dCAoMCwwKSBzaXplIDQ0eDQ1CiAgICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyNHg0NQogICAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyNDogImZvbyIKQEAgLTEzMSw5ICsxMzEsOSBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoNjM0LDQpIHNp
emUgNjJ4NzIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDYweDcwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
NjB4NzAKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYweDYxCi0gICAgICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA2MHg2MQotICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDQ0eDQ1CisgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA2MHg3MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgNjB4NzAKKyAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA0
NHg1NAogICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQUkV9IGF0ICgwLDApIHNpemUgNDR4
NDUKICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0
eDQ1CiAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0OiAiZm9v
IgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QveHNsL2RvY3VtZW50LWZ1bmN0
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC94c2wvZG9jdW1lbnQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3hzbC9kb2N1bWVudC1mdW5jdGlvbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDE1MgotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4MTUyCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDEyMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1
NzYKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAogICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2NTB4MTgKICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA2NTA6ICJUaGlzIHRlc3RzIHRoZSB4c2x0IGRvY3VtZW50KCkgZnVu
Y3Rpb24uIElmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLCB0aGVyZSBzaG91bGQgYmUgdGhyZWUg
cGFyYWdyYXBocyBiZWxvdy4iCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94
c2wveHNsdC1lbmMxNi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QveHNsL3hzbHQtZW5jMTYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQy
OSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3hzbC94c2x0LWVuYzE2LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NzAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDcwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTQKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNjR4MTgKICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjY0OiAiQ0hBUkFDVEVSUyBJTiBYU0xUOiBceHtFOX1ceHtFOX1c
eHtFOX1ceHtFOX1ceHtFOX1ceHtFOX1ceHtFOX1ceHtFOX1ceHtFOX1ceHtFOX1ceHtFOX0gIgog
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjY0LDE0KSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QveHNsL3hzbHQtZW5jMTZ0bzE2LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94c2wveHNsdC1lbmMxNnRv
MTYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3hzbC94c2x0LWVuYzE2dG8xNi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsOCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDcwCi0gIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg3MAotICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDU0CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjY0eDE4CiAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI2NDog
IkNIQVJBQ1RFUlMgSU4gWFNMVDogXHh7RTl9XHh7RTl9XHh7RTl9XHh7RTl9XHh7RTl9XHh7RTl9
XHh7RTl9XHh7RTl9XHh7RTl9XHh7RTl9XHh7RTl9ICIKICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NCwxNCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3hz
bC94c2x0LWVuYy1jeXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3hzbC94c2x0LWVuYy1jeXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAz
MDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3hzbC94c2x0LWVuYy1jeXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg3MAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NzAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1NAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxOHgxOAogICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTg6ICJDSEFSQUNURVJTIElOIFhTTFQ6IFx4ezQxNH1c
eHs0M0V9XHh7NDMxfVx4ezQzMH1ceHs0MzJ9XHh7NDNCfVx4ezQzNX1ceHs0M0R9XHh7NDNEfVx4
ezQ0Qn1ceHs0Mzl9IFx4ezQ0Mn1ceHs0MzV9XHh7NDNBfVx4ezQ0MX1ceHs0NDJ9ICIKICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDMxOCwxNCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3hzbC94c2x0LWVuYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QveHNsL3hzbHQtZW5jLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94c2wveHNs
dC1lbmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3MAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NzAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1
NAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHg1ODQKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI2NHgxOAogICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNjQ6ICJDSEFSQUNURVJTIElOIFhTTFQ6IFx4
e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5fVx4e0U5
fVx4e0U5fSAiCiAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjQsMTQpIHNpemUgMHgwCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94c2wveHNsdC1pbXBvcnQtZGVwdGgtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3hz
bC94c2x0LWltcG9ydC1kZXB0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QveHNsL3hzbHQtaW1wb3J0LWRlcHRoLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NTAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDUw
Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4CitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgogICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU3eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNTc6ICJUaGlzIGlzIGEgIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QveHNsL3hzbHQtcmVsYXRpdmUtcGF0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QveHNsL3hzbHQtcmVsYXRpdmUtcGF0aC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
eHNsL3hzbHQtcmVsYXRpdmUtcGF0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
OCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDExOAotICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTE4Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDg2CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDUx
MXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxMTogIkhlcmUgaXMgYW4g
YXR0ZW1wdCB0byBleHRyYWN0IHRoZSBzdHJpbmcgXCJIZWxsbywgV2Via2l0IVwiIGZyb20gdGhl
IGZpbGUgZmluZG1lLnhtbDoiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94
c2wveHNsdF91bmljb2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC94c2wveHNsdF91bmljb2RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC94c2wveHNsdF91bmljb2Rl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MzQKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDM0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTgKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxOHgxOAogICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxODogImUgXHh7RTl9IgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtc2VudC1hcy1yZWZlcmVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaHR0cC90
ZXN0cy9sb2NhbC9maWxlLXVybC1zZW50LWFzLXJlZmVyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9odHRwL3Rlc3RzL2xvY2FsL2Zp
bGUtdXJsLXNlbnQtYXMtcmVmZXJlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEw
LDkgKzEwLDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXJ0
T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDM2KSBzaXplIDMwNHgxNTQgW2JvcmRlcjogKDJweCBpbnNl
dCAjMDAwMDAwKV0KICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKLSAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAzMDB4NzAKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAzMDB4NzAKLSAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0
eDU0CisgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0eDEzNAogICAgICAgICAgICAgICBSZW5kZXJJbWFn
ZSB7SU1HfSBhdCAoMCwwKSBzaXplIDI1MHg1MAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgzMDQsMTc2KSBzaXplIDR4MTgKICAgICAgICAgdGV4dCBydW4gYXQgKDMwNCwxNzYpIHdpZHRo
IDQ6ICIgIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxhL2J1
Z3MvYnVnMzg5MTYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzM4OTE2LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMzA0MjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGFibGVzL21vemlsbGEvYnVn
cy9idWczODkxNi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDkgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTM4MAogICAgICAgICAgICAgICBSZW5kZXJQYXJ0T2Jq
ZWN0IHtJRlJBTUV9IGF0ICgxMiwxMikgc2l6ZSAxNTV4MTgwIFtib3JkZXI6ICg1cHggc29saWQg
I0ZGMDAwMCldCiAgICAgICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjV4MTUwCiAg
ICAgICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTI1eDE1MAotICAgICAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTI1eDgKLSAgICAgICAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEyNXg4Ci0gICAgICAgICAgICAgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTA5eDAKKyAgICAgICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDEyNXgxNTAKKyAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDEyNXgxNTAKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMDl4MTM0CiAgICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDcyNCw4NCkgc2l6ZSA0MXg0MCBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODAp
XSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMiwyKSBzaXplIDI2eDM2CkBAIC0xMDMsOSArMTAzLDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA3ODV4MTM4MAogICAgICAgICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgx
MiwxMikgc2l6ZSAxNTV4MTgwIFtib3JkZXI6ICg1cHggc29saWQgI0ZGMDAwMCldCiAgICAgICAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjV4MTUwCiAgICAgICAgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTI1eDE1MAotICAgICAgICAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTI1eDgKLSAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDEyNXg4Ci0gICAgICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTA5eDAKKyAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDEyNXgxNTAKKyAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDEyNXgxNTAKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSAxMDl4MTM0CiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcyMyw4NCkg
c2l6ZSA0Mng0MCBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MiBycz0xIGNz
PTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDI2eDM2
CkBAIC0xMjUsOSArMTI1LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTM4MAogICAgICAg
ICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMiwxMikgc2l6ZSAxNTV4MTgw
IFtib3JkZXI6ICg1cHggc29saWQgI0ZGMDAwMCldCiAgICAgICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAxMjV4MTUwCiAgICAgICAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMTI1eDE1MAotICAgICAgICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTI1eDgK
LSAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEyNXg4
Ci0gICAgICAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTA5
eDAKKyAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEyNXgxNTAKKyAgICAgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEyNXgxNTAKKyAgICAg
ICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMDl4MTM0CiAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAg
ICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcyNCw4NCkgc2l6ZSA0MXg0MCBbYm9yZGVy
OiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDI2eDM2CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvdGFibGVzL21vemlsbGEvYnVncy9idWcxMzczODgtMS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxh
L2J1Z3MvYnVnMTM3Mzg4LTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMDQyOSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzEzNzM4OC0xLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsNiBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAo
MSwxKSBzaXplIDMwOHgxNTAgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KICAgICAgICAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwNHgxNDYKICAgICAgICAgICAgICAgICAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMDR4MTQ2Ci0gICAgICAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAzMDR4MAotICAgICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMzA0eDAKKyAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMw
NHgxNDYKKyAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDMwNHgxNDYKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGFibGVzL21vemlsbGEvYnVncy9i
dWcxMzczODgtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3RhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMTM3Mzg4LTItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAzMDQyOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxsYS9i
dWdzL2J1ZzEzNzM4OC0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsOCArMTAs
OCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTIKICAgICAgICAgICAgICAgUmVuZGVyUGFy
dE9iamVjdCB7SUZSQU1FfSBhdCAoMSwxKSBzaXplIDMwOHgzMDQgW2JvcmRlcjogKDJweCBpbnNl
dCAjMDAwMDAwKV0KICAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwNHgzMDAK
ICAgICAgICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMDR4MzAwCi0gICAg
ICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDR4MAotICAgICAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzA0eDAKKyAgICAgICAgICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDMwNHgzMDAKKyAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDMwNHgzMDAKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgw
LDMxMCkgc2l6ZSA2MDZ4MzA2CiAgICAgICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0
ICgwLDApIHNpemUgNjA2eDMwNgpAQCAtMjYsOCArMjYsOCBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXg4NTIKICAgICAgICAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMSwx
KSBzaXplIDMwOHgxNTAgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KICAgICAgICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwNHgxNDYKICAgICAgICAgICAgICAgICAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSAzMDR4MTQ2Ci0gICAgICAgICAgICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAzMDR4MAotICAgICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgMzA0eDAKKyAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwNHgx
NDYKKyAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMw
NHgxNDYKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CiAgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDc3Mikgc2l6ZSA2MDZ4NjQKICAgICAg
ICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQgKDAsMCkgc2l6ZSA2MDZ4NjQKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzEzNzM4OC0z
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGFi
bGVzL21vemlsbGEvYnVncy9idWcxMzczODgtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMwNDI5
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMTM3
Mzg4LTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAgIFJlbmRlclBhcnRPYmplY3Qg
e0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAyMDR4MjE0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAw
MCldCiAgICAgICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDIwMHgyMTAKICAgICAg
ICAgICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDIwMHgyMTAKLSAgICAgICAg
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjAweDgKLSAgICAgICAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMjAweDgKLSAgICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDE4NHgwCisgICAgICAgICAgICAg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDIwMHgyMTAKKyAgICAgICAgICAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMjAweDIxMAorICAgICAgICAgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTg0eDE5NAogICAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxhL2NvcmUvY29sX3dpZHRoc19maXhfYXV0b0Zp
eFBlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3RhYmxlcy9tb3ppbGxhL2NvcmUvY29sX3dpZHRoc19maXhfYXV0b0ZpeFBlci1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDMwNDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9t
b3ppbGxhL2NvcmUvY29sX3dpZHRoc19maXhfYXV0b0ZpeFBlci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDgKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKLSAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAo=
</data>
<flag name="review"
          id="8403"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>