<?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>56262</bug_id>
          
          <creation_ts>2011-03-12 23:47:54 -0800</creation_ts>
          <short_desc>XML Viewer: declared namespaces are not rendered.</short_desc>
          <delta_ts>2011-07-11 12:35:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>alan.stroop</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366674</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-12 23:47:54 -0800</bug_when>
    <thetext>Alan, could you attach test cases for this please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366814</commentid>
    <comment_count>1</comment_count>
      <attachid>85639</attachid>
    <who name="">alan.stroop</who>
    <bug_when>2011-03-13 20:59:18 -0700</bug_when>
    <thetext>Created attachment 85639
Sample XML with namespaces that are prefixed and not prefixed. Also contains a CDATA section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366820</commentid>
    <comment_count>2</comment_count>
    <who name="">alan.stroop</who>
    <bug_when>2011-03-13 21:12:13 -0700</bug_when>
    <thetext>The attached test case should give you plenty for testing namespaces. It also includes a CDATA section element, which will also be problematic.

Do we want to include the CDATA issue in with the namespace issue? I believe they are both related to the XSL implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375666</commentid>
    <comment_count>3</comment_count>
      <attachid>87393</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-29 12:30:35 -0700</bug_when>
    <thetext>Created attachment 87393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376045</commentid>
    <comment_count>4</comment_count>
      <attachid>87393</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-29 22:44:40 -0700</bug_when>
    <thetext>Comment on attachment 87393
Patch

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

Overall looks good. A handful of nits need to be fixed prior to landing.

&gt; Source/WebCore/ChangeLog:21
&gt; +        * xml/XMLViewer.css: Added.

You can remove internals of this file from the ChangeLog.

&gt; Source/WebCore/ChangeLog:31
&gt; +        * xml/XMLViewer.js: Added.

Ditto

&gt; Source/WebCore/xml/XMLTreeViewer.cpp:77
&gt; +    frame-&gt;script()-&gt;evaluate(&quot;addCSS(&apos;&quot; + cssString.replace(&quot;\n&quot;, &quot; &quot;).replace(&quot;&apos;&quot;, &quot;\&quot;&quot;) + &quot;&apos;);&quot;);

I wonder if adding a style tag to the document&apos;s element is simpler. Alternatively, you should do escape() here and unescape in the JavaScript.

&gt; Source/WebCore/xml/XMLViewer.js:44
&gt; +    while (document.childNodes.length != 0) {

while (var childNode = document.firstChild) {
...
}

&gt; Source/WebCore/xml/XMLViewer.js:50
&gt; +    document.appendChild(html);

When you remove head/body from the document, it gets them back. It might work for html documents, not xml though. Anyways, worth checking if don&apos;t have them duped.

&gt; Source/WebCore/xml/XMLViewer.js:76
&gt; +    if (!onWebKitXMLViewerSourceXMLLoaded)

This will fail as undefined symbol, should be typeof window.onWebKitXMLViewerSourceXMLLoaded === &quot;function&quot;. I&apos;d also make it:

if (typeof window.onWebKitXMLViewerSourceXMLLoaded === &quot;function&quot;) {
    // Let extensions override xml viewing
    onWebKitXMLViewerSourceXMLLoaded();
} else
    sourceXMLLoaded();

It reads better.


Also, content scripts don&apos;t actually have access to the page&apos;s scripts, so they won&apos;t see / be able to define your function. You should only interact with content scripts using DOM.

&gt; Source/WebCore/xml/XMLViewer.js:97
&gt; +        processNode(nodeParentPairs[i].parentElement, nodeParentPairs[i].node);

Why breadth first, but not depth first? You would not need these pairs in DFS, right?

&gt; Source/WebCore/xml/XMLViewer.js:107
&gt; +    switch (node.nodeType) {

Sounds like you could put handler functions into a map and do automatic dispatch in place of this switch.

&gt; Source/WebCore/xml/XMLViewer.js:130
&gt; +    if (node.childNodes.length == 0) {

This is weird, but you don&apos;t need to have { } here. if / else in WebKit does not need to have consistent {}

&gt; Source/WebCore/xml/XMLViewer.js:134
&gt; +        for (var i = 0; i &lt; node.childNodes.length; i++) {

You could do:

for (var child = node.firstChild; child; child = child.nextSibling) {
}

&gt; Source/WebCore/xml/XMLViewer.js:263
&gt; +function createHTMLElement(elementName)

Can you specify default namespace instead?

&gt; Source/WebCore/xml/XMLViewer.js:268
&gt; +function createCollapsable()

createCollapsible (a-&gt;i)

&gt; Source/WebCore/xml/XMLViewer.js:270
&gt; +    var collapsable = createHTMLElement(&apos;div&apos;);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376046</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-29 22:53:15 -0700</bug_when>
    <thetext>Just so that it&apos;s written down somewhere: why JS, and not C++?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376048</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-29 22:59:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Just so that it&apos;s written down somewhere: why JS, and not C++?

I guess it just sounds easier to do that in JavaScript + we could receive patches with improvements from the third-parties that currently own browser extensions rendering XML. But overall, I see your point - the part that converts XML to the XHTML DOM could be done in C++. It would leave some dynamics in JavaScript though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376450</commentid>
    <comment_count>7</comment_count>
      <attachid>87393</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-30 10:31:17 -0700</bug_when>
    <thetext>Comment on attachment 87393
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:21
&gt;&gt; +        * xml/XMLViewer.css: Added.
&gt; 
&gt; You can remove internals of this file from the ChangeLog.

Done.

&gt;&gt; Source/WebCore/ChangeLog:31
&gt;&gt; +        * xml/XMLViewer.js: Added.
&gt; 
&gt; Ditto

Done.

&gt;&gt; Source/WebCore/xml/XMLTreeViewer.cpp:77
&gt;&gt; +    frame-&gt;script()-&gt;evaluate(&quot;addCSS(&apos;&quot; + cssString.replace(&quot;\n&quot;, &quot; &quot;).replace(&quot;&apos;&quot;, &quot;\&quot;&quot;) + &quot;&apos;);&quot;);
&gt; 
&gt; I wonder if adding a style tag to the document&apos;s element is simpler. Alternatively, you should do escape() here and unescape in the JavaScript.

Done. Style element is created from native code directly now.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:44
&gt;&gt; +    while (document.childNodes.length != 0) {
&gt; 
&gt; while (var childNode = document.firstChild) {
&gt; ...
&gt; }

Done except you can not put &apos;var&apos; in while loop condition.

var child;
while (child = document.firstChild) {
...
}

&gt;&gt; Source/WebCore/xml/XMLViewer.js:50
&gt;&gt; +    document.appendChild(html);
&gt; 
&gt; When you remove head/body from the document, it gets them back. It might work for html documents, not xml though. Anyways, worth checking if don&apos;t have them duped.

I&apos;ve checked that nothing gets duplicated.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:76
&gt;&gt; +    if (!onWebKitXMLViewerSourceXMLLoaded)
&gt; 
&gt; This will fail as undefined symbol, should be typeof window.onWebKitXMLViewerSourceXMLLoaded === &quot;function&quot;. I&apos;d also make it:
&gt; 
&gt; if (typeof window.onWebKitXMLViewerSourceXMLLoaded === &quot;function&quot;) {
&gt;     // Let extensions override xml viewing
&gt;     onWebKitXMLViewerSourceXMLLoaded();
&gt; } else
&gt;     sourceXMLLoaded();
&gt; 
&gt; It reads better.
&gt; 
&gt; 
&gt; Also, content scripts don&apos;t actually have access to the page&apos;s scripts, so they won&apos;t see / be able to define your function. You should only interact with content scripts using DOM.

Removed this section completely. Content script are supposed to look for element with id &apos;webkit-xml-viewer-source-xml&apos; now.
I&apos;ll comment in corresponding bug once we finish with this and opener issue.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:97
&gt;&gt; +        processNode(nodeParentPairs[i].parentElement, nodeParentPairs[i].node);
&gt; 
&gt; Why breadth first, but not depth first? You would not need these pairs in DFS, right?

To avoid recursion. I feel it would be better.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:107
&gt;&gt; +    switch (node.nodeType) {
&gt; 
&gt; Sounds like you could put handler functions into a map and do automatic dispatch in place of this switch.

Done.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:130
&gt;&gt; +    if (node.childNodes.length == 0) {
&gt; 
&gt; This is weird, but you don&apos;t need to have { } here. if / else in WebKit does not need to have consistent {}

Done.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:134
&gt;&gt; +        for (var i = 0; i &lt; node.childNodes.length; i++) {
&gt; 
&gt; You could do:
&gt; 
&gt; for (var child = node.firstChild; child; child = child.nextSibling) {
&gt; }

Done.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:263
&gt;&gt; +function createHTMLElement(elementName)
&gt; 
&gt; Can you specify default namespace instead?

No, default namespace is probably already used by XML document.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:268
&gt;&gt; +function createCollapsable()
&gt; 
&gt; createCollapsible (a-&gt;i)

Done.

&gt;&gt; Source/WebCore/xml/XMLViewer.js:270
&gt;&gt; +    var collapsable = createHTMLElement(&apos;div&apos;);
&gt; 
&gt; ditto

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376453</commentid>
    <comment_count>8</comment_count>
      <attachid>87568</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-30 10:32:04 -0700</bug_when>
    <thetext>Created attachment 87568
Patch with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376456</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-30 10:35:43 -0700</bug_when>
    <thetext>Attachment 87568 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/xml/XMLTreeViewer.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376462</commentid>
    <comment_count>10</comment_count>
      <attachid>87570</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-30 10:39:18 -0700</bug_when>
    <thetext>Created attachment 87570
Patch with style fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376495</commentid>
    <comment_count>11</comment_count>
      <attachid>87570</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-30 11:20:44 -0700</bug_when>
    <thetext>Comment on attachment 87570
Patch with style fixed

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

&gt; Source/WebCore/xml/XMLTreeViewer.cpp:75
&gt; +    String cssString(reinterpret_cast&lt;const char*&gt;(XMLViewer_css), sizeof(XMLViewer_css));

Nit: define closer to the usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376501</commentid>
    <comment_count>12</comment_count>
      <attachid>87570</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-30 11:23:59 -0700</bug_when>
    <thetext>Comment on attachment 87570
Patch with style fixed

Rejecting attachment 87570 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
d at 25442 (offset 8 lines).
patching file Source/WebCore/dom/XMLDocumentParserLibxml2.cpp
patching file Source/WebCore/xml/XMLTreeViewer.cpp
patching file Source/WebCore/xml/XMLViewer.css
patching file Source/WebCore/xml/XMLViewer.js
patching file Source/WebCore/xml/XMLViewer.xsl
rm &apos;Source/WebCore/xml/XMLViewer.xsl&apos;
patching file Source/WebCore/xml/XSLStyleSheet.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Pavel Feldman&apos;, u&apos;--fo...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8281950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377002</commentid>
    <comment_count>13</comment_count>
      <attachid>87682</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-31 02:21:47 -0700</bug_when>
    <thetext>Created attachment 87682
Patch with nits and merge fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377024</commentid>
    <comment_count>14</comment_count>
      <attachid>87682</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-31 03:08:45 -0700</bug_when>
    <thetext>Comment on attachment 87682
Patch with nits and merge fixed.

Rejecting attachment 87682 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
re.xcodeproj/project.pbxproj
patching file Source/WebCore/dom/XMLDocumentParserLibxml2.cpp
patching file Source/WebCore/xml/XMLTreeViewer.cpp
patching file Source/WebCore/xml/XMLViewer.css
patching file Source/WebCore/xml/XMLViewer.js
patching file Source/WebCore/xml/XMLViewer.xsl
rm &apos;Source/WebCore/xml/XMLViewer.xsl&apos;
patching file Source/WebCore/xml/XSLStyleSheet.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Pavel Feldman&apos;, u&apos;--fo...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8311251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377055</commentid>
    <comment_count>15</comment_count>
      <attachid>87698</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-31 04:35:12 -0700</bug_when>
    <thetext>Created attachment 87698
merge fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377071</commentid>
    <comment_count>16</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-31 04:58:56 -0700</bug_when>
    <thetext>Committed r82562: &lt;http://trac.webkit.org/changeset/82562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377088</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-31 05:52:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82562 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/css/dumpAsText/xml-stylesheet-pi-not-in-prolog.xml
svg/hixie/error/dumpAsText/005.xml</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85639</attachid>
            <date>2011-03-13 20:59:18 -0700</date>
            <delta_ts>2011-03-13 20:59:18 -0700</delta_ts>
            <desc>Sample XML with namespaces that are prefixed and not prefixed. Also contains a CDATA section.</desc>
            <filename>dummy.xml</filename>
            <type>application/xml</type>
            <size>344</size>
            <attacher>alan.stroop</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxkdWg6ZHVtbXkgeG1sbnM6ZHVoPSJodHRwOi8vZHVoLmNv
bSIgeG1sbnM9Imh0dHA6Ly9kZWZhdWx0Lm9yZyI+CjwhLS1qdXN0IHNvbWUgY29tbWVudC0tPgo8
cGJidDpjaGlsZCB4bWxuczpwYmJ0PSJodHRwOi8vcGJidC5vcmciIGF0PSJhdHRyaWJ1dGUiPmhl
bGxvIHdvcmxkPC9wYmJ0OmNoaWxkPgo8P3BpIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24/Pgo8Y2hp
bGQgeDpyaWJiaXQ9ImZyb2ciIHhtbG5zOng9Imh0dHA6Ly94Lm9yZyIvPgo8ZmlsbGVyPjwvZmls
bGVyPgo8RklMTEVSPjwhW0NEQVRBW0Ftb3MgJiBBbmR5XV0+PC9GSUxMRVI+CjwvZHVoOmR1bW15
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87393</attachid>
            <date>2011-03-29 12:30:35 -0700</date>
            <delta_ts>2011-03-30 10:39:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>cdata</filename>
            <type>text/plain</type>
            <size>59436</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZGJhMGQ2Li5kY2E0ZmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMt
MjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQg
bmFtZXNwYWNlcyBhcmUgbm90IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRl
biBvbiBqYXZhc2NyaXB0LgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
My0yOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIExvb2tzIGxp
a2UgYSByb3VuZGluZyBpc3N1ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAppbmRleCBmNTFmNTVj
Li5hOWI5MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9k
dW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMIGh0dHA6Ly93
d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwueG1sLiBEb21haW5zLCBw
cm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KIFRoaXMgWE1MIGZpbGUgZG9lcyBub3Qg
YXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4g
VGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0tCiBJZiB5b3UgY2FuIHNlZSB0
aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlmIHlvdSBhcmUgbm90IHVzaW5nIGEg
V01MLWF3YXJlIGNsaWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
dmlld2VyL2R1bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKaW5kZXggMTdmYjUw
Yi4uMzU5MzY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIv
ZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKQEAgLTEsOSArMSw5IEBA
CiBUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1h
dGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93
LgogPCEtLSBJZiB5b3UgY2FuIHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZC4gLS0+Ci08
dGVzdD4KKzx0ZXN0IHhtbG5zPSJodHRwOi8vc3RpbGwtdW5rbm93bi5leGFtcGxlLm9yZy8iPgog
PGhlYWRlcj4KIFRoaXMgdGVzdHMgdGhhdCB4bWwgdmlld2VyIGlzIG5vdCB1c2VkIHdoZW4gdGhl
cmUgaXMgYW4gYXR0cmlidXRlIFhMaW5rIG5hbWVzcGFjZS4KIDwvaGVhZGVyPgogPEZBSUwvPgot
PHhsaW5rIGw6dHlwZT0ic2ltcGxlIiBsOmhyZWY9InhsaW5rLnhtbCI+U1VDQ0VTUzwveGxpbms+
Cis8eGxpbmsgeG1sbnM6bD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgbDp0eXBlPSJz
aW1wbGUiIGw6aHJlZj0ieGxpbmsueG1sIj5TVUNDRVNTPC94bGluaz4KIDwvdGVzdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQveG1sdmll
d2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBB
c1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dAppbmRleCA2ZDE1ZTFmLi4zNzA1YzJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3htbHZp
ZXdlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIv
ZHVtcEFzVGV4dC94bWx2aWV3ZXItZXhwZWN0ZWQudHh0CkBAIC0yMiw5ICsyMiwxMyBAQCBBbmQg
bm93IHNvbWUgbG9uZyB0ZXh0IGluIHJvb3QgZWxlbWVudC4gVGhlIHF1aWNrIGJyb3duIGZveCBq
dW1wcyBvdmVyIHRoZSBsYXp5CiA8IS0tCiBzb21lIGxvbmcgY29tbWVudCBUaGUgcXVpY2sgYnJv
d24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxh
enkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUg
cXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24g
Zm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92
ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkg
ZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVp
Y2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIg
dGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9n
LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhl
IGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLgog
LS0+Ci08dGFnLXdpdGgtc2hvcnQtY2RhdGE+IHNvbWUgc2hvcnQgdGV4dCA8L3RhZy13aXRoLXNo
b3J0LWNkYXRhPgorPHRhZy13aXRoLXNob3J0LWNkYXRhPgorPCFbQ0RBVEFbIHNvbWUgc2hvcnQg
dGV4dCBdXT4KKzwvdGFnLXdpdGgtc2hvcnQtY2RhdGE+CiA8dGFnLXdpdGgtbG9uZy1jZGF0YT4K
KzwhW0NEQVRBWwogVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4g
VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJy
b3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1w
cyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBs
YXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhl
IHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBv
dmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5
IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1
aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZv
eCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVy
IHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRv
Zy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNr
IGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBq
dW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4KK11dPgogPC90YWctd2l0aC1sb25nLWNkYXRhPgotPG5z
OnRhZy13aXRoLXNvbWUtbmFtZXNwYWNlLz4KKzxuczp0YWctd2l0aC1zb21lLW5hbWVzcGFjZSB4
bWxuczpucz0id3d3LmV4YW1wbGUub3JnL25hbWVzcGFjZSIvPgogPC9yb290LXRhZy13aXRoLW1p
eGVkLWNvbnRlbnQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdl
ci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQKaW5kZXggN2ExZGJlNC4uNzUxZDI2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4
dC94dWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2Vy
L2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFRoaXMgWE1MIGZp
bGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0
ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0tIElmIHlv
dSBjYW4gc2VlIHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLiAtLT4KLTxGQUlMPgorPEZBSUwg
eG1sbnM6YT0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVy
ZS5pcy5vbmx5Lnh1bCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0cyB0aGF0IHhtbCB2aWV3ZXIgaXMg
bm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhbiBhdHRyaWJ1dGUgaW4gWFVMIG5hbWVzcGFjZS4KIDwv
aGVhZGVyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
aHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTFm
NTVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2h0
dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgYXR0
ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQvd21sXzEuMS54bWwg
ZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1sdmlld2VyL2R1bXBB
c1RleHQvd21sLnhtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgot
Ci1UaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1h
dGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93
LgotPCEtLQotSWYgeW91IGNhbiBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQsIGV4Y2Vw
dCBpZiB5b3UgYXJlIG5vdCB1c2luZyBhIFdNTC1hd2FyZSBjbGllbnQuCi0tLT4KLTw/c2RzIGVy
ZmU/PgotPHdtbD4KLTxoZWFkZXI+Ci1UaGlzIHRlc3RzIHRoYXQgeG1sIHZpZXdlciBpcyBub3Qg
dXNlZCBmb3IgZG9jdW1lbnRzIHdpdGggV01MIGRvY3R5cGUuCi08L2hlYWRlcj4KLTxjYXJkIGlk
PSJjYXJkMSIgdGl0bGU9IkNhcmQgMSI+Ci08RkFJTC8+Ci08cD5TVUNDRVNTPC9wPgotPC9jYXJk
PgotPC93bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L21hdGhtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L21h
dGhtbC1leHBlY3RlZC50eHQKaW5kZXggYmYyOWQ3OS4uODYyOGIxZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4
dC9tYXRobWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dApAQCAt
Miw3ICsyLDcgQEAgVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5
bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LgogPCEtLQogSWYgeW91IGNhbiBzZWUg
dGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQsIGV4Y2VwdCBpZiB5b3UgYXJlIG5vdCB1c2luZyBh
IE1hdGhNTC1hd2FyZSBjbGllbnQuCiAtLT4KLTxGQUlMPgorPEZBSUwgeG1sbnM6YT0iaHR0cDov
L3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0cyB0aGF0
IHhtbCB2aWV3ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhIHRhZyBpbiBNQVRITUwgbmFt
ZXNwYWNlLgogPC9oZWFkZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDgwN2Y1NWQuLjcwNWQw
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTg1LDEzICsxOTg1LDIyIEBAIE1BS0VfSEFT
SF9UT09MUygke1dFQkNPUkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQogTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmluZ3MuY3Bw
KQogCiAKLSMgR2VuZXJhdGUgWE1MVmlld2VyWFNMLmgKKyMgR2VuZXJhdGUgWE1MVmlld2VyQ1NT
LmgKIEFERF9DVVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9YTUxWaWV3ZXJYU0wuaAotICAgIE1BSU5fREVQRU5ERU5DWSB4bWwvWE1MVmlld2VyLnhzbAot
ICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci94
eGQucGwgWE1MVmlld2VyX3hzbCAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLnhzbCAke0RF
UklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdlclhTTC5oCisgICAgT1VUUFVUICR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vWE1MVmlld2VyQ1NTLmgKKyAgICBNQUlOX0RFUEVOREVOQ1kgeG1sL1hNTFZp
ZXdlci5jc3MKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9p
bnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9jc3MgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdl
ci5jc3MgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaAogICAgIFZFUkJBVElN
KQotTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1M
Vmlld2VyWFNMLmgpCitMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9YTUxWaWV3ZXJDU1MuaCkKKworCisjIEdlbmVyYXRlIFhNTFZpZXdlckpTLmgKK0FE
RF9DVVNUT01fQ09NTUFORCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxW
aWV3ZXJKUy5oCisgICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIuanMKKyAgICBDT01N
QU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IveHhkLnBsIFhN
TFZpZXdlcl9qcyAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLmpzICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vWE1MVmlld2VySlMuaAorICAgIFZFUkJBVElNKQorTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VySlMuaCkKIAogCiAjIEdl
bmVyYXRlIEhUTUwgZW50aXR5IHRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY1MzRhMC4uOTQyMmVkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDExLTAzLTI5ICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFhNTCBWaWV3ZXI6IGRlY2xhcmVkIG5hbWVzcGFjZXMgYXJlIG5vdCBy
ZW5kZXJlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU2MjYyCisKKyAgICAgICAgWE1MIHZpZXdlciByZXdyaXR0ZW4gb24gamF2YXNjcmlwdC4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpkb0VuZCk6CisgICAgICAgICogeG1sL1hN
TFRyZWVWaWV3ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZVZpZXdlcjo6dHJhbnNm
b3JtRG9jdW1lbnRUb1RyZWVWaWV3KToKKyAgICAgICAgKiB4bWwvWE1MVmlld2VyLmNzczogQWRk
ZWQuCisgICAgICAgIChkaXYuaGVhZGVyKToKKyAgICAgICAgKGRpdi5jb2xsYXBzYWJsZSA+IGRp
di5oaWRkZW4pOgorICAgICAgICAoLnByZXR0eS1wcmludCk6CisgICAgICAgICgjc291cmNlLXht
bCk6CisgICAgICAgICguY29sbGFwc2FibGUtY29udGVudCk6CisgICAgICAgICguY29tbWVudCk6
CisgICAgICAgICguYnV0dG9uKToKKyAgICAgICAgKC5jb2xsYXBzZS1idXR0b24pOgorICAgICAg
ICAoLmV4cGFuZC1idXR0b24pOgorICAgICAgICAqIHhtbC9YTUxWaWV3ZXIuanM6IEFkZGVkLgor
ICAgICAgICAoKToKKyAgICAgICAgKGFkZENTUyk6CisgICAgICAgIChvbldlYktpdFhNTFZpZXdl
ckxvYWQpOgorICAgICAgICAoc291cmNlWE1MTG9hZGVkKToKKyAgICAgICAgKHByb2Nlc3NOb2Rl
KToKKyAgICAgICAgKHByb2Nlc3NFbXB0eUVsZW1lbnQpOgorICAgICAgICAocHJvY2Vzc1Nob3J0
VGV4dE9ubHlFbGVtZW50KToKKyAgICAgICAgKHByb2Nlc3NDb21wbGV4RWxlbWVudCk6CisgICAg
ICAgIChwcm9jZXNzQ29tbWVudCk6CisgICAgICAgIChwcm9jZXNzQ0RBVEEpOgorICAgICAgICAo
cHJvY2Vzc1Byb2Nlc3NpbmdJbnN0cnVjdGlvbik6CisgICAgICAgIChwcm9jZXNzVGV4dCk6Cisg
ICAgICAgICh0cmltKToKKyAgICAgICAgKGlzU2hvcnQpOgorICAgICAgICAoY3JlYXRlSFRNTEVs
ZW1lbnQpOgorICAgICAgICAoY3JlYXRlQ29sbGFwc2FibGUpOgorICAgICAgICAoY3JlYXRlQnV0
dG9uKToKKyAgICAgICAgKGNyZWF0ZUNvbGxhcHNlQnV0dG9uKToKKyAgICAgICAgKGNyZWF0ZUV4
cGFuZEJ1dHRvbik6CisgICAgICAgIChjcmVhdGVDb21tZW50KToKKyAgICAgICAgKGNyZWF0ZVRl
eHQpOgorICAgICAgICAoY3JlYXRlTGluZSk6CisgICAgICAgIChjcmVhdGVUYWcpOgorICAgICAg
ICAoY3JlYXRlQXR0cmlidXRlKToKKyAgICAgICAgKGRyYXdBcnJvd3MpOgorICAgICAgICAoaGFu
ZGxlQnV0dG9uTW91c2VEb3duKToKKyAgICAgICAgKiB4bWwvWE1MVmlld2VyLnhzbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDExLTAzLTI5ICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjOGZhMzEwLi4zNWE2NTk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY1NSwxMiArNjU1LDIxIEBAIERvY1R5
cGVTdHJpbmdzLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgJChXZWJDb3JlKS9tYWtl
LWhhc2gtdG9vbHMucGwKIAogIyAtLS0tLS0tLQogCi0jIFhNTFZpZXdlciBYU0xUCisjIFhNTFZp
ZXdlciBDU1MKIAotYWxsIDogWE1MVmlld2VyWFNMLmgKK2FsbCA6IFhNTFZpZXdlckNTUy5oCiAK
LVhNTFZpZXdlclhTTC5oIDogeG1sL1hNTFZpZXdlci54c2wKLQlwZXJsICQoV2ViQ29yZSkvaW5z
cGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfeHNsICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wg
WE1MVmlld2VyWFNMLmgKK1hNTFZpZXdlckNTUy5oIDogeG1sL1hNTFZpZXdlci5jc3MKKwlwZXJs
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfY3NzICQoV2ViQ29yZSkveG1s
L1hNTFZpZXdlci5jc3MgWE1MVmlld2VyQ1NTLmgKKworIyAtLS0tLS0tLQorCisjIFhNTFZpZXdl
ciBKUworCithbGwgOiBYTUxWaWV3ZXJKUy5oCisKK1hNTFZpZXdlckpTLmggOiB4bWwvWE1MVmll
d2VyLmpzCisJcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2pzICQo
V2ViQ29yZSkveG1sL1hNTFZpZXdlci5qcyBYTUxWaWV3ZXJKUy5oCiAKICMgLS0tLS0tLS0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA1ODM2OGJkLi4xZTgwNjg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtNjUzLDcgKzY1Myw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTE5TTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuaCBc
Ci0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJYU0wuaCAKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZp
ZXdlckpTLmggCiAKIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBcCkBAIC00OTM1LDkgKzQ5MzYs
MTMgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IYXNoVG9vbHMuaDogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9Eb2NUeXBlU3RyaW5ncy5jcHAKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlw
ZVN0cmluZ3MuY3BwOiAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgJChXZWJD
b3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKFBFUkwpICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsICQoR0VOU09VUkNFU19XRUJDT1JFKSAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmlu
Z3MuZ3BlcmYKIAotIyBYTUwgVmlld2VyIFhTTAotRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxW
aWV3ZXJYU0wuaDogJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLnhzbAotCSQoUEVSTCkgJChXZWJD
b3JlKS9pbnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl94c2wgJChXZWJDb3JlKS94bWwvWE1MVmll
d2VyLnhzbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWE1MVmlld2VyWFNMLmgKKyMgWE1MIFZpZXdl
ciBDU1MKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyQ1NTLmg6ICQoV2ViQ29yZSkv
eG1sL1hNTFZpZXdlci5jc3MKKwkkKFBFUkwpICQoV2ViQ29yZSkvaW5zcGVjdG9yL3h4ZC5wbCBY
TUxWaWV3ZXJfY3NzICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci5jc3MgJChHRU5TT1VSQ0VTX1dF
QkNPUkUpL1hNTFZpZXdlckNTUy5oCisKKyMgWE1MIFZpZXdlciBKUworRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9YTUxWaWV3ZXJKUy5oOiAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMKKwkkKFBF
UkwpICQoV2ViQ29yZSkvaW5zcGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfanMgJChXZWJDb3JlKS94
bWwvWE1MVmlld2VyLmpzICQoR0VOU09VUkNFU19XRUJDT1JFKS9YTUxWaWV3ZXJKUy5oCiAKICMg
SFRNTCBlbnRpdHkgbmFtZXMKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eVRhYmxl
LmNwcDogJChXZWJDb3JlKS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4gJChXZWJDb3Jl
KS9odG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKQEAgLTUxNjUsNyArNTE3MCw4
IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy94bGlua2F0dHJzLmluIFwK
IAlTb3VyY2UvV2ViQ29yZS94bWwveG1sYXR0cnMuaW4gXAogCVNvdXJjZS9XZWJDb3JlL3htbC94
bWxuc2F0dHJzLmluIFwKLQlTb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhzbCBcCisJU291
cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5jc3MgXAorCVNvdXJjZS9XZWJDb3JlL3htbC9YTUxW
aWV3ZXIuanMgXAogCVNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueQogCiAjIEluc3Rh
bGxpbmcgd2ViIGluc3BlY3RvciBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAppbmRleCBlNjkyZjU0Li41OTNiNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cApAQCAtNDQ1LDE3ICs0NDUsMzMgQEAKICAgICAgICdhY3Rpb25zJzogWwogICAg
ICAgICAjIEFjdGlvbnMgdG8gYnVpbGQgZGVyaXZlZCBzb3VyY2VzLgogICAgICAgICB7Ci0gICAg
ICAgICAgJ2FjdGlvbl9uYW1lJzogJ2dlbmVyYXRlWE1MVmlld2VyWFNMJywKKyAgICAgICAgICAn
YWN0aW9uX25hbWUnOiAnZ2VuZXJhdGVYTUxWaWV3ZXJDU1MnLAogICAgICAgICAgICdpbnB1dHMn
OiBbCi0gICAgICAgICAgICAnLi4veG1sL1hNTFZpZXdlci54c2wnLAorICAgICAgICAgICAgJy4u
L3htbC9YTUxWaWV3ZXIuY3NzJywKICAgICAgICAgICBdLAogICAgICAgICAgICdvdXRwdXRzJzog
WwotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9YTUxWaWV3
ZXJYU0wuaCcsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
L1hNTFZpZXdlckNTUy5oJywKICAgICAgICAgICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCiAg
ICAgICAgICAgICAncGVybCcsCiAgICAgICAgICAgICAnLi4vaW5zcGVjdG9yL3h4ZC5wbCcsCi0g
ICAgICAgICAgICAnWE1MVmlld2VyX3hzbCcsCisgICAgICAgICAgICAnWE1MVmlld2VyX2Nzcycs
CisgICAgICAgICAgICAnPEAoX2lucHV0cyknLAorICAgICAgICAgICAgJzxAKF9vdXRwdXRzKScK
KyAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ2dlbmVyYXRlWE1MVmlld2VySlMnLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAg
ICAgICAgICAnLi4veG1sL1hNTFZpZXdlci5qcycsCisgICAgICAgICAgXSwKKyAgICAgICAgICAn
b3V0cHV0cyc6IFsKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJr
aXQvWE1MVmlld2VySlMuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAnYWN0aW9uJzogWwor
ICAgICAgICAgICAgJ3BlcmwnLAorICAgICAgICAgICAgJy4uL2luc3BlY3Rvci94eGQucGwnLAor
ICAgICAgICAgICAgJ1hNTFZpZXdlcl9qcycsCiAgICAgICAgICAgICAnPEAoX2lucHV0cyknLAog
ICAgICAgICAgICAgJzxAKF9vdXRwdXRzKScKICAgICAgICAgICBdLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDhmODljZGEuLmU3MTU2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc5MzUsNyArNzkzNSw4
IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Y
TUxOU05hbWVzLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvWE1MTmFtZXMuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmgnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNMLmgnLAorICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyQ1NTLmgnLAor
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmll
d2VySlMuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9YUGF0aEdyYW1tYXIuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hQYXRoR3JhbW1hci5oJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL3Rva2VuaXplci5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5Yjc0MDYwLi45MzEy
YjFjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjMzMTgsNyArMjMzMTgsMTEgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xYTUxWaWV3ZXJYU0wuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1M
Vmlld2VyQ1NTLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcWE1MVmlld2VySlMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRl
MjFmOTguLjM1NjFkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTcsNiArMTQxNyw4IEBACiAJCTU5OEQ3N0RGMTMyNTQx
RkEwMDc2MUIyMiAvKiBKYXZhQXJyYXlKU0MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEQ3N0RFMTMyNTQxRkEwMDc2MUIyMiAvKiBKYXZhQXJyYXlK
U0MuaCAqLzsgfTsKIAkJNTk4RDc3RTExMzI1NDIwNDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThENzdF
MDEzMjU0MjA0MDA3NjFCMjIgLyogSmF2YUZpZWxkSlNDLmNwcCAqLzsgfTsKIAkJNTk4RDc3RTMx
MzI1NDIwRTAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4RDc3RTIxMzI1NDIwRTAwNzYxQjIyIC8qIEphdmFG
aWVsZEpTQy5oICovOyB9OworCQk1OTk0QjM5NjEzNDI1QzQyMDA4NTEzREQgLyogWE1MVmlld2Vy
LmNzcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk5
NEIzOTQxMzQyNUM0MjAwODUxM0REIC8qIFhNTFZpZXdlci5jc3MgKi87IH07CisJCTU5OTRCMzk3
MTM0MjVDNDIwMDg1MTNERCAvKiBYTUxWaWV3ZXIuanMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTk0QjM5NTEzNDI1QzQyMDA4NTEzREQgLyogWE1MVmll
d2VyLmpzICovOyB9OwogCQk1OTlFNzU5MDExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTlFNzU4RjExMDU1
QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTlBODVFQTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovOyB9OwogCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTlBODVFQTMxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCAqLzsg
fTsKQEAgLTc5MjksMTEgKzc5MzEsMTIgQEAKIAkJNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpvYmplY3RXcmFwcGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3Jh
cHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKb2JqZWN0V3Jh
cHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU5ODBCMDMzMTJFRjNEODQw
MERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBYTUxW
aWV3ZXIueHNsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThENzdEQzEzMjU0MUVF
MDA3NjFCMjIgLyogSmF2YUFycmF5SlNDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEphdmFBcnJheUpTQy5jcHA7IHBhdGggPSBqc2MvSmF2YUFycmF5SlNDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3REUxMzI1NDFGQTAwNzYxQjIyIC8q
IEphdmFBcnJheUpTQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKYXZhQXJy
YXlKU0MuaDsgcGF0aCA9IGpzYy9KYXZhQXJyYXlKU0MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTk4RDc3RTAxMzI1NDIwNDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKYXZhRmllbGRKU0MuY3BwOyBwYXRo
ID0ganNjL0phdmFGaWVsZEpTQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5
OEQ3N0UyMTMyNTQyMEUwMDc2MUIyMiAvKiBKYXZhRmllbGRKU0MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gSmF2YUZpZWxkSlNDLmg7IHBhdGggPSBqc2MvSmF2YUZpZWxkSlND
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5OTRCMzk0MTM0MjVDNDIwMDg1MTNE
RCAvKiBYTUxWaWV3ZXIuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBYTUxWaWV3ZXIu
Y3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1OTk0QjM5NTEzNDI1QzQyMDA4NTEz
REQgLyogWE1MVmlld2VyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gWE1MVmlld2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTlFNzU4RjEx
MDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEJyaWRnZS5oOyBwYXRoID0gYnJpZGdlL0JyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OUE4NUVBMTExOUQ2OEQ5MDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTlBODVFQTMx
MTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25FdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MTMsNyArMTg2MTYsOCBAQAogCQkJCTFBQ0U1M0U2MEE4
RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmlkbCAqLywKIAkJCQk1OTA1QURCRDEzMDJG
M0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi8sCiAJCQkJNTkwNUFEQkUxMzAyRjND
RTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCAqLywKLQkJCQk1OTgwQjAzMzEyRUYzRDg0MDBE
RjVGODUgLyogWE1MVmlld2VyLnhzbCAqLywKKwkJCQk1OTk0QjM5NDEzNDI1QzQyMDA4NTEzREQg
LyogWE1MVmlld2VyLmNzcyAqLywKKwkJCQk1OTk0QjM5NTEzNDI1QzQyMDA4NTEzREQgLyogWE1M
Vmlld2VyLmpzICovLAogCQkJCTFBQjdGQzQ3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1
YXRvci5jcHAgKi8sCiAJCQkJMUFCN0ZDNDgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVh
dG9yLmggKi8sCiAJCQkJMUFCN0ZDNDkwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9y
LmlkbCAqLywKQEAgLTIyODQ0LDYgKzIyODQ4LDcgQEAKIAkJCQk4NTEzNkNBODBBRUQ2NjU5MDBG
OTBBM0QgLyogd2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFB
RTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAorCQkJCTU5OTRCMzk2MTM0MjVDNDIwMDg1MTNERCAvKiBYTUxWaWV3ZXIuY3Nz
IGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1Mzk0LDYgKzI1Mzk5LDcgQEAKIAkJCQk0RjE0NDIyODEz
MzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTg0QjYyNjg1MTMzMTM4RjkwMDk1QTQ4OSAvKiBGb250UGxhdGZvcm1EYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRGNkZERDY0MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdl
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTk5NEIzOTcxMzQyNUM0MjAwODUxM0REIC8q
IFhNTFZpZXdlci5qcyBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA5MjE0MzkxLi5lM2Y2NjAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtMTMz
OSwyNyArMTMzOSwyMyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkb0VuZCgpCiAgICAgICAg
IH0KICAgICB9CiAKLSNpZiBFTkFCTEUoWFNMVCkKICAgICBYTUxUcmVlVmlld2VyIHhtbFRyZWVW
aWV3ZXIoZG9jdW1lbnQoKSk7Ci0KICAgICBib29sIHhtbFZpZXdlck1vZGUgPSAhbV9zYXdFcnJv
ciAmJiAhbV9zYXdDU1MgJiYgIW1fc2F3WFNMVHJhbnNmb3JtICYmIHhtbFRyZWVWaWV3ZXIuaGFz
Tm9TdHlsZUluZm9ybWF0aW9uKCk7CisgICAgaWYgKHhtbFZpZXdlck1vZGUpCisgICAgICAgIHht
bFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7CiAKLSAgICBpZiAoeG1s
Vmlld2VyTW9kZSB8fCBtX3Nhd1hTTFRyYW5zZm9ybSkgeworI2lmIEVOQUJMRShYU0xUKQorICAg
IGlmIChtX3Nhd1hTTFRyYW5zZm9ybSkgewogICAgICAgICB2b2lkKiBkb2MgPSB4bWxEb2NQdHJG
b3JTdHJpbmcoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgbV9vcmlnaW5hbFNv
dXJjZUZvclRyYW5zZm9ybSwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgICAgICBk
b2N1bWVudCgpLT5zZXRUcmFuc2Zvcm1Tb3VyY2UobmV3IFRyYW5zZm9ybVNvdXJjZShkb2MpKTsK
IAotICAgICAgICBpZiAoeG1sVmlld2VyTW9kZSkKLSAgICAgICAgICAgIHhtbFRyZWVWaWV3ZXIu
dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRo
aW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCi0gICAgICAg
ICAgICBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0
ZWx5KTsKLSAgICAgICAgICAgIGRvY3VtZW50KCktPnNldFBhcnNpbmcodHJ1ZSk7Ci0gICAgICAg
IH0KKyAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRv
Y3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVzaGVldHMu
CisgICAgICAgIGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0eWxlSW1t
ZWRpYXRlbHkpOworICAgICAgICBkb2N1bWVudCgpLT5zZXRQYXJzaW5nKHRydWUpOwogCiAgICAg
ICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwogICAgIH0KICNlbmRpZgotCiB9CiAK
ICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVl
Vmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCBm
MWUyYzBmLi5jZWMwZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZp
ZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC0y
NywzNyArMjcsMTYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUo
WFNMVCkKICNpbmNsdWRlICJYTUxUcmVlVmlld2VyLmgiCiAKLQotI2luY2x1ZGUgIkJhc2U2NC5o
IgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKLSNpbmNsdWRlICJYTGlua05hbWVzLmgi
Ci0jaW5jbHVkZSAiWE1MVmlld2VyWFNMLmgiCi0jaW5jbHVkZSAiWFBhdGhSZXN1bHQuaCIKLSNp
bmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCi0jaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgotCi0j
aW5jbHVkZSA8bGlieHNsdC94c2x0Lmg+Ci0KLSNpZiBFTkFCTEUoTUFUSE1MKQotI2luY2x1ZGUg
Ik1hdGhNTE5hbWVzLmgiCi0jZW5kaWYKLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlNWR05h
bWVzLmgiCi0jZW5kaWYKLSNpZiBFTkFCTEUoV01MKQotI2luY2x1ZGUgIldNTE5hbWVzLmgiCi0j
ZW5kaWYKKyNpbmNsdWRlICJYTUxWaWV3ZXJDU1MuaCIKKyNpbmNsdWRlICJYTUxWaWV3ZXJKUy5o
IgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC04OSwzNCArNjgsMTUgQEAgYm9vbCBYTUxU
cmVlVmlld2VyOjpoYXNOb1N0eWxlSW5mb3JtYXRpb24oKSBjb25zdAogCiB2b2lkIFhNTFRyZWVW
aWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmlldygpCiB7Ci0gICAgU3RyaW5nIHNoZWV0
U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl94c2wpLCBzaXpl
b2YoWE1MVmlld2VyX3hzbCkpOwotICAgIFJlZlB0cjxYU0xTdHlsZVNoZWV0PiBzdHlsZVNoZWV0
ID0gWFNMU3R5bGVTaGVldDo6Y3JlYXRlRm9yWE1MVHJlZVZpZXdlcihtX2RvY3VtZW50LCBzaGVl
dFN0cmluZyk7Ci0KLSAgICBSZWZQdHI8WFNMVFByb2Nlc3Nvcj4gcHJvY2Vzc29yID0gWFNMVFBy
b2Nlc3Nvcjo6Y3JlYXRlKCk7Ci0gICAgcHJvY2Vzc29yLT5zZXRYU0xTdHlsZVNoZWV0KHN0eWxl
U2hlZXQpOwotCi0gICAgcHJvY2Vzc29yLT5zZXRQYXJhbWV0ZXIoIiIsICJ4bWxfaGFzX25vX3N0
eWxlX21lc3NhZ2UiLCAiVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkg
c3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZG9jdW1lbnQgdHJlZSBp
cyBzaG93biBiZWxvdy4iKTsKLQotICAgIFN0cmluZyByZXN1bHRNSU1FVHlwZTsKLSAgICBTdHJp
bmcgbmV3U291cmNlOwotICAgIFN0cmluZyByZXN1bHRFbmNvZGluZzsKLQorICAgIFN0cmluZyBz
Y3JpcHRTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2VyX2pzKSwg
c2l6ZW9mKFhNTFZpZXdlcl9qcykpOworICAgIFN0cmluZyBjc3NTdHJpbmcocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2VyX2NzcyksIHNpemVvZihYTUxWaWV3ZXJfY3NzKSk7
CiAgICAgRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC0+ZnJhbWUoKTsKLSAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGludHJvZHVjZSBlcnJvciBoYW5kbGluZwotICAgIGlmIChwcm9jZXNzb3ItPnRy
YW5zZm9ybVRvU3RyaW5nKG1fZG9jdW1lbnQsIHJlc3VsdE1JTUVUeXBlLCBuZXdTb3VyY2UsIHJl
c3VsdEVuY29kaW5nKSkKLSAgICAgICAgcHJvY2Vzc29yLT5jcmVhdGVEb2N1bWVudEZyb21Tb3Vy
Y2UobmV3U291cmNlLCByZXN1bHRFbmNvZGluZywgcmVzdWx0TUlNRVR5cGUsIG1fZG9jdW1lbnQs
IGZyYW1lKTsKLQotICAgIC8vIEFkZGluZyBzb3VyY2UgeG1sIGZvciBkZWFsaW5nIHdpdGggbmFt
ZXNwYWNlcyBhbmQgQ0RBVEEgaXNzdWVzIGFuZCBmb3IgZXh0ZW5zaW9ucyB1c2UuCi0gICAgRWxl
bWVudCogc291cmNlWG1sRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJ
ZChBdG9taWNTdHJpbmcoInNvdXJjZS14bWwiKSk7Ci0gICAgaWYgKHNvdXJjZVhtbEVsZW1lbnQp
Ci0gICAgICAgIG1fZG9jdW1lbnQtPmNsb25lQ2hpbGROb2Rlcyhzb3VyY2VYbWxFbGVtZW50KTsK
LQotICAgIC8vIE5ldyBkb2N1bWVudCBzaG91bGQgaGF2ZSBiZWVuIGxvYWRlZCBpbiBmcmFtZS4g
VGVsbCBpdCB0byB1c2UgdmlldyBzb3VyY2Ugc3R5bGVzLgorICAgIGZyYW1lLT5zY3JpcHQoKS0+
ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRTdHJpbmcpKTsKKyAgICBTdHJpbmcgbm9T
dHlsZU1lc3NhZ2UoIlRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0
eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMg
c2hvd24gYmVsb3cuIik7CisgICAgZnJhbWUtPnNjcmlwdCgpLT5ldmFsdWF0ZSgicHJlcGFyZVdl
YktpdFhNTFZpZXdlcignIiArIG5vU3R5bGVNZXNzYWdlICsgIicpOyIpOworICAgIGZyYW1lLT5z
Y3JpcHQoKS0+ZXZhbHVhdGUoImFkZENTUygnIiArIGNzc1N0cmluZy5yZXBsYWNlKCJcbiIsICIg
IikucmVwbGFjZSgiJyIsICJcIiIpICsgIicpOyIpOwogICAgIGZyYW1lLT5kb2N1bWVudCgpLT5z
ZXRVc2VzVmlld1NvdXJjZVN0eWxlcyh0cnVlKTsKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3R5
bGVTZWxlY3RvckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7Ci0KIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFhTTFQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxW
aWV3ZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYjM5NTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcwpAQCAtMCww
ICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICog4oCcQVMgSVPigJ0gQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaXYuaGVhZGVyIHsKKyAgICBib3JkZXIt
Ym90dG9tOiAycHggc29saWQgYmxhY2s7CisgICAgcGFkZGluZy1ib3R0b206IDVweDsKKyAgICBt
YXJnaW46IDEwcHg7Cit9CisKK2Rpdi5jb2xsYXBzYWJsZSA+IGRpdi5oaWRkZW4geworICAgIGRp
c3BsYXk6bm9uZTsKK30KKworLnByZXR0eS1wcmludCB7CisgICAgbWFyZ2luLXRvcDogMWVtOwor
ICAgIG1hcmdpbi1sZWZ0OiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAg
Zm9udC1zaXplOiAxM3B4OworfQorCisjc291cmNlLXhtbCB7CisgICAgZGlzcGxheTogbm9uZTsK
K30KKworLmNvbGxhcHNhYmxlLWNvbnRlbnQgeworICAgIG1hcmdpbi1sZWZ0OiAxZW07Cit9Cisu
Y29tbWVudCB7CisgICAgd2hpdGVzcGFjZTogcHJlOworfQorCisuYnV0dG9uIHsKKyAgICAtd2Vi
a2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgbWFyZ2luLWxlZnQ6IC0xMHB4OworICAgIHdpZHRoOiAxMHB4
OworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3Np
dGlvbjogbGVmdCB0b3A7CisgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsKK30KKworLmNvbGxh
cHNlLWJ1dHRvbiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dE
b3duKTsKKyAgICBoZWlnaHQ6IDEwcHg7Cit9CisKKy5leHBhbmQtYnV0dG9uIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhhcnJvd1JpZ2h0KTsKKyAgICBoZWlnaHQ6IDEx
cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpzIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40NDBjZjkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TFZpZXdlci5qcwpAQCAtMCwwICsxLDQ2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMK
KyAqIOKAnEFTIElT4oCdIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordmFyIG5v
ZGVQYXJlbnRQYWlycyA9IFtdOworCisvLyBTY3JpcHQgZW50cnkgcG9pbnQuCisKK2Z1bmN0aW9u
IHByZXBhcmVXZWJLaXRYTUxWaWV3ZXIobm9TdHlsZU1lc3NhZ2UpCit7CisgICAgdmFyIGh0bWwg
PSBjcmVhdGVIVE1MRWxlbWVudCgnaHRtbCcpOworICAgIHZhciBoZWFkID0gY3JlYXRlSFRNTEVs
ZW1lbnQoJ2hlYWQnKTsKKyAgICBodG1sLmFwcGVuZENoaWxkKGhlYWQpOworICAgIHZhciBib2R5
ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2JvZHknKTsKKyAgICBodG1sLmFwcGVuZENoaWxkKGJvZHkp
OworICAgIHZhciBzb3VyY2VYTUwgPSBjcmVhdGVIVE1MRWxlbWVudCgnZGl2Jyk7CisgICAgc291
cmNlWE1MLmlkID0gJ3NvdXJjZS14bWwnOworICAgIGJvZHkuYXBwZW5kQ2hpbGQoc291cmNlWE1M
KTsKKworICAgIHdoaWxlIChkb2N1bWVudC5jaGlsZE5vZGVzLmxlbmd0aCAhPSAwKSB7CisgICAg
ICAgIHZhciBjaGlsZE5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzWzBdOworICAgICAgICBkb2N1
bWVudC5yZW1vdmVDaGlsZChjaGlsZE5vZGUpOworICAgICAgICBpZiAoY2hpbGROb2RlLm5vZGVU
eXBlICE9IE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgc291cmNlWE1MLmFw
cGVuZENoaWxkKGNoaWxkTm9kZSk7CisgICAgfQorICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKGh0
bWwpOworCisgICAgdmFyIGhlYWRlciA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsKKyAgICBi
b2R5LmFwcGVuZENoaWxkKGhlYWRlcik7CisgICAgaGVhZGVyLmNsYXNzTGlzdC5hZGQoJ2hlYWRl
cicpOworICAgIHZhciBoZWFkZXJTcGFuID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAg
ICBoZWFkZXIuYXBwZW5kQ2hpbGQoaGVhZGVyU3Bhbik7CisgICAgaGVhZGVyU3Bhbi50ZXh0Q29u
dGVudCA9IG5vU3R5bGVNZXNzYWdlOworICAgIGhlYWRlci5hcHBlbmRDaGlsZChjcmVhdGVIVE1M
RWxlbWVudCgnYnInKSk7CisKKyAgICB2YXIgdHJlZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYn
KTsKKyAgICBib2R5LmFwcGVuZENoaWxkKHRyZWUpOworICAgIHRyZWUuY2xhc3NMaXN0LmFkZCgn
cHJldHR5LXByaW50Jyk7CisgICAgdHJlZS5pZCA9ICd0cmVlJzsKKyAgICB3aW5kb3cub25sb2Fk
ID0gb25XZWJLaXRYTUxWaWV3ZXJMb2FkOworfQorCitmdW5jdGlvbiBhZGRDU1MoY3NzKQorewor
ICAgIHZhciBzdHlsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdzdHlsZScpOworICAgIHN0eWxlLnRl
eHRDb250ZW50ID0gY3NzOworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOwor
fQorCitmdW5jdGlvbiBvbldlYktpdFhNTFZpZXdlckxvYWQoKQoreworICAgIGlmICghb25XZWJL
aXRYTUxWaWV3ZXJTb3VyY2VYTUxMb2FkZWQpCisgICAgICAgIHZhciBvbldlYktpdFhNTFZpZXdl
clNvdXJjZVhNTExvYWRlZCA9IHNvdXJjZVhNTExvYWRlZDsKKyAgICBvbldlYktpdFhNTFZpZXdl
clNvdXJjZVhNTExvYWRlZCgpOworCisgICAgaWYgKHR5cGVvZihvbkFmdGVyV2ViS2l0WE1MVmll
d2VyTG9hZGVkKSA9PSAnZnVuY3Rpb24nKQorICAgICAgICBvbkFmdGVyV2ViS2l0WE1MVmlld2Vy
TG9hZGVkKCk7Cit9CisKK2Z1bmN0aW9uIHNvdXJjZVhNTExvYWRlZCgpCit7CisgICAgdmFyIHNv
dXJjZVhNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2UteG1sJyk7CisgICAgdmFy
IHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlZScpOworCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzb3VyY2VYTUwuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICBu
b2RlUGFyZW50UGFpcnMucHVzaCgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwYXJl
bnRFbGVtZW50OiByb290LAorICAgICAgICAgICAgICAgIG5vZGU6IHNvdXJjZVhNTC5jaGlsZE5v
ZGVzW2ldCisgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
b2RlUGFyZW50UGFpcnMubGVuZ3RoOyBpKyspCisgICAgICAgIHByb2Nlc3NOb2RlKG5vZGVQYXJl
bnRQYWlyc1tpXS5wYXJlbnRFbGVtZW50LCBub2RlUGFyZW50UGFpcnNbaV0ubm9kZSk7CisKKyAg
ICBkcmF3QXJyb3dzKCk7CisgICAgaW5pdEJ1dHRvbnMoKTsKK30KKworLy8gVHJlZSBwcm9jZXNz
aW5nLgorCitmdW5jdGlvbiBwcm9jZXNzTm9kZShwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAg
IHN3aXRjaCAobm9kZS5ub2RlVHlwZSkgeworICAgICAgICBjYXNlIE5vZGUuUFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcHJvY2Vzc1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bihwYXJlbnRFbGVtZW50LCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGUuRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgcHJvY2Vzc0VsZW1lbnQocGFyZW50RWxl
bWVudCwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlLkNPTU1F
TlRfTk9ERToKKyAgICAgICAgICAgIHByb2Nlc3NDb21tZW50KHBhcmVudEVsZW1lbnQsIG5vZGUp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5URVhUX05PREU6CisgICAg
ICAgICAgICBwcm9jZXNzVGV4dChwYXJlbnRFbGVtZW50LCBub2RlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAg
cHJvY2Vzc0NEQVRBKHBhcmVudEVsZW1lbnQsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQsIHNraXAuCisg
ICAgfQorfQorCitmdW5jdGlvbiBwcm9jZXNzRWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKQor
eworICAgIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoID09IDApIHsKKyAgICAgICAgcHJvY2Vz
c0VtcHR5RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICB2YXIgaGFzU2hvcnRUZXh0T25seSA9IHRydWU7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAobm9kZS5j
aGlsZE5vZGVzW2ldLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFIHx8ICFpc1Nob3J0KG5vZGUu
Y2hpbGROb2Rlc1tpXS5ub2RlVmFsdWUpKSB7CisgICAgICAgICAgICAgICAgaGFzU2hvcnRUZXh0
T25seSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIGlmIChoYXNTaG9ydFRleHRPbmx5KQorICAgICAgICAgICAgcHJvY2Vz
c1Nob3J0VGV4dE9ubHlFbGVtZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBwcm9jZXNzQ29tcGxleEVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSk7
CisgICAgfQorfQorCitmdW5jdGlvbiBwcm9jZXNzRW1wdHlFbGVtZW50KHBhcmVudEVsZW1lbnQs
IG5vZGUpCit7CisgICAgdmFyIGxpbmUgPSBjcmVhdGVMaW5lKCk7CisgICAgbGluZS5hcHBlbmRD
aGlsZChjcmVhdGVUYWcobm9kZSwgZmFsc2UsIHRydWUpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFw
cGVuZENoaWxkKGxpbmUpOworfQorCitmdW5jdGlvbiBwcm9jZXNzU2hvcnRUZXh0T25seUVsZW1l
bnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsK
KyAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhub2RlLCBmYWxzZSwgZmFsc2UpKTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KG5vZGUuY2hpbGROb2Rlc1tpXS5ub2RlVmFs
dWUpKTsKKyAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhub2RlLCB0cnVlLCBmYWxzZSkp
OworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7Cit9CisKK2Z1bmN0aW9uIHBy
b2Nlc3NDb21wbGV4RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIHZhciBjb2xs
YXBzYWJsZSA9IGNyZWF0ZUNvbGxhcHNhYmxlKCk7CisKKyAgICBjb2xsYXBzYWJsZS5leHBhbmRl
ZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgZmFsc2UsIGZhbHNlKSk7CisgICAg
Zm9yICh2YXIgIGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgIG5vZGVQYXJlbnRQYWlycy5wdXNoKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHBhcmVudEVsZW1lbnQ6IGNvbGxhcHNhYmxlLmV4cGFuZGVkLmNvbnRlbnQsCisgICAgICAgICAg
ICAgICAgbm9kZTogbm9kZS5jaGlsZE5vZGVzW2ldCisgICAgICAgICAgICB9KTsKKyAgICB9Cisg
ICAgY29sbGFwc2FibGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhub2RlLCB0
cnVlLCBmYWxzZSkpOworCisgICAgY29sbGFwc2FibGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5k
Q2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxzZSkpOworICAgIGNvbGxhcHNhYmxlLmNv
bGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJy4uLicpKTsKKyAgICBjb2xs
YXBzYWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNhYmxlKTsK
K30KKworZnVuY3Rpb24gcHJvY2Vzc0NvbW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAg
ICBpZiAoaXNTaG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFyIGxpbmUgPSBjcmVh
dGVMaW5lKCk7CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPCEtLSAn
ICsgbm9kZS5ub2RlVmFsdWUgKyAnIC0tPicpKTsKKyAgICAgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZChsaW5lKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgY29sbGFwc2FibGUgPSBj
cmVhdGVDb2xsYXBzYWJsZSgpOworCisgICAgICAgIGNvbGxhcHNhYmxlLmV4cGFuZGVkLnN0YXJ0
LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNvbGxhcHNhYmxl
LmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2RlLm5vZGVWYWx1
ZSkpOworICAgICAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hpbGQoY3JlYXRl
Q29tbWVudCgnLS0+JykpOworCisgICAgICAgIGNvbGxhcHNhYmxlLmNvbGxhcHNlZC5jb250ZW50
LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNvbGxhcHNhYmxl
LmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy4uLicpKTsKKyAg
ICAgICAgY29sbGFwc2FibGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29t
bWVudCgnLS0+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNh
YmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NDREFUQShwYXJlbnRFbGVtZW50LCBu
b2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZhbHVlKSkgeworICAgICAgICB2YXIg
bGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0
KCc8IVtDREFUQVsgJyArIG5vZGUubm9kZVZhbHVlICsgJyBdXT4nKSk7CisgICAgICAgIHBhcmVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNv
bGxhcHNhYmxlID0gY3JlYXRlQ29sbGFwc2FibGUoKTsKKworICAgICAgICBjb2xsYXBzYWJsZS5l
eHBhbmRlZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KCc8IVtDREFUQVsnKSk7CisgICAg
ICAgIGNvbGxhcHNhYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dChu
b2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5lbmQuYXBwZW5k
Q2hpbGQoY3JlYXRlVGV4dCgnXV0+JykpOworCisgICAgICAgIGNvbGxhcHNhYmxlLmNvbGxhcHNl
ZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJzwhW0NEQVRBWycpKTsKKyAgICAgICAg
Y29sbGFwc2FibGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnLi4u
JykpOworICAgICAgICBjb2xsYXBzYWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KCddXT4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY29s
bGFwc2FibGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbihwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZh
bHVlKSkgeworICAgICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5h
cHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lICsgJyAnICsgbm9k
ZS5ub2RlVmFsdWUgKyAnPz4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
bGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbGxhcHNhYmxlID0gY3JlYXRlQ29s
bGFwc2FibGUoKTsKKworICAgICAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5zdGFydC5hcHBlbmRD
aGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lKSk7CisgICAgICAgIGNvbGxh
cHNhYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2RlLm5v
ZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hpbGQo
Y3JlYXRlQ29tbWVudCgnPz4nKSk7CisKKyAgICAgICAgY29sbGFwc2FibGUuY29sbGFwc2VkLmNv
bnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPD8nICsgbm9kZS5ub2RlTmFtZSkpOwor
ICAgICAgICBjb2xsYXBzYWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVD
b21tZW50KCcuLi4nKSk7CisgICAgICAgIGNvbGxhcHNhYmxlLmNvbGxhcHNlZC5jb250ZW50LmFw
cGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJz8+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFw
cGVuZENoaWxkKGNvbGxhcHNhYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NUZXh0
KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KG5vZGUubm9kZVZhbHVlKSk7Cit9CisKKy8vIFByb2Nlc3NpbmcgdXRpbHMuCisK
K2Z1bmN0aW9uIHRyaW0odmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL15cc1xz
Ki8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Cit9CisKK2Z1bmN0aW9uIGlzU2hvcnQodmFs
dWUpCit7CisgICAgcmV0dXJuIHRyaW0odmFsdWUpLmxlbmd0aCA8PSA1MDsKK30KKworLy8gVHJl
ZSByZW5kZXJpbmcuCisKK2Z1bmN0aW9uIGNyZWF0ZUhUTUxFbGVtZW50KGVsZW1lbnROYW1lKQor
eworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnLCBlbGVtZW50TmFtZSkKK30KKworZnVuY3Rpb24gY3JlYXRlQ29sbGFwc2Fi
bGUoKQoreworICAgIHZhciBjb2xsYXBzYWJsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsK
KyAgICBjb2xsYXBzYWJsZS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzYWJsZScpOworICAgIGNvbGxh
cHNhYmxlLmV4cGFuZGVkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNh
YmxlLmV4cGFuZGVkLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7CisgICAgY29sbGFwc2FibGUu
YXBwZW5kQ2hpbGQoY29sbGFwc2FibGUuZXhwYW5kZWQpOworCisgICAgY29sbGFwc2FibGUuZXhw
YW5kZWQuc3RhcnQgPSBjcmVhdGVMaW5lKCk7CisgICAgY29sbGFwc2FibGUuZXhwYW5kZWQuc3Rh
cnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29sbGFwc2VCdXR0b24oKSk7CisgICAgY29sbGFwc2FibGUu
ZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2FibGUuZXhwYW5kZWQuc3RhcnQpOworCisgICAg
Y29sbGFwc2FibGUuZXhwYW5kZWQuY29udGVudCA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsK
KyAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5jb250ZW50LmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNh
YmxlLWNvbnRlbnQnKTsKKyAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5hcHBlbmRDaGlsZChjb2xs
YXBzYWJsZS5leHBhbmRlZC5jb250ZW50KTsKKworICAgIGNvbGxhcHNhYmxlLmV4cGFuZGVkLmVu
ZCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzYWJsZS5leHBhbmRlZC5hcHBlbmRDaGlsZChj
b2xsYXBzYWJsZS5leHBhbmRlZC5lbmQpOworCisgICAgY29sbGFwc2FibGUuY29sbGFwc2VkID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNhYmxlLmNvbGxhcHNlZC5jbGFz
c0xpc3QuYWRkKCdjb2xsYXBzZWQnKTsKKyAgICBjb2xsYXBzYWJsZS5jb2xsYXBzZWQuY2xhc3NM
aXN0LmFkZCgnaGlkZGVuJyk7CisgICAgY29sbGFwc2FibGUuYXBwZW5kQ2hpbGQoY29sbGFwc2Fi
bGUuY29sbGFwc2VkKTsKKyAgICBjb2xsYXBzYWJsZS5jb2xsYXBzZWQuY29udGVudCA9IGNyZWF0
ZUxpbmUoKTsKKyAgICBjb2xsYXBzYWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVFeHBhbmRCdXR0b24oKSk7CisgICAgY29sbGFwc2FibGUuY29sbGFwc2VkLmFwcGVuZENo
aWxkKGNvbGxhcHNhYmxlLmNvbGxhcHNlZC5jb250ZW50KTsKKworICAgIHJldHVybiBjb2xsYXBz
YWJsZTsKK30KKworZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCkKK3sKKyAgICB2YXIgYnV0dG9uID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0
dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRlQ29sbGFwc2VC
dXR0b24oc3RyKQoreworICAgIHZhciBidXR0b24gPSBjcmVhdGVCdXR0b24oKTsKKyAgICBidXR0
b24uY2xhc3NMaXN0LmFkZCgnY29sbGFwc2UtYnV0dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsK
K30KKworZnVuY3Rpb24gY3JlYXRlRXhwYW5kQnV0dG9uKHN0cikKK3sKKyAgICB2YXIgYnV0dG9u
ID0gY3JlYXRlQnV0dG9uKCk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZC1idXR0
b24nKTsKKyAgICByZXR1cm4gYnV0dG9uOworfQorCitmdW5jdGlvbiBjcmVhdGVDb21tZW50KGNv
bW1lbnRTdHJpbmcpCit7CisgICAgdmFyIGNvbW1lbnQgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3Bh
bicpOworICAgIGNvbW1lbnQuY2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtY29tbWVudCcpOwor
ICAgIGNvbW1lbnQudGV4dENvbnRlbnQgPSBjb21tZW50U3RyaW5nOworICAgIHJldHVybiBjb21t
ZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0KHZhbHVlKQoreworICAgIHZhciB0ZXh0ID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICB0ZXh0LnRleHRDb250ZW50ID0gdHJpbSh2
YWx1ZSk7CisgICAgdGV4dC5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7CisgICAgcmV0dXJuIHRleHQ7
Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUxpbmUoKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlSFRN
TEVsZW1lbnQoJ2RpdicpOworICAgIGxpbmUuY2xhc3NMaXN0LmFkZCgnbGluZScpOworICAgIHJl
dHVybiBsaW5lOworfQorCitmdW5jdGlvbiBjcmVhdGVUYWcobm9kZSwgaXNDbG9zaW5nLCBpc0Vt
cHR5KQoreworICAgIHZhciB0YWcgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIHRh
Zy5jbGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC10YWcnKTsKKworICAgIHZhciBzdHJpbmdCZWZv
cmVBdHRycyA9ICc8JzsKKyAgICBpZiAoaXNDbG9zaW5nKQorICAgICAgICBzdHJpbmdCZWZvcmVB
dHRycyArPSAnLyc7CisgICAgc3RyaW5nQmVmb3JlQXR0cnMgKz0gbm9kZS5ub2RlTmFtZTsKKyAg
ICB2YXIgdGV4dEJlZm9yZUF0dHJzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nQmVm
b3JlQXR0cnMpOworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QmVmb3JlQXR0cnMpOworCisgICAg
aWYgKCFpc0Nsb3NpbmcpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmF0dHJp
YnV0ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWcuYXBwZW5kQ2hpbGQoY3JlYXRlQXR0
cmlidXRlKG5vZGUuYXR0cmlidXRlc1tpXSkpOworICAgIH0KKworICAgIHZhciBzdHJpbmdBZnRl
ckF0dHJzID0gJyc7CisgICAgaWYgKGlzRW1wdHkpCisgICAgICAgIHN0cmluZ0FmdGVyQXR0cnMg
Kz0gJy8nOworICAgIHN0cmluZ0FmdGVyQXR0cnMgKz0gJz4nOworICAgIHZhciB0ZXh0QWZ0ZXJB
dHRycyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ0FmdGVyQXR0cnMpOworICAgIHRh
Zy5hcHBlbmRDaGlsZCh0ZXh0QWZ0ZXJBdHRycyk7CisKKyAgICByZXR1cm4gdGFnOworfQorCitm
dW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGUoYXR0cmlidXRlTm9kZSkKK3sKKyAgICB2YXIgYXR0cmli
dXRlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBhdHRyaWJ1dGUuY2xhc3NMaXN0
LmFkZCgnd2Via2l0LWh0bWwtYXR0cmlidXRlJyk7CisKKyAgICB2YXIgYXR0cmlidXRlTmFtZSA9
IGNyZWF0ZUhUTUxFbGVtZW50KCdzcGFuJyk7CisgICAgYXR0cmlidXRlTmFtZS5jbGFzc0xpc3Qu
YWRkKCd3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZScpOworICAgIGF0dHJpYnV0ZU5hbWUudGV4
dENvbnRlbnQgPSBhdHRyaWJ1dGVOb2RlLm5hbWU7CisKKyAgICB2YXIgdGV4dEJlZm9yZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CisgICAgdmFyIHRleHRCZXR3ZWVuID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJz0iJyk7CisKKyAgICB2YXIgYXR0cmlidXRlVmFsdWUgPSBjcmVh
dGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIGF0dHJpYnV0ZVZhbHVlLmNsYXNzTGlzdC5hZGQo
J3dlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZScpOworICAgIGF0dHJpYnV0ZVZhbHVlLnRleHRD
b250ZW50ID0gYXR0cmlidXRlTm9kZS52YWx1ZTsKKworICAgIHZhciB0ZXh0QWZ0ZXIgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnIicpOworCisgICAgYXR0cmlidXRlLmFwcGVuZENoaWxkKHRl
eHRCZWZvcmUpOworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVOYW1lKTsKKyAg
ICBhdHRyaWJ1dGUuYXBwZW5kQ2hpbGQodGV4dEJldHdlZW4pOworICAgIGF0dHJpYnV0ZS5hcHBl
bmRDaGlsZChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgYXR0cmlidXRlLmFwcGVuZENoaWxkKHRleHRB
ZnRlcik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZTsKK30KKworLy8gVHJlZSBiZWhhdmlvdXIuCisK
K2Z1bmN0aW9uIGRyYXdBcnJvd3MoKQoreworICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRDU1ND
YW52YXNDb250ZXh0KCIyZCIsICJhcnJvd1JpZ2h0IiwgMTAsIDExKTsKKworICAgIGN0eC5maWxs
U3R5bGUgPSAicmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5t
b3ZlVG8oMCwgMCk7CisgICAgY3R4LmxpbmVUbygwLCA4KTsKKyAgICBjdHgubGluZVRvKDcsIDQp
OworICAgIGN0eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQ
YXRoKCk7CisKKyAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQi
LCAiYXJyb3dEb3duIiwgMTAsIDEwKTsKKworICAgIGN0eC5maWxsU3R5bGUgPSAicmdiKDkwLDkw
LDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMCwgMCk7CisgICAg
Y3R4LmxpbmVUbyg4LCAwKTsKKyAgICBjdHgubGluZVRvKDQsIDcpOworICAgIGN0eC5saW5lVG8o
MCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7Cit9CisKK2Z1bmN0
aW9uIGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAn
ID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKKyAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcpLmNsYXNzTmFt
ZSA9ICdjb2xsYXBzZWQgaGlkZGVuJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBjb2xsYXBzZUZ1
bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVk
JykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkIGhpZGRlbic7CisgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAn
Y29sbGFwc2VkJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBpbml0QnV0dG9ucygpCit7CisgICAg
dmFyIHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbGxhcHNhYmxlJyk7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykgeworICAgICAg
ICB2YXIgc2VjdGlvbklkID0gJ2NvbGxhcHNhYmxlJyArIGk7CisgICAgICAgIHNlY3Rpb25zW2ld
LmlkID0gc2VjdGlvbklkOworCisgICAgICAgIHZhciBleHBhbmRlZFBhcnQgPSBzZWN0aW9uc1tp
XS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQnKTsKKyAgICAg
ICAgdmFyIGNvbGxhcHNlQnV0dG9uID0gZXhwYW5kZWRQYXJ0LnF1ZXJ5U2VsZWN0b3IoJy5jb2xs
YXBzZS1idXR0b24nKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25jbGljayA9IGNvbGxhcHNl
RnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25tb3VzZWRvd24g
PSBoYW5kbGVCdXR0b25Nb3VzZURvd247CisKKyAgICAgICAgdmFyIGNvbGxhcHNlZFBhcnQgPSBz
ZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuY29sbGFwc2Vk
Jyk7CisgICAgICAgIHZhciBleHBhbmRCdXR0b24gPSBjb2xsYXBzZWRQYXJ0LnF1ZXJ5U2VsZWN0
b3IoJy5leHBhbmQtYnV0dG9uJyk7CisgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0gZXhw
YW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgZXhwYW5kQnV0dG9uLm9ubW91c2Vkb3du
ID0gaGFuZGxlQnV0dG9uTW91c2VEb3duOworICAgIH0KKworfQorCitmdW5jdGlvbiBoYW5kbGVC
dXR0b25Nb3VzZURvd24oZSkKK3sKKyAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJs
ZSBjbGljaworICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTFZpZXdlci54c2wgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhz
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVlM2NhOC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDM5OCAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCc/PgotPCEtLQotICAg
LSBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAg
IC0KLSAgIC0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gICAtIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAgIC0gbWV0OgotICAgLQot
ICAgLSAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICAgLSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAtCi0gICAtIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAgIC0gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICAgLSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gICAtIGRpc3RyaWJ1dGlvbi4KLSAgIC0KLSAgIC0gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUwotICAgLSDi
gJxBUyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gICAtIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgotICAgLSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gICAtIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gICAtIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICAgLSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gICAtIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICAgLSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICAgLS0+Ci0KLTx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPScxLjAnIHhtbG5zOnhzbD0naHR0cDov
L3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtJz4KLSAgICA8eHNsOm91dHB1dCBtZXRob2Q9
Imh0bWwiLz4KLSAgICA8eHNsOnBhcmFtIG5hbWU9InhtbF9oYXNfbm9fc3R5bGVfbWVzc2FnZSIv
PgotICAgIDx4c2w6cGFyYW0gbmFtZT0iZG93bkFycm93QmFzZTY0Ii8+Ci0gICAgPHhzbDpwYXJh
bSBuYW1lPSJyaWdodEFycm93QmFzZTY0Ii8+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIv
Ij4KLSAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW4iLz4KLSAgICA8L3hzbDp0
ZW1wbGF0ZT4KLQotICAgIDwhLS0gRW1wdHkgZWxlbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSIqIj4KLSAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICA8c3Bh
biBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0
OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUo
KSIvPgotICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4K
LSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LyZndDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAg
PC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0g
RWxlbWVudCB3aXRoIHNob3J0IHRleHQgb25seSAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNo
PSIqW25vZGUoKV0iPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4m
bHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFt
ZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAKiIv
PgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
IDwvc3Bhbj4KLQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQiPjx4c2w6dmFsdWUtb2Yg
c2VsZWN0PSIuIi8+PC9zcGFuPgotCi0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAg
ICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3NwYW4+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBDb2xsYXBzYWJsZSBl
bGVtZW50IC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IipbKiBvciBwcm9jZXNzaW5nLWlu
c3RydWN0aW9uKCkgb3IgY29tbWVudCgpIG9yIHN0cmluZy1sZW5ndGgoKSAmZ3Q7IDUwXSI+Ci0g
ICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlIj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImV4cGFuZGVkIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAg
ICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1dHRvbiIvPgot
ICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAg
ICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDx4
c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4m
bHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNl
bGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0Ozwv
eHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xs
YXBzZWQgaGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAg
ICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4K
LSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8eHNsOnRleHQ+Li4uPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDx4c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAg
ICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4K
LSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gQW55IGF0dHJpYnV0ZSAtLT4KLSAgICA8
eHNsOnRlbXBsYXRlIG1hdGNoPSJAKiI+Ci0gICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4K
LSAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj48eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRleHQ+PSZxdW90
OzwveHNsOnRleHQ+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUt
dmFsdWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRl
eHQ+JnF1b3Q7PC94c2w6dGV4dD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hv
cnQgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KCkiPgotICAg
ICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEtLTwveHNsOnRl
eHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KLSAgICAgICAg
ICAgICAgICA8eHNsOnRleHQ+LS0mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgIDwvc3Bhbj4K
LSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0tIExvbmcgY29t
bWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KClbc3RyaW5nLWxlbmd0
aCgpICZndDsgNTBdIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUiPgotICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWQiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY29s
bGFwc2UtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7IS0t
PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAg
IDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVu
dCBjb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1s
LWNvbW1lbnQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAgICAgICAg
ICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4tLSZndDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAg
ICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rp
dj4KLQotICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2VkIGhpZGRlbiI+Ci0gICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6Y2Fs
bC10ZW1wbGF0ZSBuYW1lPSJleHBhbmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dGV4dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFu
PgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50
Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAgICAgICAg
PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgPHhzbDp0ZXh0Pi0tJmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bh
bj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8
L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hvcnQgcHJvY2Vzc2luZyBp
bnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNzaW5nLWluc3Ry
dWN0aW9uKClbbmFtZSgpICE9ICd4bWwtc3R5bGVzaGVldCddIj4KLSAgICAgICAgPGRpdiBjbGFz
cz0ibGluZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+
Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhz
bDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0
PSIuIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAg
ICAgICAgIDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAg
ICA8IS0tIExvbmcgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSJwcm9jZXNzaW5nLWluc3RydWN0aW9uKClbKHN0cmluZy1sZW5ndGgoKSAmZ3Q7IDUw
KSBhbmQgKG5hbWUoKSAhPSAneG1sLXN0eWxlc2hlZXQnKV0iPgotICAgICAgICA8ZGl2IGNsYXNz
PSJjb2xsYXBzYWJsZSI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRlZCI+Ci0gICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6
Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjb2xsYXBzZS1idXR0b24iLz4KLSAgICAgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAg
ICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFw
c2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4KLSAgICAgICAg
ICAgICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+PyZndDs8L3hzbDp0ZXh0PgotICAgICAgICAg
ICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlZCBoaWRkZW4iPgotICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgPHhzbDpjYWxs
LXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4KLSAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6
dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgot
Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij48
eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgot
ICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2
PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBUZXh0IG5vZGUgLS0+Ci0gICAgPHhz
bDp0ZW1wbGF0ZSBtYXRjaD0idGV4dCgpIj4KLSAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9
Ii4iLz4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iY29s
bGFwc2UtYnV0dG9uIj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbiBjb2xsYXBzZS1idXR0
b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8eHNsOnRl
bXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iPgotICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9u
IGV4cGFuZC1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0K
LSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1haW4iPgotICAgICAgICA8aHRtbD4KLSAgICAgICAg
ICAgIDxoZWFkPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHls
ZSIvPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzY3JpcHQiLz4K
LSAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgIDxib2R5IG9ubG9hZD0ib25XZWJLaXRY
TUxWaWV3ZXJMb2FkKCkiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+Ci0g
ICAgICAgICAgICAgICAgICAgIDxzcGFuPiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHhtbF9oYXNf
bm9fc3R5bGVfbWVzc2FnZSIvPiA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgIDxici8+Ci0g
ICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV0
dHktcHJpbnQiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+Ci0g
ICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0ic291cmNlLXht
bCI+PC9kaXY+Ci0gICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgIDwvaHRtbD4KLSAgICA8L3hz
bDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic2NyaXB0Ij4KLSAgICAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICAgICAgPHhzbDp0ZXh0Pgot
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uV2ViS2l0WE1MVmlld2VyTG9hZCgpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcmF3QXJyb3dzKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGluaXRCdXR0b25zKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgZnVuY3Rpb24gZHJhd0Fycm93cygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAi
YXJyb3dSaWdodCIsIDEwLCAxMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY3R4LmZpbGxTdHls
ZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgp
OwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAgICAgICAgICAgICAg
ICAgICBjdHgubGluZVRvKDAsIDgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDcs
IDQpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwotICAgICAgICAgICAg
ICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7
Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGRvY3VtZW50LmdldENTU0NhbnZhc0Nv
bnRleHQoIjJkIiwgImFycm93RG93biIsIDEwLCAxMCk7Ci0KLSAgICAgICAgICAgICAgICAgICAg
Y3R4LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4
LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAg
ICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDgsIDApOwotICAgICAgICAgICAgICAgICAgICBj
dHgubGluZVRvKDQsIDcpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwot
ICAgICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgu
Y2xvc2VQYXRoKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9u
SWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+
IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkIGhpZGRlbic7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gY29sbGFwc2VGdW5jdGlvbihzZWN0aW9uSWQpCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKQotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rp
b25JZCArICcgPiAuZXhwYW5kZWQnKS5jbGFzc05hbWUgPSAnZXhwYW5kZWQgaGlkZGVuJzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlv
bklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkJzsKLSAgICAgICAg
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBmdW5j
dGlvbiBpbml0QnV0dG9ucygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY29sbGFwc2FibGUn
KTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBzZWN0aW9ucy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlY3Rpb25JZCA9ICdj
b2xsYXBzYWJsZScgKyBpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnNbaV0uaWQg
PSBzZWN0aW9uSWQ7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBhbmRlZFBhcnQg
PSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5k
ZWQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZUJ1dHRvbiA9IGV4cGFu
ZGVkUGFydC5xdWVyeVNlbGVjdG9yKCcuY29sbGFwc2UtYnV0dG9uJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBjb2xsYXBzZUJ1dHRvbi5vbmNsaWNrID0gY29sbGFwc2VGdW5jdGlvbihzZWN0
aW9uSWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VCdXR0b24ub25tb3VzZWRv
d24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjb2xsYXBzZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9u
SWQgKyAnID4gLmNvbGxhcHNlZCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGFu
ZEJ1dHRvbiA9IGNvbGxhcHNlZFBhcnQucXVlcnlTZWxlY3RvcignLmV4cGFuZC1idXR0b24nKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0gZXhwYW5kRnVu
Y3Rpb24oc2VjdGlvbklkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5v
bm1vdXNlZG93biA9IGhhbmRsZUJ1dHRvbk1vdXNlRG93bjsKLSAgICAgICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxl
QnV0dG9uTW91c2VEb3duKGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
IC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljawotICAgICAgICAgICAgICAg
ICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICA8
L3hzbDp0ZXh0PgotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAg
IDx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGUiPgotICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgotICAgICAgICAgICAgZGl2LmhlYWRlciB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyLWJv
dHRvbTogMnB4IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1
cHg7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBkaXYuY29sbGFwc2FibGUgPiBkaXYuaGlkZGVuIHsKLSAgICAgICAgICAgICAgICBk
aXNwbGF5Om5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5wcmV0dHktcHJpbnQg
ewotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICAgICAgICAgICAgICBtYXJn
aW4tbGVmdDogMjBweDsKLSAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwot
ICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgI3NvdXJjZS14bWwgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzYWJsZS1jb250ZW50IHsKLSAgICAgICAg
ICAgICAgICBtYXJnaW4tbGVmdDogMWVtOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmNv
bW1lbnQgewotICAgICAgICAgICAgICAgIHdoaXRlc3BhY2U6IHByZTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgLmJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNl
bGVjdDogbm9uZTsKLSAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gICAgICAgICAg
ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0
OiAtMTBweDsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKLSAgICAgICAgICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQt
cG9zaXRpb246IGxlZnQgdG9wOwotICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0
b207Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzZS1idXR0b24gewotICAg
ICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFycm93RG93bik7
Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAuZXhwYW5kLWJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoYXJyb3dSaWdodCk7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMXB4
OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwveHNsOnRlbXBsYXRlPgot
PC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHls
ZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmluZGV4IGRiZTg3
YjUuLmIzNmFjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApAQCAtNjMsMTQgKzYz
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0eWxlU2hlZXQo
cGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZUZvclhNTFRyZWVWaWV3ZXIo
Tm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBzaGVldFN0cmluZykKLSAgICB7Ci0gICAgICAgIFJl
ZlB0cjxYU0xTdHlsZVNoZWV0PiBzaGVldCA9IGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KG5v
ZGUsIFN0cmluZygpLCBLVVJMKCksIGZhbHNlKSk7Ci0gICAgICAgIHNoZWV0LT5wYXJzZVN0cmlu
ZyhzaGVldFN0cmluZyk7Ci0KLSAgICAgICAgcmV0dXJuIHNoZWV0LnJlbGVhc2UoKTsKLSAgICB9
Ci0KICAgICB2aXJ0dWFsIH5YU0xTdHlsZVNoZWV0KCk7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGlzWFNMU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>
<flag name="review"
          id="79819"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87568</attachid>
            <date>2011-03-30 10:32:04 -0700</date>
            <delta_ts>2011-03-30 10:39:18 -0700</delta_ts>
            <desc>Patch with fixes</desc>
            <filename>cdata</filename>
            <type>text/plain</type>
            <size>58276</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMzFmNDQ1Li4zZGY0MDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMt
MjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQg
bmFtZXNwYWNlcyBhcmUgbm90IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRl
biBvbiBqYXZhc2NyaXB0LgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
My0zMCAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMZW9w
YXJkIEludGVsIFJlbGVhc2UgVGVzdHNdIGZhc3QvdGV4dC9qdXN0aWZ5LWlkZW9ncmFwaC1sZWFk
aW5nLWV4cGFuc2lvbi5odG1sIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAppbmRleCBm
NTFmNTVjLi5hOWI5MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZp
ZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMIGh0
dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwueG1sLiBEb21h
aW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KIFRoaXMgWE1MIGZpbGUgZG9l
cyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0
aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0tCiBJZiB5b3UgY2Fu
IHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlmIHlvdSBhcmUgbm90IHVz
aW5nIGEgV01MLWF3YXJlIGNsaWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1sdmlld2VyL2R1bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKaW5kZXgg
MTdmYjUwYi4uMzU5MzY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2
aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKQEAgLTEsOSAr
MSw5IEBACiBUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3du
IGJlbG93LgogPCEtLSBJZiB5b3UgY2FuIHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZC4g
LS0+Ci08dGVzdD4KKzx0ZXN0IHhtbG5zPSJodHRwOi8vc3RpbGwtdW5rbm93bi5leGFtcGxlLm9y
Zy8iPgogPGhlYWRlcj4KIFRoaXMgdGVzdHMgdGhhdCB4bWwgdmlld2VyIGlzIG5vdCB1c2VkIHdo
ZW4gdGhlcmUgaXMgYW4gYXR0cmlidXRlIFhMaW5rIG5hbWVzcGFjZS4KIDwvaGVhZGVyPgogPEZB
SUwvPgotPHhsaW5rIGw6dHlwZT0ic2ltcGxlIiBsOmhyZWY9InhsaW5rLnhtbCI+U1VDQ0VTUzwv
eGxpbms+Cis8eGxpbmsgeG1sbnM6bD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgbDp0
eXBlPSJzaW1wbGUiIGw6aHJlZj0ieGxpbmsueG1sIj5TVUNDRVNTPC94bGluaz4KIDwvdGVzdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQv
eG1sdmlld2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2Vy
L2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dAppbmRleCA2ZDE1ZTFmLi4zNzA1YzJm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0
L3htbHZpZXdlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2
aWV3ZXIvZHVtcEFzVGV4dC94bWx2aWV3ZXItZXhwZWN0ZWQudHh0CkBAIC0yMiw5ICsyMiwxMyBA
QCBBbmQgbm93IHNvbWUgbG9uZyB0ZXh0IGluIHJvb3QgZWxlbWVudC4gVGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5CiA8IS0tCiBzb21lIGxvbmcgY29tbWVudCBUaGUgcXVp
Y2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIg
dGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9n
LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhl
IGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBU
aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJv
d24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxh
enkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUg
cXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24g
Zm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92
ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkg
ZG9nLgogLS0+Ci08dGFnLXdpdGgtc2hvcnQtY2RhdGE+IHNvbWUgc2hvcnQgdGV4dCA8L3RhZy13
aXRoLXNob3J0LWNkYXRhPgorPHRhZy13aXRoLXNob3J0LWNkYXRhPgorPCFbQ0RBVEFbIHNvbWUg
c2hvcnQgdGV4dCBdXT4KKzwvdGFnLXdpdGgtc2hvcnQtY2RhdGE+CiA8dGFnLXdpdGgtbG9uZy1j
ZGF0YT4KKzwhW0NEQVRBWwogVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5
IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1
aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZv
eCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVy
IHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRv
Zy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNr
IGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBq
dW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRo
ZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4g
VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJy
b3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1w
cyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBs
YXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhl
IHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4KK11dPgogPC90YWctd2l0aC1sb25nLWNkYXRh
PgotPG5zOnRhZy13aXRoLXNvbWUtbmFtZXNwYWNlLz4KKzxuczp0YWctd2l0aC1zb21lLW5hbWVz
cGFjZSB4bWxuczpucz0id3d3LmV4YW1wbGUub3JnL25hbWVzcGFjZSIvPgogPC9yb290LXRhZy13
aXRoLW1peGVkLWNvbnRlbnQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQKaW5kZXggN2ExZGJlNC4u
NzUxZDI2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC94dWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
dmlld2VyL2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFRoaXMg
WE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFz
c29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0t
IElmIHlvdSBjYW4gc2VlIHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLiAtLT4KLTxGQUlMPgor
PEZBSUwgeG1sbnM6YT0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBl
ci90aGVyZS5pcy5vbmx5Lnh1bCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0cyB0aGF0IHhtbCB2aWV3
ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhbiBhdHRyaWJ1dGUgaW4gWFVMIG5hbWVzcGFj
ZS4KIDwvaGVhZGVyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIv
ZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNTFmNTVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNh
ZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQvd21sXzEu
MS54bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1sdmlld2Vy
L2R1bXBBc1RleHQvd21sLnhtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgotCi1UaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3du
IGJlbG93LgotPCEtLQotSWYgeW91IGNhbiBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQs
IGV4Y2VwdCBpZiB5b3UgYXJlIG5vdCB1c2luZyBhIFdNTC1hd2FyZSBjbGllbnQuCi0tLT4KLTw/
c2RzIGVyZmU/PgotPHdtbD4KLTxoZWFkZXI+Ci1UaGlzIHRlc3RzIHRoYXQgeG1sIHZpZXdlciBp
cyBub3QgdXNlZCBmb3IgZG9jdW1lbnRzIHdpdGggV01MIGRvY3R5cGUuCi08L2hlYWRlcj4KLTxj
YXJkIGlkPSJjYXJkMSIgdGl0bGU9IkNhcmQgMSI+Ci08RkFJTC8+Ci08cD5TVUNDRVNTPC9wPgot
PC9jYXJkPgotPC93bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L21hdGhtbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNU
ZXh0L21hdGhtbC1leHBlY3RlZC50eHQKaW5kZXggYmYyOWQ3OS4uODYyOGIxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC9tYXRobWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDcgQEAgVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBh
bnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LgogPCEtLQogSWYgeW91IGNh
biBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQsIGV4Y2VwdCBpZiB5b3UgYXJlIG5vdCB1
c2luZyBhIE1hdGhNTC1hd2FyZSBjbGllbnQuCiAtLT4KLTxGQUlMPgorPEZBSUwgeG1sbnM6YT0i
aHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0
cyB0aGF0IHhtbCB2aWV3ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhIHRhZyBpbiBNQVRI
TUwgbmFtZXNwYWNlLgogPC9oZWFkZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRjYjc5OTQu
LmMxNmVmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTg3LDEzICsxOTg3LDIyIEBAIE1B
S0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQogTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmlu
Z3MuY3BwKQogCiAKLSMgR2VuZXJhdGUgWE1MVmlld2VyWFNMLmgKKyMgR2VuZXJhdGUgWE1MVmll
d2VyQ1NTLmgKIEFERF9DVVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9YTUxWaWV3ZXJYU0wuaAotICAgIE1BSU5fREVQRU5ERU5DWSB4bWwvWE1MVmlld2Vy
LnhzbAotICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3Bl
Y3Rvci94eGQucGwgWE1MVmlld2VyX3hzbCAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLnhz
bCAke0RFUklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdlclhTTC5oCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VyQ1NTLmgKKyAgICBNQUlOX0RFUEVOREVOQ1kgeG1s
L1hNTFZpZXdlci5jc3MKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVf
RElSfS9pbnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9jc3MgJHtXRUJDT1JFX0RJUn0veG1sL1hN
TFZpZXdlci5jc3MgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaAogICAgIFZF
UkJBVElNKQotTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vWE1MVmlld2VyWFNMLmgpCitMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaCkKKworCisjIEdlbmVyYXRlIFhNTFZpZXdlckpT
LmgKK0FERF9DVVNUT01fQ09NTUFORCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9YTUxWaWV3ZXJKUy5oCisgICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIuanMKKyAg
ICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IveHhk
LnBsIFhNTFZpZXdlcl9qcyAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLmpzICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VySlMuaAorICAgIFZFUkJBVElNKQorTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VySlMuaCkKIAog
CiAjIEdlbmVyYXRlIEhUTUwgZW50aXR5IHRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzOWM2ZS4uZGQ1
NGIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAzLTI5ICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFhNTCBWaWV3ZXI6IGRlY2xhcmVkIG5hbWVzcGFjZXMgYXJl
IG5vdCByZW5kZXJlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU2MjYyCisKKyAgICAgICAgWE1MIHZpZXdlciByZXdyaXR0ZW4gb24gamF2YXNjcmlw
dC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAv
V2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpkb0VuZCk6CisgICAgICAgICog
eG1sL1hNTFRyZWVWaWV3ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZVZpZXdlcjo6
dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KToKKyAgICAgICAgKiB4bWwvWE1MVmlld2VyLmNz
czogQWRkZWQuCisgICAgICAgICogeG1sL1hNTFZpZXdlci5qczogQWRkZWQuCisgICAgICAgICog
eG1sL1hNTFZpZXdlci54c2w6IFJlbW92ZWQuCisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXQu
aDoKKwogMjAxMS0wMy0zMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXggZm9yIEVmbCBhbmQgUXQgV2luLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzhmYTMxMC4uMzVhNjU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02NTUsMTIgKzY1NSwyMSBAQCBEb2NUeXBlU3RyaW5n
cy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCiAKICMgLS0tLS0tLS0KIAotIyBYTUxWaWV3ZXIgWFNMVAorIyBYTUxWaWV3ZXIgQ1NT
CiAKLWFsbCA6IFhNTFZpZXdlclhTTC5oCithbGwgOiBYTUxWaWV3ZXJDU1MuaAogCi1YTUxWaWV3
ZXJYU0wuaCA6IHhtbC9YTUxWaWV3ZXIueHNsCi0JcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94
eGQucGwgWE1MVmlld2VyX3hzbCAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIueHNsIFhNTFZpZXdl
clhTTC5oCitYTUxWaWV3ZXJDU1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3NzCisJcGVybCAkKFdlYkNv
cmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3
ZXIuY3NzIFhNTFZpZXdlckNTUy5oCisKKyMgLS0tLS0tLS0KKworIyBYTUxWaWV3ZXIgSlMKKwor
YWxsIDogWE1MVmlld2VySlMuaAorCitYTUxWaWV3ZXJKUy5oIDogeG1sL1hNTFZpZXdlci5qcwor
CXBlcmwgJChXZWJDb3JlKS9pbnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9qcyAkKFdlYkNvcmUp
L3htbC9YTUxWaWV3ZXIuanMgWE1MVmlld2VySlMuaAogCiAjIC0tLS0tLS0tCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggOTg4NjllNC4uNmRkN2U1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTY1Myw3ICs2NTMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvWE1MTmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05h
bWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmggXAotCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNMLmggCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxWaWV3ZXJDU1MuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJKUy5o
IAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXApAQCAtNDk0NSw5ICs0OTQ2LDEzIEBAIERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSGFzaFRvb2xzLmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RG9jVHlwZVN0cmluZ3MuY3BwCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdz
LmNwcDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAk
KEdFTlNPVVJDRVNfV0VCQ09SRSkgJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJm
CiAKLSMgWE1MIFZpZXdlciBYU0wKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNM
Lmg6ICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wKLQkkKFBFUkwpICQoV2ViQ29yZSkvaW5z
cGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfeHNsICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wg
JChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hNTFZpZXdlclhTTC5oCisjIFhNTCBWaWV3ZXIgQ1NTCitE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oOiAkKFdlYkNvcmUpL3htbC9YTUxW
aWV3ZXIuY3NzCisJJChQRVJMKSAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2Vy
X2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzICQoR0VOU09VUkNFU19XRUJDT1JFKS9Y
TUxWaWV3ZXJDU1MuaAorCisjIFhNTCBWaWV3ZXIgSlMKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
WE1MVmlld2VySlMuaDogJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzCisJJChQRVJMKSAkKFdl
YkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2pzICQoV2ViQ29yZSkveG1sL1hNTFZp
ZXdlci5qcyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWE1MVmlld2VySlMuaAogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHA6ICQo
V2ViQ29yZSkvaHRtbC9wYXJzZXIvSFRNTEVudGl0eU5hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9w
YXJzZXIvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCkBAIC01MTc1LDcgKzUxODAsOCBAQCBFWFRS
QV9ESVNUICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcveGxpbmthdHRycy5pbiBcCiAJU291cmNl
L1dlYkNvcmUveG1sL3htbGF0dHJzLmluIFwKIAlTb3VyY2UvV2ViQ29yZS94bWwveG1sbnNhdHRy
cy5pbiBcCi0JU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci54c2wgXAorCVNvdXJjZS9XZWJD
b3JlL3htbC9YTUxWaWV3ZXIuY3NzIFwKKwlTb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpz
IFwKIAlTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkKIAogIyBJbnN0YWxsaW5nIHdl
YiBpbnNwZWN0b3IgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5k
ZXggZTY5MmY1NC4uNTkzYjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKQEAgLTQ0NSwxNyArNDQ1LDMzIEBACiAgICAgICAnYWN0aW9ucyc6IFsKICAgICAgICAgIyBB
Y3Rpb25zIHRvIGJ1aWxkIGRlcml2ZWQgc291cmNlcy4KICAgICAgICAgewotICAgICAgICAgICdh
Y3Rpb25fbmFtZSc6ICdnZW5lcmF0ZVhNTFZpZXdlclhTTCcsCisgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ2dlbmVyYXRlWE1MVmlld2VyQ1NTJywKICAgICAgICAgICAnaW5wdXRzJzogWwotICAg
ICAgICAgICAgJy4uL3htbC9YTUxWaWV3ZXIueHNsJywKKyAgICAgICAgICAgICcuLi94bWwvWE1M
Vmlld2VyLmNzcycsCiAgICAgICAgICAgXSwKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAg
ICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvWE1MVmlld2VyWFNMLmgn
LAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9YTUxWaWV3
ZXJDU1MuaCcsCiAgICAgICAgICAgXSwKICAgICAgICAgICAnYWN0aW9uJzogWwogICAgICAgICAg
ICAgJ3BlcmwnLAogICAgICAgICAgICAgJy4uL2luc3BlY3Rvci94eGQucGwnLAotICAgICAgICAg
ICAgJ1hNTFZpZXdlcl94c2wnLAorICAgICAgICAgICAgJ1hNTFZpZXdlcl9jc3MnLAorICAgICAg
ICAgICAgJzxAKF9pbnB1dHMpJywKKyAgICAgICAgICAgICc8QChfb3V0cHV0cyknCisgICAgICAg
ICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdn
ZW5lcmF0ZVhNTFZpZXdlckpTJywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAg
Jy4uL3htbC9YTUxWaWV3ZXIuanMnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ291dHB1dHMn
OiBbCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L1hNTFZp
ZXdlckpTLmgnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ2FjdGlvbic6IFsKKyAgICAgICAg
ICAgICdwZXJsJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0b3IveHhkLnBsJywKKyAgICAgICAg
ICAgICdYTUxWaWV3ZXJfanMnLAogICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywKICAgICAgICAg
ICAgICc8QChfb3V0cHV0cyknCiAgICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzNTJi
YzYxLi4xMzk3NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03OTQ0LDcgKzc5NDQsOCBAQAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1l
cy5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTE5hbWVzLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9YTUxOYW1lcy5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlclhTTC5oJywKKyAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckpTLmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWFBh
dGhHcmFtbWFyLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS90b2tlbml6ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODJjMTNjMy4uMDU4YzQ5ZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzMzE4
LDcgKzIzMzE4LDExIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcWE1MVmlld2VyWFNMLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckNT
Uy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhN
TFZpZXdlckpTLmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NzNhNTNkLi5m
YmIxMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNDA4LDYgKzE0MDgsOCBAQAogCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTkzRDNFQUYxMzI1MzI4QzAwNTdFN0VFIC8qIEphdmFNZXRo
b2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5M0Qz
RUFFMTMyNTMyOEMwMDU3RTdFRSAvKiBKYXZhTWV0aG9kLmggKi87IH07CiAJCTU5M0QzRUIxMTMy
NTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OTNEM0VCMDEzMjUzMjk1MDA1N0U3RUUgLyogSmF2YVN0cmlu
Zy5oICovOyB9OworCQk1OTU4RjFDRDEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmNzcyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5NThGMUNCMTM0
MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovOyB9OworCQk1OTU4RjFDRTEzNDM5MTdD
MDA4MEIzMUYgLyogWE1MVmlld2VyLmpzIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk1OEYxQ0MxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyAq
LzsgfTsKIAkJNTk2MjI5NzgxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAq
LzsgfTsKIAkJNTk2MjI5N0ExMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2
MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU5Njk1MDgyMTMy
MTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmpl
Y3RXcmFwcGVyLmggKi87IH07CkBAIC03OTMzLDExICs3OTM1LDEyIEBACiAJCTU5MzA5QTEyMTFG
NEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmg7IHBh
dGggPSBtb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTNEM0VBRTEzMjUzMjhDMDA1N0U3RUUgLyogSmF2YU1ldGhvZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhTWV0aG9kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5M0QzRUIwMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTdHJpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk1OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZp
ZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxW
aWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3
ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NjIyOTc3MTEzM0VGRDcwMERD
NENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0
aW9uUG9zaXRpb25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2
OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpvYmplY3RXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAv
KiBYTUxWaWV3ZXIueHNsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBYTUxWaWV3ZXIueHNs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThENzdEQzEzMjU0MUVFMDA3NjFCMjIg
LyogSmF2YUFycmF5SlNDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEphdmFBcnJheUpTQy5jcHA7IHBhdGggPSBqc2MvSmF2YUFycmF5SlNDLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3REUxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJh
eUpTQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKYXZhQXJyYXlKU0MuaDsg
cGF0aCA9IGpzYy9KYXZhQXJyYXlKU0MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTk4RDc3RTAxMzI1NDIwNDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKYXZhRmllbGRKU0MuY3BwOyBwYXRoID0ganNjL0ph
dmFGaWVsZEpTQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0MCw3ICsx
ODY0Myw4IEBACiAJCQkJMUFDRTUzRTYwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIu
aWRsICovLAogCQkJCTU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNw
cCAqLywKIAkJCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICov
LAotCQkJCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICovLAorCQkJ
CTU5NThGMUNCMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovLAorCQkJCTU5NThG
MUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8sCiAJCQkJMUFCN0ZDNDcwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQUI3RkM0ODBBOEI5
MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQkxQUI3RkM0OTBBOEI5MkVD
MDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaWRsICovLApAQCAtMjU0MzAsNiArMjU0MzQsOCBA
QAogCQkJCUYzNDc0MkUwMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzNDc0MkU0MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTgxMzQzNjM1MDAw
NTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTU5NThGMUNEMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzIGluIFNvdXJjZXMgKi8s
CisJCQkJNTk1OEYxQ0UxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAppbmRleCA5MjE0MzkxLi5lM2Y2NjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtMTMzOSwyNyArMTMzOSwyMyBAQCB2b2lkIFhN
TERvY3VtZW50UGFyc2VyOjpkb0VuZCgpCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBFTkFCTEUo
WFNMVCkKICAgICBYTUxUcmVlVmlld2VyIHhtbFRyZWVWaWV3ZXIoZG9jdW1lbnQoKSk7Ci0KICAg
ICBib29sIHhtbFZpZXdlck1vZGUgPSAhbV9zYXdFcnJvciAmJiAhbV9zYXdDU1MgJiYgIW1fc2F3
WFNMVHJhbnNmb3JtICYmIHhtbFRyZWVWaWV3ZXIuaGFzTm9TdHlsZUluZm9ybWF0aW9uKCk7Cisg
ICAgaWYgKHhtbFZpZXdlck1vZGUpCisgICAgICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9j
dW1lbnRUb1RyZWVWaWV3KCk7CiAKLSAgICBpZiAoeG1sVmlld2VyTW9kZSB8fCBtX3Nhd1hTTFRy
YW5zZm9ybSkgeworI2lmIEVOQUJMRShYU0xUKQorICAgIGlmIChtX3Nhd1hTTFRyYW5zZm9ybSkg
ewogICAgICAgICB2b2lkKiBkb2MgPSB4bWxEb2NQdHJGb3JTdHJpbmcoZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKSwgbV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybSwgZG9jdW1l
bnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgICAgICBkb2N1bWVudCgpLT5zZXRUcmFuc2Zvcm1T
b3VyY2UobmV3IFRyYW5zZm9ybVNvdXJjZShkb2MpKTsKIAotICAgICAgICBpZiAoeG1sVmlld2Vy
TW9kZSkKLSAgICAgICAgICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVW
aWV3KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2lu
ZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2ls
bCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCi0gICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNl
bGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50KCktPnNldFBhcnNpbmcodHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQoKS0+
c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwg
c28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCisgICAgICAgIGRvY3VtZW50KCktPnN0
eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1
bWVudCgpLT5zZXRQYXJzaW5nKHRydWUpOwogCiAgICAgICAgIERvY3VtZW50UGFyc2VyOjpzdG9w
UGFyc2luZygpOwogICAgIH0KICNlbmRpZgotCiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCBmMWUyYzBmLi42NTU4MGU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC0yNywzNyArMjcsMjIgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoWFNMVCkKICNpbmNsdWRlICJYTUxUcmVl
Vmlld2VyLmgiCiAKLQotI2luY2x1ZGUgIkJhc2U2NC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRN
TEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCi0jaW5jbHVkZSAiWExpbmtOYW1lcy5oIgotI2luY2x1ZGUgIlhNTFZpZXdl
clhTTC5oIgotI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCi0jaW5jbHVkZSAiWFNMU3R5bGVTaGVl
dC5oIgotI2luY2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKLQotI2luY2x1ZGUgPGxpYnhzbHQveHNs
dC5oPgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJYTUxWaWV3ZXJDU1MuaCIKKyNpbmNs
dWRlICJYTUxWaWV3ZXJKUy5oIgogCi0jaWYgRU5BQkxFKE1BVEhNTCkKLSNpbmNsdWRlICJNYXRo
TUxOYW1lcy5oIgotI2VuZGlmCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdOYW1lcy5o
IgotI2VuZGlmCi0jaWYgRU5BQkxFKFdNTCkKLSNpbmNsdWRlICJXTUxOYW1lcy5oIgotI2VuZGlm
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBA
IC04OSwzNCArNzQsMTggQEAgYm9vbCBYTUxUcmVlVmlld2VyOjpoYXNOb1N0eWxlSW5mb3JtYXRp
b24oKSBjb25zdAogCiB2b2lkIFhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVl
VmlldygpCiB7Ci0gICAgU3RyaW5nIHNoZWV0U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFhNTFZpZXdlcl94c2wpLCBzaXplb2YoWE1MVmlld2VyX3hzbCkpOwotICAgIFJlZlB0
cjxYU0xTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0gWFNMU3R5bGVTaGVldDo6Y3JlYXRlRm9yWE1M
VHJlZVZpZXdlcihtX2RvY3VtZW50LCBzaGVldFN0cmluZyk7Ci0KLSAgICBSZWZQdHI8WFNMVFBy
b2Nlc3Nvcj4gcHJvY2Vzc29yID0gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlKCk7Ci0gICAgcHJvY2Vz
c29yLT5zZXRYU0xTdHlsZVNoZWV0KHN0eWxlU2hlZXQpOwotCi0gICAgcHJvY2Vzc29yLT5zZXRQ
YXJhbWV0ZXIoIiIsICJ4bWxfaGFzX25vX3N0eWxlX21lc3NhZ2UiLCAiVGhpcyBYTUwgZmlsZSBk
b2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3
aXRoIGl0LiBUaGUgZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4iKTsKLQotICAgIFN0cmlu
ZyByZXN1bHRNSU1FVHlwZTsKLSAgICBTdHJpbmcgbmV3U291cmNlOwotICAgIFN0cmluZyByZXN1
bHRFbmNvZGluZzsKLQotICAgIEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQtPmZyYW1lKCk7Ci0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnRyb2R1Y2UgZXJyb3IgaGFuZGxpbmcKLSAgICBpZiAo
cHJvY2Vzc29yLT50cmFuc2Zvcm1Ub1N0cmluZyhtX2RvY3VtZW50LCByZXN1bHRNSU1FVHlwZSwg
bmV3U291cmNlLCByZXN1bHRFbmNvZGluZykpCi0gICAgICAgIHByb2Nlc3Nvci0+Y3JlYXRlRG9j
dW1lbnRGcm9tU291cmNlKG5ld1NvdXJjZSwgcmVzdWx0RW5jb2RpbmcsIHJlc3VsdE1JTUVUeXBl
LCBtX2RvY3VtZW50LCBmcmFtZSk7Ci0KLSAgICAvLyBBZGRpbmcgc291cmNlIHhtbCBmb3IgZGVh
bGluZyB3aXRoIG5hbWVzcGFjZXMgYW5kIENEQVRBIGlzc3VlcyBhbmQgZm9yIGV4dGVuc2lvbnMg
dXNlLgotICAgIEVsZW1lbnQqIHNvdXJjZVhtbEVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKCJzb3VyY2UteG1sIikpOwotICAgIGlmIChzb3Vy
Y2VYbWxFbGVtZW50KQotICAgICAgICBtX2RvY3VtZW50LT5jbG9uZUNoaWxkTm9kZXMoc291cmNl
WG1sRWxlbWVudCk7Ci0KLSAgICAvLyBOZXcgZG9jdW1lbnQgc2hvdWxkIGhhdmUgYmVlbiBsb2Fk
ZWQgaW4gZnJhbWUuIFRlbGwgaXQgdG8gdXNlIHZpZXcgc291cmNlIHN0eWxlcy4KLSAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+c2V0VXNlc1ZpZXdTb3VyY2VTdHlsZXModHJ1ZSk7Ci0gICAgZnJhbWUt
PmRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkp
OwotCisgICAgU3RyaW5nIHNjcmlwdFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihYTUxWaWV3ZXJfanMpLCBzaXplb2YoWE1MVmlld2VyX2pzKSk7CisgICAgU3RyaW5nIGNzc1N0
cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihYTUxWaWV3ZXJfY3NzKSwgc2l6ZW9m
KFhNTFZpZXdlcl9jc3MpKTsKKyAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXZh
bHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRTdHJpbmcpKTsKKyAgICBTdHJpbmcgbm9TdHls
ZU1lc3NhZ2UoIlRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxl
IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hv
d24gYmVsb3cuIik7CisgICAgbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCktPmV2YWx1YXRl
KFNjcmlwdFNvdXJjZUNvZGUoInByZXBhcmVXZWJLaXRYTUxWaWV3ZXIoJyIgKyBub1N0eWxlTWVz
c2FnZSArICInKTsiKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7CisgICAg
UmVmUHRyPFRleHQ+IHRleHQgPSBtX2RvY3VtZW50LT5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcp
OworICAgIG1fZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKCJ4bWwtdmlld2VyLXN0eWxlIiktPmFw
cGVuZENoaWxkKHRleHQsIGV4Y2VwdGlvbkNvZGUpOworCisgICAgbV9kb2N1bWVudC0+c2V0VXNl
c1ZpZXdTb3VyY2VTdHlsZXModHJ1ZSk7CisgICAgbV9kb2N1bWVudC0+c3R5bGVTZWxlY3RvckNo
YW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShYU0xUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTFZpZXdlci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTFkNWZkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5jc3MKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIOKAnEFTIElT4oCdIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworZGl2LmhlYWRlciB7CisgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNv
bGlkIGJsYWNrOworICAgIHBhZGRpbmctYm90dG9tOiA1cHg7CisgICAgbWFyZ2luOiAxMHB4Owor
fQorCitkaXYuY29sbGFwc2libGUgPiBkaXYuaGlkZGVuIHsKKyAgICBkaXNwbGF5Om5vbmU7Cit9
CisKKy5wcmV0dHktcHJpbnQgeworICAgIG1hcmdpbi10b3A6IDFlbTsKKyAgICBtYXJnaW4tbGVm
dDogMjBweDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTNw
eDsKK30KKworI3dlYmtpdC14bWwtdmlld2VyLXNvdXJjZS14bWwgeworICAgIGRpc3BsYXk6IG5v
bmU7Cit9CisKKy5jb2xsYXBzaWJsZS1jb250ZW50IHsKKyAgICBtYXJnaW4tbGVmdDogMWVtOwor
fQorLmNvbW1lbnQgeworICAgIHdoaXRlc3BhY2U6IHByZTsKK30KKworLmJ1dHRvbiB7CisgICAg
LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsKKyAgICB3aWR0aDog
MTBweDsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgIGJhY2tncm91bmQt
cG9zaXRpb246IGxlZnQgdG9wOworICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207Cit9CisKKy5j
b2xsYXBzZS1idXR0b24geworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFy
cm93RG93bik7CisgICAgaGVpZ2h0OiAxMHB4OworfQorCisuZXhwYW5kLWJ1dHRvbiB7CisgICAg
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dSaWdodCk7CisgICAgaGVpZ2h0
OiAxMXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxWaWV3ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWMzZTdlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxWaWV3ZXIuanMKQEAgLTAsMCArMSw0MzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTCisgKiDigJxBUyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuCisgKiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3Zh
ciBub2RlUGFyZW50UGFpcnMgPSBbXTsKKworLy8gU2NyaXB0IGVudHJ5IHBvaW50LgorCitmdW5j
dGlvbiBwcmVwYXJlV2ViS2l0WE1MVmlld2VyKG5vU3R5bGVNZXNzYWdlKQoreworICAgIHZhciBo
dG1sID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2h0bWwnKTsKKyAgICB2YXIgaGVhZCA9IGNyZWF0ZUhU
TUxFbGVtZW50KCdoZWFkJyk7CisgICAgaHRtbC5hcHBlbmRDaGlsZChoZWFkKTsKKyAgICB2YXIg
c3R5bGUgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3R5bGUnKTsKKyAgICBzdHlsZS5pZCA9ICd4bWwt
dmlld2VyLXN0eWxlJzsKKyAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICB2YXIgYm9k
eSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdib2R5Jyk7CisgICAgaHRtbC5hcHBlbmRDaGlsZChib2R5
KTsKKyAgICB2YXIgc291cmNlWE1MID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIHNv
dXJjZVhNTC5pZCA9ICd3ZWJraXQteG1sLXZpZXdlci1zb3VyY2UteG1sJzsKKyAgICBib2R5LmFw
cGVuZENoaWxkKHNvdXJjZVhNTCk7CisKKyAgICB2YXIgY2hpbGQ7CisgICAgd2hpbGUgKGNoaWxk
ID0gZG9jdW1lbnQuZmlyc3RDaGlsZCkgeworICAgICAgICBkb2N1bWVudC5yZW1vdmVDaGlsZChj
aGlsZCk7CisgICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSAhPSBOb2RlLkRPQ1VNRU5UX1RZUEVf
Tk9ERSkKKyAgICAgICAgICAgIHNvdXJjZVhNTC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQor
ICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKGh0bWwpOworCisgICAgdmFyIGhlYWRlciA9IGNyZWF0
ZUhUTUxFbGVtZW50KCdkaXYnKTsKKyAgICBib2R5LmFwcGVuZENoaWxkKGhlYWRlcik7CisgICAg
aGVhZGVyLmNsYXNzTGlzdC5hZGQoJ2hlYWRlcicpOworICAgIHZhciBoZWFkZXJTcGFuID0gY3Jl
YXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoaGVhZGVyU3Bh
bik7CisgICAgaGVhZGVyU3Bhbi50ZXh0Q29udGVudCA9IG5vU3R5bGVNZXNzYWdlOworICAgIGhl
YWRlci5hcHBlbmRDaGlsZChjcmVhdGVIVE1MRWxlbWVudCgnYnInKSk7CisKKyAgICB2YXIgdHJl
ZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsKKyAgICBib2R5LmFwcGVuZENoaWxkKHRyZWUp
OworICAgIHRyZWUuY2xhc3NMaXN0LmFkZCgncHJldHR5LXByaW50Jyk7CisgICAgdHJlZS5pZCA9
ICd0cmVlJzsKKyAgICB3aW5kb3cub25sb2FkID0gc291cmNlWE1MTG9hZGVkOworfQorCitmdW5j
dGlvbiBzb3VyY2VYTUxMb2FkZWQoKQoreworICAgIHZhciBzb3VyY2VYTUwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnd2Via2l0LXhtbC12aWV3ZXItc291cmNlLXhtbCcpOworICAgIGlmICgh
c291cmNlWE1MKQorICAgICAgICByZXR1cm47IC8vIFN0b3AgaWYgc29tZSBYTUwgdHJlZSBleHRl
bnNpb24gaXMgYWxyZWFkeSBwcm9jZXNzaW5nIHRoaXMgZG9jdW1lbnQKKyAgICAvL3ZhciBzdHls
ZSA9IGRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZDsKKyAgICAvL2RvY3VtZW50LmhlYWQucmVtb3Zl
Q2hpbGQoc3R5bGUpOworICAgIC8vZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7Cisg
ICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlZScpOworCisgICAgZm9y
ICh2YXIgY2hpbGQgPSBzb3VyY2VYTUwuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQu
bmV4dFNpYmxpbmcpCisgICAgICAgIG5vZGVQYXJlbnRQYWlycy5wdXNoKHtwYXJlbnRFbGVtZW50
OiByb290LCBub2RlOiBjaGlsZH0pOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlUGFy
ZW50UGFpcnMubGVuZ3RoOyBpKyspCisgICAgICAgIHByb2Nlc3NOb2RlKG5vZGVQYXJlbnRQYWly
c1tpXS5wYXJlbnRFbGVtZW50LCBub2RlUGFyZW50UGFpcnNbaV0ubm9kZSk7CisKKyAgICBkcmF3
QXJyb3dzKCk7CisgICAgaW5pdEJ1dHRvbnMoKTsKK30KKworLy8gVHJlZSBwcm9jZXNzaW5nLgor
CitmdW5jdGlvbiBwcm9jZXNzTm9kZShwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIGlmICgh
cHJvY2Vzc05vZGUucHJvY2Vzc29yc01hcCkgeworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNz
b3JzTWFwID0ge307CisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nlc3NvcnNNYXBbTm9kZS5QUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREVdID0gcHJvY2Vzc1Byb2Nlc3NpbmdJbnN0cnVjdGlvbjsK
KyAgICAgICAgcHJvY2Vzc05vZGUucHJvY2Vzc29yc01hcFtOb2RlLkVMRU1FTlRfTk9ERV0gPSBw
cm9jZXNzRWxlbWVudDsKKyAgICAgICAgcHJvY2Vzc05vZGUucHJvY2Vzc29yc01hcFtOb2RlLkNP
TU1FTlRfTk9ERV0gPSBwcm9jZXNzQ29tbWVudDsKKyAgICAgICAgcHJvY2Vzc05vZGUucHJvY2Vz
c29yc01hcFtOb2RlLlRFWFRfTk9ERV0gPSBwcm9jZXNzVGV4dDsKKyAgICAgICAgcHJvY2Vzc05v
ZGUucHJvY2Vzc29yc01hcFtOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERV0gPSBwcm9jZXNzQ0RBVEE7
CisgICAgfQorICAgIGlmIChwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW25vZGUubm9kZVR5cGVd
KQorICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW25vZGUubm9kZVR5cGVdLmNhbGwo
dGhpcywgcGFyZW50RWxlbWVudCwgbm9kZSk7Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NFbGVtZW50
KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgaWYgKCFub2RlLmZpcnN0Q2hpbGQpCisgICAg
ICAgIHByb2Nlc3NFbXB0eUVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSk7CisgICAgZWxzZSB7
CisgICAgICAgIHZhciBjaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDsKKyAgICAgICAgaWYgKGNoaWxk
Lm5vZGVUeXBlID09IE5vZGUuVEVYVF9OT0RFICYmIGlzU2hvcnQoY2hpbGQubm9kZVZhbHVlKSAm
JiAhY2hpbGQubmV4dFNpYmxpbmcpCisgICAgICAgICAgICBwcm9jZXNzU2hvcnRUZXh0T25seUVs
ZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBy
b2Nlc3NDb21wbGV4RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHByb2Nlc3NFbXB0eUVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAgICB2
YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhu
b2RlLCBmYWxzZSwgdHJ1ZSkpOworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7
Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NTaG9ydFRleHRPbmx5RWxlbWVudChwYXJlbnRFbGVtZW50
LCBub2RlKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlTGluZSgpOworICAgIGxpbmUuYXBwZW5k
Q2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxzZSkpOworICAgIGZvciAodmFyIGNoaWxk
ID0gbm9kZS5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAg
ICAgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KGNoaWxkLm5vZGVWYWx1ZSkpOworICAg
IGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIHRydWUsIGZhbHNlKSk7CisgICAgcGFy
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChsaW5lKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc0NvbXBs
ZXhFbGVtZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgdmFyIGNvbGxhcHNpYmxlID0g
Y3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLnN0YXJ0LmFw
cGVuZENoaWxkKGNyZWF0ZVRhZyhub2RlLCBmYWxzZSwgZmFsc2UpKTsKKyAgICBmb3IgKHZhciBj
aGlsZCA9IG5vZGUuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcp
CisgICAgICAgIG5vZGVQYXJlbnRQYWlycy5wdXNoKHtwYXJlbnRFbGVtZW50OiBjb2xsYXBzaWJs
ZS5leHBhbmRlZC5jb250ZW50LCBub2RlOiBjaGlsZH0pOworICAgIGNvbGxhcHNpYmxlLmV4cGFu
ZGVkLmVuZC5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgdHJ1ZSwgZmFsc2UpKTsKKworICAg
IGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhub2Rl
LCBmYWxzZSwgZmFsc2UpKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVUZXh0KCcuLi4nKSk7CisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNv
bnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIHRydWUsIGZhbHNlKSk7CisgICAgcGFy
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChjb2xsYXBzaWJsZSk7Cit9CisKK2Z1bmN0aW9uIHByb2Nl
c3NDb21tZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgaWYgKGlzU2hvcnQobm9kZS5u
b2RlVmFsdWUpKSB7CisgICAgICAgIHZhciBsaW5lID0gY3JlYXRlTGluZSgpOworICAgICAgICBs
aW5lLmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0gJyArIG5vZGUubm9kZVZhbHVlICsg
JyAtLT4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbGxhcHNpYmxlID0gY3JlYXRlQ29sbGFwc2libGUoKTsK
KworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVD
b21tZW50KCc8IS0tJykpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50LmFw
cGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQobm9kZS5ub2RlVmFsdWUpKTsKKyAgICAgICAgY29sbGFw
c2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy0tPicpKTsKKwor
ICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVD
b21tZW50KCc8IS0tJykpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5h
cHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCcuLi4nKSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmNv
bGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy0tPicpKTsKKyAgICAg
ICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjb2xsYXBzaWJsZSk7CisgICAgfQorfQorCitm
dW5jdGlvbiBwcm9jZXNzQ0RBVEEocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAgICBpZiAoaXNT
aG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFyIGxpbmUgPSBjcmVhdGVMaW5lKCk7
CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnPCFbQ0RBVEFbICcgKyBub2Rl
Lm5vZGVWYWx1ZSArICcgXV0+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxk
KGxpbmUpOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBjb2xsYXBzaWJsZSA9IGNyZWF0ZUNv
bGxhcHNpYmxlKCk7CisKKyAgICAgICAgY29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQuYXBwZW5k
Q2hpbGQoY3JlYXRlVGV4dCgnPCFbQ0RBVEFbJykpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBh
bmRlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQobm9kZS5ub2RlVmFsdWUpKTsKKyAg
ICAgICAgY29sbGFwc2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJ11d
PicpKTsKKworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGls
ZChjcmVhdGVUZXh0KCc8IVtDREFUQVsnKSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNl
ZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJy4uLicpKTsKKyAgICAgICAgY29sbGFw
c2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnXV0+JykpOwor
ICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIHByb2Nlc3NQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ocGFyZW50RWxlbWVudCwg
bm9kZSkKK3sKKyAgICBpZiAoaXNTaG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFy
IGxpbmUgPSBjcmVhdGVMaW5lKCk7CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlQ29t
bWVudCgnPD8nICsgbm9kZS5ub2RlTmFtZSArICcgJyArIG5vZGUubm9kZVZhbHVlICsgJz8+Jykp
OworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGxpbmUpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHZhciBjb2xsYXBzaWJsZSA9IGNyZWF0ZUNvbGxhcHNpYmxlKCk7CisKKyAgICAg
ICAgY29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgn
PD8nICsgbm9kZS5ub2RlTmFtZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQobm9kZS5ub2RlVmFsdWUpKTsKKyAgICAgICAg
Y29sbGFwc2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJz8+Jykp
OworCisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNy
ZWF0ZUNvbW1lbnQoJzw/JyArIG5vZGUubm9kZU5hbWUpKTsKKyAgICAgICAgY29sbGFwc2libGUu
Y29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnLi4uJykpOworICAg
ICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVDb21t
ZW50KCc/PicpKTsKKyAgICAgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjb2xsYXBzaWJs
ZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBwcm9jZXNzVGV4dChwYXJlbnRFbGVtZW50LCBub2Rl
KQoreworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dChub2RlLm5vZGVW
YWx1ZSkpOworfQorCisvLyBQcm9jZXNzaW5nIHV0aWxzLgorCitmdW5jdGlvbiB0cmltKHZhbHVl
KQoreworICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9eXHNccyovLCAnJykucmVwbGFjZSgvXHNc
cyokLywgJycpOworfQorCitmdW5jdGlvbiBpc1Nob3J0KHZhbHVlKQoreworICAgIHJldHVybiB0
cmltKHZhbHVlKS5sZW5ndGggPD0gNTA7Cit9CisKKy8vIFRyZWUgcmVuZGVyaW5nLgorCitmdW5j
dGlvbiBjcmVhdGVIVE1MRWxlbWVudChlbGVtZW50TmFtZSkKK3sKKyAgICByZXR1cm4gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgZWxlbWVu
dE5hbWUpCit9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvbGxhcHNpYmxlKCkKK3sKKyAgICB2YXIgY29s
bGFwc2libGUgPSBjcmVhdGVIVE1MRWxlbWVudCgnZGl2Jyk7CisgICAgY29sbGFwc2libGUuY2xh
c3NMaXN0LmFkZCgnY29sbGFwc2libGUnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZCA9IGNy
ZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jbGFzc0xp
c3QuYWRkKCdleHBhbmRlZCcpOworICAgIGNvbGxhcHNpYmxlLmFwcGVuZENoaWxkKGNvbGxhcHNp
YmxlLmV4cGFuZGVkKTsKKworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLnN0YXJ0ID0gY3JlYXRl
TGluZSgpOworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLnN0YXJ0LmFwcGVuZENoaWxkKGNyZWF0
ZUNvbGxhcHNlQnV0dG9uKCkpOworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmFwcGVuZENoaWxk
KGNvbGxhcHNpYmxlLmV4cGFuZGVkLnN0YXJ0KTsKKworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVk
LmNvbnRlbnQgPSBjcmVhdGVIVE1MRWxlbWVudCgnZGl2Jyk7CisgICAgY29sbGFwc2libGUuZXhw
YW5kZWQuY29udGVudC5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzaWJsZS1jb250ZW50Jyk7CisgICAg
Y29sbGFwc2libGUuZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQuY29u
dGVudCk7CisKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQgPSBjcmVhdGVMaW5lKCk7Cisg
ICAgY29sbGFwc2libGUuZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQu
ZW5kKTsKKworICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZCA9IGNyZWF0ZUhUTUxFbGVtZW50KCdk
aXYnKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2Vk
Jyk7CisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwor
ICAgIGNvbGxhcHNpYmxlLmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlLmNvbGxhcHNlZCk7CisgICAg
Y29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQgPSBjcmVhdGVMaW5lKCk7CisgICAgY29sbGFw
c2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRXhwYW5kQnV0dG9uKCkp
OworICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5hcHBlbmRDaGlsZChjb2xsYXBzaWJsZS5jb2xs
YXBzZWQuY29udGVudCk7CisKKyAgICByZXR1cm4gY29sbGFwc2libGU7Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZUJ1dHRvbigpCit7CisgICAgdmFyIGJ1dHRvbiA9IGNyZWF0ZUhUTUxFbGVtZW50KCdz
cGFuJyk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2J1dHRvbicpOworICAgIHJldHVybiBi
dXR0b247Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvbGxhcHNlQnV0dG9uKHN0cikKK3sKKyAgICB2
YXIgYnV0dG9uID0gY3JlYXRlQnV0dG9uKCk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2Nv
bGxhcHNlLWJ1dHRvbicpOworICAgIHJldHVybiBidXR0b247Cit9CisKK2Z1bmN0aW9uIGNyZWF0
ZUV4cGFuZEJ1dHRvbihzdHIpCit7CisgICAgdmFyIGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbigpOwor
ICAgIGJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdleHBhbmQtYnV0dG9uJyk7CisgICAgcmV0dXJuIGJ1
dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRlQ29tbWVudChjb21tZW50U3RyaW5nKQoreworICAg
IHZhciBjb21tZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBjb21tZW50LmNs
YXNzTGlzdC5hZGQoJ3dlYmtpdC1odG1sLWNvbW1lbnQnKTsKKyAgICBjb21tZW50LnRleHRDb250
ZW50ID0gY29tbWVudFN0cmluZzsKKyAgICByZXR1cm4gY29tbWVudDsKK30KKworZnVuY3Rpb24g
Y3JlYXRlVGV4dCh2YWx1ZSkKK3sKKyAgICB2YXIgdGV4dCA9IGNyZWF0ZUhUTUxFbGVtZW50KCdz
cGFuJyk7CisgICAgdGV4dC50ZXh0Q29udGVudCA9IHRyaW0odmFsdWUpOworICAgIHRleHQuY2xh
c3NMaXN0LmFkZCgndGV4dCcpOworICAgIHJldHVybiB0ZXh0OworfQorCitmdW5jdGlvbiBjcmVh
dGVMaW5lKCkKK3sKKyAgICB2YXIgbGluZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsKKyAg
ICBsaW5lLmNsYXNzTGlzdC5hZGQoJ2xpbmUnKTsKKyAgICByZXR1cm4gbGluZTsKK30KKworZnVu
Y3Rpb24gY3JlYXRlVGFnKG5vZGUsIGlzQ2xvc2luZywgaXNFbXB0eSkKK3sKKyAgICB2YXIgdGFn
ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICB0YWcuY2xhc3NMaXN0LmFkZCgnd2Vi
a2l0LWh0bWwtdGFnJyk7CisKKyAgICB2YXIgc3RyaW5nQmVmb3JlQXR0cnMgPSAnPCc7CisgICAg
aWYgKGlzQ2xvc2luZykKKyAgICAgICAgc3RyaW5nQmVmb3JlQXR0cnMgKz0gJy8nOworICAgIHN0
cmluZ0JlZm9yZUF0dHJzICs9IG5vZGUubm9kZU5hbWU7CisgICAgdmFyIHRleHRCZWZvcmVBdHRy
cyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ0JlZm9yZUF0dHJzKTsKKyAgICB0YWcu
YXBwZW5kQ2hpbGQodGV4dEJlZm9yZUF0dHJzKTsKKworICAgIGlmICghaXNDbG9zaW5nKSB7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgdGFnLmFwcGVuZENoaWxkKGNyZWF0ZUF0dHJpYnV0ZShub2RlLmF0dHJpYnV0
ZXNbaV0pKTsKKyAgICB9CisKKyAgICB2YXIgc3RyaW5nQWZ0ZXJBdHRycyA9ICcnOworICAgIGlm
IChpc0VtcHR5KQorICAgICAgICBzdHJpbmdBZnRlckF0dHJzICs9ICcvJzsKKyAgICBzdHJpbmdB
ZnRlckF0dHJzICs9ICc+JzsKKyAgICB2YXIgdGV4dEFmdGVyQXR0cnMgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShzdHJpbmdBZnRlckF0dHJzKTsKKyAgICB0YWcuYXBwZW5kQ2hpbGQodGV4dEFm
dGVyQXR0cnMpOworCisgICAgcmV0dXJuIHRhZzsKK30KKworZnVuY3Rpb24gY3JlYXRlQXR0cmli
dXRlKGF0dHJpYnV0ZU5vZGUpCit7CisgICAgdmFyIGF0dHJpYnV0ZSA9IGNyZWF0ZUhUTUxFbGVt
ZW50KCdzcGFuJyk7CisgICAgYXR0cmlidXRlLmNsYXNzTGlzdC5hZGQoJ3dlYmtpdC1odG1sLWF0
dHJpYnV0ZScpOworCisgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBjcmVhdGVIVE1MRWxlbWVudCgn
c3BhbicpOworICAgIGF0dHJpYnV0ZU5hbWUuY2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtYXR0
cmlidXRlLW5hbWUnKTsKKyAgICBhdHRyaWJ1dGVOYW1lLnRleHRDb250ZW50ID0gYXR0cmlidXRl
Tm9kZS5uYW1lOworCisgICAgdmFyIHRleHRCZWZvcmUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnICcpOworICAgIHZhciB0ZXh0QmV0d2VlbiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCc9
IicpOworCisgICAgdmFyIGF0dHJpYnV0ZVZhbHVlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4n
KTsKKyAgICBhdHRyaWJ1dGVWYWx1ZS5jbGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC1hdHRyaWJ1
dGUtdmFsdWUnKTsKKyAgICBhdHRyaWJ1dGVWYWx1ZS50ZXh0Q29udGVudCA9IGF0dHJpYnV0ZU5v
ZGUudmFsdWU7CisKKyAgICB2YXIgdGV4dEFmdGVyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
JyInKTsKKworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZCh0ZXh0QmVmb3JlKTsKKyAgICBhdHRy
aWJ1dGUuYXBwZW5kQ2hpbGQoYXR0cmlidXRlTmFtZSk7CisgICAgYXR0cmlidXRlLmFwcGVuZENo
aWxkKHRleHRCZXR3ZWVuKTsKKyAgICBhdHRyaWJ1dGUuYXBwZW5kQ2hpbGQoYXR0cmlidXRlVmFs
dWUpOworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZCh0ZXh0QWZ0ZXIpOworICAgIHJldHVybiBh
dHRyaWJ1dGU7Cit9CisKKy8vIFRyZWUgYmVoYXZpb3VyLgorCitmdW5jdGlvbiBkcmF3QXJyb3dz
KCkKK3sKKyAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAi
YXJyb3dSaWdodCIsIDEwLCAxMSk7CisKKyAgICBjdHguZmlsbFN0eWxlID0gInJnYig5MCw5MCw5
MCkiOworICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICBjdHgubW92ZVRvKDAsIDApOworICAgIGN0
eC5saW5lVG8oMCwgOCk7CisgICAgY3R4LmxpbmVUbyg3LCA0KTsKKyAgICBjdHgubGluZVRvKDAs
IDApOworICAgIGN0eC5maWxsKCk7CisgICAgY3R4LmNsb3NlUGF0aCgpOworCisgICAgdmFyIGN0
eCA9IGRvY3VtZW50LmdldENTU0NhbnZhc0NvbnRleHQoIjJkIiwgImFycm93RG93biIsIDEwLCAx
MCk7CisKKyAgICBjdHguZmlsbFN0eWxlID0gInJnYig5MCw5MCw5MCkiOworICAgIGN0eC5iZWdp
blBhdGgoKTsKKyAgICBjdHgubW92ZVRvKDAsIDApOworICAgIGN0eC5saW5lVG8oOCwgMCk7Cisg
ICAgY3R4LmxpbmVUbyg0LCA3KTsKKyAgICBjdHgubGluZVRvKDAsIDApOworICAgIGN0eC5maWxs
KCk7CisgICAgY3R4LmNsb3NlUGF0aCgpOworfQorCitmdW5jdGlvbiBleHBhbmRGdW5jdGlvbihz
ZWN0aW9uSWQpCit7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5leHBhbmRlZCcpLmNsYXNz
TmFtZSA9ICdleHBhbmRlZCc7CisgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsg
c2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkIGhpZGRl
bic7CisgICAgfTsKK30KKworZnVuY3Rpb24gY29sbGFwc2VGdW5jdGlvbihzZWN0aW9uSWQpCit7
CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5leHBhbmRlZCcpLmNsYXNzTmFtZSA9ICdleHBh
bmRlZCBoaWRkZW4nOworICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rp
b25JZCArICcgPiAuY29sbGFwc2VkJykuY2xhc3NOYW1lID0gJ2NvbGxhcHNlZCc7CisgICAgfTsK
K30KKworZnVuY3Rpb24gaW5pdEJ1dHRvbnMoKQoreworICAgIHZhciBzZWN0aW9ucyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jb2xsYXBzaWJsZScpOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHNlY3Rpb25JZCA9ICdj
b2xsYXBzaWJsZScgKyBpOworICAgICAgICBzZWN0aW9uc1tpXS5pZCA9IHNlY3Rpb25JZDsKKwor
ICAgICAgICB2YXIgZXhwYW5kZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxlY3RvcignIycg
KyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVkJyk7CisgICAgICAgIHZhciBjb2xsYXBzZUJ1dHRv
biA9IGV4cGFuZGVkUGFydC5xdWVyeVNlbGVjdG9yKCcuY29sbGFwc2UtYnV0dG9uJyk7CisgICAg
ICAgIGNvbGxhcHNlQnV0dG9uLm9uY2xpY2sgPSBjb2xsYXBzZUZ1bmN0aW9uKHNlY3Rpb25JZCk7
CisgICAgICAgIGNvbGxhcHNlQnV0dG9uLm9ubW91c2Vkb3duID0gaGFuZGxlQnV0dG9uTW91c2VE
b3duOworCisgICAgICAgIHZhciBjb2xsYXBzZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxl
Y3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcpOworICAgICAgICB2YXIgZXhw
YW5kQnV0dG9uID0gY29sbGFwc2VkUGFydC5xdWVyeVNlbGVjdG9yKCcuZXhwYW5kLWJ1dHRvbicp
OworICAgICAgICBleHBhbmRCdXR0b24ub25jbGljayA9IGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25J
ZCk7CisgICAgICAgIGV4cGFuZEJ1dHRvbi5vbm1vdXNlZG93biA9IGhhbmRsZUJ1dHRvbk1vdXNl
RG93bjsKKyAgICB9CisKK30KKworZnVuY3Rpb24gaGFuZGxlQnV0dG9uTW91c2VEb3duKGUpCit7
CisgICAvLyBUbyBwcmV2ZW50IHNlbGVjdGlvbiBvbiBkb3VibGUgY2xpY2sKKyAgIGUucHJldmVu
dERlZmF1bHQoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxWaWV3ZXIu
eHNsIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci54c2wKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRlZTNjYTguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TFZpZXdlci54c2wKKysrIC9kZXYvbnVsbApAQCAtMSwzOTggKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KLTwhLS0KLSAgIC0gQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gICAtCi0gICAtIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICAgLSBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gICAtIG1ldDoKLSAgIC0KLSAgIC0gMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgIC0g
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICAgLQotICAgLSAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gICAtIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAgIC0gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICAgLSBk
aXN0cmlidXRpb24uCi0gICAtCi0gICAtIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09P
R0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKLSAgIC0g4oCcQVMgSVPigJ0gQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gICAtIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICAgLSBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4KLSAgIC0gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICAgLSBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gICAtIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICAgLSBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAgIC0gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICAgLSAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAgIC0gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAgIC0tPgotCi08eHNsOnN0eWxl
c2hlZXQgdmVyc2lvbj0nMS4wJyB4bWxuczp4c2w9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNM
L1RyYW5zZm9ybSc+Ci0gICAgPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIi8+Ci0gICAgPHhzbDpw
YXJhbSBuYW1lPSJ4bWxfaGFzX25vX3N0eWxlX21lc3NhZ2UiLz4KLSAgICA8eHNsOnBhcmFtIG5h
bWU9ImRvd25BcnJvd0Jhc2U2NCIvPgotICAgIDx4c2w6cGFyYW0gbmFtZT0icmlnaHRBcnJvd0Jh
c2U2NCIvPgotCi0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gICAgICAgIDx4c2w6Y2Fs
bC10ZW1wbGF0ZSBuYW1lPSJtYWluIi8+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0t
IEVtcHR5IGVsZW1lbnQgLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iKiI+Ci0gICAgICAg
IDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1s
LXRhZyI+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs8L3hzbDp0ZXh0PgotICAgICAg
ICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAg
ICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+Ci0gICAgICAgICAgICAgICAgPHhz
bDp0ZXh0Pi8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgPC9k
aXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0tIEVsZW1lbnQgd2l0aCBzaG9ydCB0
ZXh0IG9ubHkgLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iKltub2RlKCldIj4KLSAgICAg
ICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAg
ICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUoKSIvPgotICAgICAgICAgICAg
ICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4KLSAgICAgICAgICAgICAgICA8
eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3NwYW4+Ci0KLSAgICAgICAg
ICAgIDxzcGFuIGNsYXNzPSJ0ZXh0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4K
LQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Ci0gICAgICAgICAg
ICAgICAgPHhzbDp0ZXh0PiZsdDsvPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICA8eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZndDs8
L3hzbDp0ZXh0PgotICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hz
bDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gQ29sbGFwc2FibGUgZWxlbWVudCAtLT4KLSAgICA8eHNs
OnRlbXBsYXRlIG1hdGNoPSIqWyogb3IgcHJvY2Vzc2luZy1pbnN0cnVjdGlvbigpIG9yIGNvbW1l
bnQoKSBvciBzdHJpbmctbGVuZ3RoKCkgJmd0OyA1MF0iPgotICAgICAgICA8ZGl2IGNsYXNzPSJj
b2xsYXBzYWJsZSI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRlZCI+Ci0gICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6Y2Fs
bC10ZW1wbGF0ZSBuYW1lPSJjb2xsYXBzZS1idXR0b24iLz4KLSAgICAgICAgICAgICAgICAgICAg
PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmFw
cGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNs
OnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAg
ICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNh
YmxlLWNvbnRlbnQiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+
Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJs
aW5lIj4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUoKSIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZndDs8L3hzbDp0ZXh0PgotICAgICAgICAg
ICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8
L2Rpdj4KLQotICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2VkIGhpZGRlbiI+Ci0gICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6
Y2FsbC10ZW1wbGF0ZSBuYW1lPSJleHBhbmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAg
IDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0PiZsdDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2
YWx1ZS1vZiBzZWxlY3Q9Im5hbWUoKSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDph
cHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAKiIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHhz
bDp0ZXh0PiZndDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0
Pi4uLjwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88
L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9
Im5hbWUoKSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZndDs8L3hzbDp0
ZXh0PgotICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+
Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+
Ci0KLSAgICA8IS0tIEFueSBhdHRyaWJ1dGUgLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0i
QCoiPgotICAgICAgICA8eHNsOnRleHQ+IDwveHNsOnRleHQ+Ci0gICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUo
KSIvPjwvc3Bhbj4KLSAgICAgICAgPHhzbDp0ZXh0Pj0mcXVvdDs8L3hzbDp0ZXh0PgotICAgICAg
ICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj48eHNsOnZhbHVlLW9m
IHNlbGVjdD0iLiIvPjwvc3Bhbj4KLSAgICAgICAgPHhzbDp0ZXh0PiZxdW90OzwveHNsOnRleHQ+
Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0tIFNob3J0IGNvbW1lbnQgLS0+Ci0gICAg
PHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY29tbWVudCgpIj4KLSAgICAgICAgPGRpdiBjbGFzcz0ibGlu
ZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+Ci0gICAg
ICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDshLS08L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAg
IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0Pi0t
Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgIDwvZGl2PgotICAg
IDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBMb25nIGNvbW1lbnQgLS0+Ci0gICAgPHhzbDp0
ZW1wbGF0ZSBtYXRjaD0iY29tbWVudCgpW3N0cmluZy1sZW5ndGgoKSAmZ3Q7IDUwXSI+Ci0gICAg
ICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlIj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV4
cGFuZGVkIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAg
ICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1dHRvbiIvPgotICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEtLTwveHNsOnRleHQ+Ci0gICAgICAg
ICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlLWNvbnRlbnQgY29tbWVudCI+Ci0gICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij48eHNsOnZhbHVl
LW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNs
OnRleHQ+LS0mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAg
ICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImNvbGxhcHNlZCBoaWRkZW4iPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZXhw
YW5kLWJ1dHRvbiIvPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtY29tbWVudCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEtLTwv
eHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLQotICAgICAgICAgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+PHhzbDp0ZXh0Pi4uLjwveHNs
OnRleHQ+PC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4tLSZndDs8
L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAg
PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVt
cGxhdGU+Ci0KLSAgICA8IS0tIFNob3J0IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gLS0+Ci0gICAg
PHhzbDp0ZW1wbGF0ZSBtYXRjaD0icHJvY2Vzc2luZy1pbnN0cnVjdGlvbigpW25hbWUoKSAhPSAn
eG1sLXN0eWxlc2hlZXQnXSI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgIDx4
c2w6dGV4dD4mbHQ7PzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBz
ZWxlY3Q9Im5hbWUoKSIvPgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4K
LSAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgotICAgICAgICAgICAg
ICAgIDx4c2w6dGV4dD4/Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3NwYW4+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBMb25nIHByb2Nlc3Np
bmcgaW5zdHJ1Y3Rpb24gLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icHJvY2Vzc2luZy1p
bnN0cnVjdGlvbigpWyhzdHJpbmctbGVuZ3RoKCkgJmd0OyA1MCkgYW5kIChuYW1lKCkgIT0gJ3ht
bC1zdHlsZXNoZWV0JyldIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUiPgotICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWQiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0i
Y29sbGFwc2UtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJr
aXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7
PzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVj
dD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+IDwveHNsOnRl
eHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4K
LQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlLWNvbnRlbnQiPgotICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+PHhzbDp2
YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgot
ICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8
ZGl2IGNsYXNzPSJjb2xsYXBzZWQgaGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJsaW5lIj4KLSAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJleHBh
bmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRt
bC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7PzwveHNs
OnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFt
ZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLQotICAgICAgICAgICAgICAgICAg
ICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+PHhzbDp0ZXh0Pi4uLjwveHNsOnRl
eHQ+PC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRt
bC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4/Jmd0OzwveHNs
OnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rp
dj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0
ZT4KLQotICAgIDwhLS0gVGV4dCBub2RlIC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InRl
eHQoKSI+Ci0gICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+Ci0gICAgPC94c2w6dGVt
cGxhdGU+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1dHRvbiI+Ci0gICAg
ICAgIDxzcGFuIGNsYXNzPSJidXR0b24gY29sbGFwc2UtYnV0dG9uIj4KLSAgICAgICAgPC9zcGFu
PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJleHBhbmQt
YnV0dG9uIj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbiBleHBhbmQtYnV0dG9uIj4KLSAg
ICAgICAgPC9zcGFuPgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPHhzbDp0ZW1wbGF0ZSBu
YW1lPSJtYWluIj4KLSAgICAgICAgPGh0bWw+Ci0gICAgICAgICAgICA8aGVhZD4KLSAgICAgICAg
ICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGUiLz4KLSAgICAgICAgICAgICAg
ICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic2NyaXB0Ii8+Ci0gICAgICAgICAgICA8L2hlYWQ+
Ci0gICAgICAgICAgICA8Ym9keSBvbmxvYWQ9Im9uV2ViS2l0WE1MVmlld2VyTG9hZCgpIj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgotICAgICAgICAgICAgICAgICAgICA8
c3Bhbj4gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR4bWxfaGFzX25vX3N0eWxlX21lc3NhZ2UiLz4g
PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgICAgIDwvZGl2
PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldHR5LXByaW50Ij4KLSAgICAgICAg
ICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPgotICAgICAgICAgICAgICAgIDwvZGl2
PgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNvdXJjZS14bWwiPjwvZGl2PgotICAgICAgICAg
ICAgPC9ib2R5PgotICAgICAgICA8L2h0bWw+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8
eHNsOnRlbXBsYXRlIG5hbWU9InNjcmlwdCI+Ci0gICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLSAgICAgICAgICAgIDx4c2w6dGV4dD4KLSAgICAgICAgICAgICAgICBmdW5j
dGlvbiBvbldlYktpdFhNTFZpZXdlckxvYWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgZHJhd0Fycm93cygpOwotICAgICAgICAgICAgICAgICAgICBpbml0QnV0dG9u
cygpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRyYXdB
cnJvd3MoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9
IGRvY3VtZW50LmdldENTU0NhbnZhc0NvbnRleHQoIjJkIiwgImFycm93UmlnaHQiLCAxMCwgMTEp
OwotCi0gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAicmdiKDkwLDkwLDkwKSI7
Ci0gICAgICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgICAgICAgICAgICAg
ICAgY3R4Lm1vdmVUbygwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbygwLCA4
KTsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyg3LCA0KTsKLSAgICAgICAgICAgICAg
ICAgICAgY3R4LmxpbmVUbygwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmZpbGwoKTsK
LSAgICAgICAgICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOwotCi0gICAgICAgICAgICAgICAg
ICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJhcnJvd0Rv
d24iLCAxMCwgMTApOwotCi0gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAicmdi
KDkwLDkwLDkwKSI7Ci0gICAgICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAg
ICAgICAgICAgICAgICAgY3R4Lm1vdmVUbygwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgY3R4
LmxpbmVUbyg4LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyg0LCA3KTsKLSAg
ICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbygwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAg
Y3R4LmZpbGwoKTsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOwotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGV4cGFuZEZ1bmN0aW9uKHNl
Y3Rpb25JZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBm
dW5jdGlvbigpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5leHBhbmRlZCcp
LmNsYXNzTmFtZSA9ICdleHBhbmRlZCc7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuY29sbGFwc2VkJykuY2xhc3NO
YW1lID0gJ2NvbGxhcHNlZCBoaWRkZW4nOwotICAgICAgICAgICAgICAgICAgICB9OwotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNvbGxhcHNlRnVuY3Rpb24o
c2VjdGlvbklkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVk
JykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkIGhpZGRlbic7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuY29sbGFwc2Vk
JykuY2xhc3NOYW1lID0gJ2NvbGxhcHNlZCc7Ci0gICAgICAgICAgICAgICAgICAgIH07Ci0gICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5pdEJ1dHRvbnMoKQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHNlY3Rpb25zID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbGxhcHNhYmxlJyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uSWQgPSAnY29sbGFwc2FibGUnICsgaTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zW2ldLmlkID0gc2VjdGlvbklkOwotCi0gICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZXhwYW5kZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlT
ZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVkJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgY29sbGFwc2VCdXR0b24gPSBleHBhbmRlZFBhcnQucXVlcnlTZWxlY3Rv
cignLmNvbGxhcHNlLWJ1dHRvbicpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VC
dXR0b24ub25jbGljayA9IGNvbGxhcHNlRnVuY3Rpb24oc2VjdGlvbklkKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbGxhcHNlQnV0dG9uLm9ubW91c2Vkb3duID0gaGFuZGxlQnV0dG9uTW91
c2VEb3duOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29sbGFwc2VkUGFydCA9IHNl
Y3Rpb25zW2ldLnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQn
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBhbmRCdXR0b24gPSBjb2xsYXBzZWRQ
YXJ0LnF1ZXJ5U2VsZWN0b3IoJy5leHBhbmQtYnV0dG9uJyk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBleHBhbmRCdXR0b24ub25jbGljayA9IGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25JZCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRCdXR0b24ub25tb3VzZWRvd24gPSBoYW5kbGVC
dXR0b25Nb3VzZURvd247Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUJ1dHRvbk1vdXNlRG93bihlKQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAvLyBUbyBwcmV2ZW50IHNlbGVj
dGlvbiBvbiBkb3VibGUgY2xpY2sKLSAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0
KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgPC94c2w6dGV4dD4KLSAgICAgICAg
PC9zY3JpcHQ+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9
InN0eWxlIj4KLSAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgICAgIGRp
di5oZWFkZXIgewotICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibGFj
azsKLSAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwotICAgICAgICAgICAgICAg
IG1hcmdpbjogMTBweDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZGl2LmNvbGxhcHNh
YmxlID4gZGl2LmhpZGRlbiB7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTpub25lOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAucHJldHR5LXByaW50IHsKLSAgICAgICAgICAgICAgICBt
YXJnaW4tdG9wOiAxZW07Ci0gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7Ci0gICAg
ICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgICAgICAgICAgICAgICBmb250
LXNpemU6IDEzcHg7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICNzb3VyY2UteG1sIHsK
LSAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAuY29sbGFwc2FibGUtY29udGVudCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6
IDFlbTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5jb21tZW50IHsKLSAgICAgICAgICAg
ICAgICB3aGl0ZXNwYWNlOiBwcmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5idXR0
b24gewotICAgICAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICAg
ICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwotICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKLSAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7Ci0gICAgICAgICAg
ICAgICAgd2lkdGg6IDEwcHg7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5v
LXJlcGVhdDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDsK
LSAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAuY29sbGFwc2UtYnV0dG9uIHsKLSAgICAgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhhcnJvd0Rvd24pOwotICAgICAgICAgICAgICAgIGhl
aWdodDogMTBweDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmV4cGFuZC1idXR0b24g
ewotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFycm93
UmlnaHQpOwotICAgICAgICAgICAgICAgIGhlaWdodDogMTFweDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgPC9zdHlsZT4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLTwveHNsOnN0eWxlc2hlZXQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAppbmRleCBkYmU4N2I1Li5iMzZhYzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTYzLDE0ICs2Myw2IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9yaWdpbmFs
VVJMLCBmaW5hbFVSTCwgZmFsc2UpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxY
U0xTdHlsZVNoZWV0PiBjcmVhdGVGb3JYTUxUcmVlVmlld2VyKE5vZGUqIG5vZGUsIGNvbnN0IFN0
cmluZyYgc2hlZXRTdHJpbmcpCi0gICAgewotICAgICAgICBSZWZQdHI8WFNMU3R5bGVTaGVldD4g
c2hlZXQgPSBhZG9wdFJlZihuZXcgWFNMU3R5bGVTaGVldChub2RlLCBTdHJpbmcoKSwgS1VSTCgp
LCBmYWxzZSkpOwotICAgICAgICBzaGVldC0+cGFyc2VTdHJpbmcoc2hlZXRTdHJpbmcpOwotCi0g
ICAgICAgIHJldHVybiBzaGVldC5yZWxlYXNlKCk7Ci0gICAgfQotCiAgICAgdmlydHVhbCB+WFNM
U3R5bGVTaGVldCgpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1hTTFN0eWxlU2hlZXQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87570</attachid>
            <date>2011-03-30 10:39:18 -0700</date>
            <delta_ts>2011-03-31 02:21:47 -0700</delta_ts>
            <desc>Patch with style fixed</desc>
            <filename>cdata</filename>
            <type>text/plain</type>
            <size>58248</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMzFmNDQ1Li4zZGY0MDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMt
MjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQg
bmFtZXNwYWNlcyBhcmUgbm90IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRl
biBvbiBqYXZhc2NyaXB0LgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
My0zMCAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMZW9w
YXJkIEludGVsIFJlbGVhc2UgVGVzdHNdIGZhc3QvdGV4dC9qdXN0aWZ5LWlkZW9ncmFwaC1sZWFk
aW5nLWV4cGFuc2lvbi5odG1sIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAppbmRleCBm
NTFmNTVjLi5hOWI5MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZp
ZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMIGh0
dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwueG1sLiBEb21h
aW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KIFRoaXMgWE1MIGZpbGUgZG9l
cyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0
aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0tCiBJZiB5b3UgY2Fu
IHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlmIHlvdSBhcmUgbm90IHVz
aW5nIGEgV01MLWF3YXJlIGNsaWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1sdmlld2VyL2R1bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKaW5kZXgg
MTdmYjUwYi4uMzU5MzY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2
aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQKQEAgLTEsOSAr
MSw5IEBACiBUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3du
IGJlbG93LgogPCEtLSBJZiB5b3UgY2FuIHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZC4g
LS0+Ci08dGVzdD4KKzx0ZXN0IHhtbG5zPSJodHRwOi8vc3RpbGwtdW5rbm93bi5leGFtcGxlLm9y
Zy8iPgogPGhlYWRlcj4KIFRoaXMgdGVzdHMgdGhhdCB4bWwgdmlld2VyIGlzIG5vdCB1c2VkIHdo
ZW4gdGhlcmUgaXMgYW4gYXR0cmlidXRlIFhMaW5rIG5hbWVzcGFjZS4KIDwvaGVhZGVyPgogPEZB
SUwvPgotPHhsaW5rIGw6dHlwZT0ic2ltcGxlIiBsOmhyZWY9InhsaW5rLnhtbCI+U1VDQ0VTUzwv
eGxpbms+Cis8eGxpbmsgeG1sbnM6bD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgbDp0
eXBlPSJzaW1wbGUiIGw6aHJlZj0ieGxpbmsueG1sIj5TVUNDRVNTPC94bGluaz4KIDwvdGVzdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQv
eG1sdmlld2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2Vy
L2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dAppbmRleCA2ZDE1ZTFmLi4zNzA1YzJm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0
L3htbHZpZXdlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2
aWV3ZXIvZHVtcEFzVGV4dC94bWx2aWV3ZXItZXhwZWN0ZWQudHh0CkBAIC0yMiw5ICsyMiwxMyBA
QCBBbmQgbm93IHNvbWUgbG9uZyB0ZXh0IGluIHJvb3QgZWxlbWVudC4gVGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5CiA8IS0tCiBzb21lIGxvbmcgY29tbWVudCBUaGUgcXVp
Y2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIg
dGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9n
LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhl
IGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBU
aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJv
d24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxh
enkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUg
cXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24g
Zm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92
ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkg
ZG9nLgogLS0+Ci08dGFnLXdpdGgtc2hvcnQtY2RhdGE+IHNvbWUgc2hvcnQgdGV4dCA8L3RhZy13
aXRoLXNob3J0LWNkYXRhPgorPHRhZy13aXRoLXNob3J0LWNkYXRhPgorPCFbQ0RBVEFbIHNvbWUg
c2hvcnQgdGV4dCBdXT4KKzwvdGFnLXdpdGgtc2hvcnQtY2RhdGE+CiA8dGFnLXdpdGgtbG9uZy1j
ZGF0YT4KKzwhW0NEQVRBWwogVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5
IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1
aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZv
eCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVy
IHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRv
Zy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNr
IGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBq
dW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRo
ZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4g
VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJy
b3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1w
cyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBs
YXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhl
IHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4KK11dPgogPC90YWctd2l0aC1sb25nLWNkYXRh
PgotPG5zOnRhZy13aXRoLXNvbWUtbmFtZXNwYWNlLz4KKzxuczp0YWctd2l0aC1zb21lLW5hbWVz
cGFjZSB4bWxuczpucz0id3d3LmV4YW1wbGUub3JnL25hbWVzcGFjZSIvPgogPC9yb290LXRhZy13
aXRoLW1peGVkLWNvbnRlbnQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQKaW5kZXggN2ExZGJlNC4u
NzUxZDI2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC94dWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
dmlld2VyL2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFRoaXMg
WE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFz
c29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8IS0t
IElmIHlvdSBjYW4gc2VlIHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLiAtLT4KLTxGQUlMPgor
PEZBSUwgeG1sbnM6YT0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBl
ci90aGVyZS5pcy5vbmx5Lnh1bCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0cyB0aGF0IHhtbCB2aWV3
ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhbiBhdHRyaWJ1dGUgaW4gWFVMIG5hbWVzcGFj
ZS4KIDwvaGVhZGVyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIv
ZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNTFmNTVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNh
ZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQvd21sXzEu
MS54bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1sdmlld2Vy
L2R1bXBBc1RleHQvd21sLnhtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgotCi1UaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3du
IGJlbG93LgotPCEtLQotSWYgeW91IGNhbiBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQs
IGV4Y2VwdCBpZiB5b3UgYXJlIG5vdCB1c2luZyBhIFdNTC1hd2FyZSBjbGllbnQuCi0tLT4KLTw/
c2RzIGVyZmU/PgotPHdtbD4KLTxoZWFkZXI+Ci1UaGlzIHRlc3RzIHRoYXQgeG1sIHZpZXdlciBp
cyBub3QgdXNlZCBmb3IgZG9jdW1lbnRzIHdpdGggV01MIGRvY3R5cGUuCi08L2hlYWRlcj4KLTxj
YXJkIGlkPSJjYXJkMSIgdGl0bGU9IkNhcmQgMSI+Ci08RkFJTC8+Ci08cD5TVUNDRVNTPC9wPgot
PC9jYXJkPgotPC93bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L21hdGhtbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNU
ZXh0L21hdGhtbC1leHBlY3RlZC50eHQKaW5kZXggYmYyOWQ3OS4uODYyOGIxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC9tYXRobWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDcgQEAgVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBh
bnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LgogPCEtLQogSWYgeW91IGNh
biBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQsIGV4Y2VwdCBpZiB5b3UgYXJlIG5vdCB1
c2luZyBhIE1hdGhNTC1hd2FyZSBjbGllbnQuCiAtLT4KLTxGQUlMPgorPEZBSUwgeG1sbnM6YT0i
aHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI+CiA8aGVhZGVyPgogVGhpcyB0ZXN0
cyB0aGF0IHhtbCB2aWV3ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBpcyBhIHRhZyBpbiBNQVRI
TUwgbmFtZXNwYWNlLgogPC9oZWFkZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRjYjc5OTQu
LmMxNmVmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTg3LDEzICsxOTg3LDIyIEBAIE1B
S0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQogTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmlu
Z3MuY3BwKQogCiAKLSMgR2VuZXJhdGUgWE1MVmlld2VyWFNMLmgKKyMgR2VuZXJhdGUgWE1MVmll
d2VyQ1NTLmgKIEFERF9DVVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9YTUxWaWV3ZXJYU0wuaAotICAgIE1BSU5fREVQRU5ERU5DWSB4bWwvWE1MVmlld2Vy
LnhzbAotICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3Bl
Y3Rvci94eGQucGwgWE1MVmlld2VyX3hzbCAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLnhz
bCAke0RFUklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdlclhTTC5oCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VyQ1NTLmgKKyAgICBNQUlOX0RFUEVOREVOQ1kgeG1s
L1hNTFZpZXdlci5jc3MKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVf
RElSfS9pbnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9jc3MgJHtXRUJDT1JFX0RJUn0veG1sL1hN
TFZpZXdlci5jc3MgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaAogICAgIFZF
UkJBVElNKQotTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vWE1MVmlld2VyWFNMLmgpCitMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaCkKKworCisjIEdlbmVyYXRlIFhNTFZpZXdlckpT
LmgKK0FERF9DVVNUT01fQ09NTUFORCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9YTUxWaWV3ZXJKUy5oCisgICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIuanMKKyAg
ICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IveHhk
LnBsIFhNTFZpZXdlcl9qcyAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLmpzICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VySlMuaAorICAgIFZFUkJBVElNKQorTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VySlMuaCkKIAog
CiAjIEdlbmVyYXRlIEhUTUwgZW50aXR5IHRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzOWM2ZS4uZGQ1
NGIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAzLTI5ICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFhNTCBWaWV3ZXI6IGRlY2xhcmVkIG5hbWVzcGFjZXMgYXJl
IG5vdCByZW5kZXJlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU2MjYyCisKKyAgICAgICAgWE1MIHZpZXdlciByZXdyaXR0ZW4gb24gamF2YXNjcmlw
dC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAv
V2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpkb0VuZCk6CisgICAgICAgICog
eG1sL1hNTFRyZWVWaWV3ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZVZpZXdlcjo6
dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KToKKyAgICAgICAgKiB4bWwvWE1MVmlld2VyLmNz
czogQWRkZWQuCisgICAgICAgICogeG1sL1hNTFZpZXdlci5qczogQWRkZWQuCisgICAgICAgICog
eG1sL1hNTFZpZXdlci54c2w6IFJlbW92ZWQuCisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXQu
aDoKKwogMjAxMS0wMy0zMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXggZm9yIEVmbCBhbmQgUXQgV2luLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzhmYTMxMC4uMzVhNjU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02NTUsMTIgKzY1NSwyMSBAQCBEb2NUeXBlU3RyaW5n
cy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCiAKICMgLS0tLS0tLS0KIAotIyBYTUxWaWV3ZXIgWFNMVAorIyBYTUxWaWV3ZXIgQ1NT
CiAKLWFsbCA6IFhNTFZpZXdlclhTTC5oCithbGwgOiBYTUxWaWV3ZXJDU1MuaAogCi1YTUxWaWV3
ZXJYU0wuaCA6IHhtbC9YTUxWaWV3ZXIueHNsCi0JcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94
eGQucGwgWE1MVmlld2VyX3hzbCAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIueHNsIFhNTFZpZXdl
clhTTC5oCitYTUxWaWV3ZXJDU1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3NzCisJcGVybCAkKFdlYkNv
cmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3
ZXIuY3NzIFhNTFZpZXdlckNTUy5oCisKKyMgLS0tLS0tLS0KKworIyBYTUxWaWV3ZXIgSlMKKwor
YWxsIDogWE1MVmlld2VySlMuaAorCitYTUxWaWV3ZXJKUy5oIDogeG1sL1hNTFZpZXdlci5qcwor
CXBlcmwgJChXZWJDb3JlKS9pbnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9qcyAkKFdlYkNvcmUp
L3htbC9YTUxWaWV3ZXIuanMgWE1MVmlld2VySlMuaAogCiAjIC0tLS0tLS0tCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggOTg4NjllNC4uNmRkN2U1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTY1Myw3ICs2NTMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvWE1MTmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05h
bWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmggXAotCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNMLmggCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9YTUxWaWV3ZXJDU1MuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJKUy5o
IAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXApAQCAtNDk0NSw5ICs0OTQ2LDEzIEBAIERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSGFzaFRvb2xzLmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RG9jVHlwZVN0cmluZ3MuY3BwCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdz
LmNwcDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAk
KEdFTlNPVVJDRVNfV0VCQ09SRSkgJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJm
CiAKLSMgWE1MIFZpZXdlciBYU0wKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNM
Lmg6ICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wKLQkkKFBFUkwpICQoV2ViQ29yZSkvaW5z
cGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfeHNsICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wg
JChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hNTFZpZXdlclhTTC5oCisjIFhNTCBWaWV3ZXIgQ1NTCitE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oOiAkKFdlYkNvcmUpL3htbC9YTUxW
aWV3ZXIuY3NzCisJJChQRVJMKSAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2Vy
X2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzICQoR0VOU09VUkNFU19XRUJDT1JFKS9Y
TUxWaWV3ZXJDU1MuaAorCisjIFhNTCBWaWV3ZXIgSlMKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
WE1MVmlld2VySlMuaDogJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzCisJJChQRVJMKSAkKFdl
YkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2pzICQoV2ViQ29yZSkveG1sL1hNTFZp
ZXdlci5qcyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWE1MVmlld2VySlMuaAogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHA6ICQo
V2ViQ29yZSkvaHRtbC9wYXJzZXIvSFRNTEVudGl0eU5hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9w
YXJzZXIvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCkBAIC01MTc1LDcgKzUxODAsOCBAQCBFWFRS
QV9ESVNUICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcveGxpbmthdHRycy5pbiBcCiAJU291cmNl
L1dlYkNvcmUveG1sL3htbGF0dHJzLmluIFwKIAlTb3VyY2UvV2ViQ29yZS94bWwveG1sbnNhdHRy
cy5pbiBcCi0JU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci54c2wgXAorCVNvdXJjZS9XZWJD
b3JlL3htbC9YTUxWaWV3ZXIuY3NzIFwKKwlTb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpz
IFwKIAlTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkKIAogIyBJbnN0YWxsaW5nIHdl
YiBpbnNwZWN0b3IgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5k
ZXggZTY5MmY1NC4uNTkzYjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKQEAgLTQ0NSwxNyArNDQ1LDMzIEBACiAgICAgICAnYWN0aW9ucyc6IFsKICAgICAgICAgIyBB
Y3Rpb25zIHRvIGJ1aWxkIGRlcml2ZWQgc291cmNlcy4KICAgICAgICAgewotICAgICAgICAgICdh
Y3Rpb25fbmFtZSc6ICdnZW5lcmF0ZVhNTFZpZXdlclhTTCcsCisgICAgICAgICAgJ2FjdGlvbl9u
YW1lJzogJ2dlbmVyYXRlWE1MVmlld2VyQ1NTJywKICAgICAgICAgICAnaW5wdXRzJzogWwotICAg
ICAgICAgICAgJy4uL3htbC9YTUxWaWV3ZXIueHNsJywKKyAgICAgICAgICAgICcuLi94bWwvWE1M
Vmlld2VyLmNzcycsCiAgICAgICAgICAgXSwKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAg
ICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvWE1MVmlld2VyWFNMLmgn
LAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9YTUxWaWV3
ZXJDU1MuaCcsCiAgICAgICAgICAgXSwKICAgICAgICAgICAnYWN0aW9uJzogWwogICAgICAgICAg
ICAgJ3BlcmwnLAogICAgICAgICAgICAgJy4uL2luc3BlY3Rvci94eGQucGwnLAotICAgICAgICAg
ICAgJ1hNTFZpZXdlcl94c2wnLAorICAgICAgICAgICAgJ1hNTFZpZXdlcl9jc3MnLAorICAgICAg
ICAgICAgJzxAKF9pbnB1dHMpJywKKyAgICAgICAgICAgICc8QChfb3V0cHV0cyknCisgICAgICAg
ICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdn
ZW5lcmF0ZVhNTFZpZXdlckpTJywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAg
Jy4uL3htbC9YTUxWaWV3ZXIuanMnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ291dHB1dHMn
OiBbCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L1hNTFZp
ZXdlckpTLmgnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ2FjdGlvbic6IFsKKyAgICAgICAg
ICAgICdwZXJsJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0b3IveHhkLnBsJywKKyAgICAgICAg
ICAgICdYTUxWaWV3ZXJfanMnLAogICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywKICAgICAgICAg
ICAgICc8QChfb3V0cHV0cyknCiAgICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzNTJi
YzYxLi4xMzk3NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03OTQ0LDcgKzc5NDQsOCBAQAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1l
cy5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTE5hbWVzLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9YTUxOYW1lcy5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlclhTTC5oJywKKyAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckpTLmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWFBh
dGhHcmFtbWFyLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS90b2tlbml6ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODJjMTNjMy4uMDU4YzQ5ZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzMzE4
LDcgKzIzMzE4LDExIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcWE1MVmlld2VyWFNMLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckNT
Uy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhN
TFZpZXdlckpTLmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NzNhNTNkLi5m
YmIxMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNDA4LDYgKzE0MDgsOCBAQAogCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTkzRDNFQUYxMzI1MzI4QzAwNTdFN0VFIC8qIEphdmFNZXRo
b2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5M0Qz
RUFFMTMyNTMyOEMwMDU3RTdFRSAvKiBKYXZhTWV0aG9kLmggKi87IH07CiAJCTU5M0QzRUIxMTMy
NTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OTNEM0VCMDEzMjUzMjk1MDA1N0U3RUUgLyogSmF2YVN0cmlu
Zy5oICovOyB9OworCQk1OTU4RjFDRDEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmNzcyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5NThGMUNCMTM0
MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovOyB9OworCQk1OTU4RjFDRTEzNDM5MTdD
MDA4MEIzMUYgLyogWE1MVmlld2VyLmpzIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk1OEYxQ0MxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyAq
LzsgfTsKIAkJNTk2MjI5NzgxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAq
LzsgfTsKIAkJNTk2MjI5N0ExMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2
MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU5Njk1MDgyMTMy
MTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmpl
Y3RXcmFwcGVyLmggKi87IH07CkBAIC03OTMzLDExICs3OTM1LDEyIEBACiAJCTU5MzA5QTEyMTFG
NEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmg7IHBh
dGggPSBtb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTNEM0VBRTEzMjUzMjhDMDA1N0U3RUUgLyogSmF2YU1ldGhvZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhTWV0aG9kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5M0QzRUIwMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTdHJpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk1OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZp
ZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxW
aWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3
ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NjIyOTc3MTEzM0VGRDcwMERD
NENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0
aW9uUG9zaXRpb25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2
OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpvYmplY3RXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAv
KiBYTUxWaWV3ZXIueHNsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBYTUxWaWV3ZXIueHNs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThENzdEQzEzMjU0MUVFMDA3NjFCMjIg
LyogSmF2YUFycmF5SlNDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEphdmFBcnJheUpTQy5jcHA7IHBhdGggPSBqc2MvSmF2YUFycmF5SlNDLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3REUxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJh
eUpTQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKYXZhQXJyYXlKU0MuaDsg
cGF0aCA9IGpzYy9KYXZhQXJyYXlKU0MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTk4RDc3RTAxMzI1NDIwNDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKYXZhRmllbGRKU0MuY3BwOyBwYXRoID0ganNjL0ph
dmFGaWVsZEpTQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0MCw3ICsx
ODY0Myw4IEBACiAJCQkJMUFDRTUzRTYwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIu
aWRsICovLAogCQkJCTU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNw
cCAqLywKIAkJCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICov
LAotCQkJCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICovLAorCQkJ
CTU5NThGMUNCMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovLAorCQkJCTU5NThG
MUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8sCiAJCQkJMUFCN0ZDNDcwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQUI3RkM0ODBBOEI5
MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQkxQUI3RkM0OTBBOEI5MkVD
MDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaWRsICovLApAQCAtMjU0MzAsNiArMjU0MzQsOCBA
QAogCQkJCUYzNDc0MkUwMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzNDc0MkU0MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTgxMzQzNjM1MDAw
NTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTU5NThGMUNEMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzIGluIFNvdXJjZXMgKi8s
CisJCQkJNTk1OEYxQ0UxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAppbmRleCA5MjE0MzkxLi5lM2Y2NjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtMTMzOSwyNyArMTMzOSwyMyBAQCB2b2lkIFhN
TERvY3VtZW50UGFyc2VyOjpkb0VuZCgpCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBFTkFCTEUo
WFNMVCkKICAgICBYTUxUcmVlVmlld2VyIHhtbFRyZWVWaWV3ZXIoZG9jdW1lbnQoKSk7Ci0KICAg
ICBib29sIHhtbFZpZXdlck1vZGUgPSAhbV9zYXdFcnJvciAmJiAhbV9zYXdDU1MgJiYgIW1fc2F3
WFNMVHJhbnNmb3JtICYmIHhtbFRyZWVWaWV3ZXIuaGFzTm9TdHlsZUluZm9ybWF0aW9uKCk7Cisg
ICAgaWYgKHhtbFZpZXdlck1vZGUpCisgICAgICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9j
dW1lbnRUb1RyZWVWaWV3KCk7CiAKLSAgICBpZiAoeG1sVmlld2VyTW9kZSB8fCBtX3Nhd1hTTFRy
YW5zZm9ybSkgeworI2lmIEVOQUJMRShYU0xUKQorICAgIGlmIChtX3Nhd1hTTFRyYW5zZm9ybSkg
ewogICAgICAgICB2b2lkKiBkb2MgPSB4bWxEb2NQdHJGb3JTdHJpbmcoZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKSwgbV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybSwgZG9jdW1l
bnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgICAgICBkb2N1bWVudCgpLT5zZXRUcmFuc2Zvcm1T
b3VyY2UobmV3IFRyYW5zZm9ybVNvdXJjZShkb2MpKTsKIAotICAgICAgICBpZiAoeG1sVmlld2Vy
TW9kZSkKLSAgICAgICAgICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVW
aWV3KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2lu
ZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2ls
bCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCi0gICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNl
bGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50KCktPnNldFBhcnNpbmcodHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQoKS0+
c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwg
c28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCisgICAgICAgIGRvY3VtZW50KCktPnN0
eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1
bWVudCgpLT5zZXRQYXJzaW5nKHRydWUpOwogCiAgICAgICAgIERvY3VtZW50UGFyc2VyOjpzdG9w
UGFyc2luZygpOwogICAgIH0KICNlbmRpZgotCiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCBmMWUyYzBmLi44NjQxZTk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC0yNywzNyArMjcsMTkgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoWFNMVCkKICNpbmNsdWRlICJYTUxUcmVl
Vmlld2VyLmgiCiAKLQotI2luY2x1ZGUgIkJhc2U2NC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0
eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCi0jaW5jbHVkZSAiWExpbmtOYW1lcy5oIgotI2luY2x1ZGUgIlhNTFZpZXdl
clhTTC5oIgotI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCi0jaW5jbHVkZSAiWFNMU3R5bGVTaGVl
dC5oIgotI2luY2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKLQotI2luY2x1ZGUgPGxpYnhzbHQveHNs
dC5oPgotCi0jaWYgRU5BQkxFKE1BVEhNTCkKLSNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgotI2Vu
ZGlmCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2VuZGlmCi0jaWYg
RU5BQkxFKFdNTCkKLSNpbmNsdWRlICJXTUxOYW1lcy5oIgotI2VuZGlmCisjaW5jbHVkZSAiVGV4
dC5oIgorI2luY2x1ZGUgIlhNTFZpZXdlckNTUy5oIgorI2luY2x1ZGUgIlhNTFZpZXdlckpTLmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTg5LDM0ICs3MSwxOCBAQCBib29sIFhNTFRy
ZWVWaWV3ZXI6Omhhc05vU3R5bGVJbmZvcm1hdGlvbigpIGNvbnN0CiAKIHZvaWQgWE1MVHJlZVZp
ZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKIHsKLSAgICBTdHJpbmcgc2hlZXRT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2VyX3hzbCksIHNpemVv
ZihYTUxWaWV3ZXJfeHNsKSk7Ci0gICAgUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQg
PSBYU0xTdHlsZVNoZWV0OjpjcmVhdGVGb3JYTUxUcmVlVmlld2VyKG1fZG9jdW1lbnQsIHNoZWV0
U3RyaW5nKTsKLQotICAgIFJlZlB0cjxYU0xUUHJvY2Vzc29yPiBwcm9jZXNzb3IgPSBYU0xUUHJv
Y2Vzc29yOjpjcmVhdGUoKTsKLSAgICBwcm9jZXNzb3ItPnNldFhTTFN0eWxlU2hlZXQoc3R5bGVT
aGVldCk7Ci0KLSAgICBwcm9jZXNzb3ItPnNldFBhcmFtZXRlcigiIiwgInhtbF9oYXNfbm9fc3R5
bGVfbWVzc2FnZSIsICJUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBz
dHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlz
IHNob3duIGJlbG93LiIpOwotCi0gICAgU3RyaW5nIHJlc3VsdE1JTUVUeXBlOwotICAgIFN0cmlu
ZyBuZXdTb3VyY2U7Ci0gICAgU3RyaW5nIHJlc3VsdEVuY29kaW5nOwotCi0gICAgRnJhbWUqIGZy
YW1lID0gbV9kb2N1bWVudC0+ZnJhbWUoKTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludHJv
ZHVjZSBlcnJvciBoYW5kbGluZwotICAgIGlmIChwcm9jZXNzb3ItPnRyYW5zZm9ybVRvU3RyaW5n
KG1fZG9jdW1lbnQsIHJlc3VsdE1JTUVUeXBlLCBuZXdTb3VyY2UsIHJlc3VsdEVuY29kaW5nKSkK
LSAgICAgICAgcHJvY2Vzc29yLT5jcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UobmV3U291cmNlLCBy
ZXN1bHRFbmNvZGluZywgcmVzdWx0TUlNRVR5cGUsIG1fZG9jdW1lbnQsIGZyYW1lKTsKLQotICAg
IC8vIEFkZGluZyBzb3VyY2UgeG1sIGZvciBkZWFsaW5nIHdpdGggbmFtZXNwYWNlcyBhbmQgQ0RB
VEEgaXNzdWVzIGFuZCBmb3IgZXh0ZW5zaW9ucyB1c2UuCi0gICAgRWxlbWVudCogc291cmNlWG1s
RWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmco
InNvdXJjZS14bWwiKSk7Ci0gICAgaWYgKHNvdXJjZVhtbEVsZW1lbnQpCi0gICAgICAgIG1fZG9j
dW1lbnQtPmNsb25lQ2hpbGROb2Rlcyhzb3VyY2VYbWxFbGVtZW50KTsKLQotICAgIC8vIE5ldyBk
b2N1bWVudCBzaG91bGQgaGF2ZSBiZWVuIGxvYWRlZCBpbiBmcmFtZS4gVGVsbCBpdCB0byB1c2Ug
dmlldyBzb3VyY2Ugc3R5bGVzLgotICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRVc2VzVmlld1Nv
dXJjZVN0eWxlcyh0cnVlKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvckNo
YW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7Ci0KKyAgICBTdHJpbmcgc2NyaXB0U3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl9qcyksIHNpemVvZihYTUxW
aWV3ZXJfanMpKTsKKyAgICBTdHJpbmcgY3NzU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFhNTFZpZXdlcl9jc3MpLCBzaXplb2YoWE1MVmlld2VyX2NzcykpOworICAgIG1fZG9j
dW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKHNjcmlw
dFN0cmluZykpOworICAgIFN0cmluZyBub1N0eWxlTWVzc2FnZSgiVGhpcyBYTUwgZmlsZSBkb2Vz
IG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRo
IGl0LiBUaGUgZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4iKTsKKyAgICBtX2RvY3VtZW50
LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZSgicHJlcGFyZVdl
YktpdFhNTFZpZXdlcignIiArIG5vU3R5bGVNZXNzYWdlICsgIicpOyIpKTsKKworICAgIEV4Y2Vw
dGlvbkNvZGUgZXhjZXB0aW9uQ29kZTsKKyAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1l
bnQtPmNyZWF0ZVRleHROb2RlKGNzc1N0cmluZyk7CisgICAgbV9kb2N1bWVudC0+Z2V0RWxlbWVu
dEJ5SWQoInhtbC12aWV3ZXItc3R5bGUiKS0+YXBwZW5kQ2hpbGQodGV4dCwgZXhjZXB0aW9uQ29k
ZSk7CisKKyAgICBtX2RvY3VtZW50LT5zZXRVc2VzVmlld1NvdXJjZVN0eWxlcyh0cnVlKTsKKyAg
ICBtX2RvY3VtZW50LT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFhTTFQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxWaWV3ZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjJhMWQ1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmll
d2VyLmNzcwpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICog
4oCcQVMgSVPigJ0gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaXYuaGVhZGVy
IHsKKyAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7CisgICAgcGFkZGluZy1ib3R0
b206IDVweDsKKyAgICBtYXJnaW46IDEwcHg7Cit9CisKK2Rpdi5jb2xsYXBzaWJsZSA+IGRpdi5o
aWRkZW4geworICAgIGRpc3BsYXk6bm9uZTsKK30KKworLnByZXR0eS1wcmludCB7CisgICAgbWFy
Z2luLXRvcDogMWVtOworICAgIG1hcmdpbi1sZWZ0OiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBt
b25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisjd2Via2l0LXhtbC12aWV3ZXIt
c291cmNlLXhtbCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLmNvbGxhcHNpYmxlLWNvbnRl
bnQgeworICAgIG1hcmdpbi1sZWZ0OiAxZW07Cit9CisuY29tbWVudCB7CisgICAgd2hpdGVzcGFj
ZTogcHJlOworfQorCisuYnV0dG9uIHsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwor
ICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgbWFy
Z2luLWxlZnQ6IC0xMHB4OworICAgIHdpZHRoOiAxMHB4OworICAgIGJhY2tncm91bmQtcmVwZWF0
OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7CisgICAgdmVy
dGljYWwtYWxpZ246IGJvdHRvbTsKK30KKworLmNvbGxhcHNlLWJ1dHRvbiB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dEb3duKTsKKyAgICBoZWlnaHQ6IDEwcHg7
Cit9CisKKy5leHBhbmQtYnV0dG9uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNh
bnZhcyhhcnJvd1JpZ2h0KTsKKyAgICBoZWlnaHQ6IDExcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpzIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzNlN2UzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcwpAQCAtMCwwICsxLDQz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIOKAnEFTIElT4oCdIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordmFyIG5vZGVQYXJlbnRQYWlycyA9IFtdOworCisv
LyBTY3JpcHQgZW50cnkgcG9pbnQuCisKK2Z1bmN0aW9uIHByZXBhcmVXZWJLaXRYTUxWaWV3ZXIo
bm9TdHlsZU1lc3NhZ2UpCit7CisgICAgdmFyIGh0bWwgPSBjcmVhdGVIVE1MRWxlbWVudCgnaHRt
bCcpOworICAgIHZhciBoZWFkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2hlYWQnKTsKKyAgICBodG1s
LmFwcGVuZENoaWxkKGhlYWQpOworICAgIHZhciBzdHlsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdz
dHlsZScpOworICAgIHN0eWxlLmlkID0gJ3htbC12aWV3ZXItc3R5bGUnOworICAgIGhlYWQuYXBw
ZW5kQ2hpbGQoc3R5bGUpOworICAgIHZhciBib2R5ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2JvZHkn
KTsKKyAgICBodG1sLmFwcGVuZENoaWxkKGJvZHkpOworICAgIHZhciBzb3VyY2VYTUwgPSBjcmVh
dGVIVE1MRWxlbWVudCgnZGl2Jyk7CisgICAgc291cmNlWE1MLmlkID0gJ3dlYmtpdC14bWwtdmll
d2VyLXNvdXJjZS14bWwnOworICAgIGJvZHkuYXBwZW5kQ2hpbGQoc291cmNlWE1MKTsKKworICAg
IHZhciBjaGlsZDsKKyAgICB3aGlsZSAoY2hpbGQgPSBkb2N1bWVudC5maXJzdENoaWxkKSB7Cisg
ICAgICAgIGRvY3VtZW50LnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgaWYgKGNoaWxkLm5v
ZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgc291cmNlWE1M
LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoaHRt
bCk7CisKKyAgICB2YXIgaGVhZGVyID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGJv
ZHkuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKKyAgICBoZWFkZXIuY2xhc3NMaXN0LmFkZCgnaGVhZGVy
Jyk7CisgICAgdmFyIGhlYWRlclNwYW4gPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAg
IGhlYWRlci5hcHBlbmRDaGlsZChoZWFkZXJTcGFuKTsKKyAgICBoZWFkZXJTcGFuLnRleHRDb250
ZW50ID0gbm9TdHlsZU1lc3NhZ2U7CisgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNyZWF0ZUhUTUxF
bGVtZW50KCdicicpKTsKKworICAgIHZhciB0cmVlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2Rpdicp
OworICAgIGJvZHkuYXBwZW5kQ2hpbGQodHJlZSk7CisgICAgdHJlZS5jbGFzc0xpc3QuYWRkKCdw
cmV0dHktcHJpbnQnKTsKKyAgICB0cmVlLmlkID0gJ3RyZWUnOworICAgIHdpbmRvdy5vbmxvYWQg
PSBzb3VyY2VYTUxMb2FkZWQ7Cit9CisKK2Z1bmN0aW9uIHNvdXJjZVhNTExvYWRlZCgpCit7Cisg
ICAgdmFyIHNvdXJjZVhNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3ZWJraXQteG1sLXZp
ZXdlci1zb3VyY2UteG1sJyk7CisgICAgaWYgKCFzb3VyY2VYTUwpCisgICAgICAgIHJldHVybjsg
Ly8gU3RvcCBpZiBzb21lIFhNTCB0cmVlIGV4dGVuc2lvbiBpcyBhbHJlYWR5IHByb2Nlc3Npbmcg
dGhpcyBkb2N1bWVudAorICAgIC8vdmFyIHN0eWxlID0gZG9jdW1lbnQuaGVhZC5maXJzdENoaWxk
OworICAgIC8vZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdHlsZSk7CisgICAgLy9kb2N1bWVu
dC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0cmVlJyk7CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHNvdXJjZVhNTC5maXJz
dENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBh
cmVudFBhaXJzLnB1c2goe3BhcmVudEVsZW1lbnQ6IHJvb3QsIG5vZGU6IGNoaWxkfSk7CisKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVQYXJlbnRQYWlycy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgcHJvY2Vzc05vZGUobm9kZVBhcmVudFBhaXJzW2ldLnBhcmVudEVsZW1lbnQsIG5vZGVQYXJl
bnRQYWlyc1tpXS5ub2RlKTsKKworICAgIGRyYXdBcnJvd3MoKTsKKyAgICBpbml0QnV0dG9ucygp
OworfQorCisvLyBUcmVlIHByb2Nlc3NpbmcuCisKK2Z1bmN0aW9uIHByb2Nlc3NOb2RlKHBhcmVu
dEVsZW1lbnQsIG5vZGUpCit7CisgICAgaWYgKCFwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwKSB7
CisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nlc3NvcnNNYXAgPSB7fTsKKyAgICAgICAgcHJvY2Vz
c05vZGUucHJvY2Vzc29yc01hcFtOb2RlLlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERV0gPSBw
cm9jZXNzUHJvY2Vzc2luZ0luc3RydWN0aW9uOworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNz
b3JzTWFwW05vZGUuRUxFTUVOVF9OT0RFXSA9IHByb2Nlc3NFbGVtZW50OworICAgICAgICBwcm9j
ZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuQ09NTUVOVF9OT0RFXSA9IHByb2Nlc3NDb21tZW50
OworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuVEVYVF9OT0RFXSA9IHBy
b2Nlc3NUZXh0OworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuQ0RBVEFf
U0VDVElPTl9OT0RFXSA9IHByb2Nlc3NDREFUQTsKKyAgICB9CisgICAgaWYgKHByb2Nlc3NOb2Rl
LnByb2Nlc3NvcnNNYXBbbm9kZS5ub2RlVHlwZV0pCisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nl
c3NvcnNNYXBbbm9kZS5ub2RlVHlwZV0uY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50LCBub2RlKTsK
K30KKworZnVuY3Rpb24gcHJvY2Vzc0VsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAg
ICBpZiAoIW5vZGUuZmlyc3RDaGlsZCkKKyAgICAgICAgcHJvY2Vzc0VtcHR5RWxlbWVudChwYXJl
bnRFbGVtZW50LCBub2RlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGNoaWxkID0gbm9kZS5m
aXJzdENoaWxkOworICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT0gTm9kZS5URVhUX05PREUg
JiYgaXNTaG9ydChjaGlsZC5ub2RlVmFsdWUpICYmICFjaGlsZC5uZXh0U2libGluZykKKyAgICAg
ICAgICAgIHByb2Nlc3NTaG9ydFRleHRPbmx5RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvY2Vzc0NvbXBsZXhFbGVtZW50KHBhcmVudEVs
ZW1lbnQsIG5vZGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc0VtcHR5RWxlbWVudChw
YXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlTGluZSgpOworICAg
IGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCB0cnVlKSk7CisgICAgcGFy
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChsaW5lKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc1Nob3J0
VGV4dE9ubHlFbGVtZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgdmFyIGxpbmUgPSBj
cmVhdGVMaW5lKCk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgZmFsc2Us
IGZhbHNlKSk7CisgICAgZm9yICh2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKQorICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0
ZVRleHQoY2hpbGQubm9kZVZhbHVlKSk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWco
bm9kZSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGxpbmUp
OworfQorCitmdW5jdGlvbiBwcm9jZXNzQ29tcGxleEVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9k
ZSkKK3sKKyAgICB2YXIgY29sbGFwc2libGUgPSBjcmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAg
Y29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZh
bHNlLCBmYWxzZSkpOworICAgIGZvciAodmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxkOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBhcmVudFBhaXJzLnB1
c2goe3BhcmVudEVsZW1lbnQ6IGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQsIG5vZGU6IGNo
aWxkfSk7CisgICAgY29sbGFwc2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZVRh
Zyhub2RlLCB0cnVlLCBmYWxzZSkpOworCisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRl
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxzZSkpOworICAgIGNvbGxh
cHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJy4uLicpKTsK
KyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVUYWco
bm9kZSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxh
cHNpYmxlKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc0NvbW1lbnQocGFyZW50RWxlbWVudCwgbm9k
ZSkKK3sKKyAgICBpZiAoaXNTaG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFyIGxp
bmUgPSBjcmVhdGVMaW5lKCk7CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVu
dCgnPCEtLSAnICsgbm9kZS5ub2RlVmFsdWUgKyAnIC0tPicpKTsKKyAgICAgICAgcGFyZW50RWxl
bWVudC5hcHBlbmRDaGlsZChsaW5lKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgY29sbGFw
c2libGUgPSBjcmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmV4cGFu
ZGVkLnN0YXJ0LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNv
bGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2Rl
Lm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hp
bGQoY3JlYXRlQ29tbWVudCgnLS0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNl
ZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNv
bGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy4u
LicpKTsKKyAgICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQo
Y3JlYXRlQ29tbWVudCgnLS0+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxk
KGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NDREFUQShwYXJlbnRF
bGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZhbHVlKSkgeworICAg
ICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KCc8IVtDREFUQVsgJyArIG5vZGUubm9kZVZhbHVlICsgJyBdXT4nKSk7CisgICAg
ICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdmFyIGNvbGxhcHNpYmxlID0gY3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgICAgICBjb2xs
YXBzaWJsZS5leHBhbmRlZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KCc8IVtDREFUQVsn
KSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3Jl
YXRlVGV4dChub2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5l
bmQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnXV0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxl
LmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJzwhW0NEQVRBWycpKTsK
KyAgICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRl
VGV4dCgnLi4uJykpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVUZXh0KCddXT4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoY29sbGFwc2libGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbihwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5v
ZGUubm9kZVZhbHVlKSkgeworICAgICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAg
ICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lICsg
JyAnICsgbm9kZS5ub2RlVmFsdWUgKyAnPz4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbGxhcHNpYmxlID0g
Y3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5zdGFy
dC5hcHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lKSk7CisgICAg
ICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVu
dChub2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBw
ZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPz4nKSk7CisKKyAgICAgICAgY29sbGFwc2libGUuY29s
bGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPD8nICsgbm9kZS5ub2Rl
TmFtZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGls
ZChjcmVhdGVDb21tZW50KCcuLi4nKSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5j
b250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJz8+JykpOworICAgICAgICBwYXJlbnRF
bGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHBy
b2Nlc3NUZXh0KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZChjcmVhdGVUZXh0KG5vZGUubm9kZVZhbHVlKSk7Cit9CisKKy8vIFByb2Nlc3Npbmcg
dXRpbHMuCisKK2Z1bmN0aW9uIHRyaW0odmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLnJlcGxh
Y2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Cit9CisKK2Z1bmN0aW9uIGlz
U2hvcnQodmFsdWUpCit7CisgICAgcmV0dXJuIHRyaW0odmFsdWUpLmxlbmd0aCA8PSA1MDsKK30K
KworLy8gVHJlZSByZW5kZXJpbmcuCisKK2Z1bmN0aW9uIGNyZWF0ZUhUTUxFbGVtZW50KGVsZW1l
bnROYW1lKQoreworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnLCBlbGVtZW50TmFtZSkKK30KKworZnVuY3Rpb24gY3JlYXRl
Q29sbGFwc2libGUoKQoreworICAgIHZhciBjb2xsYXBzaWJsZSA9IGNyZWF0ZUhUTUxFbGVtZW50
KCdkaXYnKTsKKyAgICBjb2xsYXBzaWJsZS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzaWJsZScpOwor
ICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAg
IGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7CisgICAgY29s
bGFwc2libGUuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQpOworCisgICAgY29sbGFw
c2libGUuZXhwYW5kZWQuc3RhcnQgPSBjcmVhdGVMaW5lKCk7CisgICAgY29sbGFwc2libGUuZXhw
YW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29sbGFwc2VCdXR0b24oKSk7CisgICAgY29s
bGFwc2libGUuZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQp
OworCisgICAgY29sbGFwc2libGUuZXhwYW5kZWQuY29udGVudCA9IGNyZWF0ZUhUTUxFbGVtZW50
KCdkaXYnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50LmNsYXNzTGlzdC5hZGQo
J2NvbGxhcHNpYmxlLWNvbnRlbnQnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBlbmRD
aGlsZChjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50KTsKKworICAgIGNvbGxhcHNpYmxlLmV4
cGFuZGVkLmVuZCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBl
bmRDaGlsZChjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQpOworCisgICAgY29sbGFwc2libGUuY29s
bGFwc2VkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNpYmxlLmNvbGxh
cHNlZC5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQnKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBz
ZWQuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CisgICAgY29sbGFwc2libGUuYXBwZW5kQ2hpbGQo
Y29sbGFwc2libGUuY29sbGFwc2VkKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVu
dCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVFeHBhbmRCdXR0b24oKSk7CisgICAgY29sbGFwc2libGUuY29sbGFwc2Vk
LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50KTsKKworICAgIHJldHVy
biBjb2xsYXBzaWJsZTsKK30KKworZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCkKK3sKKyAgICB2YXIg
YnV0dG9uID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBidXR0b24uY2xhc3NMaXN0
LmFkZCgnYnV0dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRl
Q29sbGFwc2VCdXR0b24oc3RyKQoreworICAgIHZhciBidXR0b24gPSBjcmVhdGVCdXR0b24oKTsK
KyAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnY29sbGFwc2UtYnV0dG9uJyk7CisgICAgcmV0dXJu
IGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRlRXhwYW5kQnV0dG9uKHN0cikKK3sKKyAgICB2
YXIgYnV0dG9uID0gY3JlYXRlQnV0dG9uKCk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2V4
cGFuZC1idXR0b24nKTsKKyAgICByZXR1cm4gYnV0dG9uOworfQorCitmdW5jdGlvbiBjcmVhdGVD
b21tZW50KGNvbW1lbnRTdHJpbmcpCit7CisgICAgdmFyIGNvbW1lbnQgPSBjcmVhdGVIVE1MRWxl
bWVudCgnc3BhbicpOworICAgIGNvbW1lbnQuY2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtY29t
bWVudCcpOworICAgIGNvbW1lbnQudGV4dENvbnRlbnQgPSBjb21tZW50U3RyaW5nOworICAgIHJl
dHVybiBjb21tZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0KHZhbHVlKQoreworICAgIHZh
ciB0ZXh0ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICB0ZXh0LnRleHRDb250ZW50
ID0gdHJpbSh2YWx1ZSk7CisgICAgdGV4dC5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7CisgICAgcmV0
dXJuIHRleHQ7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUxpbmUoKQoreworICAgIHZhciBsaW5lID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGxpbmUuY2xhc3NMaXN0LmFkZCgnbGluZScp
OworICAgIHJldHVybiBsaW5lOworfQorCitmdW5jdGlvbiBjcmVhdGVUYWcobm9kZSwgaXNDbG9z
aW5nLCBpc0VtcHR5KQoreworICAgIHZhciB0YWcgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3Bhbicp
OworICAgIHRhZy5jbGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC10YWcnKTsKKworICAgIHZhciBz
dHJpbmdCZWZvcmVBdHRycyA9ICc8JzsKKyAgICBpZiAoaXNDbG9zaW5nKQorICAgICAgICBzdHJp
bmdCZWZvcmVBdHRycyArPSAnLyc7CisgICAgc3RyaW5nQmVmb3JlQXR0cnMgKz0gbm9kZS5ub2Rl
TmFtZTsKKyAgICB2YXIgdGV4dEJlZm9yZUF0dHJzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
c3RyaW5nQmVmb3JlQXR0cnMpOworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QmVmb3JlQXR0cnMp
OworCisgICAgaWYgKCFpc0Nsb3NpbmcpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
b2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWcuYXBwZW5kQ2hpbGQo
Y3JlYXRlQXR0cmlidXRlKG5vZGUuYXR0cmlidXRlc1tpXSkpOworICAgIH0KKworICAgIHZhciBz
dHJpbmdBZnRlckF0dHJzID0gJyc7CisgICAgaWYgKGlzRW1wdHkpCisgICAgICAgIHN0cmluZ0Fm
dGVyQXR0cnMgKz0gJy8nOworICAgIHN0cmluZ0FmdGVyQXR0cnMgKz0gJz4nOworICAgIHZhciB0
ZXh0QWZ0ZXJBdHRycyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ0FmdGVyQXR0cnMp
OworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QWZ0ZXJBdHRycyk7CisKKyAgICByZXR1cm4gdGFn
OworfQorCitmdW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGUoYXR0cmlidXRlTm9kZSkKK3sKKyAgICB2
YXIgYXR0cmlidXRlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBhdHRyaWJ1dGUu
Y2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtYXR0cmlidXRlJyk7CisKKyAgICB2YXIgYXR0cmli
dXRlTmFtZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdzcGFuJyk7CisgICAgYXR0cmlidXRlTmFtZS5j
bGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZScpOworICAgIGF0dHJpYnV0
ZU5hbWUudGV4dENvbnRlbnQgPSBhdHRyaWJ1dGVOb2RlLm5hbWU7CisKKyAgICB2YXIgdGV4dEJl
Zm9yZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CisgICAgdmFyIHRleHRCZXR3ZWVu
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJz0iJyk7CisKKyAgICB2YXIgYXR0cmlidXRlVmFs
dWUgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIGF0dHJpYnV0ZVZhbHVlLmNsYXNz
TGlzdC5hZGQoJ3dlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZScpOworICAgIGF0dHJpYnV0ZVZh
bHVlLnRleHRDb250ZW50ID0gYXR0cmlidXRlTm9kZS52YWx1ZTsKKworICAgIHZhciB0ZXh0QWZ0
ZXIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnIicpOworCisgICAgYXR0cmlidXRlLmFwcGVu
ZENoaWxkKHRleHRCZWZvcmUpOworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVO
YW1lKTsKKyAgICBhdHRyaWJ1dGUuYXBwZW5kQ2hpbGQodGV4dEJldHdlZW4pOworICAgIGF0dHJp
YnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgYXR0cmlidXRlLmFwcGVuZENo
aWxkKHRleHRBZnRlcik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZTsKK30KKworLy8gVHJlZSBiZWhh
dmlvdXIuCisKK2Z1bmN0aW9uIGRyYXdBcnJvd3MoKQoreworICAgIHZhciBjdHggPSBkb2N1bWVu
dC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJhcnJvd1JpZ2h0IiwgMTAsIDExKTsKKworICAg
IGN0eC5maWxsU3R5bGUgPSAicmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOwor
ICAgIGN0eC5tb3ZlVG8oMCwgMCk7CisgICAgY3R4LmxpbmVUbygwLCA4KTsKKyAgICBjdHgubGlu
ZVRvKDcsIDQpOworICAgIGN0eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBj
dHguY2xvc2VQYXRoKCk7CisKKyAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29u
dGV4dCgiMmQiLCAiYXJyb3dEb3duIiwgMTAsIDEwKTsKKworICAgIGN0eC5maWxsU3R5bGUgPSAi
cmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMCwg
MCk7CisgICAgY3R4LmxpbmVUbyg4LCAwKTsKKyAgICBjdHgubGluZVRvKDQsIDcpOworICAgIGN0
eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7Cit9
CisKK2Z1bmN0aW9uIGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0
aW9uSWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKKyAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcp
LmNsYXNzTmFtZSA9ICdjb2xsYXBzZWQgaGlkZGVuJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBj
b2xsYXBzZUZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4g
LmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkIGhpZGRlbic7CisgICAgICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFz
c05hbWUgPSAnY29sbGFwc2VkJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBpbml0QnV0dG9ucygp
Cit7CisgICAgdmFyIHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbGxh
cHNpYmxlJyk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykg
eworICAgICAgICB2YXIgc2VjdGlvbklkID0gJ2NvbGxhcHNpYmxlJyArIGk7CisgICAgICAgIHNl
Y3Rpb25zW2ldLmlkID0gc2VjdGlvbklkOworCisgICAgICAgIHZhciBleHBhbmRlZFBhcnQgPSBz
ZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQn
KTsKKyAgICAgICAgdmFyIGNvbGxhcHNlQnV0dG9uID0gZXhwYW5kZWRQYXJ0LnF1ZXJ5U2VsZWN0
b3IoJy5jb2xsYXBzZS1idXR0b24nKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25jbGljayA9
IGNvbGxhcHNlRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25t
b3VzZWRvd24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247CisKKyAgICAgICAgdmFyIGNvbGxhcHNl
ZFBhcnQgPSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAu
Y29sbGFwc2VkJyk7CisgICAgICAgIHZhciBleHBhbmRCdXR0b24gPSBjb2xsYXBzZWRQYXJ0LnF1
ZXJ5U2VsZWN0b3IoJy5leHBhbmQtYnV0dG9uJyk7CisgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNs
aWNrID0gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgZXhwYW5kQnV0dG9uLm9u
bW91c2Vkb3duID0gaGFuZGxlQnV0dG9uTW91c2VEb3duOworICAgIH0KKworfQorCitmdW5jdGlv
biBoYW5kbGVCdXR0b25Nb3VzZURvd24oZSkKK3sKKyAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9u
IG9uIGRvdWJsZSBjbGljaworICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci54c2wgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
Vmlld2VyLnhzbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVlM2NhOC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhzbAorKysgL2Rldi9udWxsCkBA
IC0xLDM5OCArMCwwIEBACi08P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCc/Pgot
PCEtLQotICAgLSBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAgIC0KLSAgIC0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gICAtIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAgIC0gbWV0
OgotICAgLQotICAgLSAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgLSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAtCi0gICAtIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAgIC0gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICAgLSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gICAtIGRpc3RyaWJ1dGlvbi4KLSAgIC0KLSAgIC0gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UwotICAgLSDigJxBUyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gICAtIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgot
ICAgLSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gICAtIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gICAtIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICAgLSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gICAtIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICAgLSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICAgLS0+Ci0KLTx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPScxLjAnIHhtbG5zOnhz
bD0naHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtJz4KLSAgICA8eHNsOm91dHB1
dCBtZXRob2Q9Imh0bWwiLz4KLSAgICA8eHNsOnBhcmFtIG5hbWU9InhtbF9oYXNfbm9fc3R5bGVf
bWVzc2FnZSIvPgotICAgIDx4c2w6cGFyYW0gbmFtZT0iZG93bkFycm93QmFzZTY0Ii8+Ci0gICAg
PHhzbDpwYXJhbSBuYW1lPSJyaWdodEFycm93QmFzZTY0Ii8+Ci0KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSIvIj4KLSAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW4iLz4KLSAg
ICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gRW1wdHkgZWxlbWVudCAtLT4KLSAgICA8eHNs
OnRlbXBsYXRlIG1hdGNoPSIqIj4KLSAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAg
ICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNs
OnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxl
Y3Q9Im5hbWUoKSIvPgotICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVj
dD0iQCoiLz4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LyZndDs8L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQot
ICAgIDwhLS0gRWxlbWVudCB3aXRoIHNob3J0IHRleHQgb25seSAtLT4KLSAgICA8eHNsOnRlbXBs
YXRlIG1hdGNoPSIqW25vZGUoKV0iPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPgotICAgICAgICAgICAgICAgIDx4
c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNl
bGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2Vs
ZWN0PSJAKiIvPgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgIDwvc3Bhbj4KLQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQiPjx4c2w6
dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotCi0gICAgICAgICAgICA8c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88L3hzbDp0
ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAg
ICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3Nw
YW4+Ci0gICAgICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBDb2xs
YXBzYWJsZSBlbGVtZW50IC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IipbKiBvciBwcm9j
ZXNzaW5nLWluc3RydWN0aW9uKCkgb3IgY29tbWVudCgpIG9yIHN0cmluZy1sZW5ndGgoKSAmZ3Q7
IDUwXSI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlIj4KLSAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImV4cGFuZGVkIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4K
LSAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1
dHRvbiIvPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFn
Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAg
ICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAg
ICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQot
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8
c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4
c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRl
eHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICA8ZGl2IGNs
YXNzPSJjb2xsYXBzZWQgaGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5l
Ij4KLSAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1i
dXR0b24iLz4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRh
ZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Li4uPC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwv
c3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAg
ICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gQW55IGF0dHJpYnV0ZSAt
LT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAKiI+Ci0gICAgICAgIDx4c2w6dGV4dD4gPC94
c2w6dGV4dD4KLSAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRl
eHQ+PSZxdW90OzwveHNsOnRleHQ+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1h
dHRyaWJ1dGUtdmFsdWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAg
ICA8eHNsOnRleHQ+JnF1b3Q7PC94c2w6dGV4dD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAg
IDwhLS0gU2hvcnQgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50
KCkiPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEt
LTwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4K
LSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LS0mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
IDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0t
IExvbmcgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KClbc3Ry
aW5nLWxlbmd0aCgpICZndDsgNTBdIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUi
PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWQiPgotICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUg
bmFtZT0iY29sbGFwc2UtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4
dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAg
ICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2Fi
bGUtY29udGVudCBjb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Indl
YmtpdC1odG1sLWNvbW1lbnQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAg
ICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+
Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4tLSZndDs8L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg
ICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2VkIGhpZGRlbiI+
Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAg
IDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJleHBhbmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAg
ICAgPC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRt
bC1jb21tZW50Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAg
ICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAg
ICAgICAgICAgICAgPHhzbDp0ZXh0Pi0tJmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAg
ICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2Pgot
ICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hvcnQgcHJv
Y2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNz
aW5nLWluc3RydWN0aW9uKClbbmFtZSgpICE9ICd4bWwtc3R5bGVzaGVldCddIj4KLSAgICAgICAg
PGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwt
Y29tbWVudCI+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAg
ICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUt
b2Ygc2VsZWN0PSIuIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4
dD4KLSAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxh
dGU+Ci0KLSAgICA8IS0tIExvbmcgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNs
OnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNzaW5nLWluc3RydWN0aW9uKClbKHN0cmluZy1sZW5ndGgo
KSAmZ3Q7IDUwKSBhbmQgKG5hbWUoKSAhPSAneG1sLXN0eWxlc2hlZXQnKV0iPgotICAgICAgICA8
ZGl2IGNsYXNzPSJjb2xsYXBzYWJsZSI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRl
ZCI+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAg
ICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjb2xsYXBzZS1idXR0b24iLz4KLSAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9z
cGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4K
LSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxp
bmUiPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVu
dCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+PyZndDs8L3hzbDp0ZXh0Pgot
ICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlZCBoaWRkZW4i
PgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAg
PHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4KLSAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAg
PC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1j
b21tZW50Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
PC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBUZXh0IG5vZGUgLS0+
Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGV4dCgpIj4KLSAgICAgICAgPHhzbDp2YWx1ZS1v
ZiBzZWxlY3Q9Ii4iLz4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUg
bmFtZT0iY29sbGFwc2UtYnV0dG9uIj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbiBjb2xs
YXBzZS1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAg
ICA8eHNsOnRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iPgotICAgICAgICA8c3BhbiBjbGFz
cz0iYnV0dG9uIGV4cGFuZC1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVt
cGxhdGU+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1haW4iPgotICAgICAgICA8aHRtbD4K
LSAgICAgICAgICAgIDxoZWFkPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBu
YW1lPSJzdHlsZSIvPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJz
Y3JpcHQiLz4KLSAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgIDxib2R5IG9ubG9hZD0i
b25XZWJLaXRYTUxWaWV3ZXJMb2FkKCkiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhl
YWRlciI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuPiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0i
JHhtbF9oYXNfbm9fc3R5bGVfbWVzc2FnZSIvPiA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAg
IDxici8+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJwcmV0dHktcHJpbnQiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBs
YXRlcy8+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0i
c291cmNlLXhtbCI+PC9kaXY+Ci0gICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgIDwvaHRtbD4K
LSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic2NyaXB0Ij4K
LSAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICAgICAgPHhz
bDp0ZXh0PgotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uV2ViS2l0WE1MVmlld2VyTG9hZCgp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcmF3QXJyb3dzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGluaXRCdXR0b25zKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgZnVuY3Rpb24gZHJhd0Fycm93cygpCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4
dCgiMmQiLCAiYXJyb3dSaWdodCIsIDEwLCAxMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY3R4
LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmJl
Z2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAgICAg
ICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDgpOwotICAgICAgICAgICAgICAgICAgICBjdHgu
bGluZVRvKDcsIDQpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwotICAg
ICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHguY2xv
c2VQYXRoKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGRvY3VtZW50LmdldENT
U0NhbnZhc0NvbnRleHQoIjJkIiwgImFycm93RG93biIsIDEwLCAxMCk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAg
ICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAs
IDApOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDgsIDApOwotICAgICAgICAgICAg
ICAgICAgICBjdHgubGluZVRvKDQsIDcpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRv
KDAsIDApOwotICAgICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAg
ICAgICBjdHguY2xvc2VQYXRoKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycg
KyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlv
bklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkIGhpZGRlbic7Ci0g
ICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gY29sbGFwc2VGdW5jdGlvbihzZWN0aW9uSWQpCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKQotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
JyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQnKS5jbGFzc05hbWUgPSAnZXhwYW5kZWQgaGlk
ZGVuJzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMn
ICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkJzsK
LSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBpbml0QnV0dG9ucygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY29s
bGFwc2FibGUnKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBz
ZWN0aW9ucy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlY3Rp
b25JZCA9ICdjb2xsYXBzYWJsZScgKyBpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlv
bnNbaV0uaWQgPSBzZWN0aW9uSWQ7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBh
bmRlZFBhcnQgPSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcg
PiAuZXhwYW5kZWQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZUJ1dHRv
biA9IGV4cGFuZGVkUGFydC5xdWVyeVNlbGVjdG9yKCcuY29sbGFwc2UtYnV0dG9uJyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZUJ1dHRvbi5vbmNsaWNrID0gY29sbGFwc2VGdW5j
dGlvbihzZWN0aW9uSWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VCdXR0b24u
b25tb3VzZWRvd24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBjb2xsYXBzZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxlY3RvcignIycg
KyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcpOwotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGV4cGFuZEJ1dHRvbiA9IGNvbGxhcHNlZFBhcnQucXVlcnlTZWxlY3RvcignLmV4cGFuZC1i
dXR0b24nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0g
ZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFu
ZEJ1dHRvbi5vbm1vdXNlZG93biA9IGhhbmRsZUJ1dHRvbk1vdXNlRG93bjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gaGFuZGxlQnV0dG9uTW91c2VEb3duKGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljawotICAgICAg
ICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICA8L3hzbDp0ZXh0PgotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L3hzbDp0ZW1wbGF0
ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGUiPgotICAgICAgICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgotICAgICAgICAgICAgZGl2LmhlYWRlciB7Ci0gICAgICAgICAgICAgICAg
Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgICAgIHBhZGRpbmct
Ym90dG9tOiA1cHg7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBkaXYuY29sbGFwc2FibGUgPiBkaXYuaGlkZGVuIHsKLSAgICAgICAg
ICAgICAgICBkaXNwbGF5Om5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5wcmV0
dHktcHJpbnQgewotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICAgICAgICAg
ICAgICBtYXJnaW4tbGVmdDogMjBweDsKLSAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbW9u
b3NwYWNlOwotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgI3NvdXJjZS14bWwgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5v
bmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzYWJsZS1jb250ZW50IHsK
LSAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMWVtOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgLmNvbW1lbnQgewotICAgICAgICAgICAgICAgIHdoaXRlc3BhY2U6IHByZTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgLmJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0g
ICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgICAgIG1h
cmdpbi1sZWZ0OiAtMTBweDsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKLSAgICAgICAg
ICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwotICAgICAgICAgICAgICAgIGJh
Y2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wOwotICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFs
aWduOiBib3R0b207Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzZS1idXR0
b24gewotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFy
cm93RG93bik7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAuZXhwYW5kLWJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dSaWdodCk7Ci0gICAgICAgICAgICAgICAgaGVp
Z2h0OiAxMXB4OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwveHNsOnRl
bXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmlu
ZGV4IGRiZTg3YjUuLmIzNmFjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xT
dHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApAQCAt
NjMsMTQgKzYzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0
eWxlU2hlZXQocGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZUZvclhNTFRy
ZWVWaWV3ZXIoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBzaGVldFN0cmluZykKLSAgICB7Ci0g
ICAgICAgIFJlZlB0cjxYU0xTdHlsZVNoZWV0PiBzaGVldCA9IGFkb3B0UmVmKG5ldyBYU0xTdHls
ZVNoZWV0KG5vZGUsIFN0cmluZygpLCBLVVJMKCksIGZhbHNlKSk7Ci0gICAgICAgIHNoZWV0LT5w
YXJzZVN0cmluZyhzaGVldFN0cmluZyk7Ci0KLSAgICAgICAgcmV0dXJuIHNoZWV0LnJlbGVhc2Uo
KTsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIH5YU0xTdHlsZVNoZWV0KCk7CiAgICAgCiAgICAgdmly
dHVhbCBib29sIGlzWFNMU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>
<flag name="review"
          id="79990"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="79991"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87682</attachid>
            <date>2011-03-31 02:21:47 -0700</date>
            <delta_ts>2011-03-31 04:35:12 -0700</delta_ts>
            <desc>Patch with nits and merge fixed.</desc>
            <filename>cdata</filename>
            <type>text/plain</type>
            <size>58134</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZDU4YzViLi45MzVjZTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMt
MjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQg
bmFtZXNwYWNlcyBhcmUgbm90IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRl
biBvbiBqYXZhc2NyaXB0LgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
My0zMSAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CmluZGV4IGY1MWY1
NWMuLmE5YjkyNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2Vy
L2R1bXBBc1RleHQvd21sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbHZpZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgaHR0cDov
L3d3dy53YXBmb3J1bS5vcmcvRFREL3dtbF8xLjEueG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3htbHZpZXdlci9kdW1wQXNUZXh0L3dtbC54bWwuIERvbWFpbnMs
IHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLQogVGhpcyBYTUwgZmlsZSBkb2VzIG5v
dCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0
LiBUaGUgZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4KIDwhLS0KIElmIHlvdSBjYW4gc2Vl
IHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLCBleGNlcHQgaWYgeW91IGFyZSBub3QgdXNpbmcg
YSBXTUwtYXdhcmUgY2xpZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWx2aWV3ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dAppbmRleCAxN2Zi
NTBiLi4zNTkzNjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdl
ci9kdW1wQXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkg
QEAKIFRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9y
bWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVs
b3cuCiA8IS0tIElmIHlvdSBjYW4gc2VlIHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLiAtLT4K
LTx0ZXN0PgorPHRlc3QgeG1sbnM9Imh0dHA6Ly9zdGlsbC11bmtub3duLmV4YW1wbGUub3JnLyI+
CiA8aGVhZGVyPgogVGhpcyB0ZXN0cyB0aGF0IHhtbCB2aWV3ZXIgaXMgbm90IHVzZWQgd2hlbiB0
aGVyZSBpcyBhbiBhdHRyaWJ1dGUgWExpbmsgbmFtZXNwYWNlLgogPC9oZWFkZXI+CiA8RkFJTC8+
Ci08eGxpbmsgbDp0eXBlPSJzaW1wbGUiIGw6aHJlZj0ieGxpbmsueG1sIj5TVUNDRVNTPC94bGlu
az4KKzx4bGluayB4bWxuczpsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBsOnR5cGU9
InNpbXBsZSIgbDpocmVmPSJ4bGluay54bWwiPlNVQ0NFU1M8L3hsaW5rPgogPC90ZXN0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bWx2
aWV3ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC94bWx2aWV3ZXItZXhwZWN0ZWQudHh0CmluZGV4IDZkMTVlMWYuLjM3MDVjMmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQveG1s
dmlld2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdl
ci9kdW1wQXNUZXh0L3htbHZpZXdlci1leHBlY3RlZC50eHQKQEAgLTIyLDkgKzIyLDEzIEBAIEFu
ZCBub3cgc29tZSBsb25nIHRleHQgaW4gcm9vdCBlbGVtZW50LiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkKIDwhLS0KIHNvbWUgbG9uZyBjb21tZW50IFRoZSBxdWljayBi
cm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVt
cHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUg
bGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRo
ZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93
biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMg
b3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6
eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBx
dWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBm
b3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3Zl
ciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBk
b2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWlj
ayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gg
anVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0
aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cu
CiAtLT4KLTx0YWctd2l0aC1zaG9ydC1jZGF0YT4gc29tZSBzaG9ydCB0ZXh0IDwvdGFnLXdpdGgt
c2hvcnQtY2RhdGE+Cis8dGFnLXdpdGgtc2hvcnQtY2RhdGE+Cis8IVtDREFUQVsgc29tZSBzaG9y
dCB0ZXh0IF1dPgorPC90YWctd2l0aC1zaG9ydC1jZGF0YT4KIDx0YWctd2l0aC1sb25nLWNkYXRh
PgorPCFbQ0RBVEFbCiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9n
LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhl
IGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBU
aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJv
d24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxh
enkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUg
cXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24g
Zm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92
ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkg
ZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVp
Y2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLgorXV0+CiA8L3RhZy13aXRoLWxvbmctY2RhdGE+Ci08
bnM6dGFnLXdpdGgtc29tZS1uYW1lc3BhY2UvPgorPG5zOnRhZy13aXRoLXNvbWUtbmFtZXNwYWNl
IHhtbG5zOm5zPSJ3d3cuZXhhbXBsZS5vcmcvbmFtZXNwYWNlIi8+CiA8L3Jvb3QtdGFnLXdpdGgt
bWl4ZWQtY29udGVudD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1sdmlld2VyL2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dAppbmRleCA3YTFkYmU0Li43NTFk
MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNU
ZXh0L3h1bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3
ZXIvZHVtcEFzVGV4dC94dWwtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGhpcyBYTUwg
ZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2Np
YXRlZCB3aXRoIGl0LiBUaGUgZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4KIDwhLS0gSWYg
eW91IGNhbiBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQuIC0tPgotPEZBSUw+Cis8RkFJ
TCB4bWxuczphPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL2tleW1hc3Rlci9nYXRla2VlcGVyL3Ro
ZXJlLmlzLm9ubHkueHVsIj4KIDxoZWFkZXI+CiBUaGlzIHRlc3RzIHRoYXQgeG1sIHZpZXdlciBp
cyBub3QgdXNlZCB3aGVuIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSBpbiBYVUwgbmFtZXNwYWNlLgog
PC9oZWFkZXI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1w
QXNUZXh0L3dtbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1
MWY1NWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
aHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBh
dHRlbXB0IHRvIGxvYWQgVVJMIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnht
bCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWx2aWV3ZXIvZHVt
cEFzVGV4dC93bWwueG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
Ci0KLVRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9y
bWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVs
b3cuCi08IS0tCi1JZiB5b3UgY2FuIHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhj
ZXB0IGlmIHlvdSBhcmUgbm90IHVzaW5nIGEgV01MLWF3YXJlIGNsaWVudC4KLS0tPgotPD9zZHMg
ZXJmZT8+Ci08d21sPgotPGhlYWRlcj4KLVRoaXMgdGVzdHMgdGhhdCB4bWwgdmlld2VyIGlzIG5v
dCB1c2VkIGZvciBkb2N1bWVudHMgd2l0aCBXTUwgZG9jdHlwZS4KLTwvaGVhZGVyPgotPGNhcmQg
aWQ9ImNhcmQxIiB0aXRsZT0iQ2FyZCAxIj4KLTxGQUlMLz4KLTxwPlNVQ0NFU1M8L3A+Ci08L2Nh
cmQ+Ci08L3dtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQv
bWF0aG1sLWV4cGVjdGVkLnR4dAppbmRleCBiZjI5ZDc5Li44NjI4YjFlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNU
ZXh0L21hdGhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC9tYXRobWwtZXhwZWN0ZWQudHh0CkBA
IC0yLDcgKzIsNyBAQCBUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBz
dHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuCiA8IS0tCiBJZiB5b3UgY2FuIHNl
ZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlmIHlvdSBhcmUgbm90IHVzaW5n
IGEgTWF0aE1MLWF3YXJlIGNsaWVudC4KIC0tPgotPEZBSUw+Cis8RkFJTCB4bWxuczphPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIj4KIDxoZWFkZXI+CiBUaGlzIHRlc3RzIHRo
YXQgeG1sIHZpZXdlciBpcyBub3QgdXNlZCB3aGVuIHRoZXJlIGlzIGEgdGFnIGluIE1BVEhNTCBu
YW1lc3BhY2UuCiA8L2hlYWRlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjMwZjc2ZS4uMGFm
M2YwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5ODgsMTMgKzE5ODgsMjIgQEAgTUFLRV9I
QVNIX1RPT0xTKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MpCiBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5j
cHApCiAKIAotIyBHZW5lcmF0ZSBYTUxWaWV3ZXJYU0wuaAorIyBHZW5lcmF0ZSBYTUxWaWV3ZXJD
U1MuaAogQUREX0NVU1RPTV9DT01NQU5EKAotICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19E
SVJ9L1hNTFZpZXdlclhTTC5oCi0gICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIueHNs
Ci0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9y
L3h4ZC5wbCBYTUxWaWV3ZXJfeHNsICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIueHNsICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VyWFNMLmgKKyAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJDU1MuaAorICAgIE1BSU5fREVQRU5ERU5DWSB4bWwvWE1M
Vmlld2VyLmNzcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9
L2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAke1dFQkNPUkVfRElSfS94bWwvWE1MVmll
d2VyLmNzcyAke0RFUklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdlckNTUy5oCiAgICAgVkVSQkFU
SU0pCi1MSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Y
TUxWaWV3ZXJYU0wuaCkKK0xJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09V
UkNFU19ESVJ9L1hNTFZpZXdlckNTUy5oKQorCisKKyMgR2VuZXJhdGUgWE1MVmlld2VySlMuaAor
QUREX0NVU1RPTV9DT01NQU5EKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9L1hN
TFZpZXdlckpTLmgKKyAgICBNQUlOX0RFUEVOREVOQ1kgeG1sL1hNTFZpZXdlci5qcworICAgIENP
TU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci94eGQucGwg
WE1MVmlld2VyX2pzICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuanMgJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9YTUxWaWV3ZXJKUy5oCisgICAgVkVSQkFUSU0pCitMSVNUKEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJKUy5oKQogCiAKICMg
R2VuZXJhdGUgSFRNTCBlbnRpdHkgdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZWZmMDI2Li45OTIxNGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMjkgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQgbmFtZXNwYWNlcyBhcmUgbm90
IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRlbiBvbiBqYXZhc2NyaXB0Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJD
b3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmRvRW5kKToKKyAgICAgICAgKiB4bWwv
WE1MVHJlZVZpZXdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUcmVlVmlld2VyOjp0cmFu
c2Zvcm1Eb2N1bWVudFRvVHJlZVZpZXcpOgorICAgICAgICAqIHhtbC9YTUxWaWV3ZXIuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKiB4bWwvWE1MVmlld2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiB4bWwv
WE1MVmlld2VyLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgor
CiAyMDExLTAzLTMxICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIEVGTApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggYzhmYTMxMC4uMzVhNjU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC02NTUsMTIgKzY1NSwyMSBAQCBEb2NUeXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5
cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCiAKICMgLS0tLS0t
LS0KIAotIyBYTUxWaWV3ZXIgWFNMVAorIyBYTUxWaWV3ZXIgQ1NTCiAKLWFsbCA6IFhNTFZpZXdl
clhTTC5oCithbGwgOiBYTUxWaWV3ZXJDU1MuaAogCi1YTUxWaWV3ZXJYU0wuaCA6IHhtbC9YTUxW
aWV3ZXIueHNsCi0JcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX3hz
bCAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIueHNsIFhNTFZpZXdlclhTTC5oCitYTUxWaWV3ZXJD
U1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3NzCisJcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQu
cGwgWE1MVmlld2VyX2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzIFhNTFZpZXdlckNT
Uy5oCisKKyMgLS0tLS0tLS0KKworIyBYTUxWaWV3ZXIgSlMKKworYWxsIDogWE1MVmlld2VySlMu
aAorCitYTUxWaWV3ZXJKUy5oIDogeG1sL1hNTFZpZXdlci5qcworCXBlcmwgJChXZWJDb3JlKS9p
bnNwZWN0b3IveHhkLnBsIFhNTFZpZXdlcl9qcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMg
WE1MVmlld2VySlMuaAogCiAjIC0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZWVk
YmM5YS4uYzIxNGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTY1Myw3ICs2NTMsOCBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFt
ZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
WE1MVmlld2VyWFNMLmggCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJDU1MuaCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJKUy5oIAogCiB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5jcHAgXApAQCAtNDk0OSw5ICs0OTUwLDEzIEBAIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSGFzaFRvb2xzLmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3MuY3Bw
CiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdzLmNwcDogJChXZWJDb3JlKS9o
dG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCiAJ
JChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09S
RSkgJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKLSMgWE1MIFZpZXdlciBY
U0wKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNMLmg6ICQoV2ViQ29yZSkveG1s
L1hNTFZpZXdlci54c2wKLQkkKFBFUkwpICQoV2ViQ29yZSkvaW5zcGVjdG9yL3h4ZC5wbCBYTUxW
aWV3ZXJfeHNsICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wgJChHRU5TT1VSQ0VTX1dFQkNP
UkUpL1hNTFZpZXdlclhTTC5oCisjIFhNTCBWaWV3ZXIgQ1NTCitEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1hNTFZpZXdlckNTUy5oOiAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzCisJJChQRVJM
KSAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAkKFdlYkNvcmUpL3ht
bC9YTUxWaWV3ZXIuY3NzICQoR0VOU09VUkNFU19XRUJDT1JFKS9YTUxWaWV3ZXJDU1MuaAorCisj
IFhNTCBWaWV3ZXIgSlMKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VySlMuaDogJChX
ZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzCisJJChQRVJMKSAkKFdlYkNvcmUpL2luc3BlY3Rvci94
eGQucGwgWE1MVmlld2VyX2pzICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci5qcyAkKEdFTlNPVVJD
RVNfV0VCQ09SRSkvWE1MVmlld2VySlMuaAogCiAjIEhUTUwgZW50aXR5IG5hbWVzCiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHA6ICQoV2ViQ29yZSkvaHRtbC9wYXJz
ZXIvSFRNTEVudGl0eU5hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwt
ZW50aXR5LXRhYmxlCkBAIC01MTc5LDcgKzUxODQsOCBAQCBFWFRSQV9ESVNUICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9zdmcveGxpbmthdHRycy5pbiBcCiAJU291cmNlL1dlYkNvcmUveG1sL3htbGF0
dHJzLmluIFwKIAlTb3VyY2UvV2ViQ29yZS94bWwveG1sbnNhdHRycy5pbiBcCi0JU291cmNlL1dl
YkNvcmUveG1sL1hNTFZpZXdlci54c2wgXAorCVNvdXJjZS9XZWJDb3JlL3htbC9YTUxWaWV3ZXIu
Y3NzIFwKKwlTb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpzIFwKIAlTb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhHcmFtbWFyLnkKIAogIyBJbnN0YWxsaW5nIHdlYiBpbnNwZWN0b3IgZmlsZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZTY5MmY1NC4uNTkzYjYy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTQ0NSwxNyArNDQ1
LDMzIEBACiAgICAgICAnYWN0aW9ucyc6IFsKICAgICAgICAgIyBBY3Rpb25zIHRvIGJ1aWxkIGRl
cml2ZWQgc291cmNlcy4KICAgICAgICAgewotICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdnZW5l
cmF0ZVhNTFZpZXdlclhTTCcsCisgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ2dlbmVyYXRlWE1M
Vmlld2VyQ1NTJywKICAgICAgICAgICAnaW5wdXRzJzogWwotICAgICAgICAgICAgJy4uL3htbC9Y
TUxWaWV3ZXIueHNsJywKKyAgICAgICAgICAgICcuLi94bWwvWE1MVmlld2VyLmNzcycsCiAgICAg
ICAgICAgXSwKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvWE1MVmlld2VyWFNMLmgnLAorICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9YTUxWaWV3ZXJDU1MuaCcsCiAgICAgICAg
ICAgXSwKICAgICAgICAgICAnYWN0aW9uJzogWwogICAgICAgICAgICAgJ3BlcmwnLAogICAgICAg
ICAgICAgJy4uL2luc3BlY3Rvci94eGQucGwnLAotICAgICAgICAgICAgJ1hNTFZpZXdlcl94c2wn
LAorICAgICAgICAgICAgJ1hNTFZpZXdlcl9jc3MnLAorICAgICAgICAgICAgJzxAKF9pbnB1dHMp
JywKKyAgICAgICAgICAgICc8QChfb3V0cHV0cyknCisgICAgICAgICAgXSwKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdnZW5lcmF0ZVhNTFZpZXdlckpT
JywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL3htbC9YTUxWaWV3ZXIu
anMnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ291dHB1dHMnOiBbCisgICAgICAgICAgICAn
PChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L1hNTFZpZXdlckpTLmgnLAorICAgICAg
ICAgIF0sCisgICAgICAgICAgJ2FjdGlvbic6IFsKKyAgICAgICAgICAgICdwZXJsJywKKyAgICAg
ICAgICAgICcuLi9pbnNwZWN0b3IveHhkLnBsJywKKyAgICAgICAgICAgICdYTUxWaWV3ZXJfanMn
LAogICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywKICAgICAgICAgICAgICc8QChfb3V0cHV0cykn
CiAgICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyOTBiOTNhLi4xZjlhOWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC03OTQ2LDcgKzc5NDYsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5oJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1l
cy5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1hNTFZpZXdlclhTTC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL1hNTFZpZXdlckNTUy5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckpTLmgnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWFBhdGhHcmFtbWFyLmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdy
YW1tYXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS90b2tlbml6ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggM2RjYjhhMC4uNjNiYWEzNyAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzMzE4LDcgKzIzMzE4LDExIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1MVmlld2Vy
WFNMLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckNTUy5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckpTLmgiCiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NWVhNjY0Li5mZTE4MmYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA4
LDYgKzE0MDgsOCBAQAogCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTkzRDNFQUYxMzI1MzI4QzAwNTdFN0VFIC8qIEphdmFNZXRob2QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5M0QzRUFFMTMyNTMyOEMwMDU3RTdF
RSAvKiBKYXZhTWV0aG9kLmggKi87IH07CiAJCTU5M0QzRUIxMTMyNTMyOTUwMDU3RTdFRSAvKiBK
YXZhU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1OTNEM0VCMDEzMjUzMjk1MDA1N0U3RUUgLyogSmF2YVN0cmluZy5oICovOyB9OworCQk1OTU4
RjFDRDEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmNzcyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5NThGMUNCMTM0MzkxN0MwMDgwQjMxRiAvKiBY
TUxWaWV3ZXIuY3NzICovOyB9OworCQk1OTU4RjFDRTEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmll
d2VyLmpzIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk1
OEYxQ0MxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyAqLzsgfTsKIAkJNTk2MjI5Nzgx
MTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTYyMjk3NzExMzNFRkQ3MDBE
QzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJNTk2MjI5N0Ex
MTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2MjI5NzkxMTMzRUZFMjAwREM0
Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU5Njk1MDgyMTMyMTA1OTkwMEMzRUQxOCAvKiBK
b2JqZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi87IH07
CkBAIC03OTM1LDExICs3OTM3LDEyIEBACiAJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYwMyAvKiBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL0RldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTNE
M0VBRTEzMjUzMjhDMDA1N0U3RUUgLyogSmF2YU1ldGhvZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKYXZhTWV0aG9kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU5M0QzRUIwMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTk1OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LmNzczsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5NjIyOTc3MTEzM0VGRDcwMERDNENCQiAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2Fj
aGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2OTUwODExMzIxMDU5OTAwQzNF
RDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpvYmplY3RXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5Njk1MDgz
MTMyMTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBYTUxWaWV3ZXIueHNsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OThENzdEQzEzMjU0MUVFMDA3NjFCMjIgLyogSmF2YUFycmF5SlNDLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEphdmFBcnJheUpTQy5jcHA7
IHBhdGggPSBqc2MvSmF2YUFycmF5SlNDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTk4RDc3REUxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJheUpTQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBKYXZhQXJyYXlKU0MuaDsgcGF0aCA9IGpzYy9KYXZhQXJy
YXlKU0MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3RTAxMzI1NDIwNDAw
NzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKYXZhRmllbGRKU0MuY3BwOyBwYXRoID0ganNjL0phdmFGaWVsZEpTQy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0Niw3ICsxODY0OSw4IEBACiAJCQkJMUFD
RTUzRTYwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuaWRsICovLAogCQkJCTU5MDVB
REJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLywKIAkJCQk1OTA1QURC
RTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovLAotCQkJCTU5ODBCMDMzMTJF
RjNEODQwMERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICovLAorCQkJCTU5NThGMUNCMTM0MzkxN0Mw
MDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovLAorCQkJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMx
RiAvKiBYTUxWaWV3ZXIuanMgKi8sCiAJCQkJMUFCN0ZDNDcwQThCOTJFQzAwRDlEMzdCIC8qIFhQ
YXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQUI3RkM0ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhFdmFsdWF0b3IuaCAqLywKIAkJCQkxQUI3RkM0OTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhF
dmFsdWF0b3IuaWRsICovLApAQCAtMjU0MzgsNiArMjU0NDIsOCBAQAogCQkJCUYzNDc0MkUwMTM0
MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUYzNDc0MkU0MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTgxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU5NThGMUNEMTM0MzkxN0Mw
MDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzIGluIFNvdXJjZXMgKi8sCisJCQkJNTk1OEYxQ0UxMzQz
OTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA5MjE0MzkxLi5l
M2Y2NjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcApAQCAtMTMzOSwyNyArMTMzOSwyMyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpk
b0VuZCgpCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBFTkFCTEUoWFNMVCkKICAgICBYTUxUcmVl
Vmlld2VyIHhtbFRyZWVWaWV3ZXIoZG9jdW1lbnQoKSk7Ci0KICAgICBib29sIHhtbFZpZXdlck1v
ZGUgPSAhbV9zYXdFcnJvciAmJiAhbV9zYXdDU1MgJiYgIW1fc2F3WFNMVHJhbnNmb3JtICYmIHht
bFRyZWVWaWV3ZXIuaGFzTm9TdHlsZUluZm9ybWF0aW9uKCk7CisgICAgaWYgKHhtbFZpZXdlck1v
ZGUpCisgICAgICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7
CiAKLSAgICBpZiAoeG1sVmlld2VyTW9kZSB8fCBtX3Nhd1hTTFRyYW5zZm9ybSkgeworI2lmIEVO
QUJMRShYU0xUKQorICAgIGlmIChtX3Nhd1hTTFRyYW5zZm9ybSkgewogICAgICAgICB2b2lkKiBk
b2MgPSB4bWxEb2NQdHJGb3JTdHJpbmcoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSwgbV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybSwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCkpOwogICAgICAgICBkb2N1bWVudCgpLT5zZXRUcmFuc2Zvcm1Tb3VyY2UobmV3IFRyYW5zZm9y
bVNvdXJjZShkb2MpKTsKIAotICAgICAgICBpZiAoeG1sVmlld2VyTW9kZSkKLSAgICAgICAgICAg
IHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2Ug
dGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVz
aGVldHMuCi0gICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNh
bGNTdHlsZUltbWVkaWF0ZWx5KTsKLSAgICAgICAgICAgIGRvY3VtZW50KCktPnNldFBhcnNpbmco
dHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7
IC8vIE1ha2UgdGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBY
U0wgc3R5bGVzaGVldHMuCisgICAgICAgIGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3JDaGFuZ2Vk
KFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1bWVudCgpLT5zZXRQYXJzaW5n
KHRydWUpOwogCiAgICAgICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwogICAgIH0K
ICNlbmRpZgotCiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmll
d2VyLmNwcAppbmRleCBmMWUyYzBmLi45MTBlODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVW
aWV3ZXIuY3BwCkBAIC0yNywzNyArMjcsMTggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoWFNMVCkKICNpbmNsdWRlICJYTUxUcmVlVmlld2VyLmgiCiAKLQotI2lu
Y2x1ZGUgIkJhc2U2NC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCi0jaW5jbHVkZSAiWExpbmtOYW1lcy5oIgotI2luY2x1ZGUgIlhNTFZpZXdl
clhTTC5oIgotI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCi0jaW5jbHVkZSAiWFNMU3R5bGVTaGVl
dC5oIgotI2luY2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKLQotI2luY2x1ZGUgPGxpYnhzbHQveHNs
dC5oPgotCi0jaWYgRU5BQkxFKE1BVEhNTCkKLSNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgotI2Vu
ZGlmCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2VuZGlmCi0jaWYg
RU5BQkxFKFdNTCkKLSNpbmNsdWRlICJXTUxOYW1lcy5oIgotI2VuZGlmCisjaW5jbHVkZSAiVGV4
dC5oIgorI2luY2x1ZGUgIlhNTFZpZXdlckNTUy5oIgorI2luY2x1ZGUgIlhNTFZpZXdlckpTLmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTg5LDM0ICs3MCwxOCBAQCBib29sIFhNTFRy
ZWVWaWV3ZXI6Omhhc05vU3R5bGVJbmZvcm1hdGlvbigpIGNvbnN0CiAKIHZvaWQgWE1MVHJlZVZp
ZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKIHsKLSAgICBTdHJpbmcgc2hlZXRT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2VyX3hzbCksIHNpemVv
ZihYTUxWaWV3ZXJfeHNsKSk7Ci0gICAgUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQg
PSBYU0xTdHlsZVNoZWV0OjpjcmVhdGVGb3JYTUxUcmVlVmlld2VyKG1fZG9jdW1lbnQsIHNoZWV0
U3RyaW5nKTsKLQotICAgIFJlZlB0cjxYU0xUUHJvY2Vzc29yPiBwcm9jZXNzb3IgPSBYU0xUUHJv
Y2Vzc29yOjpjcmVhdGUoKTsKLSAgICBwcm9jZXNzb3ItPnNldFhTTFN0eWxlU2hlZXQoc3R5bGVT
aGVldCk7Ci0KLSAgICBwcm9jZXNzb3ItPnNldFBhcmFtZXRlcigiIiwgInhtbF9oYXNfbm9fc3R5
bGVfbWVzc2FnZSIsICJUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBz
dHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlz
IHNob3duIGJlbG93LiIpOwotCi0gICAgU3RyaW5nIHJlc3VsdE1JTUVUeXBlOwotICAgIFN0cmlu
ZyBuZXdTb3VyY2U7Ci0gICAgU3RyaW5nIHJlc3VsdEVuY29kaW5nOwotCi0gICAgRnJhbWUqIGZy
YW1lID0gbV9kb2N1bWVudC0+ZnJhbWUoKTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludHJv
ZHVjZSBlcnJvciBoYW5kbGluZwotICAgIGlmIChwcm9jZXNzb3ItPnRyYW5zZm9ybVRvU3RyaW5n
KG1fZG9jdW1lbnQsIHJlc3VsdE1JTUVUeXBlLCBuZXdTb3VyY2UsIHJlc3VsdEVuY29kaW5nKSkK
LSAgICAgICAgcHJvY2Vzc29yLT5jcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UobmV3U291cmNlLCBy
ZXN1bHRFbmNvZGluZywgcmVzdWx0TUlNRVR5cGUsIG1fZG9jdW1lbnQsIGZyYW1lKTsKLQotICAg
IC8vIEFkZGluZyBzb3VyY2UgeG1sIGZvciBkZWFsaW5nIHdpdGggbmFtZXNwYWNlcyBhbmQgQ0RB
VEEgaXNzdWVzIGFuZCBmb3IgZXh0ZW5zaW9ucyB1c2UuCi0gICAgRWxlbWVudCogc291cmNlWG1s
RWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmco
InNvdXJjZS14bWwiKSk7Ci0gICAgaWYgKHNvdXJjZVhtbEVsZW1lbnQpCi0gICAgICAgIG1fZG9j
dW1lbnQtPmNsb25lQ2hpbGROb2Rlcyhzb3VyY2VYbWxFbGVtZW50KTsKLQotICAgIC8vIE5ldyBk
b2N1bWVudCBzaG91bGQgaGF2ZSBiZWVuIGxvYWRlZCBpbiBmcmFtZS4gVGVsbCBpdCB0byB1c2Ug
dmlldyBzb3VyY2Ugc3R5bGVzLgotICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRVc2VzVmlld1Nv
dXJjZVN0eWxlcyh0cnVlKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvckNo
YW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7Ci0KKyAgICBTdHJpbmcgc2NyaXB0U3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl9qcyksIHNpemVvZihYTUxW
aWV3ZXJfanMpKTsKKyAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUo
U2NyaXB0U291cmNlQ29kZShzY3JpcHRTdHJpbmcpKTsKKyAgICBTdHJpbmcgbm9TdHlsZU1lc3Nh
Z2UoIlRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9y
bWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVs
b3cuIik7CisgICAgbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlw
dFNvdXJjZUNvZGUoInByZXBhcmVXZWJLaXRYTUxWaWV3ZXIoJyIgKyBub1N0eWxlTWVzc2FnZSAr
ICInKTsiKSk7CisKKyAgICBTdHJpbmcgY3NzU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFhNTFZpZXdlcl9jc3MpLCBzaXplb2YoWE1MVmlld2VyX2NzcykpOworICAgIFJlZlB0
cjxUZXh0PiB0ZXh0ID0gbV9kb2N1bWVudC0+Y3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7CisgICAgbV9kb2N1bWVudC0+Z2V0RWxlbWVu
dEJ5SWQoInhtbC12aWV3ZXItc3R5bGUiKS0+YXBwZW5kQ2hpbGQodGV4dCwgZXhjZXB0aW9uQ29k
ZSk7CisKKyAgICBtX2RvY3VtZW50LT5zZXRVc2VzVmlld1NvdXJjZVN0eWxlcyh0cnVlKTsKKyAg
ICBtX2RvY3VtZW50LT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFhTTFQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxWaWV3ZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjJhMWQ1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmll
d2VyLmNzcwpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICog
4oCcQVMgSVPigJ0gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaXYuaGVhZGVy
IHsKKyAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7CisgICAgcGFkZGluZy1ib3R0
b206IDVweDsKKyAgICBtYXJnaW46IDEwcHg7Cit9CisKK2Rpdi5jb2xsYXBzaWJsZSA+IGRpdi5o
aWRkZW4geworICAgIGRpc3BsYXk6bm9uZTsKK30KKworLnByZXR0eS1wcmludCB7CisgICAgbWFy
Z2luLXRvcDogMWVtOworICAgIG1hcmdpbi1sZWZ0OiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBt
b25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisjd2Via2l0LXhtbC12aWV3ZXIt
c291cmNlLXhtbCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLmNvbGxhcHNpYmxlLWNvbnRl
bnQgeworICAgIG1hcmdpbi1sZWZ0OiAxZW07Cit9CisuY29tbWVudCB7CisgICAgd2hpdGVzcGFj
ZTogcHJlOworfQorCisuYnV0dG9uIHsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwor
ICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgbWFy
Z2luLWxlZnQ6IC0xMHB4OworICAgIHdpZHRoOiAxMHB4OworICAgIGJhY2tncm91bmQtcmVwZWF0
OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7CisgICAgdmVy
dGljYWwtYWxpZ246IGJvdHRvbTsKK30KKworLmNvbGxhcHNlLWJ1dHRvbiB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dEb3duKTsKKyAgICBoZWlnaHQ6IDEwcHg7
Cit9CisKKy5leHBhbmQtYnV0dG9uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNh
bnZhcyhhcnJvd1JpZ2h0KTsKKyAgICBoZWlnaHQ6IDExcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpzIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzNlN2UzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcwpAQCAtMCwwICsxLDQz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIOKAnEFTIElT4oCdIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordmFyIG5vZGVQYXJlbnRQYWlycyA9IFtdOworCisv
LyBTY3JpcHQgZW50cnkgcG9pbnQuCisKK2Z1bmN0aW9uIHByZXBhcmVXZWJLaXRYTUxWaWV3ZXIo
bm9TdHlsZU1lc3NhZ2UpCit7CisgICAgdmFyIGh0bWwgPSBjcmVhdGVIVE1MRWxlbWVudCgnaHRt
bCcpOworICAgIHZhciBoZWFkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2hlYWQnKTsKKyAgICBodG1s
LmFwcGVuZENoaWxkKGhlYWQpOworICAgIHZhciBzdHlsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdz
dHlsZScpOworICAgIHN0eWxlLmlkID0gJ3htbC12aWV3ZXItc3R5bGUnOworICAgIGhlYWQuYXBw
ZW5kQ2hpbGQoc3R5bGUpOworICAgIHZhciBib2R5ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2JvZHkn
KTsKKyAgICBodG1sLmFwcGVuZENoaWxkKGJvZHkpOworICAgIHZhciBzb3VyY2VYTUwgPSBjcmVh
dGVIVE1MRWxlbWVudCgnZGl2Jyk7CisgICAgc291cmNlWE1MLmlkID0gJ3dlYmtpdC14bWwtdmll
d2VyLXNvdXJjZS14bWwnOworICAgIGJvZHkuYXBwZW5kQ2hpbGQoc291cmNlWE1MKTsKKworICAg
IHZhciBjaGlsZDsKKyAgICB3aGlsZSAoY2hpbGQgPSBkb2N1bWVudC5maXJzdENoaWxkKSB7Cisg
ICAgICAgIGRvY3VtZW50LnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgaWYgKGNoaWxkLm5v
ZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgc291cmNlWE1M
LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoaHRt
bCk7CisKKyAgICB2YXIgaGVhZGVyID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGJv
ZHkuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKKyAgICBoZWFkZXIuY2xhc3NMaXN0LmFkZCgnaGVhZGVy
Jyk7CisgICAgdmFyIGhlYWRlclNwYW4gPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAg
IGhlYWRlci5hcHBlbmRDaGlsZChoZWFkZXJTcGFuKTsKKyAgICBoZWFkZXJTcGFuLnRleHRDb250
ZW50ID0gbm9TdHlsZU1lc3NhZ2U7CisgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNyZWF0ZUhUTUxF
bGVtZW50KCdicicpKTsKKworICAgIHZhciB0cmVlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2Rpdicp
OworICAgIGJvZHkuYXBwZW5kQ2hpbGQodHJlZSk7CisgICAgdHJlZS5jbGFzc0xpc3QuYWRkKCdw
cmV0dHktcHJpbnQnKTsKKyAgICB0cmVlLmlkID0gJ3RyZWUnOworICAgIHdpbmRvdy5vbmxvYWQg
PSBzb3VyY2VYTUxMb2FkZWQ7Cit9CisKK2Z1bmN0aW9uIHNvdXJjZVhNTExvYWRlZCgpCit7Cisg
ICAgdmFyIHNvdXJjZVhNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3ZWJraXQteG1sLXZp
ZXdlci1zb3VyY2UteG1sJyk7CisgICAgaWYgKCFzb3VyY2VYTUwpCisgICAgICAgIHJldHVybjsg
Ly8gU3RvcCBpZiBzb21lIFhNTCB0cmVlIGV4dGVuc2lvbiBpcyBhbHJlYWR5IHByb2Nlc3Npbmcg
dGhpcyBkb2N1bWVudAorICAgIC8vdmFyIHN0eWxlID0gZG9jdW1lbnQuaGVhZC5maXJzdENoaWxk
OworICAgIC8vZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdHlsZSk7CisgICAgLy9kb2N1bWVu
dC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0cmVlJyk7CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHNvdXJjZVhNTC5maXJz
dENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBh
cmVudFBhaXJzLnB1c2goe3BhcmVudEVsZW1lbnQ6IHJvb3QsIG5vZGU6IGNoaWxkfSk7CisKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVQYXJlbnRQYWlycy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgcHJvY2Vzc05vZGUobm9kZVBhcmVudFBhaXJzW2ldLnBhcmVudEVsZW1lbnQsIG5vZGVQYXJl
bnRQYWlyc1tpXS5ub2RlKTsKKworICAgIGRyYXdBcnJvd3MoKTsKKyAgICBpbml0QnV0dG9ucygp
OworfQorCisvLyBUcmVlIHByb2Nlc3NpbmcuCisKK2Z1bmN0aW9uIHByb2Nlc3NOb2RlKHBhcmVu
dEVsZW1lbnQsIG5vZGUpCit7CisgICAgaWYgKCFwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwKSB7
CisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nlc3NvcnNNYXAgPSB7fTsKKyAgICAgICAgcHJvY2Vz
c05vZGUucHJvY2Vzc29yc01hcFtOb2RlLlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERV0gPSBw
cm9jZXNzUHJvY2Vzc2luZ0luc3RydWN0aW9uOworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNz
b3JzTWFwW05vZGUuRUxFTUVOVF9OT0RFXSA9IHByb2Nlc3NFbGVtZW50OworICAgICAgICBwcm9j
ZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuQ09NTUVOVF9OT0RFXSA9IHByb2Nlc3NDb21tZW50
OworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuVEVYVF9OT0RFXSA9IHBy
b2Nlc3NUZXh0OworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuQ0RBVEFf
U0VDVElPTl9OT0RFXSA9IHByb2Nlc3NDREFUQTsKKyAgICB9CisgICAgaWYgKHByb2Nlc3NOb2Rl
LnByb2Nlc3NvcnNNYXBbbm9kZS5ub2RlVHlwZV0pCisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nl
c3NvcnNNYXBbbm9kZS5ub2RlVHlwZV0uY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50LCBub2RlKTsK
K30KKworZnVuY3Rpb24gcHJvY2Vzc0VsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAg
ICBpZiAoIW5vZGUuZmlyc3RDaGlsZCkKKyAgICAgICAgcHJvY2Vzc0VtcHR5RWxlbWVudChwYXJl
bnRFbGVtZW50LCBub2RlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGNoaWxkID0gbm9kZS5m
aXJzdENoaWxkOworICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT0gTm9kZS5URVhUX05PREUg
JiYgaXNTaG9ydChjaGlsZC5ub2RlVmFsdWUpICYmICFjaGlsZC5uZXh0U2libGluZykKKyAgICAg
ICAgICAgIHByb2Nlc3NTaG9ydFRleHRPbmx5RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvY2Vzc0NvbXBsZXhFbGVtZW50KHBhcmVudEVs
ZW1lbnQsIG5vZGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc0VtcHR5RWxlbWVudChw
YXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlTGluZSgpOworICAg
IGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCB0cnVlKSk7CisgICAgcGFy
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChsaW5lKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc1Nob3J0
VGV4dE9ubHlFbGVtZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgdmFyIGxpbmUgPSBj
cmVhdGVMaW5lKCk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgZmFsc2Us
IGZhbHNlKSk7CisgICAgZm9yICh2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKQorICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0
ZVRleHQoY2hpbGQubm9kZVZhbHVlKSk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWco
bm9kZSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGxpbmUp
OworfQorCitmdW5jdGlvbiBwcm9jZXNzQ29tcGxleEVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9k
ZSkKK3sKKyAgICB2YXIgY29sbGFwc2libGUgPSBjcmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAg
Y29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZh
bHNlLCBmYWxzZSkpOworICAgIGZvciAodmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxkOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBhcmVudFBhaXJzLnB1
c2goe3BhcmVudEVsZW1lbnQ6IGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQsIG5vZGU6IGNo
aWxkfSk7CisgICAgY29sbGFwc2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZVRh
Zyhub2RlLCB0cnVlLCBmYWxzZSkpOworCisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRl
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxzZSkpOworICAgIGNvbGxh
cHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJy4uLicpKTsK
KyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVUYWco
bm9kZSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxh
cHNpYmxlKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc0NvbW1lbnQocGFyZW50RWxlbWVudCwgbm9k
ZSkKK3sKKyAgICBpZiAoaXNTaG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFyIGxp
bmUgPSBjcmVhdGVMaW5lKCk7CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVu
dCgnPCEtLSAnICsgbm9kZS5ub2RlVmFsdWUgKyAnIC0tPicpKTsKKyAgICAgICAgcGFyZW50RWxl
bWVudC5hcHBlbmRDaGlsZChsaW5lKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgY29sbGFw
c2libGUgPSBjcmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmV4cGFu
ZGVkLnN0YXJ0LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNv
bGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2Rl
Lm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hp
bGQoY3JlYXRlQ29tbWVudCgnLS0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNl
ZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNv
bGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy4u
LicpKTsKKyAgICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQo
Y3JlYXRlQ29tbWVudCgnLS0+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxk
KGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NDREFUQShwYXJlbnRF
bGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZhbHVlKSkgeworICAg
ICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KCc8IVtDREFUQVsgJyArIG5vZGUubm9kZVZhbHVlICsgJyBdXT4nKSk7CisgICAg
ICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdmFyIGNvbGxhcHNpYmxlID0gY3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgICAgICBjb2xs
YXBzaWJsZS5leHBhbmRlZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KCc8IVtDREFUQVsn
KSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3Jl
YXRlVGV4dChub2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5l
bmQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnXV0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxl
LmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJzwhW0NEQVRBWycpKTsK
KyAgICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRl
VGV4dCgnLi4uJykpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVUZXh0KCddXT4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoY29sbGFwc2libGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbihwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5v
ZGUubm9kZVZhbHVlKSkgeworICAgICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAg
ICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lICsg
JyAnICsgbm9kZS5ub2RlVmFsdWUgKyAnPz4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbGxhcHNpYmxlID0g
Y3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5zdGFy
dC5hcHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lKSk7CisgICAg
ICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVu
dChub2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBw
ZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPz4nKSk7CisKKyAgICAgICAgY29sbGFwc2libGUuY29s
bGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPD8nICsgbm9kZS5ub2Rl
TmFtZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGls
ZChjcmVhdGVDb21tZW50KCcuLi4nKSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5j
b250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJz8+JykpOworICAgICAgICBwYXJlbnRF
bGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHBy
b2Nlc3NUZXh0KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZChjcmVhdGVUZXh0KG5vZGUubm9kZVZhbHVlKSk7Cit9CisKKy8vIFByb2Nlc3Npbmcg
dXRpbHMuCisKK2Z1bmN0aW9uIHRyaW0odmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLnJlcGxh
Y2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Cit9CisKK2Z1bmN0aW9uIGlz
U2hvcnQodmFsdWUpCit7CisgICAgcmV0dXJuIHRyaW0odmFsdWUpLmxlbmd0aCA8PSA1MDsKK30K
KworLy8gVHJlZSByZW5kZXJpbmcuCisKK2Z1bmN0aW9uIGNyZWF0ZUhUTUxFbGVtZW50KGVsZW1l
bnROYW1lKQoreworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnLCBlbGVtZW50TmFtZSkKK30KKworZnVuY3Rpb24gY3JlYXRl
Q29sbGFwc2libGUoKQoreworICAgIHZhciBjb2xsYXBzaWJsZSA9IGNyZWF0ZUhUTUxFbGVtZW50
KCdkaXYnKTsKKyAgICBjb2xsYXBzaWJsZS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzaWJsZScpOwor
ICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAg
IGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7CisgICAgY29s
bGFwc2libGUuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQpOworCisgICAgY29sbGFw
c2libGUuZXhwYW5kZWQuc3RhcnQgPSBjcmVhdGVMaW5lKCk7CisgICAgY29sbGFwc2libGUuZXhw
YW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29sbGFwc2VCdXR0b24oKSk7CisgICAgY29s
bGFwc2libGUuZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQp
OworCisgICAgY29sbGFwc2libGUuZXhwYW5kZWQuY29udGVudCA9IGNyZWF0ZUhUTUxFbGVtZW50
KCdkaXYnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50LmNsYXNzTGlzdC5hZGQo
J2NvbGxhcHNpYmxlLWNvbnRlbnQnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBlbmRD
aGlsZChjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50KTsKKworICAgIGNvbGxhcHNpYmxlLmV4
cGFuZGVkLmVuZCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBl
bmRDaGlsZChjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQpOworCisgICAgY29sbGFwc2libGUuY29s
bGFwc2VkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNpYmxlLmNvbGxh
cHNlZC5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQnKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBz
ZWQuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CisgICAgY29sbGFwc2libGUuYXBwZW5kQ2hpbGQo
Y29sbGFwc2libGUuY29sbGFwc2VkKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVu
dCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVFeHBhbmRCdXR0b24oKSk7CisgICAgY29sbGFwc2libGUuY29sbGFwc2Vk
LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50KTsKKworICAgIHJldHVy
biBjb2xsYXBzaWJsZTsKK30KKworZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCkKK3sKKyAgICB2YXIg
YnV0dG9uID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBidXR0b24uY2xhc3NMaXN0
LmFkZCgnYnV0dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRl
Q29sbGFwc2VCdXR0b24oc3RyKQoreworICAgIHZhciBidXR0b24gPSBjcmVhdGVCdXR0b24oKTsK
KyAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnY29sbGFwc2UtYnV0dG9uJyk7CisgICAgcmV0dXJu
IGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRlRXhwYW5kQnV0dG9uKHN0cikKK3sKKyAgICB2
YXIgYnV0dG9uID0gY3JlYXRlQnV0dG9uKCk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2V4
cGFuZC1idXR0b24nKTsKKyAgICByZXR1cm4gYnV0dG9uOworfQorCitmdW5jdGlvbiBjcmVhdGVD
b21tZW50KGNvbW1lbnRTdHJpbmcpCit7CisgICAgdmFyIGNvbW1lbnQgPSBjcmVhdGVIVE1MRWxl
bWVudCgnc3BhbicpOworICAgIGNvbW1lbnQuY2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtY29t
bWVudCcpOworICAgIGNvbW1lbnQudGV4dENvbnRlbnQgPSBjb21tZW50U3RyaW5nOworICAgIHJl
dHVybiBjb21tZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0KHZhbHVlKQoreworICAgIHZh
ciB0ZXh0ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICB0ZXh0LnRleHRDb250ZW50
ID0gdHJpbSh2YWx1ZSk7CisgICAgdGV4dC5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7CisgICAgcmV0
dXJuIHRleHQ7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUxpbmUoKQoreworICAgIHZhciBsaW5lID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGxpbmUuY2xhc3NMaXN0LmFkZCgnbGluZScp
OworICAgIHJldHVybiBsaW5lOworfQorCitmdW5jdGlvbiBjcmVhdGVUYWcobm9kZSwgaXNDbG9z
aW5nLCBpc0VtcHR5KQoreworICAgIHZhciB0YWcgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3Bhbicp
OworICAgIHRhZy5jbGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC10YWcnKTsKKworICAgIHZhciBz
dHJpbmdCZWZvcmVBdHRycyA9ICc8JzsKKyAgICBpZiAoaXNDbG9zaW5nKQorICAgICAgICBzdHJp
bmdCZWZvcmVBdHRycyArPSAnLyc7CisgICAgc3RyaW5nQmVmb3JlQXR0cnMgKz0gbm9kZS5ub2Rl
TmFtZTsKKyAgICB2YXIgdGV4dEJlZm9yZUF0dHJzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
c3RyaW5nQmVmb3JlQXR0cnMpOworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QmVmb3JlQXR0cnMp
OworCisgICAgaWYgKCFpc0Nsb3NpbmcpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
b2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWcuYXBwZW5kQ2hpbGQo
Y3JlYXRlQXR0cmlidXRlKG5vZGUuYXR0cmlidXRlc1tpXSkpOworICAgIH0KKworICAgIHZhciBz
dHJpbmdBZnRlckF0dHJzID0gJyc7CisgICAgaWYgKGlzRW1wdHkpCisgICAgICAgIHN0cmluZ0Fm
dGVyQXR0cnMgKz0gJy8nOworICAgIHN0cmluZ0FmdGVyQXR0cnMgKz0gJz4nOworICAgIHZhciB0
ZXh0QWZ0ZXJBdHRycyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ0FmdGVyQXR0cnMp
OworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QWZ0ZXJBdHRycyk7CisKKyAgICByZXR1cm4gdGFn
OworfQorCitmdW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGUoYXR0cmlidXRlTm9kZSkKK3sKKyAgICB2
YXIgYXR0cmlidXRlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBhdHRyaWJ1dGUu
Y2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtYXR0cmlidXRlJyk7CisKKyAgICB2YXIgYXR0cmli
dXRlTmFtZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdzcGFuJyk7CisgICAgYXR0cmlidXRlTmFtZS5j
bGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZScpOworICAgIGF0dHJpYnV0
ZU5hbWUudGV4dENvbnRlbnQgPSBhdHRyaWJ1dGVOb2RlLm5hbWU7CisKKyAgICB2YXIgdGV4dEJl
Zm9yZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CisgICAgdmFyIHRleHRCZXR3ZWVu
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJz0iJyk7CisKKyAgICB2YXIgYXR0cmlidXRlVmFs
dWUgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIGF0dHJpYnV0ZVZhbHVlLmNsYXNz
TGlzdC5hZGQoJ3dlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZScpOworICAgIGF0dHJpYnV0ZVZh
bHVlLnRleHRDb250ZW50ID0gYXR0cmlidXRlTm9kZS52YWx1ZTsKKworICAgIHZhciB0ZXh0QWZ0
ZXIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnIicpOworCisgICAgYXR0cmlidXRlLmFwcGVu
ZENoaWxkKHRleHRCZWZvcmUpOworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVO
YW1lKTsKKyAgICBhdHRyaWJ1dGUuYXBwZW5kQ2hpbGQodGV4dEJldHdlZW4pOworICAgIGF0dHJp
YnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgYXR0cmlidXRlLmFwcGVuZENo
aWxkKHRleHRBZnRlcik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZTsKK30KKworLy8gVHJlZSBiZWhh
dmlvdXIuCisKK2Z1bmN0aW9uIGRyYXdBcnJvd3MoKQoreworICAgIHZhciBjdHggPSBkb2N1bWVu
dC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJhcnJvd1JpZ2h0IiwgMTAsIDExKTsKKworICAg
IGN0eC5maWxsU3R5bGUgPSAicmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOwor
ICAgIGN0eC5tb3ZlVG8oMCwgMCk7CisgICAgY3R4LmxpbmVUbygwLCA4KTsKKyAgICBjdHgubGlu
ZVRvKDcsIDQpOworICAgIGN0eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBj
dHguY2xvc2VQYXRoKCk7CisKKyAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29u
dGV4dCgiMmQiLCAiYXJyb3dEb3duIiwgMTAsIDEwKTsKKworICAgIGN0eC5maWxsU3R5bGUgPSAi
cmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMCwg
MCk7CisgICAgY3R4LmxpbmVUbyg4LCAwKTsKKyAgICBjdHgubGluZVRvKDQsIDcpOworICAgIGN0
eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7Cit9
CisKK2Z1bmN0aW9uIGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0
aW9uSWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKKyAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcp
LmNsYXNzTmFtZSA9ICdjb2xsYXBzZWQgaGlkZGVuJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBj
b2xsYXBzZUZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4g
LmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkIGhpZGRlbic7CisgICAgICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFz
c05hbWUgPSAnY29sbGFwc2VkJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBpbml0QnV0dG9ucygp
Cit7CisgICAgdmFyIHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbGxh
cHNpYmxlJyk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykg
eworICAgICAgICB2YXIgc2VjdGlvbklkID0gJ2NvbGxhcHNpYmxlJyArIGk7CisgICAgICAgIHNl
Y3Rpb25zW2ldLmlkID0gc2VjdGlvbklkOworCisgICAgICAgIHZhciBleHBhbmRlZFBhcnQgPSBz
ZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQn
KTsKKyAgICAgICAgdmFyIGNvbGxhcHNlQnV0dG9uID0gZXhwYW5kZWRQYXJ0LnF1ZXJ5U2VsZWN0
b3IoJy5jb2xsYXBzZS1idXR0b24nKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25jbGljayA9
IGNvbGxhcHNlRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25t
b3VzZWRvd24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247CisKKyAgICAgICAgdmFyIGNvbGxhcHNl
ZFBhcnQgPSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAu
Y29sbGFwc2VkJyk7CisgICAgICAgIHZhciBleHBhbmRCdXR0b24gPSBjb2xsYXBzZWRQYXJ0LnF1
ZXJ5U2VsZWN0b3IoJy5leHBhbmQtYnV0dG9uJyk7CisgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNs
aWNrID0gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgZXhwYW5kQnV0dG9uLm9u
bW91c2Vkb3duID0gaGFuZGxlQnV0dG9uTW91c2VEb3duOworICAgIH0KKworfQorCitmdW5jdGlv
biBoYW5kbGVCdXR0b25Nb3VzZURvd24oZSkKK3sKKyAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9u
IG9uIGRvdWJsZSBjbGljaworICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci54c2wgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
Vmlld2VyLnhzbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVlM2NhOC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhzbAorKysgL2Rldi9udWxsCkBA
IC0xLDM5OCArMCwwIEBACi08P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCc/Pgot
PCEtLQotICAgLSBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAgIC0KLSAgIC0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gICAtIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAgIC0gbWV0
OgotICAgLQotICAgLSAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgLSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAtCi0gICAtIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAgIC0gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICAgLSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gICAtIGRpc3RyaWJ1dGlvbi4KLSAgIC0KLSAgIC0gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UwotICAgLSDigJxBUyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gICAtIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgot
ICAgLSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gICAtIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gICAtIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICAgLSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gICAtIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICAgLSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICAgLS0+Ci0KLTx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPScxLjAnIHhtbG5zOnhz
bD0naHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtJz4KLSAgICA8eHNsOm91dHB1
dCBtZXRob2Q9Imh0bWwiLz4KLSAgICA8eHNsOnBhcmFtIG5hbWU9InhtbF9oYXNfbm9fc3R5bGVf
bWVzc2FnZSIvPgotICAgIDx4c2w6cGFyYW0gbmFtZT0iZG93bkFycm93QmFzZTY0Ii8+Ci0gICAg
PHhzbDpwYXJhbSBuYW1lPSJyaWdodEFycm93QmFzZTY0Ii8+Ci0KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSIvIj4KLSAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW4iLz4KLSAg
ICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gRW1wdHkgZWxlbWVudCAtLT4KLSAgICA8eHNs
OnRlbXBsYXRlIG1hdGNoPSIqIj4KLSAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAg
ICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNs
OnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxl
Y3Q9Im5hbWUoKSIvPgotICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVj
dD0iQCoiLz4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LyZndDs8L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQot
ICAgIDwhLS0gRWxlbWVudCB3aXRoIHNob3J0IHRleHQgb25seSAtLT4KLSAgICA8eHNsOnRlbXBs
YXRlIG1hdGNoPSIqW25vZGUoKV0iPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPgotICAgICAgICAgICAgICAgIDx4
c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNl
bGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2Vs
ZWN0PSJAKiIvPgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgIDwvc3Bhbj4KLQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQiPjx4c2w6
dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotCi0gICAgICAgICAgICA8c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88L3hzbDp0
ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAg
ICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3Nw
YW4+Ci0gICAgICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBDb2xs
YXBzYWJsZSBlbGVtZW50IC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IipbKiBvciBwcm9j
ZXNzaW5nLWluc3RydWN0aW9uKCkgb3IgY29tbWVudCgpIG9yIHN0cmluZy1sZW5ndGgoKSAmZ3Q7
IDUwXSI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlIj4KLSAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImV4cGFuZGVkIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4K
LSAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1
dHRvbiIvPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFn
Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAg
ICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAg
ICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQot
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8
c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4
c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRl
eHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICA8ZGl2IGNs
YXNzPSJjb2xsYXBzZWQgaGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5l
Ij4KLSAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1i
dXR0b24iLz4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRh
ZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Li4uPC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwv
c3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAg
ICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gQW55IGF0dHJpYnV0ZSAt
LT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAKiI+Ci0gICAgICAgIDx4c2w6dGV4dD4gPC94
c2w6dGV4dD4KLSAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRl
eHQ+PSZxdW90OzwveHNsOnRleHQ+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1h
dHRyaWJ1dGUtdmFsdWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAg
ICA8eHNsOnRleHQ+JnF1b3Q7PC94c2w6dGV4dD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAg
IDwhLS0gU2hvcnQgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50
KCkiPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEt
LTwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4K
LSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LS0mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
IDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0t
IExvbmcgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KClbc3Ry
aW5nLWxlbmd0aCgpICZndDsgNTBdIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUi
PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWQiPgotICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUg
bmFtZT0iY29sbGFwc2UtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4
dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAg
ICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2Fi
bGUtY29udGVudCBjb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Indl
YmtpdC1odG1sLWNvbW1lbnQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAg
ICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+
Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4tLSZndDs8L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg
ICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2VkIGhpZGRlbiI+
Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAg
IDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJleHBhbmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAg
ICAgPC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRt
bC1jb21tZW50Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAg
ICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAg
ICAgICAgICAgICAgPHhzbDp0ZXh0Pi0tJmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAg
ICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2Pgot
ICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hvcnQgcHJv
Y2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNz
aW5nLWluc3RydWN0aW9uKClbbmFtZSgpICE9ICd4bWwtc3R5bGVzaGVldCddIj4KLSAgICAgICAg
PGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwt
Y29tbWVudCI+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAg
ICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAg
ICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUt
b2Ygc2VsZWN0PSIuIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4
dD4KLSAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxh
dGU+Ci0KLSAgICA8IS0tIExvbmcgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNs
OnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNzaW5nLWluc3RydWN0aW9uKClbKHN0cmluZy1sZW5ndGgo
KSAmZ3Q7IDUwKSBhbmQgKG5hbWUoKSAhPSAneG1sLXN0eWxlc2hlZXQnKV0iPgotICAgICAgICA8
ZGl2IGNsYXNzPSJjb2xsYXBzYWJsZSI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRl
ZCI+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAg
ICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjb2xsYXBzZS1idXR0b24iLz4KLSAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9z
cGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1jb21tZW50Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4K
LSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxp
bmUiPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVu
dCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+PyZndDs8L3hzbDp0ZXh0Pgot
ICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlZCBoaWRkZW4i
PgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAg
PHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4KLSAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAg
PC9zcGFuPgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1j
b21tZW50Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
PC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBUZXh0IG5vZGUgLS0+
Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGV4dCgpIj4KLSAgICAgICAgPHhzbDp2YWx1ZS1v
ZiBzZWxlY3Q9Ii4iLz4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUg
bmFtZT0iY29sbGFwc2UtYnV0dG9uIj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbiBjb2xs
YXBzZS1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAg
ICA8eHNsOnRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iPgotICAgICAgICA8c3BhbiBjbGFz
cz0iYnV0dG9uIGV4cGFuZC1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVt
cGxhdGU+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1haW4iPgotICAgICAgICA8aHRtbD4K
LSAgICAgICAgICAgIDxoZWFkPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBu
YW1lPSJzdHlsZSIvPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJz
Y3JpcHQiLz4KLSAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgIDxib2R5IG9ubG9hZD0i
b25XZWJLaXRYTUxWaWV3ZXJMb2FkKCkiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhl
YWRlciI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuPiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0i
JHhtbF9oYXNfbm9fc3R5bGVfbWVzc2FnZSIvPiA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAg
IDxici8+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJwcmV0dHktcHJpbnQiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBs
YXRlcy8+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0i
c291cmNlLXhtbCI+PC9kaXY+Ci0gICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgIDwvaHRtbD4K
LSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic2NyaXB0Ij4K
LSAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICAgICAgPHhz
bDp0ZXh0PgotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uV2ViS2l0WE1MVmlld2VyTG9hZCgp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcmF3QXJyb3dzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGluaXRCdXR0b25zKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgZnVuY3Rpb24gZHJhd0Fycm93cygpCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4
dCgiMmQiLCAiYXJyb3dSaWdodCIsIDEwLCAxMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY3R4
LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmJl
Z2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAgICAg
ICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDgpOwotICAgICAgICAgICAgICAgICAgICBjdHgu
bGluZVRvKDcsIDQpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwotICAg
ICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHguY2xv
c2VQYXRoKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGRvY3VtZW50LmdldENT
U0NhbnZhc0NvbnRleHQoIjJkIiwgImFycm93RG93biIsIDEwLCAxMCk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAg
ICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAs
IDApOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDgsIDApOwotICAgICAgICAgICAg
ICAgICAgICBjdHgubGluZVRvKDQsIDcpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRv
KDAsIDApOwotICAgICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAg
ICAgICBjdHguY2xvc2VQYXRoKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycg
KyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlv
bklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkIGhpZGRlbic7Ci0g
ICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gY29sbGFwc2VGdW5jdGlvbihzZWN0aW9uSWQpCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKQotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
JyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQnKS5jbGFzc05hbWUgPSAnZXhwYW5kZWQgaGlk
ZGVuJzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMn
ICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkJzsK
LSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBpbml0QnV0dG9ucygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY29s
bGFwc2FibGUnKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBz
ZWN0aW9ucy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlY3Rp
b25JZCA9ICdjb2xsYXBzYWJsZScgKyBpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlv
bnNbaV0uaWQgPSBzZWN0aW9uSWQ7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBh
bmRlZFBhcnQgPSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcg
PiAuZXhwYW5kZWQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZUJ1dHRv
biA9IGV4cGFuZGVkUGFydC5xdWVyeVNlbGVjdG9yKCcuY29sbGFwc2UtYnV0dG9uJyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZUJ1dHRvbi5vbmNsaWNrID0gY29sbGFwc2VGdW5j
dGlvbihzZWN0aW9uSWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VCdXR0b24u
b25tb3VzZWRvd24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBjb2xsYXBzZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxlY3RvcignIycg
KyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcpOwotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGV4cGFuZEJ1dHRvbiA9IGNvbGxhcHNlZFBhcnQucXVlcnlTZWxlY3RvcignLmV4cGFuZC1i
dXR0b24nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0g
ZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFu
ZEJ1dHRvbi5vbm1vdXNlZG93biA9IGhhbmRsZUJ1dHRvbk1vdXNlRG93bjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gaGFuZGxlQnV0dG9uTW91c2VEb3duKGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljawotICAgICAg
ICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICA8L3hzbDp0ZXh0PgotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L3hzbDp0ZW1wbGF0
ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGUiPgotICAgICAgICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgotICAgICAgICAgICAgZGl2LmhlYWRlciB7Ci0gICAgICAgICAgICAgICAg
Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgICAgIHBhZGRpbmct
Ym90dG9tOiA1cHg7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBkaXYuY29sbGFwc2FibGUgPiBkaXYuaGlkZGVuIHsKLSAgICAgICAg
ICAgICAgICBkaXNwbGF5Om5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5wcmV0
dHktcHJpbnQgewotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICAgICAgICAg
ICAgICBtYXJnaW4tbGVmdDogMjBweDsKLSAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbW9u
b3NwYWNlOwotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgI3NvdXJjZS14bWwgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5v
bmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzYWJsZS1jb250ZW50IHsK
LSAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMWVtOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgLmNvbW1lbnQgewotICAgICAgICAgICAgICAgIHdoaXRlc3BhY2U6IHByZTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgLmJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0g
ICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgICAgIG1h
cmdpbi1sZWZ0OiAtMTBweDsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKLSAgICAgICAg
ICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwotICAgICAgICAgICAgICAgIGJh
Y2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wOwotICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFs
aWduOiBib3R0b207Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzZS1idXR0
b24gewotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFy
cm93RG93bik7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAuZXhwYW5kLWJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoYXJyb3dSaWdodCk7Ci0gICAgICAgICAgICAgICAgaGVp
Z2h0OiAxMXB4OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwveHNsOnRl
bXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmlu
ZGV4IGRiZTg3YjUuLmIzNmFjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xT
dHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApAQCAt
NjMsMTQgKzYzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0
eWxlU2hlZXQocGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZUZvclhNTFRy
ZWVWaWV3ZXIoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBzaGVldFN0cmluZykKLSAgICB7Ci0g
ICAgICAgIFJlZlB0cjxYU0xTdHlsZVNoZWV0PiBzaGVldCA9IGFkb3B0UmVmKG5ldyBYU0xTdHls
ZVNoZWV0KG5vZGUsIFN0cmluZygpLCBLVVJMKCksIGZhbHNlKSk7Ci0gICAgICAgIHNoZWV0LT5w
YXJzZVN0cmluZyhzaGVldFN0cmluZyk7Ci0KLSAgICAgICAgcmV0dXJuIHNoZWV0LnJlbGVhc2Uo
KTsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIH5YU0xTdHlsZVNoZWV0KCk7CiAgICAgCiAgICAgdmly
dHVhbCBib29sIGlzWFNMU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>
<flag name="review"
          id="80115"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="80116"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87698</attachid>
            <date>2011-03-31 04:35:12 -0700</date>
            <delta_ts>2011-07-11 12:35:39 -0700</delta_ts>
            <desc>merge fix</desc>
            <filename>cdata</filename>
            <type>text/plain</type>
            <size>58182</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZDgxZTBhLi5kMWY0Mjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMt
MjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQg
bmFtZXNwYWNlcyBhcmUgbm90IHJlbmRlcmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRl
biBvbiBqYXZhc2NyaXB0LgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFz
VGV4dC93bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveGxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveG1sdmlld2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
My0zMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZW1vdmUgc3RhbGUgY2hyb21pdW0tZ3B1IGNhbnZhcyBleHBlY3RhdGlv
bnMgKHNlZSByODI1MjEpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2
aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CmluZGV4IGY1MWY1NWMuLmE5
YjkyNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBB
c1RleHQvd21sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZp
ZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgaHR0cDovL3d3dy53
YXBmb3J1bS5vcmcvRFREL3dtbF8xLjEueG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3htbHZpZXdlci9kdW1wQXNUZXh0L3dtbC54bWwuIERvbWFpbnMsIHByb3Rv
Y29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLQogVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBl
YXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUg
ZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4KIDwhLS0KIElmIHlvdSBjYW4gc2VlIHRoaXMs
IHRoaXMgdGVzdCBoYXMgZmFpbGVkLCBleGNlcHQgaWYgeW91IGFyZSBub3QgdXNpbmcgYSBXTUwt
YXdhcmUgY2xpZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3
ZXIvZHVtcEFzVGV4dC94bGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbHZpZXdlci9kdW1wQXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dAppbmRleCAxN2ZiNTBiLi4z
NTkzNjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1w
QXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bHZpZXdlci9kdW1wQXNUZXh0L3hsaW5rLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIFRo
aXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9u
IGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCiA8
IS0tIElmIHlvdSBjYW4gc2VlIHRoaXMsIHRoaXMgdGVzdCBoYXMgZmFpbGVkLiAtLT4KLTx0ZXN0
PgorPHRlc3QgeG1sbnM9Imh0dHA6Ly9zdGlsbC11bmtub3duLmV4YW1wbGUub3JnLyI+CiA8aGVh
ZGVyPgogVGhpcyB0ZXN0cyB0aGF0IHhtbCB2aWV3ZXIgaXMgbm90IHVzZWQgd2hlbiB0aGVyZSBp
cyBhbiBhdHRyaWJ1dGUgWExpbmsgbmFtZXNwYWNlLgogPC9oZWFkZXI+CiA8RkFJTC8+Ci08eGxp
bmsgbDp0eXBlPSJzaW1wbGUiIGw6aHJlZj0ieGxpbmsueG1sIj5TVUNDRVNTPC94bGluaz4KKzx4
bGluayB4bWxuczpsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBsOnR5cGU9InNpbXBs
ZSIgbDpocmVmPSJ4bGluay54bWwiPlNVQ0NFU1M8L3hsaW5rPgogPC90ZXN0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC94bWx2aWV3ZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4
dC94bWx2aWV3ZXItZXhwZWN0ZWQudHh0CmluZGV4IDZkMTVlMWYuLjM3MDVjMmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQveG1sdmlld2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1w
QXNUZXh0L3htbHZpZXdlci1leHBlY3RlZC50eHQKQEAgLTIyLDkgKzIyLDEzIEBAIEFuZCBub3cg
c29tZSBsb25nIHRleHQgaW4gcm9vdCBlbGVtZW50LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkKIDwhLS0KIHNvbWUgbG9uZyBjb21tZW50IFRoZSBxdWljayBicm93biBm
b3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3Zl
ciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBk
b2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWlj
ayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gg
anVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0
aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cu
IFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBi
cm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVt
cHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUg
bGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRo
ZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93
biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMg
b3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6
eSBkb2cuIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuCiAtLT4K
LTx0YWctd2l0aC1zaG9ydC1jZGF0YT4gc29tZSBzaG9ydCB0ZXh0IDwvdGFnLXdpdGgtc2hvcnQt
Y2RhdGE+Cis8dGFnLXdpdGgtc2hvcnQtY2RhdGE+Cis8IVtDREFUQVsgc29tZSBzaG9ydCB0ZXh0
IF1dPgorPC90YWctd2l0aC1zaG9ydC1jZGF0YT4KIDx0YWctd2l0aC1sb25nLWNkYXRhPgorPCFb
Q0RBVEFbCiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUg
cXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24g
Zm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92
ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkg
ZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVp
Y2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIg
dGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9n
LiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1
bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhl
IGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBU
aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJv
d24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBz
IG92ZXIgdGhlIGxhenkgZG9nLgorXV0+CiA8L3RhZy13aXRoLWxvbmctY2RhdGE+Ci08bnM6dGFn
LXdpdGgtc29tZS1uYW1lc3BhY2UvPgorPG5zOnRhZy13aXRoLXNvbWUtbmFtZXNwYWNlIHhtbG5z
Om5zPSJ3d3cuZXhhbXBsZS5vcmcvbmFtZXNwYWNlIi8+CiA8L3Jvb3QtdGFnLXdpdGgtbWl4ZWQt
Y29udGVudD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1
bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmll
d2VyL2R1bXBBc1RleHQveHVsLWV4cGVjdGVkLnR4dAppbmRleCA3YTFkYmU0Li43NTFkMjYwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3h1
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWx2aWV3ZXIvZHVt
cEFzVGV4dC94dWwtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGhpcyBYTUwgZmlsZSBk
b2VzIG5vdCBhcHBlYXIgdG8gaGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3
aXRoIGl0LiBUaGUgZG9jdW1lbnQgdHJlZSBpcyBzaG93biBiZWxvdy4KIDwhLS0gSWYgeW91IGNh
biBzZWUgdGhpcywgdGhpcyB0ZXN0IGhhcyBmYWlsZWQuIC0tPgotPEZBSUw+Cis8RkFJTCB4bWxu
czphPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL2tleW1hc3Rlci9nYXRla2VlcGVyL3RoZXJlLmlz
Lm9ubHkueHVsIj4KIDxoZWFkZXI+CiBUaGlzIHRlc3RzIHRoYXQgeG1sIHZpZXdlciBpcyBub3Qg
dXNlZCB3aGVuIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSBpbiBYVUwgbmFtZXNwYWNlLgogPC9oZWFk
ZXI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9odHRw
L3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L3dtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0
L3dtbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1MWY1NWMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvaHR0cC90
ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC93bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBhdHRlbXB0
IHRvIGxvYWQgVVJMIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWx2aWV3ZXIvZHVtcEFzVGV4
dC93bWwueG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KLVRo
aXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9u
IGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuCi08
IS0tCi1JZiB5b3UgY2FuIHNlZSB0aGlzLCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlm
IHlvdSBhcmUgbm90IHVzaW5nIGEgV01MLWF3YXJlIGNsaWVudC4KLS0tPgotPD9zZHMgZXJmZT8+
Ci08d21sPgotPGhlYWRlcj4KLVRoaXMgdGVzdHMgdGhhdCB4bWwgdmlld2VyIGlzIG5vdCB1c2Vk
IGZvciBkb2N1bWVudHMgd2l0aCBXTUwgZG9jdHlwZS4KLTwvaGVhZGVyPgotPGNhcmQgaWQ9ImNh
cmQxIiB0aXRsZT0iQ2FyZCAxIj4KLTxGQUlMLz4KLTxwPlNVQ0NFU1M8L3A+Ci08L2NhcmQ+Ci08
L3dtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVz
dHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMveG1sdmlld2VyL2R1bXBBc1RleHQvbWF0aG1s
LWV4cGVjdGVkLnR4dAppbmRleCBiZjI5ZDc5Li44NjI4YjFlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3htbHZpZXdlci9kdW1wQXNUZXh0L21h
dGhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0
cC90ZXN0cy94bWx2aWV3ZXIvZHVtcEFzVGV4dC9tYXRobWwtZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNyBAQCBUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuCiA8IS0tCiBJZiB5b3UgY2FuIHNlZSB0aGlz
LCB0aGlzIHRlc3QgaGFzIGZhaWxlZCwgZXhjZXB0IGlmIHlvdSBhcmUgbm90IHVzaW5nIGEgTWF0
aE1MLWF3YXJlIGNsaWVudC4KIC0tPgotPEZBSUw+Cis8RkFJTCB4bWxuczphPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIj4KIDxoZWFkZXI+CiBUaGlzIHRlc3RzIHRoYXQgeG1s
IHZpZXdlciBpcyBub3QgdXNlZCB3aGVuIHRoZXJlIGlzIGEgdGFnIGluIE1BVEhNTCBuYW1lc3Bh
Y2UuCiA8L2hlYWRlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjMwZjc2ZS4uMGFmM2YwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5ODgsMTMgKzE5ODgsMjIgQEAgTUFLRV9IQVNIX1RP
T0xTKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MpCiBMSVNUKEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHApCiAK
IAotIyBHZW5lcmF0ZSBYTUxWaWV3ZXJYU0wuaAorIyBHZW5lcmF0ZSBYTUxWaWV3ZXJDU1MuaAog
QUREX0NVU1RPTV9DT01NQU5EKAotICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9L1hN
TFZpZXdlclhTTC5oCi0gICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIueHNsCi0gICAg
Q09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL3h4ZC5w
bCBYTUxWaWV3ZXJfeHNsICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIueHNsICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vWE1MVmlld2VyWFNMLmgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9YTUxWaWV3ZXJDU1MuaAorICAgIE1BSU5fREVQRU5ERU5DWSB4bWwvWE1MVmlld2Vy
LmNzcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3Bl
Y3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAke1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLmNz
cyAke0RFUklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdlckNTUy5oCiAgICAgVkVSQkFUSU0pCi1M
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3
ZXJYU0wuaCkKK0xJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19E
SVJ9L1hNTFZpZXdlckNTUy5oKQorCisKKyMgR2VuZXJhdGUgWE1MVmlld2VySlMuaAorQUREX0NV
U1RPTV9DT01NQU5EKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9L1hNTFZpZXdl
ckpTLmgKKyAgICBNQUlOX0RFUEVOREVOQ1kgeG1sL1hNTFZpZXdlci5qcworICAgIENPTU1BTkQg
JHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci94eGQucGwgWE1MVmll
d2VyX2pzICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuanMgJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9YTUxWaWV3ZXJKUy5oCisgICAgVkVSQkFUSU0pCitMSVNUKEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9YTUxWaWV3ZXJKUy5oKQogCiAKICMgR2VuZXJh
dGUgSFRNTCBlbnRpdHkgdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNjdkMTQzLi5hZTEwNjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgWE1MIFZpZXdlcjogZGVjbGFyZWQgbmFtZXNwYWNlcyBhcmUgbm90IHJlbmRl
cmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYy
NjIKKworICAgICAgICBYTUwgdmlld2VyIHJld3JpdHRlbiBvbiBqYXZhc2NyaXB0LgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmRvRW5kKToKKyAgICAgICAgKiB4bWwvWE1MVHJl
ZVZpZXdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUcmVlVmlld2VyOjp0cmFuc2Zvcm1E
b2N1bWVudFRvVHJlZVZpZXcpOgorICAgICAgICAqIHhtbC9YTUxWaWV3ZXIuY3NzOiBBZGRlZC4K
KyAgICAgICAgKiB4bWwvWE1MVmlld2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWE1MVmll
d2VyLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDEx
LTAzLTMxICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggYzhmYTMxMC4uMzVhNjU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02
NTUsMTIgKzY1NSwyMSBAQCBEb2NUeXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCiAKICMgLS0tLS0tLS0KIAotIyBY
TUxWaWV3ZXIgWFNMVAorIyBYTUxWaWV3ZXIgQ1NTCiAKLWFsbCA6IFhNTFZpZXdlclhTTC5oCith
bGwgOiBYTUxWaWV3ZXJDU1MuaAogCi1YTUxWaWV3ZXJYU0wuaCA6IHhtbC9YTUxWaWV3ZXIueHNs
Ci0JcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX3hzbCAkKFdlYkNv
cmUpL3htbC9YTUxWaWV3ZXIueHNsIFhNTFZpZXdlclhTTC5oCitYTUxWaWV3ZXJDU1MuaCA6IHht
bC9YTUxWaWV3ZXIuY3NzCisJcGVybCAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmll
d2VyX2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzIFhNTFZpZXdlckNTUy5oCisKKyMg
LS0tLS0tLS0KKworIyBYTUxWaWV3ZXIgSlMKKworYWxsIDogWE1MVmlld2VySlMuaAorCitYTUxW
aWV3ZXJKUy5oIDogeG1sL1hNTFZpZXdlci5qcworCXBlcmwgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
eHhkLnBsIFhNTFZpZXdlcl9qcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMgWE1MVmlld2Vy
SlMuaAogCiAjIC0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNDFlNjllZS4uZTJj
NDliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTY1Myw3ICs2NTMsOCBAQCB3ZWJjb3JlX2J1
aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOU05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9YTUxOU05hbWVzLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2Vy
WFNMLmggCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJDU1MuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9YTUxWaWV3ZXJKUy5oIAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAgXApAQCAtNDk0Nyw5ICs0OTQ4LDEzIEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSGFzaFRv
b2xzLmg6IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3MuY3BwCiBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdzLmNwcDogJChXZWJDb3JlKS9odG1sL0RvY1R5
cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCiAJJChQRVJMKSAk
KFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkgJChXZWJD
b3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKLSMgWE1MIFZpZXdlciBYU0wKLURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VyWFNMLmg6ICQoV2ViQ29yZSkveG1sL1hNTFZpZXdl
ci54c2wKLQkkKFBFUkwpICQoV2ViQ29yZSkvaW5zcGVjdG9yL3h4ZC5wbCBYTUxWaWV3ZXJfeHNs
ICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci54c2wgJChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hNTFZp
ZXdlclhTTC5oCisjIFhNTCBWaWV3ZXIgQ1NTCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZp
ZXdlckNTUy5oOiAkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuY3NzCisJJChQRVJMKSAkKFdlYkNv
cmUpL2luc3BlY3Rvci94eGQucGwgWE1MVmlld2VyX2NzcyAkKFdlYkNvcmUpL3htbC9YTUxWaWV3
ZXIuY3NzICQoR0VOU09VUkNFU19XRUJDT1JFKS9YTUxWaWV3ZXJDU1MuaAorCisjIFhNTCBWaWV3
ZXIgSlMKK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MVmlld2VySlMuaDogJChXZWJDb3JlKS94
bWwvWE1MVmlld2VyLmpzCisJJChQRVJMKSAkKFdlYkNvcmUpL2luc3BlY3Rvci94eGQucGwgWE1M
Vmlld2VyX2pzICQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci5qcyAkKEdFTlNPVVJDRVNfV0VCQ09S
RSkvWE1MVmlld2VySlMuaAogCiAjIEhUTUwgZW50aXR5IG5hbWVzCiBEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHA6ICQoV2ViQ29yZSkvaHRtbC9wYXJzZXIvSFRNTEVu
dGl0eU5hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwtZW50aXR5LXRh
YmxlCkBAIC01MTc3LDcgKzUxODIsOCBAQCBFWFRSQV9ESVNUICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9zdmcveGxpbmthdHRycy5pbiBcCiAJU291cmNlL1dlYkNvcmUveG1sL3htbGF0dHJzLmluIFwK
IAlTb3VyY2UvV2ViQ29yZS94bWwveG1sbnNhdHRycy5pbiBcCi0JU291cmNlL1dlYkNvcmUveG1s
L1hNTFZpZXdlci54c2wgXAorCVNvdXJjZS9XZWJDb3JlL3htbC9YTUxWaWV3ZXIuY3NzIFwKKwlT
b3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmpzIFwKIAlTb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkKIAogIyBJbnN0YWxsaW5nIHdlYiBpbnNwZWN0b3IgZmlsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZTY5MmY1NC4uNTkzYjYyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTQ0NSwxNyArNDQ1LDMzIEBACiAg
ICAgICAnYWN0aW9ucyc6IFsKICAgICAgICAgIyBBY3Rpb25zIHRvIGJ1aWxkIGRlcml2ZWQgc291
cmNlcy4KICAgICAgICAgewotICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdnZW5lcmF0ZVhNTFZp
ZXdlclhTTCcsCisgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ2dlbmVyYXRlWE1MVmlld2VyQ1NT
JywKICAgICAgICAgICAnaW5wdXRzJzogWwotICAgICAgICAgICAgJy4uL3htbC9YTUxWaWV3ZXIu
eHNsJywKKyAgICAgICAgICAgICcuLi94bWwvWE1MVmlld2VyLmNzcycsCiAgICAgICAgICAgXSwK
ICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvWE1MVmlld2VyWFNMLmgnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lO
VEVSTUVESUFURV9ESVIpL3dlYmtpdC9YTUxWaWV3ZXJDU1MuaCcsCiAgICAgICAgICAgXSwKICAg
ICAgICAgICAnYWN0aW9uJzogWwogICAgICAgICAgICAgJ3BlcmwnLAogICAgICAgICAgICAgJy4u
L2luc3BlY3Rvci94eGQucGwnLAotICAgICAgICAgICAgJ1hNTFZpZXdlcl94c2wnLAorICAgICAg
ICAgICAgJ1hNTFZpZXdlcl9jc3MnLAorICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywKKyAgICAg
ICAgICAgICc8QChfb3V0cHV0cyknCisgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdnZW5lcmF0ZVhNTFZpZXdlckpTJywKKyAgICAg
ICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJy4uL3htbC9YTUxWaWV3ZXIuanMnLAorICAg
ICAgICAgIF0sCisgICAgICAgICAgJ291dHB1dHMnOiBbCisgICAgICAgICAgICAnPChTSEFSRURf
SU5URVJNRURJQVRFX0RJUikvd2Via2l0L1hNTFZpZXdlckpTLmgnLAorICAgICAgICAgIF0sCisg
ICAgICAgICAgJ2FjdGlvbic6IFsKKyAgICAgICAgICAgICdwZXJsJywKKyAgICAgICAgICAgICcu
Li9pbnNwZWN0b3IveHhkLnBsJywKKyAgICAgICAgICAgICdYTUxWaWV3ZXJfanMnLAogICAgICAg
ICAgICAgJzxAKF9pbnB1dHMpJywKICAgICAgICAgICAgICc8QChfb3V0cHV0cyknCiAgICAgICAg
ICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1NTc2Yjk4Li44N2NlZmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC03OTQ3LDcgKzc5NDcsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5oJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmNwcCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oJywKLSAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTFZpZXdl
clhTTC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL1hNTFZpZXdlckNTUy5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL1hNTFZpZXdlckpTLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWFBhdGhHcmFtbWFyLmNwcCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIuaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS90b2tl
bml6ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggZjAwYTU5MS4uYWZkYjQ1NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzMzE4LDcgKzIzMzE4LDExIEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1MVmlld2VyWFNMLmgiCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckNTUy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFhNTFZpZXdlckpTLmgiCiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0NWVhNjY0Li5mZTE4MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA4LDYgKzE0MDgs
OCBAQAogCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTkzRDNF
QUYxMzI1MzI4QzAwNTdFN0VFIC8qIEphdmFNZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5M0QzRUFFMTMyNTMyOEMwMDU3RTdFRSAvKiBKYXZh
TWV0aG9kLmggKi87IH07CiAJCTU5M0QzRUIxMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTNEM0VC
MDEzMjUzMjk1MDA1N0U3RUUgLyogSmF2YVN0cmluZy5oICovOyB9OworCQk1OTU4RjFDRDEzNDM5
MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmNzcyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU5NThGMUNCMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIu
Y3NzICovOyB9OworCQk1OTU4RjFDRTEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmpzIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk1OEYxQ0MxMzQz
OTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyAqLzsgfTsKIAkJNTk2MjI5NzgxMTMzRUZENzAw
REM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyog
R2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJNTk2MjI5N0ExMTMzRUZFMjAw
REM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdl
b2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTU5Njk1MDgyMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2
OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi87IH07CkBAIC03OTM1
LDExICs3OTM3LDEyIEBACiAJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTNEM0VBRTEzMjUz
MjhDMDA1N0U3RUUgLyogSmF2YU1ldGhvZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKYXZhTWV0aG9kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5M0QzRUIw
MTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEphdmFTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk1
OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNz
czsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5
NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5NjIyOTc3MTEzM0VGRDcwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9u
Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2MjI5
NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpv
YmplY3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpvYmplY3RX
cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5Njk1MDgzMTMyMTA1QTUw
MEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTU5ODBCMDMzMTJFRjNEODQwMERGNUY4NSAvKiBYTUxWaWV3ZXIueHNsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54bWw7IHBhdGggPSBYTUxWaWV3ZXIueHNsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1OThENzdEQzEzMjU0MUVFMDA3NjFCMjIgLyogSmF2YUFycmF5SlNDLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEphdmFBcnJheUpTQy5jcHA7IHBhdGggPSBq
c2MvSmF2YUFycmF5SlNDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3
REUxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJheUpTQy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBKYXZhQXJyYXlKU0MuaDsgcGF0aCA9IGpzYy9KYXZhQXJyYXlKU0MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4RDc3RTAxMzI1NDIwNDAwNzYxQjIyIC8q
IEphdmFGaWVsZEpTQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBK
YXZhRmllbGRKU0MuY3BwOyBwYXRoID0ganNjL0phdmFGaWVsZEpTQy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODY0Niw3ICsxODY0OSw4IEBACiAJCQkJMUFDRTUzRTYwQThE
MThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuaWRsICovLAogCQkJCTU5MDVBREJEMTMwMkYz
Q0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLywKIAkJCQk1OTA1QURCRTEzMDJGM0NF
MDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovLAotCQkJCTU5ODBCMDMzMTJFRjNEODQwMERG
NUY4NSAvKiBYTUxWaWV3ZXIueHNsICovLAorCQkJCTU5NThGMUNCMTM0MzkxN0MwMDgwQjMxRiAv
KiBYTUxWaWV3ZXIuY3NzICovLAorCQkJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxW
aWV3ZXIuanMgKi8sCiAJCQkJMUFCN0ZDNDcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVh
dG9yLmNwcCAqLywKIAkJCQkxQUI3RkM0ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0
b3IuaCAqLywKIAkJCQkxQUI3RkM0OTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3Iu
aWRsICovLApAQCAtMjU0MzgsNiArMjU0NDIsOCBAQAogCQkJCUYzNDc0MkUwMTM0MzYzMUYwMDUz
MUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzNDc0
MkU0MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjM0NzQyRTgxMzQzNjM1MDAwNTMxQkMyIC8qIFdvcmtlclNjcmlwdERlYnVn
U2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU5NThGMUNEMTM0MzkxN0MwMDgwQjMxRiAv
KiBYTUxWaWV3ZXIuY3NzIGluIFNvdXJjZXMgKi8sCisJCQkJNTk1OEYxQ0UxMzQzOTE3QzAwODBC
MzFGIC8qIFhNTFZpZXdlci5qcyBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA5MjE0MzkxLi5lM2Y2NjAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApA
QCAtMTMzOSwyNyArMTMzOSwyMyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkb0VuZCgpCiAg
ICAgICAgIH0KICAgICB9CiAKLSNpZiBFTkFCTEUoWFNMVCkKICAgICBYTUxUcmVlVmlld2VyIHht
bFRyZWVWaWV3ZXIoZG9jdW1lbnQoKSk7Ci0KICAgICBib29sIHhtbFZpZXdlck1vZGUgPSAhbV9z
YXdFcnJvciAmJiAhbV9zYXdDU1MgJiYgIW1fc2F3WFNMVHJhbnNmb3JtICYmIHhtbFRyZWVWaWV3
ZXIuaGFzTm9TdHlsZUluZm9ybWF0aW9uKCk7CisgICAgaWYgKHhtbFZpZXdlck1vZGUpCisgICAg
ICAgIHhtbFRyZWVWaWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7CiAKLSAgICBp
ZiAoeG1sVmlld2VyTW9kZSB8fCBtX3Nhd1hTTFRyYW5zZm9ybSkgeworI2lmIEVOQUJMRShYU0xU
KQorICAgIGlmIChtX3Nhd1hTTFRyYW5zZm9ybSkgewogICAgICAgICB2b2lkKiBkb2MgPSB4bWxE
b2NQdHJGb3JTdHJpbmcoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgbV9vcmln
aW5hbFNvdXJjZUZvclRyYW5zZm9ybSwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
ICAgICBkb2N1bWVudCgpLT5zZXRUcmFuc2Zvcm1Tb3VyY2UobmV3IFRyYW5zZm9ybVNvdXJjZShk
b2MpKTsKIAotICAgICAgICBpZiAoeG1sVmlld2VyTW9kZSkKLSAgICAgICAgICAgIHhtbFRyZWVW
aWV3ZXIudHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCk7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2UgdGhlIGRvY3Vt
ZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVzaGVldHMuCi0g
ICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUlt
bWVkaWF0ZWx5KTsKLSAgICAgICAgICAgIGRvY3VtZW50KCktPnNldFBhcnNpbmcodHJ1ZSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQoKS0+c2V0UGFyc2luZyhmYWxzZSk7IC8vIE1ha2Ug
dGhlIGRvY3VtZW50IHRoaW5rIGl0J3MgZG9uZSwgc28gaXQgd2lsbCBhcHBseSBYU0wgc3R5bGVz
aGVldHMuCisgICAgICAgIGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0
eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1bWVudCgpLT5zZXRQYXJzaW5nKHRydWUpOwog
CiAgICAgICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwogICAgIH0KICNlbmRpZgot
CiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcApp
bmRleCBmMWUyYzBmLi45MTBlODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
VHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3Bw
CkBAIC0yNywzNyArMjcsMTggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoWFNMVCkKICNpbmNsdWRlICJYTUxUcmVlVmlld2VyLmgiCiAKLQotI2luY2x1ZGUgIkJh
c2U2NC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtU291cmNl
LmgiCi0jaW5jbHVkZSAiWExpbmtOYW1lcy5oIgotI2luY2x1ZGUgIlhNTFZpZXdlclhTTC5oIgot
I2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCi0jaW5jbHVkZSAiWFNMU3R5bGVTaGVldC5oIgotI2lu
Y2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKLQotI2luY2x1ZGUgPGxpYnhzbHQveHNsdC5oPgotCi0j
aWYgRU5BQkxFKE1BVEhNTCkKLSNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgotI2VuZGlmCi0jaWYg
RU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2VuZGlmCi0jaWYgRU5BQkxFKFdN
TCkKLSNpbmNsdWRlICJXTUxOYW1lcy5oIgotI2VuZGlmCisjaW5jbHVkZSAiVGV4dC5oIgorI2lu
Y2x1ZGUgIlhNTFZpZXdlckNTUy5oIgorI2luY2x1ZGUgIlhNTFZpZXdlckpTLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTg5LDM0ICs3MCwxOCBAQCBib29sIFhNTFRyZWVWaWV3ZXI6
Omhhc05vU3R5bGVJbmZvcm1hdGlvbigpIGNvbnN0CiAKIHZvaWQgWE1MVHJlZVZpZXdlcjo6dHJh
bnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKIHsKLSAgICBTdHJpbmcgc2hlZXRTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2VyX3hzbCksIHNpemVvZihYTUxWaWV3
ZXJfeHNsKSk7Ci0gICAgUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBYU0xTdHls
ZVNoZWV0OjpjcmVhdGVGb3JYTUxUcmVlVmlld2VyKG1fZG9jdW1lbnQsIHNoZWV0U3RyaW5nKTsK
LQotICAgIFJlZlB0cjxYU0xUUHJvY2Vzc29yPiBwcm9jZXNzb3IgPSBYU0xUUHJvY2Vzc29yOjpj
cmVhdGUoKTsKLSAgICBwcm9jZXNzb3ItPnNldFhTTFN0eWxlU2hlZXQoc3R5bGVTaGVldCk7Ci0K
LSAgICBwcm9jZXNzb3ItPnNldFBhcmFtZXRlcigiIiwgInhtbF9oYXNfbm9fc3R5bGVfbWVzc2Fn
ZSIsICJUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZv
cm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJl
bG93LiIpOwotCi0gICAgU3RyaW5nIHJlc3VsdE1JTUVUeXBlOwotICAgIFN0cmluZyBuZXdTb3Vy
Y2U7Ci0gICAgU3RyaW5nIHJlc3VsdEVuY29kaW5nOwotCi0gICAgRnJhbWUqIGZyYW1lID0gbV9k
b2N1bWVudC0+ZnJhbWUoKTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludHJvZHVjZSBlcnJv
ciBoYW5kbGluZwotICAgIGlmIChwcm9jZXNzb3ItPnRyYW5zZm9ybVRvU3RyaW5nKG1fZG9jdW1l
bnQsIHJlc3VsdE1JTUVUeXBlLCBuZXdTb3VyY2UsIHJlc3VsdEVuY29kaW5nKSkKLSAgICAgICAg
cHJvY2Vzc29yLT5jcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UobmV3U291cmNlLCByZXN1bHRFbmNv
ZGluZywgcmVzdWx0TUlNRVR5cGUsIG1fZG9jdW1lbnQsIGZyYW1lKTsKLQotICAgIC8vIEFkZGlu
ZyBzb3VyY2UgeG1sIGZvciBkZWFsaW5nIHdpdGggbmFtZXNwYWNlcyBhbmQgQ0RBVEEgaXNzdWVz
IGFuZCBmb3IgZXh0ZW5zaW9ucyB1c2UuCi0gICAgRWxlbWVudCogc291cmNlWG1sRWxlbWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmcoInNvdXJjZS14
bWwiKSk7Ci0gICAgaWYgKHNvdXJjZVhtbEVsZW1lbnQpCi0gICAgICAgIG1fZG9jdW1lbnQtPmNs
b25lQ2hpbGROb2Rlcyhzb3VyY2VYbWxFbGVtZW50KTsKLQotICAgIC8vIE5ldyBkb2N1bWVudCBz
aG91bGQgaGF2ZSBiZWVuIGxvYWRlZCBpbiBmcmFtZS4gVGVsbCBpdCB0byB1c2UgdmlldyBzb3Vy
Y2Ugc3R5bGVzLgotICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRVc2VzVmlld1NvdXJjZVN0eWxl
cyh0cnVlKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvckNoYW5nZWQoUmVj
YWxjU3R5bGVJbW1lZGlhdGVseSk7Ci0KKyAgICBTdHJpbmcgc2NyaXB0U3RyaW5nKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl9qcyksIHNpemVvZihYTUxWaWV3ZXJfanMp
KTsKKyAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291
cmNlQ29kZShzY3JpcHRTdHJpbmcpKTsKKyAgICBTdHJpbmcgbm9TdHlsZU1lc3NhZ2UoIlRoaXMg
WE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFz
c29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuIik7Cisg
ICAgbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNv
ZGUoInByZXBhcmVXZWJLaXRYTUxWaWV3ZXIoJyIgKyBub1N0eWxlTWVzc2FnZSArICInKTsiKSk7
CisKKyAgICBTdHJpbmcgY3NzU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhN
TFZpZXdlcl9jc3MpLCBzaXplb2YoWE1MVmlld2VyX2NzcykpOworICAgIFJlZlB0cjxUZXh0PiB0
ZXh0ID0gbV9kb2N1bWVudC0+Y3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKKyAgICBFeGNlcHRp
b25Db2RlIGV4Y2VwdGlvbkNvZGU7CisgICAgbV9kb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQoInht
bC12aWV3ZXItc3R5bGUiKS0+YXBwZW5kQ2hpbGQodGV4dCwgZXhjZXB0aW9uQ29kZSk7CisKKyAg
ICBtX2RvY3VtZW50LT5zZXRVc2VzVmlld1NvdXJjZVN0eWxlcyh0cnVlKTsKKyAgICBtX2RvY3Vt
ZW50LT5zdHlsZVNlbGVjdG9yQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFhTTFQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxWaWV3ZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMWQ1
ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLmNzcwpA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUworICog4oCcQVMgSVPi
gJ0gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaXYuaGVhZGVyIHsKKyAgICBi
b3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7CisgICAgcGFkZGluZy1ib3R0b206IDVweDsK
KyAgICBtYXJnaW46IDEwcHg7Cit9CisKK2Rpdi5jb2xsYXBzaWJsZSA+IGRpdi5oaWRkZW4gewor
ICAgIGRpc3BsYXk6bm9uZTsKK30KKworLnByZXR0eS1wcmludCB7CisgICAgbWFyZ2luLXRvcDog
MWVtOworICAgIG1hcmdpbi1sZWZ0OiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisjd2Via2l0LXhtbC12aWV3ZXItc291cmNlLXht
bCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLmNvbGxhcHNpYmxlLWNvbnRlbnQgeworICAg
IG1hcmdpbi1sZWZ0OiAxZW07Cit9CisuY29tbWVudCB7CisgICAgd2hpdGVzcGFjZTogcHJlOwor
fQorCisuYnV0dG9uIHsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGN1cnNv
cjogcG9pbnRlcjsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgbWFyZ2luLWxlZnQ6
IC0xMHB4OworICAgIHdpZHRoOiAxMHB4OworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl
YXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7CisgICAgdmVydGljYWwtYWxp
Z246IGJvdHRvbTsKK30KKworLmNvbGxhcHNlLWJ1dHRvbiB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jYW52YXMoYXJyb3dEb3duKTsKKyAgICBoZWlnaHQ6IDEwcHg7Cit9CisKKy5l
eHBhbmQtYnV0dG9uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhhcnJv
d1JpZ2h0KTsKKyAgICBoZWlnaHQ6IDExcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MVmlld2VyLmpzIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzNlN2UzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFZpZXdlci5qcwpAQCAtMCwwICsxLDQzMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqIOKAnEFTIElT4oCdIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKwordmFyIG5vZGVQYXJlbnRQYWlycyA9IFtdOworCisvLyBTY3JpcHQg
ZW50cnkgcG9pbnQuCisKK2Z1bmN0aW9uIHByZXBhcmVXZWJLaXRYTUxWaWV3ZXIobm9TdHlsZU1l
c3NhZ2UpCit7CisgICAgdmFyIGh0bWwgPSBjcmVhdGVIVE1MRWxlbWVudCgnaHRtbCcpOworICAg
IHZhciBoZWFkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2hlYWQnKTsKKyAgICBodG1sLmFwcGVuZENo
aWxkKGhlYWQpOworICAgIHZhciBzdHlsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdzdHlsZScpOwor
ICAgIHN0eWxlLmlkID0gJ3htbC12aWV3ZXItc3R5bGUnOworICAgIGhlYWQuYXBwZW5kQ2hpbGQo
c3R5bGUpOworICAgIHZhciBib2R5ID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2JvZHknKTsKKyAgICBo
dG1sLmFwcGVuZENoaWxkKGJvZHkpOworICAgIHZhciBzb3VyY2VYTUwgPSBjcmVhdGVIVE1MRWxl
bWVudCgnZGl2Jyk7CisgICAgc291cmNlWE1MLmlkID0gJ3dlYmtpdC14bWwtdmlld2VyLXNvdXJj
ZS14bWwnOworICAgIGJvZHkuYXBwZW5kQ2hpbGQoc291cmNlWE1MKTsKKworICAgIHZhciBjaGls
ZDsKKyAgICB3aGlsZSAoY2hpbGQgPSBkb2N1bWVudC5maXJzdENoaWxkKSB7CisgICAgICAgIGRv
Y3VtZW50LnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlICE9
IE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgc291cmNlWE1MLmFwcGVuZENo
aWxkKGNoaWxkKTsKKyAgICB9CisgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoaHRtbCk7CisKKyAg
ICB2YXIgaGVhZGVyID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGJvZHkuYXBwZW5k
Q2hpbGQoaGVhZGVyKTsKKyAgICBoZWFkZXIuY2xhc3NMaXN0LmFkZCgnaGVhZGVyJyk7CisgICAg
dmFyIGhlYWRlclNwYW4gPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIGhlYWRlci5h
cHBlbmRDaGlsZChoZWFkZXJTcGFuKTsKKyAgICBoZWFkZXJTcGFuLnRleHRDb250ZW50ID0gbm9T
dHlsZU1lc3NhZ2U7CisgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNyZWF0ZUhUTUxFbGVtZW50KCdi
cicpKTsKKworICAgIHZhciB0cmVlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGJv
ZHkuYXBwZW5kQ2hpbGQodHJlZSk7CisgICAgdHJlZS5jbGFzc0xpc3QuYWRkKCdwcmV0dHktcHJp
bnQnKTsKKyAgICB0cmVlLmlkID0gJ3RyZWUnOworICAgIHdpbmRvdy5vbmxvYWQgPSBzb3VyY2VY
TUxMb2FkZWQ7Cit9CisKK2Z1bmN0aW9uIHNvdXJjZVhNTExvYWRlZCgpCit7CisgICAgdmFyIHNv
dXJjZVhNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3ZWJraXQteG1sLXZpZXdlci1zb3Vy
Y2UteG1sJyk7CisgICAgaWYgKCFzb3VyY2VYTUwpCisgICAgICAgIHJldHVybjsgLy8gU3RvcCBp
ZiBzb21lIFhNTCB0cmVlIGV4dGVuc2lvbiBpcyBhbHJlYWR5IHByb2Nlc3NpbmcgdGhpcyBkb2N1
bWVudAorICAgIC8vdmFyIHN0eWxlID0gZG9jdW1lbnQuaGVhZC5maXJzdENoaWxkOworICAgIC8v
ZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdHlsZSk7CisgICAgLy9kb2N1bWVudC5oZWFkLmFw
cGVuZENoaWxkKHN0eWxlKTsKKyAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0cmVlJyk7CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHNvdXJjZVhNTC5maXJzdENoaWxkOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBhcmVudFBhaXJz
LnB1c2goe3BhcmVudEVsZW1lbnQ6IHJvb3QsIG5vZGU6IGNoaWxkfSk7CisKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG5vZGVQYXJlbnRQYWlycy5sZW5ndGg7IGkrKykKKyAgICAgICAgcHJvY2Vz
c05vZGUobm9kZVBhcmVudFBhaXJzW2ldLnBhcmVudEVsZW1lbnQsIG5vZGVQYXJlbnRQYWlyc1tp
XS5ub2RlKTsKKworICAgIGRyYXdBcnJvd3MoKTsKKyAgICBpbml0QnV0dG9ucygpOworfQorCisv
LyBUcmVlIHByb2Nlc3NpbmcuCisKK2Z1bmN0aW9uIHByb2Nlc3NOb2RlKHBhcmVudEVsZW1lbnQs
IG5vZGUpCit7CisgICAgaWYgKCFwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwKSB7CisgICAgICAg
IHByb2Nlc3NOb2RlLnByb2Nlc3NvcnNNYXAgPSB7fTsKKyAgICAgICAgcHJvY2Vzc05vZGUucHJv
Y2Vzc29yc01hcFtOb2RlLlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERV0gPSBwcm9jZXNzUHJv
Y2Vzc2luZ0luc3RydWN0aW9uOworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05v
ZGUuRUxFTUVOVF9OT0RFXSA9IHByb2Nlc3NFbGVtZW50OworICAgICAgICBwcm9jZXNzTm9kZS5w
cm9jZXNzb3JzTWFwW05vZGUuQ09NTUVOVF9OT0RFXSA9IHByb2Nlc3NDb21tZW50OworICAgICAg
ICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuVEVYVF9OT0RFXSA9IHByb2Nlc3NUZXh0
OworICAgICAgICBwcm9jZXNzTm9kZS5wcm9jZXNzb3JzTWFwW05vZGUuQ0RBVEFfU0VDVElPTl9O
T0RFXSA9IHByb2Nlc3NDREFUQTsKKyAgICB9CisgICAgaWYgKHByb2Nlc3NOb2RlLnByb2Nlc3Nv
cnNNYXBbbm9kZS5ub2RlVHlwZV0pCisgICAgICAgIHByb2Nlc3NOb2RlLnByb2Nlc3NvcnNNYXBb
bm9kZS5ub2RlVHlwZV0uY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50LCBub2RlKTsKK30KKworZnVu
Y3Rpb24gcHJvY2Vzc0VsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAgICBpZiAoIW5v
ZGUuZmlyc3RDaGlsZCkKKyAgICAgICAgcHJvY2Vzc0VtcHR5RWxlbWVudChwYXJlbnRFbGVtZW50
LCBub2RlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxk
OworICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT0gTm9kZS5URVhUX05PREUgJiYgaXNTaG9y
dChjaGlsZC5ub2RlVmFsdWUpICYmICFjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgICAgIHBy
b2Nlc3NTaG9ydFRleHRPbmx5RWxlbWVudChwYXJlbnRFbGVtZW50LCBub2RlKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcHJvY2Vzc0NvbXBsZXhFbGVtZW50KHBhcmVudEVsZW1lbnQsIG5v
ZGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc0VtcHR5RWxlbWVudChwYXJlbnRFbGVt
ZW50LCBub2RlKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlTGluZSgpOworICAgIGxpbmUuYXBw
ZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCB0cnVlKSk7CisgICAgcGFyZW50RWxlbWVu
dC5hcHBlbmRDaGlsZChsaW5lKTsKK30KKworZnVuY3Rpb24gcHJvY2Vzc1Nob3J0VGV4dE9ubHlF
bGVtZW50KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgdmFyIGxpbmUgPSBjcmVhdGVMaW5l
KCk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgZmFsc2UsIGZhbHNlKSk7
CisgICAgZm9yICh2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLm5leHRTaWJsaW5nKQorICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoY2hp
bGQubm9kZVZhbHVlKSk7CisgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGxpbmUpOworfQorCitm
dW5jdGlvbiBwcm9jZXNzQ29tcGxleEVsZW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAg
ICB2YXIgY29sbGFwc2libGUgPSBjcmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAgY29sbGFwc2li
bGUuZXhwYW5kZWQuc3RhcnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxz
ZSkpOworICAgIGZvciAodmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC5uZXh0U2libGluZykKKyAgICAgICAgbm9kZVBhcmVudFBhaXJzLnB1c2goe3BhcmVu
dEVsZW1lbnQ6IGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQsIG5vZGU6IGNoaWxkfSk7Cisg
ICAgY29sbGFwc2libGUuZXhwYW5kZWQuZW5kLmFwcGVuZENoaWxkKGNyZWF0ZVRhZyhub2RlLCB0
cnVlLCBmYWxzZSkpOworCisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5k
Q2hpbGQoY3JlYXRlVGFnKG5vZGUsIGZhbHNlLCBmYWxzZSkpOworICAgIGNvbGxhcHNpYmxlLmNv
bGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJy4uLicpKTsKKyAgICBjb2xs
YXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVUYWcobm9kZSwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNpYmxlKTsK
K30KKworZnVuY3Rpb24gcHJvY2Vzc0NvbW1lbnQocGFyZW50RWxlbWVudCwgbm9kZSkKK3sKKyAg
ICBpZiAoaXNTaG9ydChub2RlLm5vZGVWYWx1ZSkpIHsKKyAgICAgICAgdmFyIGxpbmUgPSBjcmVh
dGVMaW5lKCk7CisgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPCEtLSAn
ICsgbm9kZS5ub2RlVmFsdWUgKyAnIC0tPicpKTsKKyAgICAgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZChsaW5lKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgY29sbGFwc2libGUgPSBj
cmVhdGVDb2xsYXBzaWJsZSgpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLnN0YXJ0
LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNvbGxhcHNpYmxl
LmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2RlLm5vZGVWYWx1
ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hpbGQoY3JlYXRl
Q29tbWVudCgnLS0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50
LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJzwhLS0nKSk7CisgICAgICAgIGNvbGxhcHNpYmxl
LmNvbGxhcHNlZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJy4uLicpKTsKKyAg
ICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29t
bWVudCgnLS0+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbGxhcHNp
YmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NDREFUQShwYXJlbnRFbGVtZW50LCBu
b2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZhbHVlKSkgeworICAgICAgICB2YXIg
bGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0
KCc8IVtDREFUQVsgJyArIG5vZGUubm9kZVZhbHVlICsgJyBdXT4nKSk7CisgICAgICAgIHBhcmVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNv
bGxhcHNpYmxlID0gY3JlYXRlQ29sbGFwc2libGUoKTsKKworICAgICAgICBjb2xsYXBzaWJsZS5l
eHBhbmRlZC5zdGFydC5hcHBlbmRDaGlsZChjcmVhdGVUZXh0KCc8IVtDREFUQVsnKSk7CisgICAg
ICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dChu
b2RlLm5vZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBwZW5k
Q2hpbGQoY3JlYXRlVGV4dCgnXV0+JykpOworCisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNl
ZC5jb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVRleHQoJzwhW0NEQVRBWycpKTsKKyAgICAgICAg
Y29sbGFwc2libGUuY29sbGFwc2VkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dCgnLi4u
JykpOworICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KCddXT4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY29s
bGFwc2libGUpOworICAgIH0KK30KKworZnVuY3Rpb24gcHJvY2Vzc1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbihwYXJlbnRFbGVtZW50LCBub2RlKQoreworICAgIGlmIChpc1Nob3J0KG5vZGUubm9kZVZh
bHVlKSkgeworICAgICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoKTsKKyAgICAgICAgbGluZS5h
cHBlbmRDaGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lICsgJyAnICsgbm9k
ZS5ub2RlVmFsdWUgKyAnPz4nKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
bGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbGxhcHNpYmxlID0gY3JlYXRlQ29s
bGFwc2libGUoKTsKKworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5zdGFydC5hcHBlbmRD
aGlsZChjcmVhdGVDb21tZW50KCc8PycgKyBub2RlLm5vZGVOYW1lKSk7CisgICAgICAgIGNvbGxh
cHNpYmxlLmV4cGFuZGVkLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudChub2RlLm5v
ZGVWYWx1ZSkpOworICAgICAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5lbmQuYXBwZW5kQ2hpbGQo
Y3JlYXRlQ29tbWVudCgnPz4nKSk7CisKKyAgICAgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmNv
bnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tbWVudCgnPD8nICsgbm9kZS5ub2RlTmFtZSkpOwor
ICAgICAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVD
b21tZW50KCcuLi4nKSk7CisgICAgICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50LmFw
cGVuZENoaWxkKGNyZWF0ZUNvbW1lbnQoJz8+JykpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFw
cGVuZENoaWxkKGNvbGxhcHNpYmxlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHByb2Nlc3NUZXh0
KHBhcmVudEVsZW1lbnQsIG5vZGUpCit7CisgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChj
cmVhdGVUZXh0KG5vZGUubm9kZVZhbHVlKSk7Cit9CisKKy8vIFByb2Nlc3NpbmcgdXRpbHMuCisK
K2Z1bmN0aW9uIHRyaW0odmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL15cc1xz
Ki8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Cit9CisKK2Z1bmN0aW9uIGlzU2hvcnQodmFs
dWUpCit7CisgICAgcmV0dXJuIHRyaW0odmFsdWUpLmxlbmd0aCA8PSA1MDsKK30KKworLy8gVHJl
ZSByZW5kZXJpbmcuCisKK2Z1bmN0aW9uIGNyZWF0ZUhUTUxFbGVtZW50KGVsZW1lbnROYW1lKQor
eworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnLCBlbGVtZW50TmFtZSkKK30KKworZnVuY3Rpb24gY3JlYXRlQ29sbGFwc2li
bGUoKQoreworICAgIHZhciBjb2xsYXBzaWJsZSA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsK
KyAgICBjb2xsYXBzaWJsZS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzaWJsZScpOworICAgIGNvbGxh
cHNpYmxlLmV4cGFuZGVkID0gY3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNp
YmxlLmV4cGFuZGVkLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7CisgICAgY29sbGFwc2libGUu
YXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQpOworCisgICAgY29sbGFwc2libGUuZXhw
YW5kZWQuc3RhcnQgPSBjcmVhdGVMaW5lKCk7CisgICAgY29sbGFwc2libGUuZXhwYW5kZWQuc3Rh
cnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ29sbGFwc2VCdXR0b24oKSk7CisgICAgY29sbGFwc2libGUu
ZXhwYW5kZWQuYXBwZW5kQ2hpbGQoY29sbGFwc2libGUuZXhwYW5kZWQuc3RhcnQpOworCisgICAg
Y29sbGFwc2libGUuZXhwYW5kZWQuY29udGVudCA9IGNyZWF0ZUhUTUxFbGVtZW50KCdkaXYnKTsK
KyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5jb250ZW50LmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNp
YmxlLWNvbnRlbnQnKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBlbmRDaGlsZChjb2xs
YXBzaWJsZS5leHBhbmRlZC5jb250ZW50KTsKKworICAgIGNvbGxhcHNpYmxlLmV4cGFuZGVkLmVu
ZCA9IGNyZWF0ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5leHBhbmRlZC5hcHBlbmRDaGlsZChj
b2xsYXBzaWJsZS5leHBhbmRlZC5lbmQpOworCisgICAgY29sbGFwc2libGUuY29sbGFwc2VkID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ2RpdicpOworICAgIGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jbGFz
c0xpc3QuYWRkKCdjb2xsYXBzZWQnKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY2xhc3NM
aXN0LmFkZCgnaGlkZGVuJyk7CisgICAgY29sbGFwc2libGUuYXBwZW5kQ2hpbGQoY29sbGFwc2li
bGUuY29sbGFwc2VkKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudCA9IGNyZWF0
ZUxpbmUoKTsKKyAgICBjb2xsYXBzaWJsZS5jb2xsYXBzZWQuY29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVFeHBhbmRCdXR0b24oKSk7CisgICAgY29sbGFwc2libGUuY29sbGFwc2VkLmFwcGVuZENo
aWxkKGNvbGxhcHNpYmxlLmNvbGxhcHNlZC5jb250ZW50KTsKKworICAgIHJldHVybiBjb2xsYXBz
aWJsZTsKK30KKworZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCkKK3sKKyAgICB2YXIgYnV0dG9uID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0
dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsKK30KKworZnVuY3Rpb24gY3JlYXRlQ29sbGFwc2VC
dXR0b24oc3RyKQoreworICAgIHZhciBidXR0b24gPSBjcmVhdGVCdXR0b24oKTsKKyAgICBidXR0
b24uY2xhc3NMaXN0LmFkZCgnY29sbGFwc2UtYnV0dG9uJyk7CisgICAgcmV0dXJuIGJ1dHRvbjsK
K30KKworZnVuY3Rpb24gY3JlYXRlRXhwYW5kQnV0dG9uKHN0cikKK3sKKyAgICB2YXIgYnV0dG9u
ID0gY3JlYXRlQnV0dG9uKCk7CisgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZC1idXR0
b24nKTsKKyAgICByZXR1cm4gYnV0dG9uOworfQorCitmdW5jdGlvbiBjcmVhdGVDb21tZW50KGNv
bW1lbnRTdHJpbmcpCit7CisgICAgdmFyIGNvbW1lbnQgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3Bh
bicpOworICAgIGNvbW1lbnQuY2xhc3NMaXN0LmFkZCgnd2Via2l0LWh0bWwtY29tbWVudCcpOwor
ICAgIGNvbW1lbnQudGV4dENvbnRlbnQgPSBjb21tZW50U3RyaW5nOworICAgIHJldHVybiBjb21t
ZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0KHZhbHVlKQoreworICAgIHZhciB0ZXh0ID0g
Y3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICB0ZXh0LnRleHRDb250ZW50ID0gdHJpbSh2
YWx1ZSk7CisgICAgdGV4dC5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7CisgICAgcmV0dXJuIHRleHQ7
Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUxpbmUoKQoreworICAgIHZhciBsaW5lID0gY3JlYXRlSFRN
TEVsZW1lbnQoJ2RpdicpOworICAgIGxpbmUuY2xhc3NMaXN0LmFkZCgnbGluZScpOworICAgIHJl
dHVybiBsaW5lOworfQorCitmdW5jdGlvbiBjcmVhdGVUYWcobm9kZSwgaXNDbG9zaW5nLCBpc0Vt
cHR5KQoreworICAgIHZhciB0YWcgPSBjcmVhdGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIHRh
Zy5jbGFzc0xpc3QuYWRkKCd3ZWJraXQtaHRtbC10YWcnKTsKKworICAgIHZhciBzdHJpbmdCZWZv
cmVBdHRycyA9ICc8JzsKKyAgICBpZiAoaXNDbG9zaW5nKQorICAgICAgICBzdHJpbmdCZWZvcmVB
dHRycyArPSAnLyc7CisgICAgc3RyaW5nQmVmb3JlQXR0cnMgKz0gbm9kZS5ub2RlTmFtZTsKKyAg
ICB2YXIgdGV4dEJlZm9yZUF0dHJzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nQmVm
b3JlQXR0cnMpOworICAgIHRhZy5hcHBlbmRDaGlsZCh0ZXh0QmVmb3JlQXR0cnMpOworCisgICAg
aWYgKCFpc0Nsb3NpbmcpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmF0dHJp
YnV0ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWcuYXBwZW5kQ2hpbGQoY3JlYXRlQXR0
cmlidXRlKG5vZGUuYXR0cmlidXRlc1tpXSkpOworICAgIH0KKworICAgIHZhciBzdHJpbmdBZnRl
ckF0dHJzID0gJyc7CisgICAgaWYgKGlzRW1wdHkpCisgICAgICAgIHN0cmluZ0FmdGVyQXR0cnMg
Kz0gJy8nOworICAgIHN0cmluZ0FmdGVyQXR0cnMgKz0gJz4nOworICAgIHZhciB0ZXh0QWZ0ZXJB
dHRycyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ0FmdGVyQXR0cnMpOworICAgIHRh
Zy5hcHBlbmRDaGlsZCh0ZXh0QWZ0ZXJBdHRycyk7CisKKyAgICByZXR1cm4gdGFnOworfQorCitm
dW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGUoYXR0cmlidXRlTm9kZSkKK3sKKyAgICB2YXIgYXR0cmli
dXRlID0gY3JlYXRlSFRNTEVsZW1lbnQoJ3NwYW4nKTsKKyAgICBhdHRyaWJ1dGUuY2xhc3NMaXN0
LmFkZCgnd2Via2l0LWh0bWwtYXR0cmlidXRlJyk7CisKKyAgICB2YXIgYXR0cmlidXRlTmFtZSA9
IGNyZWF0ZUhUTUxFbGVtZW50KCdzcGFuJyk7CisgICAgYXR0cmlidXRlTmFtZS5jbGFzc0xpc3Qu
YWRkKCd3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZScpOworICAgIGF0dHJpYnV0ZU5hbWUudGV4
dENvbnRlbnQgPSBhdHRyaWJ1dGVOb2RlLm5hbWU7CisKKyAgICB2YXIgdGV4dEJlZm9yZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CisgICAgdmFyIHRleHRCZXR3ZWVuID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJz0iJyk7CisKKyAgICB2YXIgYXR0cmlidXRlVmFsdWUgPSBjcmVh
dGVIVE1MRWxlbWVudCgnc3BhbicpOworICAgIGF0dHJpYnV0ZVZhbHVlLmNsYXNzTGlzdC5hZGQo
J3dlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZScpOworICAgIGF0dHJpYnV0ZVZhbHVlLnRleHRD
b250ZW50ID0gYXR0cmlidXRlTm9kZS52YWx1ZTsKKworICAgIHZhciB0ZXh0QWZ0ZXIgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnIicpOworCisgICAgYXR0cmlidXRlLmFwcGVuZENoaWxkKHRl
eHRCZWZvcmUpOworICAgIGF0dHJpYnV0ZS5hcHBlbmRDaGlsZChhdHRyaWJ1dGVOYW1lKTsKKyAg
ICBhdHRyaWJ1dGUuYXBwZW5kQ2hpbGQodGV4dEJldHdlZW4pOworICAgIGF0dHJpYnV0ZS5hcHBl
bmRDaGlsZChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgYXR0cmlidXRlLmFwcGVuZENoaWxkKHRleHRB
ZnRlcik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZTsKK30KKworLy8gVHJlZSBiZWhhdmlvdXIuCisK
K2Z1bmN0aW9uIGRyYXdBcnJvd3MoKQoreworICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRDU1ND
YW52YXNDb250ZXh0KCIyZCIsICJhcnJvd1JpZ2h0IiwgMTAsIDExKTsKKworICAgIGN0eC5maWxs
U3R5bGUgPSAicmdiKDkwLDkwLDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5t
b3ZlVG8oMCwgMCk7CisgICAgY3R4LmxpbmVUbygwLCA4KTsKKyAgICBjdHgubGluZVRvKDcsIDQp
OworICAgIGN0eC5saW5lVG8oMCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQ
YXRoKCk7CisKKyAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQi
LCAiYXJyb3dEb3duIiwgMTAsIDEwKTsKKworICAgIGN0eC5maWxsU3R5bGUgPSAicmdiKDkwLDkw
LDkwKSI7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMCwgMCk7CisgICAg
Y3R4LmxpbmVUbyg4LCAwKTsKKyAgICBjdHgubGluZVRvKDQsIDcpOworICAgIGN0eC5saW5lVG8o
MCwgMCk7CisgICAgY3R4LmZpbGwoKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7Cit9CisKK2Z1bmN0
aW9uIGV4cGFuZEZ1bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAn
ID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKKyAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmNvbGxhcHNlZCcpLmNsYXNzTmFt
ZSA9ICdjb2xsYXBzZWQgaGlkZGVuJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBjb2xsYXBzZUZ1
bmN0aW9uKHNlY3Rpb25JZCkKK3sKKyAgICByZXR1cm4gZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9uSWQgKyAnID4gLmV4cGFuZGVk
JykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkIGhpZGRlbic7CisgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAn
Y29sbGFwc2VkJzsKKyAgICB9OworfQorCitmdW5jdGlvbiBpbml0QnV0dG9ucygpCit7CisgICAg
dmFyIHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbGxhcHNpYmxlJyk7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykgeworICAgICAg
ICB2YXIgc2VjdGlvbklkID0gJ2NvbGxhcHNpYmxlJyArIGk7CisgICAgICAgIHNlY3Rpb25zW2ld
LmlkID0gc2VjdGlvbklkOworCisgICAgICAgIHZhciBleHBhbmRlZFBhcnQgPSBzZWN0aW9uc1tp
XS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5kZWQnKTsKKyAgICAg
ICAgdmFyIGNvbGxhcHNlQnV0dG9uID0gZXhwYW5kZWRQYXJ0LnF1ZXJ5U2VsZWN0b3IoJy5jb2xs
YXBzZS1idXR0b24nKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25jbGljayA9IGNvbGxhcHNl
RnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgY29sbGFwc2VCdXR0b24ub25tb3VzZWRvd24g
PSBoYW5kbGVCdXR0b25Nb3VzZURvd247CisKKyAgICAgICAgdmFyIGNvbGxhcHNlZFBhcnQgPSBz
ZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuY29sbGFwc2Vk
Jyk7CisgICAgICAgIHZhciBleHBhbmRCdXR0b24gPSBjb2xsYXBzZWRQYXJ0LnF1ZXJ5U2VsZWN0
b3IoJy5leHBhbmQtYnV0dG9uJyk7CisgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0gZXhw
YW5kRnVuY3Rpb24oc2VjdGlvbklkKTsKKyAgICAgICAgZXhwYW5kQnV0dG9uLm9ubW91c2Vkb3du
ID0gaGFuZGxlQnV0dG9uTW91c2VEb3duOworICAgIH0KKworfQorCitmdW5jdGlvbiBoYW5kbGVC
dXR0b25Nb3VzZURvd24oZSkKK3sKKyAgIC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJs
ZSBjbGljaworICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTFZpZXdlci54c2wgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhz
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVlM2NhOC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MVmlld2VyLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDM5OCAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCc/PgotPCEtLQotICAg
LSBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAg
IC0KLSAgIC0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gICAtIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAgIC0gbWV0OgotICAgLQot
ICAgLSAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICAgLSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAtCi0gICAtIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAgIC0gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICAgLSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gICAtIGRpc3RyaWJ1dGlvbi4KLSAgIC0KLSAgIC0gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUwotICAgLSDi
gJxBUyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gICAtIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgotICAgLSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gICAtIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAgIC0gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gICAtIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICAgLSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gICAtIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICAgLSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICAgLS0+Ci0KLTx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPScxLjAnIHhtbG5zOnhzbD0naHR0cDov
L3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtJz4KLSAgICA8eHNsOm91dHB1dCBtZXRob2Q9
Imh0bWwiLz4KLSAgICA8eHNsOnBhcmFtIG5hbWU9InhtbF9oYXNfbm9fc3R5bGVfbWVzc2FnZSIv
PgotICAgIDx4c2w6cGFyYW0gbmFtZT0iZG93bkFycm93QmFzZTY0Ii8+Ci0gICAgPHhzbDpwYXJh
bSBuYW1lPSJyaWdodEFycm93QmFzZTY0Ii8+Ci0KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIv
Ij4KLSAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW4iLz4KLSAgICA8L3hzbDp0
ZW1wbGF0ZT4KLQotICAgIDwhLS0gRW1wdHkgZWxlbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSIqIj4KLSAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICA8c3Bh
biBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0
OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUo
KSIvPgotICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4K
LSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+LyZndDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAg
PC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0g
RWxlbWVudCB3aXRoIHNob3J0IHRleHQgb25seSAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNo
PSIqW25vZGUoKV0iPgotICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4m
bHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFt
ZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAKiIv
PgotICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
IDwvc3Bhbj4KLQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQiPjx4c2w6dmFsdWUtb2Yg
c2VsZWN0PSIuIi8+PC9zcGFuPgotCi0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtdGFnIj4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0Oy88L3hzbDp0ZXh0PgotICAg
ICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAg
ICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8L3NwYW4+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBDb2xsYXBzYWJsZSBl
bGVtZW50IC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IipbKiBvciBwcm9jZXNzaW5nLWlu
c3RydWN0aW9uKCkgb3IgY29tbWVudCgpIG9yIHN0cmluZy1sZW5ndGgoKSAmZ3Q7IDUwXSI+Ci0g
ICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNhYmxlIj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImV4cGFuZGVkIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAg
ICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNvbGxhcHNlLWJ1dHRvbiIvPgot
ICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7PC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQCoiLz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAg
ICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDx4
c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLQotICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0id2Via2l0LWh0bWwtdGFnIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4m
bHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNl
bGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0Ozwv
eHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xs
YXBzZWQgaGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAg
ICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4K
LSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OzwveHNsOnRleHQ+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkAqIi8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8eHNsOnRleHQ+Li4uPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDx4c2w6dGV4dD4mbHQ7LzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
eHNsOnRleHQ+Jmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSAg
ICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4K
LSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gQW55IGF0dHJpYnV0ZSAtLT4KLSAgICA8
eHNsOnRlbXBsYXRlIG1hdGNoPSJAKiI+Ci0gICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4K
LSAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj48eHNsOnZh
bHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRleHQ+PSZxdW90
OzwveHNsOnRleHQ+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUt
dmFsdWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAgICA8eHNsOnRl
eHQ+JnF1b3Q7PC94c2w6dGV4dD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hv
cnQgY29tbWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KCkiPgotICAg
ICAgICA8ZGl2IGNsYXNzPSJsaW5lIj4KLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICA8eHNsOnRleHQ+Jmx0OyEtLTwveHNsOnRl
eHQ+Ci0gICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KLSAgICAgICAg
ICAgICAgICA8eHNsOnRleHQ+LS0mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgIDwvc3Bhbj4K
LSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8IS0tIExvbmcgY29t
bWVudCAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb21tZW50KClbc3RyaW5nLWxlbmd0
aCgpICZndDsgNTBdIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUiPgotICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWQiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImxpbmUiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY29s
bGFwc2UtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4mbHQ7IS0t
PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgICAg
IDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2FibGUtY29udGVu
dCBjb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1s
LWNvbW1lbnQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9zcGFuPgotICAgICAgICAgICAg
ICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4tLSZndDs8L3hzbDp0ZXh0PgotICAgICAgICAgICAg
ICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rp
dj4KLQotICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2VkIGhpZGRlbiI+Ci0gICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6Y2Fs
bC10ZW1wbGF0ZSBuYW1lPSJleHBhbmQtYnV0dG9uIi8+Ci0gICAgICAgICAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dGV4dD4mbHQ7IS0tPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFu
PgotCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50
Ij48eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAgICAgICAg
PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAg
ICAgPHhzbDp0ZXh0Pi0tJmd0OzwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICAgIDwvc3Bh
bj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8
L2Rpdj4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDwhLS0gU2hvcnQgcHJvY2Vzc2luZyBp
bnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwcm9jZXNzaW5nLWluc3Ry
dWN0aW9uKClbbmFtZSgpICE9ICd4bWwtc3R5bGVzaGVldCddIj4KLSAgICAgICAgPGRpdiBjbGFz
cz0ibGluZSI+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+
Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAg
ICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSgpIi8+Ci0gICAgICAgICAgICAgICAgPHhz
bDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0
PSIuIi8+Ci0gICAgICAgICAgICAgICAgPHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAg
ICAgICAgIDwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAg
ICA8IS0tIExvbmcgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiAtLT4KLSAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSJwcm9jZXNzaW5nLWluc3RydWN0aW9uKClbKHN0cmluZy1sZW5ndGgoKSAmZ3Q7IDUw
KSBhbmQgKG5hbWUoKSAhPSAneG1sLXN0eWxlc2hlZXQnKV0iPgotICAgICAgICA8ZGl2IGNsYXNz
PSJjb2xsYXBzYWJsZSI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRlZCI+Ci0gICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx4c2w6
Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjb2xsYXBzZS1idXR0b24iLz4KLSAgICAgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotICAg
ICAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFw
c2FibGUtY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1jb21tZW50Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4KLSAgICAgICAg
ICAgICAgICA8L2Rpdj4KLQotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtY29tbWVudCI+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+PyZndDs8L3hzbDp0ZXh0PgotICAgICAgICAg
ICAgICAgICAgICA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlZCBoaWRkZW4iPgotICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUiPgotICAgICAgICAgICAgICAgICAgPHhzbDpjYWxs
LXRlbXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iLz4KLSAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0PiZsdDs/PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6
dmFsdWUtb2Ygc2VsZWN0PSJuYW1lKCkiLz4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgot
Ci0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1jb21tZW50Ij48
eHNsOnRleHQ+Li4uPC94c2w6dGV4dD48L3NwYW4+Ci0KLSAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWNvbW1lbnQiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PHhzbDp0ZXh0Pj8mZ3Q7PC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgot
ICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2
PgotICAgIDwveHNsOnRlbXBsYXRlPgotCi0gICAgPCEtLSBUZXh0IG5vZGUgLS0+Ci0gICAgPHhz
bDp0ZW1wbGF0ZSBtYXRjaD0idGV4dCgpIj4KLSAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9
Ii4iLz4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iY29s
bGFwc2UtYnV0dG9uIj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbiBjb2xsYXBzZS1idXR0
b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0KLSAgICA8eHNsOnRl
bXBsYXRlIG5hbWU9ImV4cGFuZC1idXR0b24iPgotICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9u
IGV4cGFuZC1idXR0b24iPgotICAgICAgICA8L3NwYW4+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0K
LSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1haW4iPgotICAgICAgICA8aHRtbD4KLSAgICAgICAg
ICAgIDxoZWFkPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHls
ZSIvPgotICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzY3JpcHQiLz4K
LSAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgIDxib2R5IG9ubG9hZD0ib25XZWJLaXRY
TUxWaWV3ZXJMb2FkKCkiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+Ci0g
ICAgICAgICAgICAgICAgICAgIDxzcGFuPiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHhtbF9oYXNf
bm9fc3R5bGVfbWVzc2FnZSIvPiA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgIDxici8+Ci0g
ICAgICAgICAgICAgICAgPC9kaXY+Ci0KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV0
dHktcHJpbnQiPgotICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+Ci0g
ICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0ic291cmNlLXht
bCI+PC9kaXY+Ci0gICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgIDwvaHRtbD4KLSAgICA8L3hz
bDp0ZW1wbGF0ZT4KLQotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic2NyaXB0Ij4KLSAgICAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICAgICAgPHhzbDp0ZXh0Pgot
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uV2ViS2l0WE1MVmlld2VyTG9hZCgpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcmF3QXJyb3dzKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGluaXRCdXR0b25zKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgZnVuY3Rpb24gZHJhd0Fycm93cygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAi
YXJyb3dSaWdodCIsIDEwLCAxMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY3R4LmZpbGxTdHls
ZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgp
OwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAgICAgICAgICAgICAg
ICAgICBjdHgubGluZVRvKDAsIDgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDcs
IDQpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwotICAgICAgICAgICAg
ICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7
Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGRvY3VtZW50LmdldENTU0NhbnZhc0Nv
bnRleHQoIjJkIiwgImFycm93RG93biIsIDEwLCAxMCk7Ci0KLSAgICAgICAgICAgICAgICAgICAg
Y3R4LmZpbGxTdHlsZSA9ICJyZ2IoOTAsOTAsOTApIjsKLSAgICAgICAgICAgICAgICAgICAgY3R4
LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKDAsIDApOwotICAg
ICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDgsIDApOwotICAgICAgICAgICAgICAgICAgICBj
dHgubGluZVRvKDQsIDcpOwotICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIDApOwot
ICAgICAgICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICAgICAgICBjdHgu
Y2xvc2VQYXRoKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gZXhwYW5kRnVuY3Rpb24oc2VjdGlvbklkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9u
SWQgKyAnID4gLmV4cGFuZGVkJykuY2xhc3NOYW1lID0gJ2V4cGFuZGVkJzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlvbklkICsgJyA+
IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkIGhpZGRlbic7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gY29sbGFwc2VGdW5jdGlvbihzZWN0aW9uSWQpCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKQotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rp
b25JZCArICcgPiAuZXhwYW5kZWQnKS5jbGFzc05hbWUgPSAnZXhwYW5kZWQgaGlkZGVuJzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgc2VjdGlv
bklkICsgJyA+IC5jb2xsYXBzZWQnKS5jbGFzc05hbWUgPSAnY29sbGFwc2VkJzsKLSAgICAgICAg
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBmdW5j
dGlvbiBpbml0QnV0dG9ucygpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY29sbGFwc2FibGUn
KTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBzZWN0aW9ucy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlY3Rpb25JZCA9ICdj
b2xsYXBzYWJsZScgKyBpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnNbaV0uaWQg
PSBzZWN0aW9uSWQ7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBhbmRlZFBhcnQg
PSBzZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yKCcjJyArIHNlY3Rpb25JZCArICcgPiAuZXhwYW5k
ZWQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZUJ1dHRvbiA9IGV4cGFu
ZGVkUGFydC5xdWVyeVNlbGVjdG9yKCcuY29sbGFwc2UtYnV0dG9uJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBjb2xsYXBzZUJ1dHRvbi5vbmNsaWNrID0gY29sbGFwc2VGdW5jdGlvbihzZWN0
aW9uSWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VCdXR0b24ub25tb3VzZWRv
d24gPSBoYW5kbGVCdXR0b25Nb3VzZURvd247Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjb2xsYXBzZWRQYXJ0ID0gc2VjdGlvbnNbaV0ucXVlcnlTZWxlY3RvcignIycgKyBzZWN0aW9u
SWQgKyAnID4gLmNvbGxhcHNlZCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGFu
ZEJ1dHRvbiA9IGNvbGxhcHNlZFBhcnQucXVlcnlTZWxlY3RvcignLmV4cGFuZC1idXR0b24nKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5vbmNsaWNrID0gZXhwYW5kRnVu
Y3Rpb24oc2VjdGlvbklkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5v
bm1vdXNlZG93biA9IGhhbmRsZUJ1dHRvbk1vdXNlRG93bjsKLSAgICAgICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxl
QnV0dG9uTW91c2VEb3duKGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
IC8vIFRvIHByZXZlbnQgc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljawotICAgICAgICAgICAgICAg
ICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICA8
L3hzbDp0ZXh0PgotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotICAg
IDx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGUiPgotICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgotICAgICAgICAgICAgZGl2LmhlYWRlciB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyLWJv
dHRvbTogMnB4IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1
cHg7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBkaXYuY29sbGFwc2FibGUgPiBkaXYuaGlkZGVuIHsKLSAgICAgICAgICAgICAgICBk
aXNwbGF5Om5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5wcmV0dHktcHJpbnQg
ewotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICAgICAgICAgICAgICBtYXJn
aW4tbGVmdDogMjBweDsKLSAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwot
ICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgI3NvdXJjZS14bWwgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzYWJsZS1jb250ZW50IHsKLSAgICAgICAg
ICAgICAgICBtYXJnaW4tbGVmdDogMWVtOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmNv
bW1lbnQgewotICAgICAgICAgICAgICAgIHdoaXRlc3BhY2U6IHByZTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgLmJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNl
bGVjdDogbm9uZTsKLSAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gICAgICAgICAg
ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0
OiAtMTBweDsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKLSAgICAgICAgICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQt
cG9zaXRpb246IGxlZnQgdG9wOwotICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0
b207Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb2xsYXBzZS1idXR0b24gewotICAg
ICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGFycm93RG93bik7
Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAuZXhwYW5kLWJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoYXJyb3dSaWdodCk7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMXB4
OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwveHNsOnRlbXBsYXRlPgot
PC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHls
ZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmluZGV4IGRiZTg3
YjUuLmIzNmFjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApAQCAtNjMsMTQgKzYz
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0eWxlU2hlZXQo
cGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZUZvclhNTFRyZWVWaWV3ZXIo
Tm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBzaGVldFN0cmluZykKLSAgICB7Ci0gICAgICAgIFJl
ZlB0cjxYU0xTdHlsZVNoZWV0PiBzaGVldCA9IGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KG5v
ZGUsIFN0cmluZygpLCBLVVJMKCksIGZhbHNlKSk7Ci0gICAgICAgIHNoZWV0LT5wYXJzZVN0cmlu
ZyhzaGVldFN0cmluZyk7Ci0KLSAgICAgICAgcmV0dXJuIHNoZWV0LnJlbGVhc2UoKTsKLSAgICB9
Ci0KICAgICB2aXJ0dWFsIH5YU0xTdHlsZVNoZWV0KCk7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGlzWFNMU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>
<flag name="review"
          id="80132"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>